DenisHen Posté(e) le 24 novembre 2017 Posté(e) le 24 novembre 2017 Bonjour à tous. Voilà, aujourd'hui, je cherche à sélectionner plusieurs textes dans plusieurs bloques, je concatène le tout et je fais un MText avec. Pour l'instant, je n'arrive pas à sortir de ma boucle (while lorsque je ne clique plus de texte, donc, au moment ou j'écrirais le MText. Voici mon bout de code :(defun c:DHTest () (while (/= Text "") (setq Obj (entget (car (nentsel "\nSélectionnez le texte dans le bloc :")))) (setq Text (cdr (assoc 1 Obj))) (princ Text) ) ;_ Fin de while (princ) ) ;_ Fin de defun Et voici le résultat, je sélectionne deux textes (22-03-05 et 22-03-04) puis, je fais [ENTRER], voici le résultat :Commande: DHTESTSélectionnez le texte dans le bloc :22-03-05Sélectionnez le texte dans le bloc :22-03-04Sélectionnez le texte dans le bloc :; erreur: type d'argument incorrect: lentityp nilDonc, je ne sors jamais de ma boucle, elle s'interrompt toute seule... Avec "lentityp", et je ne trouve pas grand-chose là-dessus... Si quelqu'un a une astuce, un conseil... Je suis preneur... 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)
vincentp010 Posté(e) le 24 novembre 2017 Posté(e) le 24 novembre 2017 Salut, en fait le lisp s'arrète à la ligne(setq Text (cdr (assoc 1 Obj))) car Obj = nil, du coup il y a une erreur.Il vaudrais mieux faire:(defun c:DHTest (/ Text) ; Text est à nil au debut de la fonction (while (/= Text nil) (setq Obj (entget (car (nentsel "\nSélectionnez le texte dans le bloc :")))) (if (/= Text nil) (progn (setq Text (cdr (assoc 1 Obj))) (princ Text) ));_ Fin de if ) ;_ Fin de while (princ) ) ;_ Fin de defun Aide au téléchargement du cadastre dgfip-download-helper Insertion de photos géolocalisées exif https://www.dropbox.com/s/gkf6o9ac2hxen97/exifscr.zip?dl=0 Script correction BUG SPDC V2, propriétaire département 21 et 22 : https://greasyfork.org/scripts/442400-spdcv2/code/SPDCV2.user.js
bonuscad Posté(e) le 24 novembre 2017 Posté(e) le 24 novembre 2017 Ou encore comme ceci (defun c:DHTest ( / Ent Obj Text) (while (setq Ent (nentsel "\nSélectionnez le texte dans le bloc :")) (setq Obj (entget (car Ent))) (if (/= (setq Text (cdr (assoc 1 Obj))) "") (princ Text) ) ) ;_ Fin de while (princ) ) Boucler simplement sur une sélection effective. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
x_all Posté(e) le 24 novembre 2017 Posté(e) le 24 novembre 2017 comme je suis une buse, je me permet de l'ouvrir mais bon... à prendre avec des pincettes...While pourrait se traduire par "tant que" donc en français ton while se traduit par tant que Text est différent de vide.ok, mais tu parles de texte dans un bloc, j'ai peur que ton Text ne soit jamais vide car il n'est pas réinitialisé dans la boucle. donc si le setq Obj échoue, le setq Text planteil faudrait tester si obj est vide avant de s'en servirà confirmer par des fort en code... quelques trucs sur autocad
x_all Posté(e) le 24 novembre 2017 Posté(e) le 24 novembre 2017 ho punaise je suis grillé quelques trucs sur autocad
DenisHen Posté(e) le 24 novembre 2017 Auteur Posté(e) le 24 novembre 2017 Bonjour à tous, et merci pour votre aide... C'est mieux comme ça, merci BonusCAD... 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)
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