Aller au contenu

export wbloc vers DXF


philsogood

Messages recommandés

hello

auriez vous une routine pour exporter tous les blocs d'un fichier DWG en export des blocs format Dxf (2000 disons)

bon la routine est un peu sur mesure et si une âme charitable passait apr là...

merci

Phil

PS : Lecrabe, 2 bières pour toi si tu me sors un trucs d'une de tes 2000 routines!! :P

Projeteur Revit Indépendant - traitement des eaux/CVC

Lien vers le commentaire
Partager sur d’autres sites

Salmut Philsogood,

 

Pourquoi en DXF 2000 et pas en DWG 2000?

 

Pour te dépanner, tu peux utiliser le plugin AutoWblock qui te permettra d'exporter tous les blocs d'un dessin au format DWG 2000.

AutoWblock permet d'exporter tous les blocs d'un dessin au format DWG mais pas au format DXF.

 

Si ça te convient, la bière, pour moi, ça sera une Douglas.

 

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Lien vers le commentaire
Partager sur d’autres sites

hello

pourquoi DXF? car la personne qui utilisera ces blocs n'a pas AutoCAD mais un ersatz qui en entrée n'accepte que les DXF

du coup me faire à la main la conversion de 200 DWGs, ça ne me fait pas rever !! :)

Phil

Projeteur Revit Indépendant - traitement des eaux/CVC

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

Comme je suis fondamentalement "Bon, Gentil, Aimable, Serviable, etc",

j ai une routine tiree de mon stock de 3001 routines ...

qui pourrait eventuellement te convenir !?

 

Routine: Exp2DXF qui ecrit en DXF2000 TOUS les Blocs selectionnes ...

 

Par contre , il faut que tous les Blocs a traiter, soient "devant toi" !

Un peu comme une legende avec tous les Blocs ...

 

SVP tu regardes bien le Blabla dans le Lisp ...

 

La Sante, Bye, lecrabe "fatigue"

 

PS: un excellent whisky single malt !

 


;; 
;; https://www.cadtutor.net/forum/topic/70488-each-unique-block-reference-to-separate-dxf-file/
;; 
;; Routine: Exp2DXF by Skierz
;; 
;; Export to DXF2000 ALL selected Blocks of the current DWG
;; The current DWG must be saved before running ...
;; After running please QUIT without Updating the current DWG !
;; 
;; DXF are automatically written into the current DWG Folder ...
;; 

(vl-load-com) 

(defun KGA_Conv_Pickset_To_ObjectList (ss / i ret)
 (if ss
   (repeat (setq i (sslength ss))
     (setq ret (cons (vlax-ename->vla-object (ssname ss (setq i (1- i)))) ret))
   )
 )
)

(defun c:Exp2DXF ( / doneLst fld fnm nme ref spc ss)
 (if
   (and
     (or
       (= 1 (getvar 'dwgtitled))
       (prompt "\nError: DWG must be saved first ")
     )
     (setq ss (ssget '((0 . "INSERT"))))
   )
   (progn
     (setq fld (getvar 'dwgprefix))
     (setq spc (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))))
     (foreach obj (KGA_Conv_Pickset_To_ObjectList ss)
       (if (not (vl-position (strcase (setq nme (vla-get-effectivename obj))) doneLst))
         (progn
           (setq doneLst (cons (strcase nme) doneLst))
           (setq ref (vla-insertblock spc (vlax-3d-point 0.0 0.0 0.0) nme 1.0 1.0 1.0 0.0))
           (vla-put-layer ref "0")
           (command "_.zoom" "_object" (vlax-vla-object->ename ref) "")
           (setq fnm (strcat fld nme ".dxf"))
           (vl-file-delete fnm) ; Delete existing file.
           (command
             "_.dxfout"
             fnm ; Full path.
             "_entities"
             (vlax-vla-object->ename ref)
             ""
             "_version"
             "2000"  ; Valid DXF version.
             6       ; Accuracy
           )
           (vla-delete ref)
         )
       )
     )
   )
 )
 (princ)
)

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

Et comme tu es PENIBLE ET EXIGEANT, tu veux en plus une version qui traite TOUS les Blocs definis dans le DWG !

( Donc aucune selection necessaire )

 

Voici donc la version qui va bien : Exp2DXF_ALL

 

Les 2 routines ont ete testees sur AutoCAD 2022 ...

 

La Sante, Bye, lecrabe "fatigue"

 

PS: un excellent whisky single malt !

 


;; 
;; https://www.cadtutor.net/forum/topic/70488-each-unique-block-reference-to-separate-dxf-file/
;; 
;; Routine: Exp2DXF_ALL by Skierz
;; 
;; --- Export to DXF2000 ALL the Blocks of the current DWG ---
;; The current DWG must be saved before running ...
;; After running please QUIT without Updating the current DWG !
;; 
;; DXF are automatically written into the current DWG Folder ...
;; 

(vl-load-com) 

(defun KGA_Conv_Pickset_To_ObjectList (ss / i ret) 
 (if ss
   (repeat (setq i (sslength ss))
     (setq ret (cons (vlax-ename->vla-object (ssname ss (setq i (1- i)))) ret))
   )
 )
)

(defun c:Exp2DXF_ALL ( / doneLst fld fnm nme ref spc ss)
 (if
   (and
     (or
       (= 1 (getvar 'dwgtitled))
       (prompt "\nError: DWG must be saved first ")
     )
     (setq ss (ssget "_X" '((0 . "INSERT"))))  ;;; "_X" Version pour TOUS les Blocs
   )
   (progn
     (setq fld (getvar 'dwgprefix))
     (setq spc (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))))
     (foreach obj (KGA_Conv_Pickset_To_ObjectList ss)
       (if (not (vl-position (strcase (setq nme (vla-get-effectivename obj))) doneLst))
         (progn
           (setq doneLst (cons (strcase nme) doneLst))
           (setq ref (vla-insertblock spc (vlax-3d-point 0.0 0.0 0.0) nme 1.0 1.0 1.0 0.0))
           (vla-put-layer ref "0")
           (command "_.zoom" "_object" (vlax-vla-object->ename ref) "")
           (setq fnm (strcat fld nme ".dxf"))
           (vl-file-delete fnm) ; Delete existing file.
           (command
             "_.dxfout"
             fnm ; Full path.
             "_entities"
             (vlax-vla-object->ename ref)
             ""
             "_version"
             "2000"  ; Valid DXF version.
             6       ; Accuracy
           )
           (vla-delete ref)
         )
       )
     )
   )
 )
 (princ)
)

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Tu peux aussi utiliser SuperAutoScript de Caderix.

 

Tu charges tes 200 fichiers au format dwg puis tu lances le script _saveas _dxf v LT2000 16 et tu laisses faire SuperAutoScript enrgistrer tous tes fichiers en DXF 2000.

 

N'oublie surtout pas de mettre un espace après 16.

 

Je viens de faire l'essai avec une quarantaine de fichiers.

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Lien vers le commentaire
Partager sur d’autres sites

Hello

Sniff, Sniff, Steven n'aime pas les routines Lisp que j'ai en stock !?

La Sante, Bye, lecrabe "fatigue"

 

 

Ô que si, j'aime les routines Lisp que tu as en stock, lecrabe, et elles m'ont aidé à plusieurs reprises smile.gif

Mais c'était pour aller dans la continuité de la solution que j'avais proposée à Philsogood wink.gif

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

Et la 3001eme routine, c MERCI a VDH-Bruno !

 

La Sante, Bye, lecrabe "fatigue"

C’est gentil de me citer bien qu’aujourd’hui je sois plus lecteur que contributeur, c’était vraiment peu de chose… à voir comme un retour pour service rendu à la communauté des CadXPiens ;).

 

@+ Bruno

Apprendre => Prendre => Rendre

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é