Aller au contenu

Messages recommandés

Posté(e)

Bonjour à la communauté.

 

Voilà, j'avais écris un petit bout de code comme cà :

(foreach PosLst LstCalq
   (if (setq
         Select (ssget
              	"_X"
                  	'((0 . "INSERT")
                       (8 . (car PosLst))
                   )
            	) ;_ Fin de ssget
       ) ;_ Fin de setq
     (command "chprop" Select "" "ca" (cdr (assoc (car PosLst) LstCalq )) "" ) 
   ) ;_ Fin de if
 )

Mais AutoCAD me sortait un mauvais argument sur le ssget... J'ai donc repris mon code pour en faire ceci :

(foreach PosLst LstCalq
   (if (setq
         Select (ssget
              	"_X"
              	(list (cons 0 "INSERT") (cons 8 (car PosLst))
                   )
            	) ;_ Fin de ssget
       ) ;_ Fin de setq
     (command "chprop" Select "" "ca" (cdr (assoc (car PosLst) LstCalq)) "")
   ) ;_ Fin de if
 )

Le truc bizzare, c'est que le deuxième code fonctionne...

 

Si quelqu'un pouvait m'aider à comprendre...

 

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)

Salut

 

C'est à cause de la variable dans le 1er code

Quand tu utilises une liste, l'argument derrière un quote n'est pas évalué, donc erreur.

Tu peux aussi l'écrire comme cela

(list '(0 . "INSERT") (cons 8 (car PosLst)))

 

Deux sujets à lire

http://cadxp.com/topic/29334-listes-arguments-de-fonctions/

http://cadxp.com/topic/28642-arguments-et-variables/

 

@+

  • Upvote 1

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

Bonjour à vous...

 

Ok, je comprend mieux, bien que celà me semble tout de même "curieux" que "l'argument derrière un quote n'est pas évalué"

 

En tous cas, merci à vous.

 

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)
bien que celà me semble tout de même "curieux" que "l'argument derrière un quote n'est pas évalué

 

La fonction quote permet justement d'empêcher l'évaluation de l'argument qui lui est fourni.

 

Olivier

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é