je me permet de demander votre aide car j'ai un problème.
pour enregistrer mes perces en dxf rapidement j'utilise une macro (voire PJ) mais depuis ce matin quand je l'utilise l' échelle de ma pièce est modifiée (pour un cercle ø100 sur solidworks je me retrouve avec un ø2000 sur mon dxf) par contre si je fait enregistré sous -> dxf pas de soucis ...
avez vous des idée concernant ce problème? (je ne m'y connais pas du tout en macro)
Pour ceux qui veulent voir la macro sans la télécharger:
'**************************************************************************************************************************
'* Exemple de macro qui permet d'enregistrer les document au format DXF
'* Vous pouvez Changer l'extention pour enregistrer le document dans n'importe quelle format supporté par SW
'* Exemple réalisé par Axemble
'**************************************************************************************************************************
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swmodel As SldWorks.ModelDoc2
Dim stPath As String
Dim lgFichier As Long
Dim blretval As Boolean
Dim Errors As Long
Dim Warnings As Long
Set swApp = Application.SldWorks
'on récupére le document actif
Set swmodel = swApp.ActiveDoc
If Not swmodel Is Nothing Then
'on vérifie que le fichier est enregisté
If swmodel.GetPathName = "" Then
MsgBox "Veuillez enregistrer votre document avant de lancer la macro", vbInformation
End
Else
'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
End If
'si le document est une pièce
If swmodel.GetType = swDocPART Then
'on créer le développé
blretval = swmodel.ExportFlatPatternView(stPath & ".DXF", 0)
'on créer le DXF
blretval = swmodel.SaveAs3(stPath & ".DXF", 0, 0)
'si le document est une mise en plan
ElseIf swmodel.GetType = swDocDRAWING Then
'on créer le DXF
blretval = swmodel.SaveAs3(stPath & "_drw.DXF", 0, 0)
End If
'on sauvegarde le fichier
blretval = swmodel.Save3(0, 0, 0)
End If
End Sub
Le soucis d'échelle c'est depuis une pièce ou une MEP?
Parce que rien ne touche à l'échelle dans ta macro. (simple save dxf pour une pièce et même chose pour une MEP)
Il semblerait que ton souci vient plutôt de ton échelle de mise en plan différent de celle de la vue et/ou d'une option d'export. Possible de joindre la MEP+pièce qui pose problème?
le probleme viens d'une piece (enfin plusieurs) mais quand je les enregistre en dxf manuellement pas de soucis par contre avec la macro j'ai un changement d'echelle.
EDIT : je vien de redémarré le pc et solidworks et cela refonctionne bien. (un bug pc ou solidworks peut etre ??)
Après avoir testé le problème n'apparait pas pour moi quand la macro est lancé depuis la pièce mais uniquement quand elle est lancé depuis une mise en plan. Car la vue exporté est un ratio de l'échelle de la feuille. Si dans outil option exporter dxf/DWG tu active échelle de sortie1:1, cela résout-il ton problème? Sinon le code de la macro sera à modifier.