Kleurstap macro exporteren

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

Hallo

Je moet AP214 forceren:

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 likes

Hallo

Het werkt geweldig, bedankt!