Aller au contenu

Enlever un chiffre aprés la virgule


naito073

Messages recommandés

 

Hello

 

Si tu as des textes simples (pas des Mtextes) numeriques voici une bonne vieille routine Lisp

Commande au clavier : ZDEC

 

Le Decapode

 

 

; ==============================
; Modification de chaines numeriques
; en fixant le nombre de decimales
; MODIFDEC.LSP ---> ZDEC.LSP
; Dominique VAQUAND SARL (11/2000)
; ==============================

;; (defun c:modifdec ()
  (defun c:zdec     ()

  ; on met a 0 l'echo de commande
  
  (setvar "cmdecho" 0)
  
  ; on definit 2 variables pour memoriser
  ; le nombre de chaine non numerique
  ; le nombre d'objet non texte
  
  (setq obj_non_txt 0)
  (setq obj_non_numeric 0)
  
  ; on demande le nombre de decimale
  ; Cette valeur est memorisee dans la 
  ; variable nb_decimale. Si elle n'est pas nil
  ; alors elle contient une valeur proposee par defaut.
  ; On ne peut pas entrer une valeur negative
  
  (if (/= nb_decimale nil)
     (progn
        (initget 4)
        (setq nb_decimale_x (getint (strcat "Nbre de decimale : ")))
        
        (if (/= nb_decimale_x nil)
           (setq nb_decimale nb_decimale_x)
        )
     )
     (setq nb_decimale (getint "\nNbre de decimale: "))
  )   
  
  
  ; on selectionne des objets que l'on place dans le jeu de selection Ent_txt
  
  (princ  "\nChoix des objets: ")
  (setq ent_txt (ssget))
  
  ; s'il y a des objets selectionnes
  
  (if (/= ent_txt nil)
     (progn
        
        ; on regle le compteur d'objet a 0
        
        (setq compte 0)
        
        ; on boucle sur le nombre d'objet selectionne
        
        (repeat (sslength ent_txt)
           
           ; si l'objet est un objet Text on traite la chaine sinon on incremente le nombre
; d'objet non texte
           
           (if (= (cdr (assoc 0 (entget (ssname ent_txt compte)))) "TEXT")
              (progn
                 ; on recupere la chaine de caractere
                 
                 (setq valeur_txt (cdr (assoc 1 (entget (ssname ent_txt compte)))))
                 
                 ; on verifie que la chaine peut etre une valeur numerique
                 ; si oui on convertit cette chaine en valeur numerique puis on modifie
                 ; la chaine directement dans le code de l'objet
                 ; si non on incremente le nombre de chaine non modifiee
                 
                 (if (= (wcmatch valeur_txt "*#") T)
                    (progn
                       (setq valeur_txt_x (cons 1 (rtos (atof valeur_txt) 2 nb_decimale)))
                       (setq nv_ent_txt (subst valeur_txt_x (cons 1 valeur_txt) (entget (ssname ent_txt compte))))
                       (entmod nv_ent_txt)
                    )
                    
                    (setq obj_non_numeric (1+ obj_non_numeric))
                 )
                 
              )
              
              (setq obj_non_txt (1+ obj_non_txt))
           )
           
    ; on incremente de compteur d'objet       
           
           (setq compte (1+ compte))
           
        );repeat
        
     );progn
     
  );if
  
; on affiche une information a la fin du traitement
  
  (if (or (/= obj_non_txt 0) (/= obj_non_numeric 0))
     (alert (strcat "Sur " (itoa (sslength ent_txt)) " objets selectionnes, il y avait\n" 
        (itoa obj_non_numeric) " chaines non numeriques\n" 
     (itoa obj_non_txt) " objets non Texte")
  )
  (alert (strcat (itoa (sslength ent_txt)) " chaines numeriques modifiees."))  
)

); defun

;; (princ "\n=> Modifdec")
  (princ "\n=> ZDEC : Modification du nombre de decimales d'une entite texte numerique ")
  (princ)

 

 

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

Si tu veux avoir "tous" lez Zeros ...

 

Format / Style de Cotes / Modifier / Onglet : Unites principales

et tu desactives la suppression des zeros de fin

 

Alors tu auras par exemple :

1 --> 1.00

1.1 --> 1.10

etc

 

Cela te convient-il ?

 

Le Decapode

 

PS: je suis fatigue, je ne me souviens PLUS de la variable de cotation concernee !!!

 

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité