LElemurien Posté(e) le 13 mai 2020 Posté(e) le 13 mai 2020 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?
(gile) Posté(e) le 13 mai 2020 Posté(e) le 13 mai 2020 Salut,Introduction à AutoLISP : section 16.5da-code > AutoLISP > Fonction par genre > Tables > TBLNEXT Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
LElemurien Posté(e) le 13 mai 2020 Auteur Posté(e) le 13 mai 2020 Salut,Introduction à AutoLISP : section 16.5da-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.
(gile) Posté(e) le 13 mai 2020 Posté(e) le 13 mai 2020 Tu ne lis pas attentivement les documents. tblnext prend deux arguments, le second est optionnel et, s'il est spécifié et non nil, refait partir tblnext du premier élément de la table. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
LElemurien Posté(e) le 14 mai 2020 Auteur Posté(e) le 14 mai 2020 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
didier Posté(e) le 14 mai 2020 Posté(e) le 14 mai 2020 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 Éternel débutant... Mon site perso : Programmer dans AutoCAD
Fraid Posté(e) le 14 mai 2020 Posté(e) le 14 mai 2020 Coup de bol en fait +1 avec Didier Il faut tester, tester et retester https://github.com/Fraiddd
LElemurien Posté(e) le 15 mai 2020 Auteur Posté(e) le 15 mai 2020 Bonjour, En fait j'efface le message que je voulais envoyer car cela n'avancerai à rien. Je dirai juste merci.
didier Posté(e) le 15 mai 2020 Posté(e) le 15 mai 2020 Coucou Il est possible que tu sois irrité, sache que ce n'est pas une volonté de nuire ou de se moquerL'important c'est la progression régulièreEst-ce que ton souci est résolu ?Si oui -> passons au prochain challengeSi non -> reviens poser des questions pour qu'on te guide. Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Messages recommandé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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant