ahbv Posté(e) le 13 juillet 2017 Posté(e) le 13 juillet 2017 Bonjour, je souhaiterais améliorer mon script de "nettoyage de plans reçus" et je bloque sur les lignes suivantes a savoirselection des textes avec valeur "*;2??.??" sur certain type de calque je les sélectionne puis les effaces,les lignes ci-dessous fonctionnent que si il existe des textes "*;2??.??" si il n'y en a pas le script plante (setq TOPO(ssget "_A" '( (0 . "TEXT,MTEXT") (100 . "AcDbMText") (1 . "*;2??.??}*,*;???}*,*;9???}*,*;????}*") (8 . "*xxx*COTATION*1_*,*LEVE*bbb*TALUS*,*leve*ccc*pt**Val*,*leve*dddd*MNT*Courb*") ) ) ) (command "_.ERASE" TOPO "") je voudrais donc faire une "ligne de commande" avec une condition, si des textes avec telle valeur existe alors "effacer" sinon "continuer",j'ai cherché un peu partout sur le net (autodesk,cadtutor,LM etc...) et j'ai trouvé des brides de code que j'ai "essayé" d'adapter mais rien à faire ça ne veut pas (je suis pas débutant mais surtout élite) doncest ce qu'un spécialiste pourrait m'aider svp ?? Dans la foulée je souhaiterais aussi sélectionner d'autres objets style cercle/ligne ou autres avec le même but a savoir les effacer si ils/elles sont dans le plan, d'avance merci et bonne continuation a CADXP.AHG (setq TOPO(ssget "_A" '( (0 . "TEXT,MTEXT") (100 . "AcDbMText") (1 . "*;2??.??}*,*;???}*,*;9???}*,*;????}*") (8 . "*xxx*COTATION*1_*,*LEVE*bbb*TALUS*,*leve*ccc*pt**Val*,*leve*dddd*MNT*Courb*") ) ) ) (if (= "TEXT,MTEXT" "*;2??.??}*,*;???}*,*;9???}*,*;????}*")) (progn (princ (command "_.ERASE" TOPO "") ) ; fin de progn ) ; fin de if )
Olivier Eckmann Posté(e) le 13 juillet 2017 Posté(e) le 13 juillet 2017 Bonjour (if (setq TOPO (ssget "_A" '( (0 . "TEXT,MTEXT") (100 . "AcDbMText") (1 . "*;2??.??}*,*;???}*,*;9???}*,*;????}*") (8 . "*xxx*COTATION*1_*,*LEVE*bbb*TALUS*,*leve*ccc*pt**Val*,*leve*dddd*MNT*Courb*") ) ) ) (command "_.ERASE" TOPO "") ) Olivier
ahbv Posté(e) le 14 juillet 2017 Auteur Posté(e) le 14 juillet 2017 Merci Olivier pour la réponse rapide et fonctionnel !!! juste une autre info, la "variable" TOPO ne doit elle pas etre remise a zero "nil" a un moment dans le programme ?Cordialement AHG Bonjour (if (setq TOPO (ssget "_A" '( (0 . "TEXT,MTEXT") (100 . "AcDbMText") (1 . "*;2??.??}*,*;???}*,*;9???}*,*;????}*") (8 . "*xxx*COTATION*1_*,*LEVE*bbb*TALUS*,*leve*ccc*pt**Val*,*leve*dddd*MNT*Courb*") ) ) ) (command "_.ERASE" TOPO "") ) Olivier
(gile) Posté(e) le 14 juillet 2017 Posté(e) le 14 juillet 2017 Merci Olivier pour la réponse rapide et fonctionnel !!! juste une autre info, la "variable" TOPO ne doit elle pas etre remise a zero "nil" a un moment dans le programme ?Cordialement AHG Il suffit de la déclarer comme variable locale. (defun c:toto (/ topo) ... ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
ahbv Posté(e) le 14 juillet 2017 Auteur Posté(e) le 14 juillet 2017 Il suffit de la déclarer comme variable locale. (defun c:toto (/ topo) ... )Merci (Gile).
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