Aller au contenu

[RESOLU] Est -il possible de refaire une boucle avec tblnext?


LElemurien

Messages recommandés

Bonjour,

 

j'essaie de faire un lisp mais je coince sur une chose au niveau de la fonction tblnext.

 

Si j'ai bien tout compris on ne pas relancer tblnext lorsque la fonction a trouvée ce qu'elle devait trouvée selon mon exemple (qui sera plus parlant que des explications) :

 

 (defun c:nca	(/ list1)

(while (/= (substr (cdr (assoc 2 (setq list1 (tblnext "layer")))) 1 4) "ELEC") (tblnext "layer"))

 (setq nc0 (substr (cdr (assoc 2 list1)) 6))

) 

 

 

Le but étant que je créer un texte avec le reste du nom du calque (après les 5 premières "lettres").

 

Donc jusque là le lisp fonctionne mais le problème c'est que si change le nom du calque j'aimerai que le texte ce mette à jour en faisant un regen mais si je relance le lisp du coup j'ai une erreur :

 

; erreur: type d'argument incorrect: stringp nil

 

C'est pour ça que je parle de refaire la boucle avec tblnext (car je pense que c'est là que ça coince ...)

 

Avez vous des pistes à me proposer?

 

Je suis peut-être pas du tout parti sur le bon le chemin dès le départ?

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Introduction à AutoLISP : section 16.5

da-code > AutoLISP > Fonction par genre > Tables > TBLNEXT

 

Merci Gilles,

 

Et oui j'ai bien trouvé ces chapitres dans vos bibles que j'ai imprimés par ailleurs et elles me sont essentielles pour apprendre

 

et c'est pour ça que je disais dans mon message "Si j'ai bien tout compris on ne pas relancer tblnext".

Je vais essayer de trouver une autre solution que tblnext.

 

Lien vers le commentaire
Partager sur d’autres sites

Ouah j'ai trouvé!

 

Coup de bol en fait je cherchais un autre moyen de parvenir à mes fins et en regardant ce post Mon lien j'ai vu un bout de code qui ressemblait à mon souci.

 

Il suffisait de rajouter (null list1), bon le problème c'est qu'il faut que je comprenne maintenant le pourquoi du comment.

 

L'apprentissage sera long et fatiguant

 

Allez on y croit !

 

Bonne journée

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

Long et fatiguant voire éternel et écoeurant si tu ne lis qu'en diagonale, en survolant...

Court et aisé si tu fais les exemples et les tests pas à pas à l'intérieur d'une fonction simple.

 

Arrêtez de vouloir courir pendant que vous apprenez à marcher, il vaut mille fois mieux COMPRENDRE les choses car on pourra reproduire et s'en servir ultérieurement, voire même répondre aux autres membres...

 

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

Il est possible que tu sois irrité, sache que ce n'est pas une volonté de nuire ou de se moquer

L'important c'est la progression régulière

Est-ce que ton souci est résolu ?

Si oui -> passons au prochain challenge

Si non -> reviens poser des questions pour qu'on te guide.

 

Amicalement

 

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é