Hallo ihr alle Ich möchte eine solidworks Funktion über eine Excel-Datei mit einem VBA-Makro steuern
Im Anhang befindet sich der Code für die Funktion EditSuppress2(), an der ich interessiert bin. 'Dim-Instanz als IModelDoc 'Dimmwert Als System.Boolean 'Wert = Instanz. BearbeitenUnterdrücken2()
Angehängt ist der Makrodatensatz über die Solidworks Software 'Sub main()
Was Sie anscheinend tun möchten, ist wie eine Familie von Zimmern. Ebenso effizient und einfach ist Excel, das in diesem Zusammenhang bereits nativ SW fährt.
Hier ist ein Beispiel für ein Makro in Excel, mit dem Sie den Namen des in Solidworks geladenen Teils abrufen können:
Sub Macro1()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Set swApp = CreateObject("SldWorks.Application")
swApp.Visible = True
Set swModel = swApp.ActiveDoc
MsgBox swModel.GetTitle
End Sub
Vergessen Sie nicht, die Verweise auf Solidworks im Excel-Makroeditor hinzuzufügen:
Aber ich komme nicht weiter, wenn es darum geht, eine Funktion aus dem Teil zu löschen, es scheint mir, dass ich die Funktion EditSuppress2() verwenden sollte, aber ich kann sie nicht in VBA formatieren, um das Entfernen von Material aus meinem Teil zu entfernen ("Entfernen von mat.-Extru.1@PièceX.Part")
Es ist so, dass Sie ein Objekt haben, das nicht definiert ist, wahrscheinlich "Model".
Warum schreiben Sie "@piecex. Teil" nach dem "Enlevèv. mat.-Extru.1" in der "SelectByID", die "SelectByID2" sein sollte, sowie die "EditSuppress()", die "EditSuppress2()"...
Set Model = swApp.ActiveDoc boolstatus = Model.Extension.SelectByID2("Mat.-Extru.1 entfernt", "BODYFEATURE", 0, 0, 0, Falsch, 0, Nichts, 0) boolstatus = swModel.EditSuppress2()
Vielen Dank für Ihre Antwort, aber ich habe das gleiche Ergebnis
Ich füge meinen gesamten Code an
Dim swApp As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Private Sub CommandButton1_Click()
Set swApp = CreateObject("SldWorks.application")
Set Model = swApp.ActiveDoc
boolstatus = Model.Extension.SelectByID2("Enlèv. mat.-Extru.1", "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = swModel.EditSuppress2()
Part.ClearSelection2 True
End Sub
und ich habe am Ende immer noch den gleichen Fehler "Runtime error "424": Objekt erforderlich