Aller au contenu

[Résolu] Doublage du dernier (princ


Messages recommandés

Posté(e)

Bonjour à tous,

 

Voilà, j'ai fais quelques petits bout de LiSP et je me pose toujours une question, Pourquoi AutoCAD répète-t-il toujours le dernier princ ? exemple, dans cette macro :

(defun c:DHConfEtiqPTRL (/)
 (if (or (= (vlax-ldata-get "DenisH" "EtiqPTRL_XY") nil)
         (= (vlax-ldata-get "DenisH" "EtiqPTRL_XY") "")
     ) ;_ Fin de or
   (vlax-ldata-put "DenisH" "EtiqPTRL_XY" "O")
 ) ;_ Fin de if
 (setq EtiqXY (vlax-ldata-get "DenisH" "EtiqPTRL_XY")) ;
 (if (or (= (vlax-ldata-get "DenisH" "EtiqPTRL_Z") nil)
         (= (vlax-ldata-get "DenisH" "EtiqPTRL_Z") "")
     ) ;_ Fin de or
   (vlax-ldata-put "DenisH" "EtiqPTRL_Z" "O")
 ) ;_ Fin de if
 (setq EtiqZ (vlax-ldata-get "DenisH" "EtiqPTRL_Z")) ;
 (initget 1 "Oui Non")
 (setq EtiqXY (getkword "\nÉcrire l'X et l'Y [Oui/Non] ? ")) 
 (initget 1 "Oui Non")
 (setq EtiqZ (getkword "\nÉcrire le Z [Oui/Non] ? ")) 
 (vlax-ldata-put "DenisH" "EtiqPTRL_XY" (strcase EtiqXY))
 (vlax-ldata-put "DenisH" "EtiqPTRL_Z" (strcase EtiqZ)) 
 (princ (strcat "\n\nConfiguration actuelle : 	Étiquette XY = "
            	(vlax-ldata-get "DenisH" "EtiqPTRL_XY")
            	"        Étiquette Z = "
            	(vlax-ldata-get "DenisH" "EtiqPTRL_Z")
    	) ;_ Fin de strcat
 ) ;_ Fin de princ
) ;_ Fin:defun

 

AotuCAD me répète la dernière ligne :

Commande: DHConfEtiqPTRL

 

Écrire l'X et l'Y [Oui/Non] ? n

 

Écrire le Z [Oui/Non] ? o

 

 

Configuration actuelle : Étiquette XY = NON Étiquette Z = OUI"\n\nConfiguration actuelle : Étiquette XY = NON Étiquette Z = OUI"

 

Commande:

 

Je ne saisi pas trop...

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Bonjour,

 

La deuxième invite est la valeur de retour de ta fonction lisp, le préfixe c: permet d'appeler ta fonction lisp sur la ligne de commande comme une commande AutoCAD, mais cela reste une expression Lisp qui retourne toujours la dernière expression évalué.

 

Pour évité cette "impression" d'écho sur ta ligne de commande en sortie de programme insère un (princ) qui te renverra un blanc.

 

A+

  • Upvote 1

Apprendre => Prendre => Rendre

Posté(e)

Bonjour,

 

Mille mercis Bruno,

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

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é