Aller au contenu

[Résolu] Insertion de tous les DXF d'un répertoire


Messages recommandés

Posté(e)

Bonjour à tous.

 

Aujourd'hui, je cherche à insérer tous les DXF d'un répertoire. Ils sont tous dans un système de projection connu, donc, l'insertion se fera à 0,0, sans rotation, et avec une échelle à 1.

 

Si quelqu'un a un début de réponse, un conseil, une astuce, je suis preneur...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Bonjour Denis,

Si il n'y a pas de sous répertoires, dans la boite de sélections d'XREF, rien ne t’empêche de sélectionner plusieurs XREF à la fois. Lorsque tu valideras, tu auras la boite de dialogue habituelle. En validant, tous les xref sélectionnés s’insèreront dans le calque courant.

 

A plus.

www.cad-is.fr
Autocad Map 2021 - Covadis/Autopiste V18.0c
Pisser sous la douche ne suffira pas
Posté(e)

Bonjour La Lozère, et merci pour cette réponse.

 

Mon problème est que ce sont des feuilles de Cadastre et donc, je les insert en bloque et non en XRef...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Coucou

 

Je ne veux pas te faire un lisp, cela ne sera pas constructif tu sais comment je parle ...

Aussi je te donne une piste de recherche

 

La fonction que je me permets de te conseiller d'utiliser c'est vl-directory-files

Soit tu écris "en dur" ton dossier dans le lisp soit tu utilises getfiled

Regarde cette ligne de code :

 

(setq listfich (vl-directory-files "F:/" "*.dwg"))

Création d'une liste de string qui contiennent les noms de tous les dwg du lecteur F

Une fois que tu as la liste c'est fini, il te suffit de boucler la liste en créant une variable fich (exemple) puis d'insérer les fichiers, bien sûr j'ai fait un exemple avec *.dwg tu mettras *.dxf, on est d'accord ?

 

(command "_insert" fich '(0 0 0) 1 1 0) 

Amicalement

Posté(e)

Hello

 

Pour completer l'excellente reponse du vieux Lezard Didier (qui se dore "tranquille" sous le Soleil Nord-Africain), je te conseille (si c'etait des DWGs) de tourner avec ATTREQ = 0 (et de remettre ATTREQ = 1 a la fin) pour etre sur de ne pas rester "bloque" par un DWG qui serait en fait un Bloc avec Attribut(s) ...

 

Bye, lecrabe

Autodesk Expert Elite Team

Posté(e)

Salut à vous.

@didier : je n'en attendais pas plus, et je te remercie pour ton aide toujours précieuse et... Minimaliste ;)

 

@lecrabe : merci pour ce conseil, mais je ne traite que de DXF issus du Cadastre, donc, pas d'attributs.

 

Pour les autres, voici la routine que je viens d'écrire :

 

;;; Insert les feuilles du Cadastre en DXF
(defun c:InsCadDXF (/)
 (princ "\nDéveloppé par Denis H.")
 (setq RepDXF (getvar "dwgprefix"))
 (setq ListFich (vl-directory-files RepDXF "*.dxf"))
 (setq a 0)
 (while (/= (nth a ListFich) nil) (setq a (+ a 1)))
 (setq b 0)
 (while (/= (nth b ListFich) nil)
   (princ (strcat "\nProgression : " (rtos (+ b 1) 2 0) "/" (rtos a 2 0)))
   (command "_insert" (strcat RepDXF (nth b ListFich)) '(0 0 0) 1 1 0)
   (command "_explode" "_last")
   (command "zoom" "et")
   (setq b (+ b 1))
 ) ;_ Fin de while
 (princ)
) ;_ Fin de defun

 

Cette commande insert tous les DXF inclus dans le répertoire du DWG actif. Chaque DXF sera décomposé après leur insertion...

 

Encore merci à didier...

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Hello

 

Bien et SVP tu fais un (A la fin) :

-- PURGER TOUT (avec toutes les options)

-- + SCALELISTEDIT / nettoyage total des Échelles sauf 1:1

-- + UI (Pour les Unites) et parametrer Metres !

-- RESVUE 20000

-- DDPTYPE avec une "bonne" valeur pour les Points graphiques

-- etc ...

 

Bye, Pat

Autodesk Expert Elite Team

Posté(e)

Je préfère laisser les autres utilisateurs de cette routine faire ce qu'ils voudront.

 

Perso, j'ai un autre bouton qui fait environ ce que tu dis.

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Coucou

 

@DenisHEN : merci pour le minimaliste ! tu demandais un début de éponse, tu l'as eu , non ?

 

@lecrabe: ah mais laisse-le tranquille ! puisque c'est marqué en toutes lettres :

(princ "\nDéveloppé par Denis H.")

 

Ils sauront à qui s'adresser (hihi)

 

Il est certain qu'insérer plusieurs fichiers sans faire une purge entre chaque risque de présenter certains dysfonctionnements.

Mais a priori le conseil n'est pas entendu, on verra avec le temps ...

 

Amicalement

Posté(e)

Puisque vous insistez, voici la ligne à ajouter après "_explode" :

(command "-purger" "bl" (substr (nth b ListFich) 1 (- (strlen (nth b ListFich)) 4)) "n")

Mais attention, je n'ai pas le temps de tester...

 

Encore merci pour vos aides et remarques... ;)

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Hello

 

1) MERCI pour l'amelioration !

 

2) L'autre solution aurait ete d'inserer UN petit Bloc quelconque avec l'option "Decomposer" COCHEE puis de le supprimer immediatement (+ le Purger) et DONC AutoCAD aurait garde cette option "Decomposer" COCHEE pour les INSERER suivants (ainsi NUL besoin de DECOMPOSER juste apres ! - La routine tournerait PLUS VITE !) et donc aussi pour le Script ou Lisp ...

 

Bye, lecrabe

Autodesk Expert Elite Team

Posté(e)

Re.

 

1) De rien...

 

2) j'ai cherché si c'était une variable, mais je n'ai rien trouvé... Entièrement d'accord sur la rapidité du lisp dans ce cas...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Hello

 

Voir en cle de registre :

HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R18.1\ACAD-9002:40C\Profiles\MAP\Dialogs\insert_dialog

 

Dans la branche "HKEY_Current_User" donc dans le Profil Utilisateur ...

 

Je sais que l'on peut lire/ecrire dans cette branche en Lisp/VLisp mais je ne sais pas comment ?

 

Bye, lecrabe

Autodesk Expert Elite Team

Posté(e)

Oui, on peut (je l'ai déjà lu) mais le chemin dans la base de registre est différent selon la version d'AutoCAD...

 

Mais on s'éloigne du petit bout de code fait pour gagner quelques petites heures...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Et voilà, (gile) passe et la solution est là...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

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é