rebcao Posté(e) le 19 juillet 2018 Posté(e) le 19 juillet 2018 Bonjour à Toutes et à Tous, Je cherche la syntaxe pour lire simplement le chemin de la XREF sélectionnée ?! (via un ENTSEL par exemple)... Stcoker le chemin dans un SETQ pour le réutiliser par la suite... J'ai regardé du coté des (ENTNEXT) mais visiblement pas de chemin ? Je remarque également qu'une XREF est reconnue comme un BLOC ! Merci pour votre aide. Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
(gile) Posté(e) le 19 juillet 2018 Posté(e) le 19 juillet 2018 Salut, Il faut chercher dans la définition de bloc de la référence externe. Un petit exemple (sans vérifications de la sélection) :(setq chemin (cdr (assoc 1 (tblsearch "block" (cdr (assoc 2 (entget (car (entsel "\nSélectionnez une référence externe: "))))) ) ) ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lecrabe Posté(e) le 19 juillet 2018 Posté(e) le 19 juillet 2018 Hello Voici un excellente Routine de DannyNL qui t'aidera peut etre !? Elle cree un fichier texte avec le Nom de TOUTEs les XREFs du dessin ... Bye, lecrabe ;; ;; https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/list-all-xrefs-in-a-dwg-and-open-in-notepad/m-p/7409660#M359267 ;; ;; Routine: ListXref by DannyNL ;; (vl-load-com) (defun c:ListXref () (setq activedocument (vla-get-activedocument (vlax-get-Acad-Object)));_setq finit (setq lesblocks (vla-get-blocks activedocument));_setq finit (setq xrefliste '());_setq finit (vlax-for item lesblocks (setq ouixref (vlax-get-property item 'isXref));_setq finit (if (= ouixref :vlax-true);_si c'est vrai... (progn (setq ablock (vlax-get-property item 'Name));... Lisez le nom du block ... (setq xrefliste (append (list ablock) xrefliste));... ajoutez le nom de la liste ... );_progn finit );_if finit );_vlax for finit (defun ouvreznotepad (listexref skille / f of) (setq f (strcat (getvar 'TEMPPREFIX) "§XrefsTemp§.txt") of (open f "w")) (setq n 0) (mapcar (function (lambda (lp) (princ (setq n (1+ n)) of)(princ skille of)(princ lp of) (princ "\n" of) ) ) listexref ) (close of) (startAPP (strcat "notepad.exe " f)) (princ) ) (print xrefliste) (ouvreznotepad xrefliste "\t") (princ) );_defun finit (princ) Autodesk Expert Elite Team
(gile) Posté(e) le 19 juillet 2018 Posté(e) le 19 juillet 2018 Une version plus "robuste" avec quelques commentaires : (if (and (setq xref (car (entsel))) ; une entité est sélectionnée (= "INSERT" (cdr (assoc 0 (entget xref)))) ; c'est une référence de bloc (setq def (tblsearch "block" (cdr (assoc 2 (entget xref))))) ; la définition du bloc (= 4 (logand 4 (cdr (assoc 70 def)))) ; c'est une référence externe ) (setq chemin (cdr (assoc 1 def))) ; le chemin de la référence ) Ou, plus simple, avec les nouvelles fonctions (2012) : (if (and (setq xref (car (entsel))); une entité est sélectionnée (= (getpropertyvalue xref "LocalizedName") "Référence externe"); c'est une référence externe ) (setq chemin (getpropertyvalue xref "ExternalPath")); le chemin de la référence ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
rebcao Posté(e) le 19 juillet 2018 Auteur Posté(e) le 19 juillet 2018 Je vous remercie. Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
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