Hallo,
mit Eurer Hilfe bin ich in meinem Problem sicherlich einen Schritt weiter, doch auch schon wieder beim nächsten Problem angelangt. Zur Erinnerung: Ich will Solid Works über ein Makro in Excel steuern. Dazu soll dieses bei click eines Buttons ausgeführt werden. (bestimmte Datei öffnen und dort Arbeitsschritte ausführen). Dazu bin ich bisher bei folgendem VBA Code für einen kleinen Test:
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim FeatureData As Object
Dim Feature As Object
Dim Component As Object
Private Sub CommandButton1_Click()
Dateiname = ActiveWorkbook.Path & "\" & Cells(1, 1)
Erweiterung = LCase(Right(Cells(1, 1), 7))
If Erweiterung = ".sldprt" Then
Shell "C:\Programme\SolidWorks\SLDWORKS.exe " & ActiveWorkbook.Path & "\" & Cells(1, 1), 3
End If
Set swApp = CreateObject("SldWorks.Application")
Set Part = swApp.ActiveDoc
swApp.ActiveDoc.ActiveView.FrameState = 1
boolstatus = Part.Extension.SelectByID("Punkt1@Ursprung", "EXTSKETCHPOINT", 0, 0, 0, False, 0, Nothing)
boolstatus = Part.Extension.SelectByID("Ebene vorne", "PLANE", 0, 0, 0, False, 0, Nothing)
Part.InsertSketch2 True
Part.ClearSelection2 True
Part.SketchRectangle 0, 0, 0, 0.03441029143898, 0.04896092896175, 0, 1
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID("Line4", "SKETCHSEGMENT", 0.03480355191257, 0.03519681238616, 0, False, 0, Nothing)
Set Annotation = Part.AddDimension2(0.0603655, 0.0214327, 0)
Part.ClearSelection2 True
Part.Parameter("D1@Skizze1").SystemValue = 0.05
boolstatus = Part.Extension.SelectByID("Line3", "SKETCHSEGMENT", 0.01632030965392, 0.04974744990893, 0, False, 0, Nothing)
Set Annotation = Part.AddDimension2(0.0163203, 0.0796352, 0)
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID("D1@Skizze1@Teil2.SLDPRT", "DIMENSION", 0, 0, 0, False, 0, Nothing)
Part.Parameter("D2@Skizze1").SystemValue = 0.1
Part.ClearSelection2 True
Part.InsertSketch2 True
Part.ShowNamedView2 "*Trimetrisch", 8
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID("Skizze1", "SKETCH", 0, 0, 0, False, 0, Nothing)
Part.FeatureManager.FeatureExtrusion True, False, False, 0, 0, 0.01, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 1, 1, 1
Part.SelectionManager.EnableContourSelection = 0
End Sub
Dieser steht nun innerhalb des Buttons in Excel. Betätige ich aber den Button in Excel, so meldet er mir folgenden Fehler:
Objektvariable oder With-Blockvariable nicht festgelegt
Dazu verweist der Debugger auf die Zeile mit dem Argument: swApp.ActiveDoc.ActiveView.FrameState = 1
Leider habe ich keine wirklich Ahnung von VBA und weiß nun nicht wie ich das Problem beheben kann.
Vielleicht kann mir ja jemand helfen.
Danke Tobias
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP