View Single Post
  #14   Report Post  
Posted to microsoft.public.excel.programming
maperalia maperalia is offline
external usenet poster
 
Posts: 258
Default TabSritp & Multipage

Peter;
I got help from other source and the y told the following:

Set Part = swApp.ActiveDoc line is returning Nothing, meaning the instance
of SW that your program is hooking to has no open/active document. Change
CreateObject() to GetObject() to hook to an active SW not create a new
instance.

I did ths however, I got the following error message that you may know what
does is means:
Run-time error '-2147221020(800401e4)':
Automation error
Invalid Syntax

After I click "DEBUG" it is highlighting at the following statement:

Set swApp = GetObject("SldWorks.Application")

Could you please tell me what is the syntax error I have?


"Peter T" wrote:

If I follow the problem is here

Run-tim error '91':
Object variable or with block variable not set.
Then when I click debug. It is highligthing at:
boolstatus = Part.Extension.SelectByID2("Sketch1", "SKETCH", 0, 0, 0,
False,
0, Nothing, 0)


Effectively earlier you had done
Set Part = Application.SldWorks.ActiveDoc
so presumably ' Part ' fully refers to ActiveDoc

Trouble is I know nothing about "SldWorks" and "ActiveDoc" or even which
application you are running this VBA. As a guess I'd look to see if
"Extension" exists as a child object of Part (ie ActiveDoc)

Dim obj as Object
' code
Set Part = etc
Set obj = Part.Extension
msgbox Not obj Is Nothing

I could be on the wrong track, maybe you need to do something else when user
switches Optionbuttons and just before calling those macros.

Regards,
Peter T



"Maperalia" wrote in message
...
Peter'
I plotted the wrong macro. Please discard the previous one.

The macro1 is:


'### START OF MACRO1 ########
Sub Revolve_Vertical_Centerline()

Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim myFeature As Object

Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc

boolstatus = Part.Extension.SelectByID2("Sketch1", "SKETCH", 0, 0, 0,
False,
0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line34@Sketch1",
"EXTSKETCHSEGMENT", 0.08887711938888, -0.01670467080663, 0, True, 0,
Nothing,
0)
boolstatus = Part.Extension.SelectByID2("Sketch1", "SKETCH", 0, 0, 0,
False,
0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line34@Sketch1",
"EXTSKETCHSEGMENT", 0.08887711938888, -0.01670467080663, 0, True, 4,
Nothing,
0)

boolstatus = Part.Extension.SelectByID2("Sketch1<2", "SKETCH", 0, 0, 0,
True, 0, Nothing, 0)
Set myFeature = Part.FeatureManager.FeatureRevolve(1.570796326795, False,
0,
0, 0, True, True, True)
Part.SelectionManager.EnableContourSelection = False

Part.ClearSelection2 True
Part.ShowNamedView2 "*Trimetric", 8


End Sub
'### END OF MACRO1 ########

"Maperalia" wrote:

Peter;
Thanks for your quick response. I followed your advise and is fixed it.
I added the following in the code you sent me:

Private Sub OptionButton1_Change()
gbCtrLineHoriz = OptionButton1.Value
If gbCtrLineHoriz Then
Call macro1
Else
Call macro2
End If
End Sub

However, after I ran I got the following error message:

Run-tim error '91':
Object variable or with block variable not set.

Then when I click debug. It is highligthing at:
boolstatus = Part.Extension.SelectByID2("Sketch1", "SKETCH", 0, 0, 0,
False,
0, Nothing, 0)

This statement is located in the macro1 which is:


'###### START OF MACRO1 #############

Sub Revolve_Horizontal_Center()
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim myFeature As Object


Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc


boolstatus = Part.Extension.SelectByID2("Line33", "SKETCHSEGMENT",
0.003588671546553, -0.03123281095829, 0.02897111198368, True, 0, Nothing,
0)

boolstatus = Part.Extension.SelectByID2("Line33", "SKETCHSEGMENT",
0.003588671546553, -0.03123281095829, 0.02897111198368, False, 4,
Nothing, 0)

boolstatus = Part.Extension.SelectByID2("Sketch1", "SKETCH", 0, 0, 0,
True,
0, Nothing, 0)

Set myFeature = Part.FeatureManager.FeatureRevolve(1.570796326795, False,
0,
0, 0, True, True, True)
Part.SelectionManager.EnableContourSelection = False

Part.ClearSelection2 True
Part.ShowNamedView2 "*Trimetric", 8

End Sub
'###### END OF MACRO1 #############

Could you please tell me how to fix it?
Thanks
Kind regards.

Maperalia

"Peter T" wrote:

It probably means you do not have an Optionbutton named "OptionButton1"
on
the form.

Regards,
Peter T

"Maperalia" wrote in message
...
Peter;
Thanks for the additional code. I added in my macro and after I ran I
got
the following error message:

Run-time error '424':
Object Required

Then I click debug and it is highligthing at the following statement:

gbCtrLineHoriz = OptionButton1.Value

What does is mean? and how can I fix it please ?..

Kinr regards.
Maperalia


"Peter T" wrote:

I'm glad the previous suggestion worked for you, based on what you
had
described it didn't need too much mind reading!

But this time I have no idea what you are trying to say, all the
code you
quote does not mean anything to me.

If, and this is just a guess, you want to do something when user
changes
an
OptionButton -

Private Sub OptionButton1_Change()
gbCtrLineHoriz = OptionButton1.Value

If gbCtrLineHoriz Then
' call routine to do horizontal stuff
Else
' call routine to do vertical stuff
End If

End Sub


Previously in the form's Initialize event I suggested you do
Me.OptionButton1.Value = True

but don't do that, instead do

gbCtrLineHoriz = True

and ensure OptionButton1 is selected (its Value property = True) at
design
time.

Regards,
Peter T


"Maperalia" wrote in message
...
Peter;

OHHH!! My God you are amazing. You read my mind in this theme.
This is
exactly the form I was looking for. Thank you very much. I know
now
that I
was completely lost. I ran it and I got the message I need without
problem.

However, I would like to know how to point the selection
(horizontal or
vertical) directly to the statement because when I choose
horizontal in
the
form I got horizontal revolve and when I choose vertical in the
form I
got
horizontal revolve too.

These are the statements I have to revolve the sketch using the
horizontal
or vertical direction:

'######## Select Horizontal Centerline and Sketch1 to Revolve it
############
'Select Horizontal Centerline
boolstatus = Part.Extension.SelectByID2("Line2",
"SKETCHSEGMENT",
-0.04111859620927, -0.1015753044947, 0, False, 4, Nothing, 0)
= RevDistance ' CHANGED
THIS
TO
MY
VAR
'Select Sketch1
boolstatus = Part.Extension.SelectByID2("Sketch1", "SKETCH", 0,
0, 0,
True, 0, Nothing, 0)
'Revolve it
Dim myFeature As Object
'Part.FeatureManager.FeatureRevolve RevAngle, False, 0, 0, 0, 1,
1, 1 '
CHANGED THIS TO MY VAR
Set myFeature =
Part.FeatureManager.FeatureRevolve(1.570796326795,
False,
0, 0, 0, True, True, True)
Part.SelectionManager.EnableContourSelection = False
'################################################# ######################


'######## Select Vertical Centerline and Sketch1 to Revolve it
############
'Select Vertical Centerline
boolstatus = Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT",
0.142235, 0.044925, 0, False, 4, Nothing, 0)
= RevDistance ' CHANGED
THIS
TO
MY
VAR
'Select Sketch1
boolstatus = Part.Extension.SelectByID2("Sketch1", "SKETCH", 0,
0, 0,
True, 0, Nothing, 0)
'Revolve it
'Dim myFeature As Object
'Part.FeatureManager.FeatureRevolve RevAngle, False, 0, 0, 0, 1,
1, 1 '
CHANGED THIS TO MY VAR
Set myFeature =
Part.FeatureManager.FeatureRevolve(1.570796326795,
False,
0, 0, 0, True, True, True)
Part.SelectionManager.EnableContourSelection = False