Hallo Community.
Um ein Makro in meinem Unternehmen zu entwickeln, möchte ich die Erstellung von virtuellen Teilen in der Montage automatisieren.
Es scheint mir jedoch nicht möglich zu sein, den Code zu entwickeln, der diese Aktion zulässt.
Unten ist der Beginn meiner Recherche.
Dimmen swApp als Objekt
Sub main()
Legen Sie swApp = Application.SldWorks fest
Legen Sie swmodel = swApp.ActiveDoc fest.
Dim swModelTitle As SldWorks.ModelDoc2
'-------------------------------------------------------------------------------------------------------------
"Überprüfen, ob ein ASM-Dateidokument geöffnet ist
'-------------------------------------------------------------------------------------------------------------
Wenn nicht, ist swmodel nichts, dann", wenn eine SW-Datei geöffnet wird
Debug.Print "eine SW-Datei wird geöffnet" 'dann msg debug und weiter
Ansonsten: MsgBox ("Es ist keine SW-Datei geöffnet, bitte öffnen Sie eine Assembly und starten Sie das Makro neu") 'wenn keine SW-Datei geöffnet => msg
Sub beenden
Ende, wenn
type_doc als Zeichenfolge dimmen
type_doc = swDocumentTypes_e.swDocPART
Debug.Print type_doc
Wenn swmodel. GetType = swDocumentTypes_e.swDocASSEMBLY Dann
Debug.Print "Die geöffnete Datei ist eine Baugruppendatei"
Ansonsten: Debug.Print "Die geöffnete Datei ist keine Assembly-Datei, bitte öffnen Sie eine Assembly, und starten Sie das Makro neu"
MsgBox ("die geöffnete Datei ist keine Assemblerdatei, bitte öffnen Sie eine Assembly und starten Sie das Makro neu")
Sub beenden
Ende, wenn
'----------------------------------------------------------------------------------------------------------
'Abrufen des Dateinamens
'----------------------------------------------------------------------------------------------------------
Pfad als Zeichenfolge dimmen
name_asm als Zeichenfolge dimmen
name_asm = swmodel. GetTitle (Englisch)
Pfad = SWMODEL. GetPathName (Englisch)
Debug.Print "Dateiname: " & name_asm
Debug.Print "Pfad:" & Pfad
Sonne nom_asm
nom_asm = Links(name_asm, (InStrRev(name_asm, ".", -1, vbTextCompare) - 1))
Debug.Print nom_asm
'-----------------------------------------------------------------------------------------------------------
"Erstellung von Aufdruckteilen
'-----------------------------------------------------------------------------------------------------------
nom_pe als Zeichenfolge dimmen
nom_pe = "EMP_" & nom_asm
Debug.Print "Teilename Impressum: " & nom_pe
Sonne new_part
boolstatus = SWMODEL. Extension.SelectByID2("Face Plane", "PLANE", 0, 0, 0, False, 0, Nothing, 0) 'Auswählen der Flächenebene
new_part = swmodel. InsertNewVirtualPart(boolstatus, nom_pe)
sw-Modell verwenden. ForceRebuild3 True
sw-Modell verwenden. AnsichtZoomtofit2
Ende Sub
Der Fehlercode, der in der Zeile new_part = ....
Hast du eine Ahnung, was ich falsch mache???
Ich gebe zu, dass mich das Beispiel der API-Hilfe ratlos zurücklässt...
sans_titre.png