Hallo, ich suche nach einer Option in VBA, um eine Baugruppe in STEP zu registrieren, aber vor dem Speichern wird die Baugruppe in ein externes Flächenteil umgewandelt
Hallo
Ich habe im Moment keine SW zur Hand, um sie zu überprüfen, aber Sie sollten in der Lage sein, die SaveAs3-Methodenfunktion (IModelDocExtension) mit der Option "ISldWorks::SetUserPreferenceIntegerValue" zu verwenden, wie etwas weiter unten auf dieser Seite angegeben:
Herzliche Grüße
Ich habe es gerade damit versucht:
If CheckBoxSTEP.Value = True Then
filename = LblCheminSTEP & ActiveConfig & ".STEP"
boolstatus = swApp.SetUserPreferenceIntegerValue(swStepAP, 214)
boolstatus = swApp.SetUserPreferenceIntegerValue(swSaveAssemblyAsPartOptions, swSaveAsmAsPart_ExteriorFaces)
boolstatus = swModelDocExt.SaveAs(filename, 0, 0, swExportData, lErrors, lWarnings)
If boolstatus Then
MsgBox "Enregistrement au format STEP réussi" & vbNewLine & filename
Else
MsgBox "Echec de l'enregistrement au format STEP, Error code:" & lErrors, vbCritical, "AVERTISSEMENT"
End If
End If
Aber es ändert sich nichts? Er nimmt in STEP auf , erstellt aber die verschiedenen Stücke separat in STEP.
Ich denke, man muss es in mehreren Schritten wie in SolidWorks machen
1- Registrieren Sie die Baugruppe als Teil mit äußerer Oberfläche
2-Öffnen Sie den Raum
3-stufiger Export des Teils
4-Um das Teil mit der Außenfläche zu löschen oder nicht
Okay, ich mache das, danke.
Aber ich frage mich, wie ich es hinbekomme, das Stück automatisch zu löschen, sobald der Schritt erstellt ist.
Was ich gerade mache, funktioniert nicht. Wenn ich die Baugruppe als Teil speichere, wird so viel Körper/Volumenkörper erstellt, wie Teile in der Baugruppe vorhanden sind. und ich möchte, dass alles in 1 Körper "zusammengeführt" wird, wenn ich die Baugruppe in Teilen registriere oder direkt in STEP, wenn es möglich ist.
Ich habe gerade diesen Beitrag im solidworks Forum gesehen, der aus dem Jahr 2012 stammt.
Um zu testen und uns Feedback zu geben:
https://forum.solidworks.com/thread/55589
Hier ist das 1. Teil, um die Baugruppe in Teilen zu speichern
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim FilePath As String
Dim sFilePath As String
Dim PathSize As Long
Dim PathNoExtension As String
Dim NewFilePath As String
Dim nErrors As Long
Dim nWarnings As Long
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swModelDocExt = swModel.Extension
FilePath = swModel.GetPathName
PathSize = Strings.Len(FilePath)
PathNoExtension = Strings.Left(FilePath, PathSize - 6)
NewFilePath = PathNoExtension & "SLDPRT"
swApp.SetUserPreferenceIntegerValue swSaveAssemblyAsPartOptions, swSaveAsmAsPart_ExteriorFaces
swModelDocExt.SaveAs NewFilePath, swSaveAsCurrentVersion, swSaveAsOptions_Silent, Nothing, nErrors, nWarnings
swApp.CloseDoc swModel.GetTitle
Set swModel = swApp.OpenDoc(NewFilePath, swDocPART)
Set swModel = swApp.ActiveDoc
sFilePath = PathNoExtension & "STEP"
swModel.SaveAs (sFilePath)
swApp.CloseDoc swModel.GetTitle
End Sub
'------------------
Dann sollten Sie mit open doc6 in der Lage sein, es zu öffnen und dann schrittweise zu exportieren
Für das Löschen der Datei evtl. mit FSO ist es machbar
Bearbeiten: für das Löschen der Datei:
https://forum.solidworks.com/thread/61273
Für open doc6:
http://help.solidworks.com/2018/English/api/sldworksapi/Open_Document_Example_VB.htm
Es funktioniert, das einzige Problem ist, dass es die Baugruppe wie gewünscht in ein Flächenteil umwandelt, und wenn wir dieses Teil dann in STEP speichern, erstellt es Körper für mich neu.
Ist es nicht möglich, so zu speichern, dass es nur 1 Körper gibt (dass alles in 1 einzigen importierten Block zusammengeführt/gruppiert wird)?
Hallo
Sie müssen Folgendes tun:
- Öffnen der Baugruppe.
- Speichern dieser Baugruppe in einem Teil.
- Öffnen des neu erstellten Bauteils.
- Kombinieren Sie die Textkörper mit der Funktion InsertCombineFeature-Methode (IFeatureManager), wobei die Enumerations swBodyOperationType_e auf 15903 (SWBODYADD) festgelegt ist. Ein Beispiel finden Sie HIER.
- Speichern Sie als Schritt.
Herzliche Grüße
Ich habe gerade einen solchen Test gemacht, bevor ich das Makro gestartet habe, und sobald ich mich auf Baugruppen befinde, die ein wenig "komplex" sind, erhalte ich diese Fehlermeldung, wenn ich kombiniere.
Hallo
Haben die Körper, die Sie zu 1 einzigen Körper kombinieren möchten, eine Schnittmenge?
Wenn nicht, dann ist diese Meldung normal.
Herzliche Grüße
Ja, das ist richtig, es ist Hardware (Wagenheber oder Schrauben). Es gibt für ihn keine Möglichkeit, alles miteinander zu kombinieren, was er miteinander kombinieren kann, und was er nicht kombinieren kann, schade, lässt er es so und natürlich automatisch?
Nun ja, indem Sie Schleifen und Fehlermanagement in Ihrem Makro durchführen ...