I am trying to write a for loop that rotates a component in steps of 20 degrees about an axis with it's center as the center of rotation. I've managed to write the following macro:
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Object
Dim longstatus As Long, longwarnings As Long
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Dim COSMOSWORKSObj As Object
Dim CWAddinCallBackObj As Object
Set CWAddinCallBackObj = swApp.GetAddInObject("CosmosWorks.CosmosWorks")
Set COSMOSWORKSObj = CWAddinCallBackObj.COSMOSWORKS
Dim myModelView As Object
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Dim myFeature As Object
Dim OPFolder As String
Dim i As Integer
For i = 1 To 18
boolstatus = Part.Extension.SelectByID2("cap.STEP", "SOLIDBODY", 0, 0, 0, False, 1, Nothing, 0)
Set myFeature = Part.FeatureManager.InsertMoveCopyBody2(0, 0, 0, 0, 0, 2.20016092441915E-02, 0.0185, 0, 0, 0.349065850398867, False, 1)
OPFolder = "\\nas01.itap.purdue.edu\puhome\desktop\testrun\images\cap_" & i
longstatus = Part.SaveAs3(OPFolder & ".JPG", 0, 0)
Next i
Set CWAddinCallBackObj = Nothing
Set COSMOSWORKSObj = Nothing
End Sub
But it throws an error saying "Object variable or With block variable not set" at the first line inside the for loop
I am unable to figure out the error or how to debug it. Also, I was wondering if there's a way to rotate the component by center without actually specifying the coordinates of the center. Since I'd be using the same code for several files, I'd want it to be generic.
SolidworksApi/macros