lecrabe Posté(e) le 4 avril 2017 Posté(e) le 4 avril 2017 Hello Trouver facilement Tel ou Tel Type d'objets annotatifs dans un DWG ou plutot dans une Selection m'a toujours "titiller" !? Donc SVP je desire une Routine (VLisp sans doute) "simple" qui : - On Pose une question (Text/MText ou Hatch/Hachure ou Dim/Cotation ou Leader/MLeader)Valeur par defaut = Text/MText- A partir d'une Selection d'objets (Annotatifs ou NON !) classique de l'utilisateur (dans l'onglet Objet en principe) - Ne retienne dans la selection QUE les Objets Annotatifs CONCERNES ! Ainsi a la sortie, j'ai (dans ma selection courante) par exemple TOUS les Texts/MTexts ANNOTATIFS depuis ma selection de depart ... En plus si la routine était Scriptable: TIP-TOP ! Merci d'avance, Bye, lecrabe Autodesk Expert Elite Team
lecrabe Posté(e) le 11 avril 2017 Auteur Posté(e) le 11 avril 2017 Hello Un petit UP ! Merci, Bye, lecrabe Autodesk Expert Elite Team
philsogood Posté(e) le 11 avril 2017 Posté(e) le 11 avril 2017 helloje pense que tu tiens un trè_s bon exemple pour te mettre au lispça n'est pas trop compliqué donc lance toi!! :PPhil Projeteur Revit Indépendant - traitement des eaux/CVC
lecrabe Posté(e) le 11 avril 2017 Auteur Posté(e) le 11 avril 2017 Hello 1) J'ai programme en Lisp pur de 1990 a 2000 environ ! 2) Je n'envisage pas de replonger dans la programmation ?! 3) De plus je crois que le Mode Annotatif est "spécial" ? Peut être dans les Dictionnaires ?! Bye, lecrabe Autodesk Expert Elite Team
(gile) Posté(e) le 11 avril 2017 Posté(e) le 11 avril 2017 (modifié) Mais c'est qu'il deviendrait impatient le décapode... Voilà un petit truc qui devrait répondre à la demande.Noter que pour les lignes de repère non multiple (ancienne mode) seul le texte peut être annotatif, ils sont donc traités dans la catégorie "Texte mtexte" (Pas testé en profondeur);; Supprime du jeu de sélection les objets non annotatifs (defun filterAnnot (ss / i ent dict) (if ss (repeat (setq i (sslength ss)) (setq ent (ssname ss (setq i (1- i)))) (if (not (setq dict (cdadr (member '(102 . "{ACAD_XDICTIONARY") (entget ent))))) (ssdel ent ss) (if (not (setq dict (cdr (assoc -1 (dictsearch dict "AcDbContextDataManager"))))) (ssdel ent ss) (if (not (dictsearch dict "ACDB_ANNOTATIONSCALES")) (ssdel ent ss) ) ) ) ) ) ss ) ;; Sélectionne les objet annotatifs par type (defun c:selannot (/ kw ss fr) (initget "Texte Hachure Cotation Repere") (setq kw (getkword "\nChoisir une option [Texte mtexte/Hachure/Cotation/ligne de Repere multiple] <Texte>: " ) fr (cond ((= kw "Hachure") '((0 . "HATCH"))) ((= kw "Cotation") '((0 . "DIMENSION"))) ((= kw "Repere") '((0 . "MULTILEADER"))) (T '((0 . "TEXT,MTEXT"))) ) ) (sssetfirst nil (filterAnnot (ssget fr))) ) Modifié le 11 avril 2017 par (gile) corrections dans le code Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lecrabe Posté(e) le 11 avril 2017 Auteur Posté(e) le 11 avril 2017 Hello Gilles 1) NON je ne suis pas impatient ! 2) MERCI pour ta celerite !! et aussi pour ta MAITRISE des Dictionnaires !!! 3) Je teste des que possible ... Bonne Soiree, Bye, lecrabe Autodesk Expert Elite Team
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