Witam, szukam opcji w VBA, aby zarejestrować zespół w STEP, ale przed zapisaniem przekształca zespół w zewnętrzną część powierzchni
Witam
Nie mam teraz pod ręką oprogramowania, aby to sprawdzić, ale powinieneś być w stanie użyć funkcji metody SaveAs3 (IModelDocExtension) z opcją "ISldWorks::SetUserPreferenceIntegerValue", jak wskazano nieco dalej na tej stronie:
Pozdrowienia
Właśnie próbowałem z tym:
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
Ale to niczego nie zmienia? nagrywa w STEP, ale tworzy różne utwory osobno w STEP.
Myślę, że trzeba to zrobić w kilku krokach jak w solidworks
1- Zarejestruj zespół jako część z powierzchnią zewnętrzną
2-Otwórz pokój
Eksport części w 3 krokach
4-Aby usunąć lub nie część z powierzchnią zewnętrzną
Dobra, pójdę z tym, dziękuję.
Ale zastanawiam się, jak zamierzam sprawić, aby automatycznie usunął kawałek i zapisał się po utworzeniu kroku.
To, co robię, nie działa. Kiedy zapisuję zespół jako część, tworzy on tyle bryły/bryły, ile jest części w złożeniu. i chciałbym, aby wszystko zostało "połączone" w 1 ciało, gdy zarejestruję zespół w częściach lub bezpośrednio w STEP, jeśli to możliwe.
Właśnie zobaczyłem ten post na forum solidworks, który pochodzi z 2012 roku.
Aby przetestować i przekazać nam opinię:
https://forum.solidworks.com/thread/55589
Oto 1. część, aby zapisać zespół w częściach
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
'------------------
Następnie za pomocą open doc6 powinieneś być w stanie go otworzyć, a następnie wyeksportować w kroku
Do usunięcia pliku być może za pomocą FSO jest to wykonalne
Edycja: do usunięcia pliku:
https://forum.solidworks.com/thread/61273
Dla otwartego dokumentu6:
http://help.solidworks.com/2018/English/api/sldworksapi/Open_Document_Example_VB.htm
to działa, jedyny problem polega na tym, że przekształca zespół w część powierzchniową zgodnie z żądaniem, a następnie, gdy zapiszemy tę część w STEP, odtwarza dla mnie bryły.
Czy nie jest możliwe zapisanie tak, aby była tylko 1 treść (aby wszystko było połączone/zgrupowane w 1 pojedynczy zaimportowany blok)?
Witam
Musisz zrobić:
- Otwieranie zespołu.
- Częściowe zapisanie tego zespołu.
- Otwarcie nowo utworzonej części.
- Połącz obiekty za pomocą funkcji InsertCombineFeature Method (IFeatureManager) z swBodyOperationType_e wyliczeniową ustawioną na 15903 (SWBODYADD). Przykład masz TUTAJ.
- Zapisz jako krok.
Pozdrowienia
Właśnie zrobiłem taki test przed uruchomieniem makra i gdy tylko jestem na zestawach, które są trochę "złożone", pojawia się ten komunikat o błędzie podczas łączenia.
Witam
Czy ciała, które próbujesz połączyć w 1 pojedyncze ciało, mają przecięcie?
Jeśli nie, oznacza to, że ten komunikat jest normalny.
Pozdrowienia
Tak, zgadza się, to sprzęt (podnośniki lub). Nie ma sposobu, aby połączył wszystko, co może ze sobą połączyć, a czego nie może połączyć szkoda, że tak to zostawia i automatycznie oczywiście?
No tak, robiąc pętle i zarządzanie błędami w swoim makrze ...