Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

EXPORT DE FICHIER AUTOCAD VERS WMF ET DXF (EN LOT)


Information sur la source

Catégorie :3D Classé sous : export, autocad, wmf, dxf, conversion Niveau : Initié Date de création : 18/01/2008 Date de mise à jour : 18/01/2008 16:28:45 Vu / téléchargé: 7 684 / 80

Note :
Aucune note

Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

Description

Ayant besoin d'exporter une bonne quantité de dessins dans différents formats, j'ai fait ce petit bout de code qui satisfait à mon besoin...

requis:
Autocad 2006
fonctionnement:
- charger les fichiers(2D) dans Autocad
- lancer la macro
- les fichiers wmf & dxf sont automatiquement créer au même niveau dans l'arborescence du fichier d'origine
- fermeture du fichier
- rebouclage ou arret si plus fichier n'est charger

Note aux administrateurs CS:
Je n'ai pas vu de categorie 2D mais ce bout de code marche avec des fichiers 2D ^^
 

Source

  • Public Sub ExportWmfDxf()
  • '---------------------------------------------------------------------------------------
  • '------------ Macro crée le 16/01/08 ------
  • '---------------------------------------------------------------------------------------
  • '---------------------------------------------------------------------------------------
  • '----- faire un bouton avec la commande suivante dans autocad -
  • '----- $path of DVB module$ fait référence à l'emplacement du fichier "dvb" -
  • '----- à remplacer par le bon chemin ! -
  • '---------------------------------------------------------------------------------------
  • '---- ^C^C-vbarun "C:/ $path of DVB module$ /export_WmfDxf.dvb!Module1.ExportWmfDxf" -
  • '---------------------------------------------------------------------------------------
  • Dim DOC As AcadDocument
  • Dim msg As String
  • msg = vbCrLf & " - Dessin concerné :" & vbCrLf
  • For Each DOC In Documents
  • msg = msg & DOC.Name & vbCrLf
  • Next
  • msg = msg & vbCrLf & "Note : les fichiers seront exportés au même endroit que le fichier source." & vbCrLf
  • If Documents.Count > 0 Then
  • myans = MsgBox("ATTENTION le dessin sera fermé à la fin de la manipulation, le contenu ne sera PAS SAUVEGARDER, Doit-je donc Continuer ?: " & msg, vbOKCancel, "ATTENTION")
  • Else
  • Exit Sub
  • End If
  • If myans <> vbOK Then Exit Sub
  • For Each DOC In Documents
  • DOC.Activate
  • Call ExportBoucle
  • Next
  • End Sub
  • Public Sub ExportBoucle()
  • ' init
  • Dim sset As AcadSelectionSet
  • Dim newPViewport As AcadPViewport
  • Dim centerPoint(0 To 2) As Double
  • Dim height As Double
  • Dim width As Double
  • Dim exportFile As String
  • height = 300#
  • width = 400#
  • ' sauvegarde au format DXF (version compatible Autocad 2000)
  • ThisDrawing.Activate
  • ThisDrawing.ActiveSpace = acModelSpace
  • ZoomExtents
  • exportFile = ThisDrawing.Path & "\" & Left(ThisDrawing.Name, Len(ThisDrawing.Name) - 4)
  • ThisDrawing.SaveAs exportFile & ".dxf", ac2000_dxf
  • ' sauvegarde au format wmf en N&B
  • 'création de la fenetre
  • centerPoint(0) = 0#: centerPoint(1) = 0#: centerPoint(2) = 0#
  • ThisDrawing.ActiveSpace = acPaperSpace
  • Set newPViewport = ThisDrawing.PaperSpace.AddPViewport(centerPoint, width, height)
  • ZoomExtents
  • ' activation de la nouvelle fenetre
  • newPViewport.Display True
  • ThisDrawing.MSpace = True
  • ThisDrawing.ActivePViewport = newPViewport
  • ZoomExtents
  • ' tout les calques en N&B
  • t = ThisDrawing.Layers.Count
  • For n = 1 To t - 1
  • ThisDrawing.Layers.Item(n).color = acWhite
  • Next n
  • ' regeneration de la fenetre pour le N&B
  • ThisDrawing.Regen acActiveViewport
  • ' selection du contenu de la fenetre
  • Set sset = ThisDrawing.SelectionSets.Add(ThisDrawing.Name)
  • sset.Select acSelectionSetAll
  • ' sauvegarde wmf du contenu de la selection
  • ThisDrawing.Export exportFile, "wmf", sset
  • ' libération de la selection
  • Set sset = Nothing
  • ' fermeture du dessin (sans sauvegarde)
  • ThisDrawing.Close False
  • End Sub
Public Sub ExportWmfDxf()
    '---------------------------------------------------------------------------------------
    '------------                   Macro crée               le 16/01/08              ------
    '---------------------------------------------------------------------------------------
    '---------------------------------------------------------------------------------------
    '-----                 faire un bouton avec la commande suivante dans autocad          -
    '-----   $path of DVB module$ fait référence à l'emplacement du fichier "dvb"          -
    '-----                           à remplacer par le bon chemin !                       -
    '---------------------------------------------------------------------------------------
    '----   ^C^C-vbarun "C:/ $path of DVB module$ /export_WmfDxf.dvb!Module1.ExportWmfDxf" -
    '---------------------------------------------------------------------------------------
    
    Dim DOC As AcadDocument
    Dim msg As String
    
    msg = vbCrLf & " - Dessin concerné :" & vbCrLf
    For Each DOC In Documents
        msg = msg & DOC.Name & vbCrLf
    Next
        msg = msg & vbCrLf & "Note : les fichiers seront exportés au même endroit que le fichier source." & vbCrLf
        
    If Documents.Count > 0 Then
        myans = MsgBox("ATTENTION le dessin sera fermé à la fin de la manipulation, le contenu ne sera PAS SAUVEGARDER, Doit-je donc Continuer ?: " & msg, vbOKCancel, "ATTENTION")
    Else
        Exit Sub
    End If
    
    If myans <> vbOK Then Exit Sub
    
    For Each DOC In Documents
        DOC.Activate
        Call ExportBoucle
    Next
End Sub

Public Sub ExportBoucle()

    ' init
    
    Dim sset As AcadSelectionSet
    Dim newPViewport As AcadPViewport
    Dim centerPoint(0 To 2) As Double
    Dim height As Double
    Dim width As Double
    Dim exportFile As String
    
    height = 300#
    width = 400#
    
    ' sauvegarde au format DXF (version compatible Autocad 2000)
    
    ThisDrawing.Activate
    ThisDrawing.ActiveSpace = acModelSpace
    ZoomExtents
    exportFile = ThisDrawing.Path & "\" & Left(ThisDrawing.Name, Len(ThisDrawing.Name) - 4)
    ThisDrawing.SaveAs exportFile & ".dxf", ac2000_dxf
    
    ' sauvegarde au format wmf en N&B
    
    'création de la fenetre
    centerPoint(0) = 0#: centerPoint(1) = 0#: centerPoint(2) = 0#
    ThisDrawing.ActiveSpace = acPaperSpace
    Set newPViewport = ThisDrawing.PaperSpace.AddPViewport(centerPoint, width, height)
    ZoomExtents
    ' activation de la nouvelle fenetre
    newPViewport.Display True
    ThisDrawing.MSpace = True
    ThisDrawing.ActivePViewport = newPViewport
    ZoomExtents
    ' tout les calques en N&B
    t = ThisDrawing.Layers.Count
    For n = 1 To t - 1
        ThisDrawing.Layers.Item(n).color = acWhite
    Next n
    ' regeneration de la fenetre pour le N&B
    ThisDrawing.Regen acActiveViewport
    ' selection du contenu de la fenetre
    Set sset = ThisDrawing.SelectionSets.Add(ThisDrawing.Name)
    sset.Select acSelectionSetAll
    ' sauvegarde wmf du contenu de la selection
    ThisDrawing.Export exportFile, "wmf", sset
    ' libération de la selection
    Set sset = Nothing
    ' fermeture du dessin (sans sauvegarde)
    ThisDrawing.Close False
    
End Sub

Conclusion

mon code est loin d'etre optimal mais il marche sur Autocad 2006 je l'ai tester sur 50 fichiers charger avec un poids variable de 500ko à 8Mo avec succes...
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • export_WmfDxf.dvbTélécharger ce fichier [Réservé aux membres club]15 360 octets

Télécharger le zip

Historique

18 janvier 2008 16:28:45 :
vide

Commentaires et avis

signaler à un administrateur
Commentaire de z_com76 le 21/01/2008 11:15:26

Bonjour,
C'est peut être satisfaisant intelectuellement de pondre un beau code verbeux, mais on oublie peut être un peu trop qu'il y a des moyens simple, rapide et qui fonctionnaient déjà avec autocad 9 sous dos !
Même dans les dernières version d'Autocad la fonction de script existe toujours, et peut être passée en ligne de commande.
Il suffit juste de créer un fichier .scr en mode texte avec la succession de commande. Faire un petit fichier batch .cmd qui appel autocad avec une boucle sur les fichiers dwg et le fichier scr en parametre. Et 3 secondes 8 après, c'est fini !
Il faut juste en début de script ne pas oublier de désactiver les boites de dialogues :
_cmddia 0
_filedia 0
Efficacité rime aussi avec simplicité...

Cordialement

signaler à un administrateur
Commentaire de angelonay le 24/01/2008 02:08:34

Bonjour,

Pour réagir a ton commentaire Z_com76, je ne pense pas m'être intellectuellement trop cassé la tète, comme je l'ai déjà dit il est loin d'être optimal.

Bon pour l'histoire des scripts je veux bien c'est vrai une fois qu'ils sont réalisés bien régler aucun problème mais en l'occurrence sa ne correspond pas à l'optique dans lequel j'ai fait ce petit bout de code.

Pour moi la simplicité c'est quand un utilisateur ne se pose pas de question sur la démarche à faire pour obtenir le résultat qu'il escompte (surtout un utilisateur n'ayant aucune connaissance d'autocad en fait^^).
Et l'efficacité c'est quand il vérifie un résultat conforme à celui escompté...
Cordialement

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

SCRIPT ET EXPORT WEB [ par VIDEOGRAPH ] Salut à tous,J'ai un soucis dans Photoshop 6. J'ai créé un script qui devrait se terminer par un export optimisé pour le web, avec certaines options d Lecture des fichiers DXF [ par MickG ] Salut Je fais un programme pour convertir un fichier DXF en Fichier MAPINFO mais je manque de documentation sur la structure.J'ai récupéré le "DXF Ref Conversion de format 3D [ par Kerox ] Bonjour, j'ai un fichier au format *.3ds et 3d studio max 6 n'arrive pas à le lire. Existe t'il un convertisseur de fichier afin que 3ds max puisse l AutoCAD et Illustrator [ par djamine ] Bonjourj'arrive pas a ouvrir un fichier DWG avec Illustrator msg est Fichier est endomagéQUelqu'un a une idée?si le fichier est bon?Merci Exporter au format WMF [ par informatixo ] Bonjour,J'ai windows XP Professionel SP2 et j'utilise Adobe Illustrator CS2. J'ai réalisé un petit logo et je voudrais l'exporter au format WMF mais j Export dwg vers stl [ par LN37 ] Bonjours,Quelqu'un peut-il me dire pourquoi lorsque j'exporte un solide dwg en stl j'obtiens un fichier de type "liste de certificats de confiance"?Me autocad...3ds max [ par lambrozo ] bonjours,voila j'ai un projet de visite virtuelle que je doit realiserer.Pour commencer je doit creer les maisons en 3d.On m'a dit que jpouvai faire l


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,062 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.