0

I'm trying to run a Solid-Works VBA macro, should be an easy fix, however I don't know what to change.

When I run the code the code error's with the

Run-time error '91'

Object variable or With block variable not set

When I click debug it shows me this line

Set Part = swApp.ActiveDoc

I truly do not know where to look, what to do, that might be causing, so any help is much appreciated. The essential parts of the code can be seen below (where the ... indicates missing code, which is the same structure as the other functions). The full code can be see here: Macro_Source_File

Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Sub main()
Set swApp = CreateObject("SldWorks.Application")
Set Part = swApp.ActiveDoc
Proc1
Proc2
Proc3
Proc4
Proc5
Proc6
Proc7
Proc8
Proc9
Proc10
Proc11
Proc12
Proc13
Proc14
Proc15
Proc16
Proc17
Proc18
Proc19
Proc20
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Curve1", "REFERENCECURVES", -0.00231262, -0.00182843, 0.020955, False, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Curve2", "REFERENCECURVES", -0.0021168, -0.00236411, 0.02720474, True, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Curve3", "REFERENCECURVES", -0.00223617, -0.0027144, 0.03345447, True, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Curve4", "REFERENCECURVES", -0.00249537, -0.00287881, 0.03970421, True, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Curve5", "REFERENCECURVES", -0.00282783, -0.00287835, 0.04595395, True, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Curve6", "REFERENCECURVES", -0.00351723, -0.00287119, 0.05220368, True, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Curve7", "REFERENCECURVES", -0.0055227, -0.0032572, 0.05845342, True, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Curve8", "REFERENCECURVES", -0.00756485, -0.0034921, 0.06470316, True, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Curve9", "REFERENCECURVES", -0.00948977, -0.00359409, 0.07095289, True, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Curve10", "REFERENCECURVES", -0.01123743, -0.00358632, 0.07720263, True, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Curve11", "REFERENCECURVES", -0.01275123, -0.00349398, 0.08345237, True, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Curve12", "REFERENCECURVES", -0.01289014, -0.00310294, 0.08970211, True, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Curve13", "REFERENCECURVES", -0.01208902, -0.00258381, 0.09595184, True, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Curve14", "REFERENCECURVES", -0.01103539, -0.00209482, 0.10220158, True, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Curve15", "REFERENCECURVES", -0.00978747, -0.00163788, 0.10845132, True, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Curve16", "REFERENCECURVES", -0.00828882, -0.00121351, 0.11470105, True, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Curve17", "REFERENCECURVES", -0.00686848, -0.00083556, 0.12095079, True, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Curve18", "REFERENCECURVES", -0.00678812, -0.00066149, 0.12720053, True, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Curve19", "REFERENCECURVES", -0.00585563, -0.00585251, 0.13245522, True, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Curve20", "REFERENCECURVES", -0.00522598, -0.01340759, 0.13263761, True, 1, Nothing, 0)
Part.FeatureManager.InsertProtrusionBlend False, True, False, 1, 6, 6, 1, 1, True, True, False, 0, 0, 0, True, True, True
End Sub

Sub Proc1()
Set Part = swApp.ActiveDoc
Part.InsertCurveFileBegin
boolstatus = Part.InsertCurveFilePoint(-0.00231262, -0.00182843, 0.020955)
boolstatus = Part.InsertCurveFilePoint(-0.00232201, -0.00179355, 0.020955)
boolstatus = Part.InsertCurveFilePoint(-0.0023492, -0.00169261, 0.020955)
boolstatus = Part.InsertCurveFilePoint(-0.00193825, -0.00141403, 0.020955)
boolstatus = Part.InsertCurveFilePoint(-0.001174, -0.00099736, 0.020955)
boolstatus = Part.InsertCurveFilePoint(-0.00022623, -0.00050828, 0.020955)
boolstatus = Part.InsertCurveFilePoint(0.00087785, 0.00002491, 0.020955)
boolstatus = Part.InsertCurveFilePoint(0.00210496, 0.00057278, 0.020955)
boolstatus = Part.InsertCurveFilePoint(0.00341658, 0.00110609, 0.020955)
boolstatus = Part.InsertCurveFilePoint(0.00477003, 0.00159708, 0.020955)
boolstatus = Part.InsertCurveFilePoint(0.00612951, 0.00202043, 0.020955)
boolstatus = Part.InsertCurveFilePoint(0.00745767, 0.00233337, 0.020955)
boolstatus = Part.InsertCurveFilePoint(0.00869064, 0.00252003, 0.020955)
boolstatus = Part.InsertCurveFilePoint(0.00977735, 0.0025858, 0.020955)
boolstatus = Part.InsertCurveFilePoint(0.01067256, 0.00254594, 0.020955)
boolstatus = Part.InsertCurveFilePoint(0.01134017, 0.00242162, 0.020955)
boolstatus = Part.InsertCurveFilePoint(0.01175535, 0.00223452, 0.020955)
boolstatus = Part.InsertCurveFilePoint(0.01190555, 0.00200133, 0.020955)
boolstatus = Part.InsertCurveFilePoint(0.01190555, 0.00200133, 0.020955)
boolstatus = Part.InsertCurveFilePoint(0.01178923, 0.00175006, 0.020955)
boolstatus = Part.InsertCurveFilePoint(0.01141567, 0.00150298, 0.020955)
boolstatus = Part.InsertCurveFilePoint(0.01080407, 0.00126068, 0.020955)
boolstatus = Part.InsertCurveFilePoint(0.00998055, 0.00102135, 0.020955)
boolstatus = Part.InsertCurveFilePoint(0.00897647, 0.00077979, 0.020955)
boolstatus = Part.InsertCurveFilePoint(0.00782706, 0.0005274, 0.020955)
boolstatus = Part.InsertCurveFilePoint(0.00657067, 0.00025367, 0.020955)
boolstatus = Part.InsertCurveFilePoint(0.00523448, -0.00004854, 0.020955)
boolstatus = Part.InsertCurveFilePoint(0.00386212, -0.00035713, 0.020955)
boolstatus = Part.InsertCurveFilePoint(0.0025091, -0.00066457, 0.020955)
boolstatus = Part.InsertCurveFilePoint(0.00122199, -0.00096449, 0.020955)
boolstatus = Part.InsertCurveFilePoint(0.00004512, -0.00124691, 0.020955)
boolstatus = Part.InsertCurveFilePoint(-0.00098083, -0.00149976, 0.020955)
boolstatus = Part.InsertCurveFilePoint(-0.00181994, -0.00171086, 0.020955)
boolstatus = Part.InsertCurveFilePoint(-0.00231106, -0.00183422, 0.020955)
boolstatus = Part.InsertCurveFilePoint(-0.00231224, -0.00182982, 0.020955)
boolstatus = Part.InsertCurveFilePoint(-0.00231262, -0.00182843, 0.020955)
boolstatus = Part.InsertCurveFileEnd()
boolstatus = Part.SelectedFeatureProperties(0, 0, 0, 0, 0, 0, 0, 1, 0, "Curve1")
End Sub

Sub Proc2()
Set Part = swApp.ActiveDoc
Part.InsertCurveFileBegin
boolstatus = Part.InsertCurveFilePoint(-0.0021168, -0.00236411, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(-0.00213034, -0.00232574, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(-0.00216954, -0.00221468, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(-0.00223031, -0.00204246, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(-0.00167844, -0.00160452, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(-0.00065574, -0.00097391, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(0.00053875, -0.00028036, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(0.00187018, 0.00044021, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(0.00329779, 0.0011517, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(0.00477601, 0.00181922, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(0.00626681, 0.00241128, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(0.00773188, 0.00287663, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(0.00910086, 0.00319197, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(0.0103159, 0.00335898, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(0.01132489, 0.00339094, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(0.01208546, 0.00330851, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(0.01256786, 0.00313392, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(0.01275656, 0.00288487, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(0.01275656, 0.00288487, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(0.01264744, 0.00259265, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(0.012249, 0.00228309, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(0.01158277, 0.00195851, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(0.01067824, 0.00161909, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(0.00957108, 0.00126169, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(0.0083016, 0.00087967, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(0.00691378, 0.00046452, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(0.00543877, 0.00001052, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(0.00392367, -0.00045373, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(0.0024302, -0.00091504, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(0.00101012, -0.00136224, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(-0.00028764, -0.00178035, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(-0.00141839, -0.00215231, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(-0.00211132, -0.00237963, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(-0.00211455, -0.00237048, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(-0.00211626, -0.00236563, 0.02720474)
boolstatus = Part.InsertCurveFilePoint(-0.0021168, -0.00236411, 0.02720474)
boolstatus = Part.InsertCurveFileEnd()
boolstatus = Part.SelectedFeatureProperties(0, 0, 0, 0, 0, 0, 0, 1, 0, "Curve2")
End Sub

.
.
.

Sub Proc20()
Set Part = swApp.ActiveDoc
Part.InsertCurveFileBegin
boolstatus = Part.InsertCurveFilePoint(-0.00522598, -0.01340759, 0.13263761)
boolstatus = Part.InsertCurveFilePoint(-0.00522724, -0.01340759, 0.1326561)
boolstatus = Part.InsertCurveFilePoint(-0.00523089, -0.01340759, 0.13270962)
boolstatus = Part.InsertCurveFilePoint(-0.00523654, -0.01340759, 0.13279261)
boolstatus = Part.InsertCurveFilePoint(-0.00524364, -0.01340759, 0.13289681)
boolstatus = Part.InsertCurveFilePoint(-0.00525152, -0.01340759, 0.13301238)
boolstatus = Part.InsertCurveFilePoint(-0.00525946, -0.01340759, 0.13312893)
boolstatus = Part.InsertCurveFilePoint(-0.00465279, -0.01340759, 0.13327821)
boolstatus = Part.InsertCurveFilePoint(-0.00393952, -0.01340759, 0.13341622)
boolstatus = Part.InsertCurveFilePoint(-0.00320939, -0.01340759, 0.13352877)
boolstatus = Part.InsertCurveFilePoint(-0.00248296, -0.01340759, 0.13360667)
boolstatus = Part.InsertCurveFilePoint(-0.00178327, -0.01340759, 0.13363211)
boolstatus = Part.InsertCurveFilePoint(-0.00114406, -0.01340759, 0.13360345)
boolstatus = Part.InsertCurveFilePoint(-0.0005905, -0.01340759, 0.13352848)
boolstatus = Part.InsertCurveFilePoint(-0.00014384, -0.01340759, 0.13341938)
boolstatus = Part.InsertCurveFilePoint(0.00017986, -0.01340759, 0.1332904)
boolstatus = Part.InsertCurveFilePoint(0.00037024, -0.01340759, 0.13315493)
boolstatus = Part.InsertCurveFilePoint(0.00042266, -0.01340759, 0.13302262)
boolstatus = Part.InsertCurveFilePoint(0.00042266, -0.01340759, 0.13302262)
boolstatus = Part.InsertCurveFilePoint(0.00033912, -0.01340759, 0.1329077)
boolstatus = Part.InsertCurveFilePoint(0.0001265, -0.01340759, 0.13282048)
boolstatus = Part.InsertCurveFilePoint(-0.00020546, -0.01340759, 0.13275933)
boolstatus = Part.InsertCurveFilePoint(-0.0006438, -0.01340759, 0.13272076)
boolstatus = Part.InsertCurveFilePoint(-0.00117325, -0.01340759, 0.13269902)
boolstatus = Part.InsertCurveFilePoint(-0.00177694, -0.01340759, 0.13268629)
boolstatus = Part.InsertCurveFilePoint(-0.0024366, -0.01340759, 0.13267345)
boolstatus = Part.InsertCurveFilePoint(-0.00313926, -0.01340759, 0.13265421)
boolstatus = Part.InsertCurveFilePoint(-0.00386076, -0.01340759, 0.13263536)
boolstatus = Part.InsertCurveFilePoint(-0.00457242, -0.01340759, 0.13261517)
boolstatus = Part.InsertCurveFilePoint(-0.00522301, -0.01340759, 0.13259405)
boolstatus = Part.InsertCurveFilePoint(-0.00522417, -0.01340759, 0.13261114)
boolstatus = Part.InsertCurveFilePoint(-0.00522496, -0.01340759, 0.13262275)
boolstatus = Part.InsertCurveFilePoint(-0.00522547, -0.01340759, 0.13263013)
boolstatus = Part.InsertCurveFilePoint(-0.00522577, -0.01340759, 0.13263454)
boolstatus = Part.InsertCurveFilePoint(-0.00522593, -0.01340759, 0.13263688)
boolstatus = Part.InsertCurveFilePoint(-0.00522598, -0.01340759, 0.13263761)
boolstatus = Part.InsertCurveFileEnd()
boolstatus = Part.SelectedFeatureProperties(0, 0, 0, 0, 0, 0, 0, 1, 0, "Curve20")
End Sub

Thank you so much !

1
  • Did you edit the question to include my answer or because you made a copy/paste error the first time? Commented Aug 17, 2016 at 18:31

2 Answers 2

3

it means that swApp is Nothing because you did not actually create it.

Heres how to do it :

 Set swApp = CreateObject("SldWorks.Application")

Source : Taken straight from the doc

Sign up to request clarification or add additional context in comments.

12 Comments

Then what does Set swApp = Application.SldWorks do?
@GSerg From what i can find on the internet, it returns the currently running SolidWork instance. And (probably) nothing if it is not running.
I tried what you said, and it still pops up with the same error, when I hover the mouse over debug'd line, it say's 'Part = Nothing'. How do I set the part as a GLOBAL variable, that each function can access ??
@UndergradEngineer23 global variables are to be avoided at all cost. It would be better practice to add it as a parameter to the subs
@UndergradEngineer23 did it at least change the line where it happended?
|
0

You're setting a variable to a nothing.

Better do this way (with early binding):

Dim swApp as SldWorks.SldWorks
Set swApp = Application.SldWorks

This would allow you to utilize intellisense.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.