Aller au contenu

Liste Xref


vinz34

Messages recommandés

Salut,

 

Un petit outil pour connaître le nom des Xrefs attachées au dessin.

A ajuster selon les besoins.

 

 

(defun c:lstxref (/ l)
 (vl-load-com)
 (setq l "LISTE DES XREFS DU PLAN\n\n")
 (vlax-for i (vla-get-filedependencies (vla-get-activedocument (vlax-get-acad-object)))
   (or
     (not (equal (vla-get-feature i) "Acad:XRef"))
     (setq l (strcat l "\n" (vla-get-filename i)))))  
 (alert l))

 

Bonne journée.

Lien vers le commentaire
Partager sur d’autres sites

SAlut Vinz34!

 

J'ai suivi ton lien donné à marcotic, mais la fonction vla-get-filedependencies comporte

des défauts:

- Si tu ajoutes une xref, mais que tu ne sauvegardes pas ton dessin de suite, l'xref

n'apparait pas dans ton message.

- Si tu as des Xref déchargées à l'ouverture du dessin, elles ne sont pas pris en compte. Si tu les décharges et ne sauvegarde pas elles apparaitrons dans ton message.

 

Vraiment dommage! :( J'utilisais aussi cette fonction au début (l'été dernier), mais je suis tombé

sur des plans ou mes lisps ne faisaient pas ce qu'ils devaient et c'est là que j'ai découvert ce gros

problème.

 

 

C'est pourquoi j'utilise ceci maintenant:

 

;----------------------------------;
; nom: get_liste_xref              ;
; role: renvoie sur forme de liste ;
;       les noms des xrefs. Chaque ;
;       xref sera un couple de ce  ;
;       genre: (nom de bloc .      ;
;       chemin_complet+nom_fichier);
; param: aucun                     ;
; retour: une liste de paires      ;
;            pointées              ;
;         nil => sinon             ;
; date: 10/04/2008                 ;
; Sébastien BLAES                  ;
;----------------------------------;
(defun get_liste_xref( / res)

 	(setq res '()
      bl_tmp (tblnext "BLOCK" t))

 	; on boucle sur la liste des blocs
 	(while bl_tmp
  	; un bloc est une référence externes si son 3ème bit vaut 1
  	; donc un ET logique avec 4 doit renvoyer 4
  
  	(cond
	  	; on test le 3ème bit
	  	((= (boole 1 4 (cdr (assoc 70 bl_tmp))) 4)
		 	; c'est bien une xref
		 	(setq res (append res (list (cons (cdr (assoc 2 bl_tmp))
							  (cdr (assoc 1 bl_tmp))))))
		)
	) ; cond
	
	; on passe au bloc suivant
	(setq bl_tmp (tblnext "BLOCK" nil))
  	
) ; while

 	res
) ; get_liste_xref

Tous pour lisp, Lisp pour tous!

Avec Revit, cela ne vas trop vite...

Lien vers le commentaire
Partager sur d’autres sites

 

Hello

 

Le vieux Decapode a toujours utilisé la bonne vieille commande clavier :

 

-XREF puis ?

 

pour voir la liste des XREFs du dessin dans l'ecran Texte d'AutoCAD (F2) :)

 

et pour les Images Rasters :

 

-IMAGE puis ?

 

Le Decapode (préhistorique) :P

 

 

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Voici une réponse que j'avais faite sur un autre post

 

 

 

citation extraite du message original:

 

Si vous disposez du menu Express, vous pouvez utiliser un texte distant RTEXT qui utilise du langage DIESEL.

A la ligne de commande taper RTEXT, puis taper DIESEL, dans le cadre, taper l'expression Diesel $(xrefs,1) valider par OK et positionner cet objet dans votre dessin

 

Le chiffre 1 affiche par défaut le nom complet de la Xref, vous pouvez le combiner aux autres options :

2 pour afficher le nom du bloc,

4 pour ne pas afficher les extensions,

8 pour ne pas afficher le chemin (path),

16 pour afficher les xref imbriquées

 

Par ex si vous souhaitez faire afficher uniquement le nom du fichier sans extension et et sans le chemin d'accès vous utiliserez le code 1+4+8=13, donc il faudra taper $(xrefs,13)

 

 

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

  • 10 mois après...

bonjour,

 

j'utilise la commande RTEXT puis l'expression DIESEL $(xrefs,16)

Mais quand je veux sauvegarder cette liste xrefs sur l'espace papier ou objet rien ne se sauvegarde

et la liste disparait !!!!!!!!!

j'ai chercher dans les autres postes mais pas de réponse

 

merci pour ton aide :)

Lien vers le commentaire
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité