Communauté
AutoCAD – tous produits - Français
Bienvenue sur les forums AutoCAD d’Autodesk. Partagez vos connaissances, posez des questions, et explorez les sujets AutoCAD populaires.
annuler
Affichage des résultats de 
Afficher  uniquement  | Rechercher plutôt 
Vouliez-vous dire : 

inserer plusieur bloc en une fois

9 RÉPONSES 9
RÉSOLU
Répondre
Message 1 sur 10
Anonymous
1870 Visites, 9 Réponses

inserer plusieur bloc en une fois

Bonjour,

J'ai plusieurs fichers .dxf ou .dwg (aucune importance je peux les transferer) qui forme un plan de cadastre. J'aimerais si c'est possible en une operation d'inserer ces 200 fichiers en un seul fichier.

pour le moment j'inserre bloc par bloc mais j'ai genre 10 fois 200 fichiers a regrouper.

merci!
9 RÉPONSES 9
Message 2 sur 10
_gile
en réponse à: Anonymous

Salut,

Un petit LISP vite fait.

Tous les fichier dwg du dossier spécifié sont insérés en 0,0

;;; DirBox -Patrick_35-

(defun DirBox (Message Chemin Drapeau / rep sh)
(setq sh (vlax-create-object "Shell.Application"))
(if (setq
rep (vlax-invoke sh 'browseforfolder 0 Message Drapeau Chemin)
)
(setq rep (vlax-get-property (vlax-get-property rep 'self) 'path))
(setq rep nil)
)
(vlax-release-object sh)
rep
)

(defun c:ins-folder (/ folder)
(vl-load-com)
(and
(setq folder (dirbox "Choisir le dossier contenant les fichiers à insérer"
nil
512
)
)
(foreach b (vl-directory-files folder "*.dwg" 1)
(vla-InsertBlock
(vla-get-ModelSpace
(vla-get-ActiveDocument (vlax-get-acad-object))
)
(vlax-3d-point '(0 0 0))
(strcat folder "\\" b)
1.0
1.0
1.0
0.0
)
)
)
(princ)
)

(princ "\nIns-Folder chargé, entrer ins-folder pour lancer la commande")
(princ)


Gilles Chanteau
Programmation AutoCAD LISP/.NET
GileCAD
GitHub

Message 3 sur 10
Anonymous
en réponse à: Anonymous

Super ca fonctionne tres bien!!

Mais est-ce possible de decomposer le bloc a l'insertion?
la raison est simple!!! c'est que si j'insert bloc par bloc avec le petit crochet sur decomposer dans la boite "Insérer bloc" mon fichier est la moitié moins volumineux qu'avec le lisp
ex: 9.6 mo avec le lisp(j'ai decomposer par la suite et purger etc...) et 4.1 mo bloc par bloc

J'ai des fichier qui font 38mo bloc par bloc!!! ca ferais plus de 80mo avec le lisp

merci!
Message 4 sur 10
_gile
en réponse à: Anonymous

Salut

Voilà

;; DirBox -Patrick_35-

(defun DirBox (Message Chemin Drapeau / rep sh)
(setq sh (vlax-create-object "Shell.Application"))
(if (setq
rep (vlax-invoke sh 'browseforfolder 0 Message Drapeau Chemin)
)
(setq rep (vlax-get-property (vlax-get-property rep 'self) 'path))
(setq rep nil)
)
(vlax-release-object sh)
rep
)

(defun c:ins-folder (/ folder)
(vl-load-com)
(and
(setq folder (dirbox "Choisir le dossier contenant les fichiers à insérer"
nil
512
)
)
(foreach b (vl-directory-files folder "*.dwg" 1)
(vla-explode
(vla-InsertBlock
(vla-get-ModelSpace
(vla-get-ActiveDocument (vlax-get-acad-object))
)
(vlax-3d-point '(0 0 0))
(strcat folder "\\" b)
1.0
1.0
1.0
0.0
)
)
)
)
(princ)
)

(princ
"\nIns-Folder chargé, entrer ins-folder pour lancer la commande"
)
(princ)


Gilles Chanteau
Programmation AutoCAD LISP/.NET
GileCAD
GitHub

Message 5 sur 10
Anonymous
en réponse à: Anonymous

Je te remerci beaucoup!!

Mais je vais continuer bloc par bloc. J'ai aucune idée pourquoi mais avec le dernier script le fichier a 18mo avec le premier script 9mo et bloc par bloc 4mo.

Encore merci!!
Message 6 sur 10
Anonymous
en réponse à: Anonymous

-z1k wrote:
> Je te remerci beaucoup!!
>
> Mais je vais continuer bloc par bloc. J'ai aucune idée pourquoi mais avec le dernier script le fichier a 18mo avec le premier script 9mo et bloc par bloc 4mo.
>
> Encore merci!!

même en purgeant ?


--
Bruno, qui dessin *aus* à la main <>
Message 7 sur 10
Anonymous
en réponse à: Anonymous

Plus rustique, mais cela ne devrait pas faire grossir outre mesure ton dessin.

Tu copie-colles directement en ligne de commande, ceci pour les DXF

((lambda ( / prefix)
(setvar "cmdecho" 0)
(command "_.ucs" "_world")
(setq prefix (strcat (vl-filename-directory (getfiled "Sélectionner un fichier DXF TEMOIN" "" "dxf" 16)) "\\"))
(foreach dxf (vl-directory-files prefix "*.dxf" 1)
(command "_.-insert" (strcat "\"" "*" prefix dxf "\"") "_none" "0.0,0.0,0.0" "1.0" "0.0")
)
(command "_.ucs" "_previous")
(setvar "cmdecho" 1)
(prin1)
))


et ce qui suit pour des DWG

((lambda ( / prefix)
(setvar "cmdecho" 0)
(command "_.ucs" "_world")
(setq prefix (strcat (vl-filename-directory (getfiled "Sélectionner un fichier DWG TEMOIN" "" "dwg" 16)) "\\"))
(foreach dwg (vl-directory-files prefix "*.dwg" 1)
(command "_.-insert" (strcat "\"" "*" prefix dwg "\"") "_none" "0.0,0.0,0.0" "1.0" "0.0")
)
(command "_.ucs" "_previous")
(setvar "cmdecho" 1)
(prin1)
))
Message 8 sur 10
Anonymous
en réponse à: Anonymous

oui meme en purgeant!!
j'ai meme re explodé et re purgé!!!
si tu fais le test avec seulement 2 fichiers tu vas le constater.
Insere 2 blocs avec _insert sans oublier le petit crochet sur décomposer et les deux meme avec le lisp...les deux purgé etc.... Tu vas voir une difference enorme de taille entre les deux fichiers
Message 9 sur 10
Anonymous
en réponse à: Anonymous

Super ca fonctionne #1!!!!!!!
Merci beaucoup!
Message 10 sur 10
manon5
en réponse à: Anonymous

Bonjour,

 

Ce script est vraiment super, mais dans mon cas j'aurai souhaité les implanter en les décalant en X.

Par exemple, j'aimerai avec insérer tous mes blocs tous les 10m.

Pourriez-vous m'aider s'il vous plait ?

Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.

Publier dans les forums  

Autodesk Design & Make Report