Hoi allemaal
Ik heb een probleem met het exporteren van SolidWorks-modellen naar STEP-bestanden. Wanneer ik de handmatige methode gebruik om een STEP-bestand te exporteren, blijven de vormgeving die op het onderdeel is toegepast (kleuren, texturen, enzovoort) correct behouden in het bestand. Wanneer ik dit proces echter probeer te automatiseren met behulp van een VBA-macro, worden de verschijningen niet geëxporteerd, ook al lijkt alles goed te werken wat betreft het opslaan van het bestand.
Dit is wat ik al heb geprobeerd:
- Handmatige export : Wanneer ik handmatig kies voor " Exporteren naar STEP ", selecteer ik het STEP AP214-formaat, waardoor ik het uiterlijk kan behouden.
- Exporteren via VBA-macro : Met behulp van de methode
.SaveAs
in de macro wordt het STEP-bestand opgeslagen, maar zonder uiterlijk.
Ik heb de exportopties aangevinkt en de optie " Exportweergaven " is ingeschakeld in SolidWorks. Het bestand wordt standaard geëxporteerd in STEP AP203 , en ik denk dat dit de reden kan zijn waarom de schijn niet wordt bewaard.
Ik heb verschillende benaderingen geprobeerd om de export in AP214 STEP te forceren en de nodige opties via de macro in te schakelen, maar ik ervaar compilatiefouten en compatibiliteitsproblemen met de exportmethoden.
Hier is het uittreksel van mijn macro die echt veel andere dingen doet, maar hier zet ik je het exportgedeelte van de stap
Bij voorbaat dank
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