Problème changement d'échelle export dxf

Bonjour,

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)

merci d'avance.


saveas_dxf_1.swp

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.

3 « J'aime »