Aller au contenu

Messages recommandés

Posté(e)

Bonjour à tous,

 

Je ne sais pas si ca existe en tout cas j'ai cherché de partout et je n'ai pas trouvé pour l'instant.

Je cherche une routine qui permet de définir le nombre de décimales d'un attribut Z d'un point type point topo.

Je m'explique, au lieu d'avoir un attribut du type 2.458 avec un bloc point topo à Z=2.458, le lisp doit remplacer la valeur 2.458 par 2.46 à 2 chriffres après la virgule par exemple.

DE même, pour bloc à Z = 2.3012 le lisp doit écrire dans l'attribut altitude 2.30 et non 2.3 tout court.

 

Merci par avance de votre aide.

John.

Posté(e)

Bonjour,

 

Deux pistes :

 

Essaie Luprec à 2.

 

Sinon, tu prends ta valeur que tu multiplie par 100, tu en faits la valeur arondie, puis tu divise ce résultat par 100 ...

 

(/ (fix(* (cadr (getpoint)) 100)) 100.00)

 

Cordialement.

 

Posté(e)

 

Hello

 

Et par la fonction RTOS xxxx 2 2 :

 

Commande: (setq toto 3.14159)

3.14159

 

Commande: (setq aa (rtos toto 2 0))

"3"

 

Commande: (setq aa (rtos toto 2 2))

"3.14"

 

Le Decapode

 

Autodesk Expert Elite Team

Posté(e)

Hello

 

Et par la fonction RTOS xxxx 2 2 :

 

Commande: (setq toto 3.14159)

3.14159

 

Commande: (setq aa (rtos toto 2 0))

"3"

 

Commande: (setq aa (rtos toto 2 2))

"3.14"

 

Le Decapode

 

Bien vu,

 

Avec un petit atoi ...

 

Si il souhaite gérer les arrondis .... ? genre 3.519 -> 3.52 ?

 

Cordialement

Posté(e)

DE même, pour bloc à Z = 2.3012 le lisp doit écrire dans l'attribut altitude 2.30 et non 2.3 tout court.

 

Pour ceci, si tu utilises la fonction RTOS voir le réglage de la variable DIMZIN.

 

En outre si (RtoS) est utilisé sans paramètre, il est aussi impacté par les variables LUNITS et LUPREC

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

Bonjour,

 

Merci pour vos réponses.

J'ai retrouvé dans mes lips une fonction que Gile avait dévelloper pour attribut une valeur à un attribut défini dans un bloc

 

 (defun SetAttValue (blk tag val / lst loop)
 (setq	lst  (entget (entnext blk))
loop (= "ATTRIB" (cdr (assoc 0 lst)))
 )
 (while loop
   (if	(= (strcase tag) (cdr (assoc 2 lst)))
     (progn
(entmod (subst (cons 1 val) (assoc 1 lst) lst))
(setq loop nil)
(entupd blk)
     )
     (setq lst	 (entget (entnext (cdr (assoc -1 lst))))
    loop (= "ATTRIB" (cdr (assoc 0 lst)))
     )
   )
 )
)

 

Mais je ne vois pas comment sélectionner d'une part les attributs de chaque bloc.

Merci par avance de votre aide.

John.

Posté(e)

Mais je ne vois pas comment sélectionner d'une part les attributs de chaque bloc.

Merci par avance de votre aide.

John.

 

Pour selectionner un attribut en lisp:

 

Par le handle ?

Par le nom d'entité ?

Par sélection à l'écran ?

Par balayage ?

 

Cordialement.

  • 2 semaines après...

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é