Hallo zusammen, ich versuche eine Welle über ein Makro zu generieren, dabei soll eine skizze mit punkten aus einer Exceltabelle erzeugt werden. Leider gelingt mir das einlesen der Werte auf teufel komm raus nicht
Bekomme folgende Fehlermeldung: Laufzeitfehler '424' Objekt erforderlich.
Ich benutze Solidworks 2017 und Excel 2010
Und ja, wie ihr am Code seht bin ich noch blutiger Anfänger, später soll das Makro mit einer For- Schleife die Excel tabelle durchgehen und so beliebig viele Wellenabsätze zeichnen.
hier der Code:
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Sub main()
Set swApp = Application.SldWorks
' New Document
Dim swSheetWidth As Double
swSheetWidth = 0
Dim swSheetHeight As Double
swSheetHeight = 0
Set Part = swApp.NewDocument("C:\ProgramData\SolidWorks\SOLIDWORKS 2017\templates\Teil.prtdot", 0, swSheetWidth, swSheetHeight)
Dim swPart As PartDoc
Set swPart = Part
swApp.ActivateDoc2 "Teil13", False, longstatus
Set Part = swApp.ActiveDoc
Dim myModelView As Object
Set myModelView = Part.ActiveView
boolstatus = Part.Extension.SelectByID2("Ebene vorne", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.SketchManager.InsertSketch True
Dim oExcelApp As Object
Set oExcelApp = CreateObject("Excel.Application")
Dim xe
Dim ye
Dim ze
Dim xa
Dim ya
Dim za
xe = 0
ye = 0
ze = 0
xa = 0
ya = Excel.Range("A2").Select
za = 0
Dim skSegment As Object
Set skSegment = Part.SketchManager.CreateLine(xe, ye, ze, xa, ya, za)
boolstatus = Part.Extension.SketchBoxSelect("-0.005689", "0.033915", "0.000000", "0.009289", "0.001819", "0.000000")
boolstatus = Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 8.79971622997355E-05, 2.08624876114965E-02, 0, False, 0, Nothing, 0)
Part.SketchManager.InsertSketch True
End Sub
Als quelle dient eine geöffnete Exceltabelle, oder muss ich doch einen konkreten Pfad angeben?
Vielen Dank schonmal,
Gruß JWBM
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP