Couleur step macro export

Bonjour à tous,

Je rencontre un problème lors de l’exportation de modèles SolidWorks en fichiers STEP. Lorsque j’utilise la méthode manuelle pour exporter un fichier STEP, les apparences appliquées à la pièce (couleurs, textures, etc.) sont correctement conservées dans le fichier. Cependant, lorsque j’essaie d’automatiser ce processus à l’aide d’une macro VBA, les apparences ne sont pas exportées, même si tout semble bien fonctionner en termes d’enregistrement du fichier.

Voici ce que j’ai déjà essayé :

  • Export manuel : Lorsque je choisis « Exporter en STEP » manuellement, je sélectionne bien le format STEP AP214, ce qui permet de conserver les apparences.
  • Export via macro VBA : En utilisant la méthode .SaveAs dans la macro, le fichier STEP est bien enregistré, mais sans les apparences.

J’ai vérifié les options d’exportation, et l’option « Exporter les apparences » est activée dans SolidWorks. Le fichier est exporté en STEP AP203 par défaut, et je pense que cela pourrait être la raison pour laquelle les apparences ne sont pas conservées.

J’ai essayé plusieurs approches pour forcer l’exportation en STEP AP214 et activer les options nécessaires via la macro, mais je rencontre des erreurs de compilation et des problèmes de compatibilité avec les méthodes d’exportation.

voici l’extret de ma macro qui fait vraiment plein d’autres choses mais ici je vous ais mis la partie export du step

merci d’avance

Function SaveModelAsSTEP(swModel As ModelDoc2, saveFolderPath As String, value As String, indexValue As String) As String
    Dim stepFileName As String
    Dim fullSTEPPath As String
    Dim status As Boolean
    Dim response As VbMsgBoxResult
    
    ' Vérifier si le modèle est un assemblage
    If swModel.GetType() = swDocASSEMBLY Then
        ' Demander à l'utilisateur s'il souhaite enregistrer le fichier STEP
        response = MsgBox("Il s'agit d'un assemblage. Voulez-vous enregistrer le fichier STEP ?", vbYesNo + vbQuestion, "Enregistrement STEP")
        
        ' Si l'utilisateur choisit non, sortir de la fonction sans enregistrer
        If response = vbNo Then
            SaveModelAsSTEP = ""
            Exit Function
        End If
    End If
    
    ' Formater le nom du fichier STEP
    stepFileName = UCase(Trim(value)) & "-" & Trim(indexValue) & ".STEP"
    fullSTEPPath = saveFolderPath & stepFileName
    
    ' Vérifier si le fichier STEP existe déjà
    If Dir(fullSTEPPath) <> "" Then
        response = MsgBox("Le fichier STEP '" & stepFileName & "' existe déjà." & vbCrLf & _
                          "Voulez-vous l'écraser ?", vbYesNo + vbQuestion, "Fichier existant")
        If response = vbNo Then
            SaveModelAsSTEP = ""
            Exit Function
        End If
    End If
    
    ' Enregistrer le modèle en tant que fichier STEP
    status = swModel.SaveAs(fullSTEPPath)
    
    ' Retourner le chemin du fichier STEP si l'enregistrement est réussi
    If status Then
        SaveModelAsSTEP = fullSTEPPath
    Else
        SaveModelAsSTEP = ""
        MsgBox "Erreur lors de l'enregistrement du fichier STEP.", vbExclamation
    End If
End Function

Bonjour,

Il faut forcer AP214:

Private Sub StepParam()
boolstatus = swApp.SetUserPreferenceIntegerValue(swStepAp, 214) 'Force la version AP214
boolstatus = swApp.SetUserPreferenceIntegerValue(swStepExportPreference, swAcisOutputGeometryPreference_e.swAcisOutputAsSolidAndSurface) 'Force l'export en format Solid/Surface Geometry
End Sub

2 « J'aime »

Bonjour

ça fonctionne super merci !