Bonjour,
Est il possible d'exporter une vue d'un assemblage au format .DWG ? (J'arrive avec une pièce, mais pas avec un assemblage)
Merci
Bonne journée
Bonjour,
Est il possible d'exporter une vue d'un assemblage au format .DWG ? (J'arrive avec une pièce, mais pas avec un assemblage)
Merci
Bonne journée
Bonjour,
Il faudrait temporairement enregistrer votre assemblage en PART pour pouvoir l'exporter en DWG.
En faite, pour le moment je passe par la mise en page.
Mais je voulais savoir si il y avait plus rapide justement.
A moins d'avoir loupé quelque chose, je ne pense pas.
Attendez d'autre réponse.
en passant par une mise en plan ;-)
il suffit de sauvegarder l'assemblage en pièce et de sélectionner tous les composants, puis de traiter cette nouvelle pièce comme n'importe quelle pièce traditionnelle (export vers DXF, DWG)
@+ ;-)
En gros c'est déjà ce que je fais ^^
Il n'y a donc pas plus simple plus rapide, directement de l'assemblage.
Merci pour vos réponses ;)
Bonjour,
Pour éviter toutes ces étapes tu peux aussi te faire une petite macro qui automatise la transformation de l'asm en prt puis l'exporte en DWG, cela ne te fera qu'un clic pour réaliser ce que tu veux.
Pour la sauvegarde de l'asm en prt c'est un simple Part.Saveas3(nomprt, 0, 0) à faire et pour l'export en DWG tu dois pouvoir t'aider de la macro : http://help.solidworks.com/2016/english/api/sldworksapi/export_part_to_dwg_example_vb.htm
Cordialement,
La macro précédente utilise la fonction "ExportFlatPatternView" qui est obsolète et qui ne transfert que la vue de face, celle-ci utilise la fonction de remplacement "ExportToDWG2" et te permet de créer un DWG de chaque vue, je pense que cela correspondra plus à ce que tu souhaite faire.
Cordialement,
Merci beaucoup,
Je ne me siuis jamais servis de la Macro tu peux m'expliquer en deux mots ?
Merci
Bonjour,
Sur quelle version de SW es-tu ? Les librairies chargées dans ma macro sont pour SW2017.
Dans SW, tu peux faire : Outils / Macro / Nouvelle et copier le code ci-dessous en remplacement de celui qui est écrit automatiquement dans la nouvelle macro puis tu charge un assemblage test dans SW et enfin tu fais F5 dans la fenêtre de Visual Basic.
Cordialement,
Dim swApp As Object
Public swModel As SldWorks.ModelDoc2
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set Part = swApp.ActiveDoc
Dim myModelView As Object
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
'on récupére le document actif
Set swModel = swApp.ActiveDoc
If Not swModel Is Nothing Then
'on récupére l'emplacement du fichier
stPath = swModel.GetPathName
'on récupére le nombre de caractére jusqu'au . de l'extension
lgFichier = InStrRev(stPath, ".", -1, vbTextCompare) - 1
'on récupére le chemin sans l'extention
If lgFichier > 0 Then
stPath = Left(stPath, lgFichier)
End If
'si le document est un assemblage
If swModel.GetType = swDocASSEMBLY Then
'on créer le SLDPRT
longstatus = Part.SaveAs3(stPath + ".sldprt", 0, 0)
'On ferme le SDLASM
swApp.CloseDoc swModel.GetTitle
'On ouvre le SLDPRT
Set swModel = swApp.OpenDoc6(stPath + ".sldprt", 1, 0, "", longstatus, longwarnings)
End If
'si le document est une pièce
If swModel.GetType = swDocPART Then
'On l'exporte en DWG
ExportDWG
End If
End If
End Sub
Sub ExportDWG()
Dim swPart As SldWorks.PartDoc
Dim sModelName As String
Dim sPathName As String
Dim varAlignment As Variant
Dim dataAlignment(11) As Double
Dim varViews As Variant
Dim dataViews(5) As String
Dim options As Long
Set swModel = swApp.ActiveDoc
sModelName = swModel.GetPathName
sPathName = swModel.GetPathName
sPathName = Left(sPathName, Len(sPathName) - 6)
sPathName = sPathName + "dwg"
Set swPart = swModel
dataAlignment(0) = 0#
dataAlignment(1) = 0#
dataAlignment(2) = 0#
dataAlignment(3) = 1#
dataAlignment(4) = 0#
dataAlignment(5) = 0#
dataAlignment(6) = 0#
dataAlignment(7) = 1#
dataAlignment(8) = 0#
dataAlignment(9) = 0#
dataAlignment(10) = 0#
dataAlignment(11) = 1#
varAlignment = dataAlignment
dataViews(0) = "*En cours"
dataViews(1) = "*Face"
dataViews(2) = "*Droite"
dataViews(3) = "*Gauche"
dataViews(4) = "*Dessus"
dataViews(5) = "*Arrière"
varViews = dataViews
swPart.ExportToDWG2 sPathName, sModelName, swExportToDWG_ExportAnnotationViews, False, varAlignment, False, False, 0, varViews
End Sub
Bonjour, moi j'enregistre l'ensemble en pièce puis je fais un dwg.
Cordialement
Je suis en 2016 sp3
Bonjour,
C'est là que le vba m'énerve un peu ...
Essaye en remplaçant les lignes :
'si le document est une pièce
If swModel.GetType = swDocPART Then
'On l'exporte en DWG
ExportDWG
End If
par :
'si le document est une pièce
If swModel.GetType = swDocPART Then
'On l'exporte en DWG
ExportDWG swModel
End If
Puis la ligne :
Sub ExportDWG
Par :
Sub ExportDWG(swModel As SldWorks.ModelDoc2)
Et encore la ligne (celle qui est dans le Sub ExportDWG(.....) :
Set swModel = swApp.ActiveDoc
Par :
'Set swModel = swApp.ActiveDoc
Charge ton assemblage puis lance la macro par F5
Cordialement,
Comment puis je faire pour avoir la meme macro pour les pièces seul ?
j'ai moyen de modif la macro seul pour apprendre
Bonjour,
Pour les pièces seules c'est la même macro puisque dans celle-ci je transforme l'asm en prt puis je lance la transformation en dwg sur la prt donc tu charges une pièce puis tu lances la macro et tu obtiens normalement les 6 DWG créés dans le dossier Windows de la pièce, du moins pour moi ça marche aussi.
Cordialement,
Merci beaucoup pour votre aide ;)