Hallo ihr alle
Ich habe ein Problem beim Exportieren von SolidWorks Modellen in STEP-Dateien. Wenn ich die manuelle Methode zum Exportieren einer STEP-Datei verwende, werden die auf das Teil angewendeten Erscheinungsbilder (Farben, Texturen usw.) in der Datei korrekt beibehalten. Wenn ich jedoch versuche, diesen Prozess mit einem VBA-Makro zu automatisieren, werden die Erscheinungsbilder nicht exportiert, obwohl alles in Bezug auf das Speichern der Datei gut zu funktionieren scheint.
Hier ist, was ich bereits ausprobiert habe:
- Manueller Export : Wenn ich manuell " Nach STEP exportieren" wähle, wähle ich das STEP AP214-Format, wodurch ich das Erscheinungsbild beibehalten kann.
- Export per VBA-Makro : Mit der Methode
.SaveAs
im Makro wird die STEP-Datei gespeichert, jedoch ohne Aussehen.
Ich habe die Exportoptionen überprüft und die Option " Erscheinungsbilder exportieren " ist in SolidWorks aktiviert. Die Datei wird standardmäßig in STEP AP203 exportiert, und ich denke, dies könnte der Grund sein, warum die Erscheinungsbilder nicht beibehalten werden.
Ich habe mehrere Ansätze ausprobiert, um den Export in AP214 STEP zu erzwingen und die notwendigen Optionen über das Makro zu aktivieren, aber ich habe Kompilierungsfehler und Kompatibilitätsprobleme mit den Exportmethoden.
Hier ist der Auszug meines Makros, das wirklich viele andere Dinge tut, aber hier habe ich Ihnen den Exportteil des Schritts beigefügt
Vielen Dank im Voraus
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