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