XYZ Posté(e) le 23 janvier 2008 Posté(e) le 23 janvier 2008 Bonjour à tous Question précise: Comment enlever DÉFÉNITIVEMENT les références externes qui trainent dans mon Gabarit (template)? Réponse d'Autocad: clic droit dans la palette des références externes, puis DÉTACHER..................................SANS EFFET........ Il vient un temps où les qualités d'un logiciel se diluent dans une mer de défauts. :casstet: Si quelqu'un a un idée.....! Michel
didier Posté(e) le 24 janvier 2008 Posté(e) le 24 janvier 2008 hello, des Xrefs dans un Template ?????????les seules Xrefs dures à détachersont celles qui sont en Xref dans un fichier lui même en Xref. Tu es dans TATAdans TOTO, TITI est en Xreflorsque tu vas attacher TOTO en XrefTITI apparaîtra, et là tu ne peux la détacher directement de TOTO mon exemple est plus simple que la vie de tous les jours mais c'est l'esprit amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Matt666 Posté(e) le 24 janvier 2008 Posté(e) le 24 janvier 2008 Euh didon Didier, ils sont un peu tendancieux tes exemples, là :) Non, non, je n'ai pas l'esprit un peu penché.... :P A bientot.Matt. "Chacun compte pour un, et nul ne compte pour plus d'un."
lesourd2 Posté(e) le 24 janvier 2008 Posté(e) le 24 janvier 2008 Salut XYZ Essaies moi ça pour voir ;;; XREF_PURGE version 1.2 ;;; Purge les xrefs non référencées (defun c:xref_purge (/ AcDoc lay n l_lst blocks name n_lst cnt item obj x_lst) ;; Chargement des fonctions ActiveX (vl-load-com) ;; AcDoc : pointeur vers le document actif (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object))) ;; Dévérouillage de tous les calques (repeat (setq n (vla-get-count (vla-get-Layers AcDoc))) (setq lay (vla-item (vla-get-Layers AcDoc) (setq n (1- n)))) (if (= :vlax-true (vla-get-lock lay) ) (progn (vla-put-lock lay :vlax-false) (setq l_lst (cons lay l_lst)) ) ) ) ;; Pour chaque nom de xref de la collection, on teste si une référence ;; est présente dans le dessin, si non la xref est détachée du dessin (vlax-for x (setq blocks (vla-get-Blocks AcDoc)) (if (and (= :vlax-true (vla-get-isXref x)) (/= 0 (vla-get-count x)) (not (member (setq name (vla-get-name x)) n_lst)) ) (setq n_lst (cons name n_lst)) ) ) (foreach n n_lst (repeat (setq cnt (vla-get-Count (setq item (vla-item blocks (eval n))))) (setq obj (vla-item item (setq cnt (1- cnt)))) (if (and (= (vla-get-objectname obj) "AcDbBlockReference") (member (vla-get-Name obj) n_lst) ) (setq x_lst (cons (vla-get-Name obj) x_lst)) ) ) ) (foreach n n_lst (if (member (eval n) x_lst) (setq n_lst (vl-remove (eval n) n_lst)) ) ) (foreach n n_lst (if (not (ssget "_X" (list (cons 0 "INSERT") (cons 2 (eval n))) ) ) (vla-detach (vla-item (vla-get-Blocks AcDoc) (eval n))) ) ) ;; Restauration de l'état des calques (if l_lst (mapcar '(lambda (x) (vla-put-lock x :vlax-true) ) l_lst ) ) (princ) ) Merci (gile)@+ [Edité le 24/1/2008 par lesourd2]
didier Posté(e) le 24 janvier 2008 Posté(e) le 24 janvier 2008 hello ! je le plains, l' XYZ !!! ça va être simple à tester sur LT amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
lesourd2 Posté(e) le 24 janvier 2008 Posté(e) le 24 janvier 2008 Salut Pardon, j'avais oublié, LT EXTENDER AutoCAD v.LT + LT EXTENDER = Exploitation des LISP @+ [Edité le 24/1/2008 par lesourd2]
(gile) Posté(e) le 24 janvier 2008 Posté(e) le 24 janvier 2008 AutoCAD v.LT + LT EXTENDER = Exploitation des LISP Mais pas du Visual LISP, donc impossible à essayer même avec LT Extender. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour 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