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

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
'################################################# ######################


What statement should I have to target the selection I got in my form for
horizontal or vertical?

Kind regards
Maperalia


"Peter T" wrote:

Sounds like a pair of Optionbuttons is what you are after. These are
mutually exclusive, so with only two only need to trap the change event of
one of them.

Try the following in a new project, code in a userform with controls as
indicated and code "Sub Test()" in a normal module

'''''''' code in Userform1
' with two "wide" option buttons
' named OptionButton1 & OptionButton2
' and a commandbutton

Public gbCtrLineHoriz As Boolean


Private Sub CommandButton1_Click()
' the OK close button
' set Cancel = True in properties
' do any validate stuff here

Me.Hide
End Sub

Private Sub OptionButton1_Change()
gbCtrLineHoriz = OptionButton1.Value

End Sub


Private Sub OptionButton2_Click()

End Sub

Private Sub UserForm_Initialize()
Me.OptionButton1.Value = True

OptionButton1.Caption = "Revolve with Horizontal Centerline"
OptionButton2.Caption = "Revolve with Vertical Centerline"

End Sub
''''' end userform code

'''' code in a normal module
Sub test()
Dim frm As UserForm1
Dim bCtrLineHoriz As Boolean

Set frm = UserForm1 ' triggers initialize event
frm.Show
' modeless form, code waits here
' until user hides or closes the form

' then code reverts here with the form and
' properties still in memory

bCtrLineHoriz = frm.gbCtrLineHoriz

Unload frm
Set frm = Nothing

If bCtrLineHoriz Then
MsgBox "Horizontal"
Else
MsgBox "Vertical"
End If

End Sub

''' end code normal module

From what I gather, the Multipage and its pages is not directly relavant as
far as any code is concerned.

Regards,
Peter T







"Maperalia" wrote in message
...
Peter;

I do apologize for giving you a hard time. I believe that I am not
choosing
the right path to accomplish what I am looking for.
Let me explain you what exactly I have and what I want to achieve.

I recorded a macro using VBA in Solid Works. Solid Works is a 3D CAD solid
modeling. The macro I recorded has the followed steps to create the solid
part I need:
1.- Draw a sketch. It has lines and arcs.
2.- Draw a centerline in horizontal position This centerline is located 5
inches from the center of the sketch (is called distance).
3.- Revolve the sketch with angle of 90 degrees selecting the horizontal
line.
4.- Draw a centerline in vertical position. This centerline is located 5
inches from the center of the sketch (is called distance too).
5.- Revolve the sketch with angle of 90 degrees selecting the vertical
line.

The sketch is a constant (WILL NEVER CHANGE). However, the location
(distance) of the horizontal centerline and vertical centerline line will
change along with the angle.

Basically, what I want to achieve is the following:
1.- Have window message where I will have an option to choose in what
direction I want to revolve. Could be call:
* "Revolve with Horizontal Centerline" or
* "Revolve with Vertical Centerline".
If I choose revolve with horizontal centerline just this statement will
work
and I want the statement which has revolve with vertical centerline
blocked.
In another hand, If I choose revolve with vertical centerline just this
statement will work and I want the statement which has revolve with
horizontal centerline blocked.

2.- After I selected which direction to revolve. I need to entry the
values.
The form will ask me for:
* Distance, and
* Angle.

The form to entry the values was created already (see the previous post I
sent you). However, I do not know how to create the option to select
revolve
with vertical or horizontal centerline.
Do you think you can help me to create this option? I will really
appreciate
it.

Kind regards.
Maperalia


"Peter T" wrote:

I'm afraid I don't follow what you are trying to do. You say page1 and
page2
both use the same object's code (the OK button's code), but pages don't
"use" anything.

What controls do you have on each page and what's their objective. Better
still what's the overall objective.

Regards,
Peter T


"Maperalia" wrote in message
...
Peter;
You are absolutely right I did not interpret it correctly. I sorry my
skills
level of VBA is low. I have done simple macros; however, this is first
time
I am working with forms.
This is the code of my object that I current have:

'#### Start Object's Code ########
Public Vertical_Line As Double
Public Horizontal_Line As Double
Public Distance As Double
Public Angle As Double

Private Sub bOK_Click()
Make sure the user is entering numbers and not text
If IsNumeric(txtDistance.Text) And IsNumeric(txtAngle.Text) Then
Distance = txtDistance.Text
Angle = txtAngle.Text
Hide
Else
MsgBox "You must enter numeric values for all fields"
End If
End Sub
'#### End Object's Code ########


The multipages form, page1 and page2 will use the same object's code
(shown
above). The different is that page1 uses horizontal values in my
drawing
and
page2 uses vertical values in my drawing. Could you please tell me how
to
trap it the event?.
Also, in my macro I do not know how to make it work. Basically, when:
1.- I click page 1 and enter the values I want it to go to specific
statement in my module.
2.- I click page 2 and enter the values I want it to go to other
specific
statement in my module.

This is the statement I have in my module for the form:
'#### Start User form ################################
Dim RevolveDistance As Double
Dim RevAngle As Double
Dim newForm As New frmRevolve

newForm.Caption = "Enter Values in Inches"
newForm.Show
RevolveDistance = newForm.Distance / 39.37008
RevolveAngle = newForm.Angle / 57.29577951 'Converting From Radians
to
Degrees
Set newForm = Nothing
'#### End User form #####################################


Kind regards.
Maperalia


"Peter T" wrote:

I guess(?) you mean you have one Multipage control, named
"MultiPage1",
which has two pages. Your concept is wrong, you trap events for the
entire
MultiPage, not individual pages. The code I gave you will tell you
which
page the user has selected, if indeed you actually need to know that.
So

Note the current page is indicated by the MultiPage's Value property,
the
first page has value 0, the second page is 1, etc

Normally you will place additional controls on each page and trap
their
events as needed.

In addition, could yiou please tell me what statement I need to
write
in
my
module to recognize this form?

I don't follow this, what do you want to "recognize", where from and
when.

Regards,
Peter T


"Maperalia" wrote in message
...
Peter;
Thanks for your quick response.
According to the information you just gave me. Mlutipages is the
more
suitable for me. I copied the code to use this form. Correct me if I
wrong, I
understood that since I have two pages I will use the following:

'###Start of 1st Page ###################
Private Sub MultiPage1_Change()
With MultiPage1
Me.Caption = .Value & " " & .Pages(.Value).Name
End With
End Sub
'#### End of 1st Page ###################

'### Start of 2nd Page ###################
Private Sub MultiPage2_Change()
With MultiPage1
Me.Caption = .Value & " " & .Pages(.Value).Name
End With
End Sub
'#### End of 2nd Page ##################


In addition, could yiou please tell me what statement I need to
write
in
my
module to recognize this form?

Thanks.
Maperalia










"Peter T" wrote:

Waht is the different between TabStrip and Multipage?. When do I
know
which
one to use?..