The currently open document is checked if it is of Draft type. If it is not then an error message is displayed.
If Not TypeOf oDoc Is SolidEdgeDraft.DraftDocument Then
MessageBox.Show("A Draft document should be open.", sTitle, MessageBoxButtons.OK, MessageBoxIcon.Error)
Me.Close()
If the document is indeed of Draft type, the currently selected object is stored in a selection set.
Else
oSSetSource = oDoc.SelectSet
oSSetSource is a variable of type SelectSet which stores one or more currently selected objects. Even when there are no objects selected, the SelectSet collection exists, with a count of 0.
Dim oSSetSource As SolidEdgeFramework.SelectSet
Other required variables for the program are declared as below:
oSSetDestination for storing objects to which the properties will be matched.
Dim oSSetDestination As SolidEdgeFramework.SelectSet
oSource and oDestin store a single object from the selection sets at source and destination.
Dim oSource As Object
Dim oDestin As Object
We want to match four properties from the source to destination viz. the Layer, Color, Line width and the Line type. The variables to store these are as below:
Dim sLayer As String
Dim iColor As Integer
Dim dWidth As Double
Dim sLtype As String
There can be only one source object. So the selection set is checked accordingly:
If oSSetSource.Count > 1 Then
MessageBox.Show("Select only one source object.", sTitle, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Me.Close()
ElseIf oSSetSource.Count <= 0 Then
MessageBox.Show("Select a source object first.", sTitle, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Me.Close()
If the count of selected objects when the Form loads is greater than 1, the user is informed accordingly and the program terminates: Me.Close()
Also if no object is selected i.e. the count is 0 the program terminates too after displaying a message.
Further, if it is found that only one object was selected, the type of the selected object is checked as below and its 4 properties are stored in the respective variables:
ElseIf oSSetSource.Count = 1 Then
oSource = oSSetSource.Item(1)
If TypeOf oSource Is SolidEdgeFrameworkSupport.Line2d Or _
TypeOf oSource Is SolidEdgeFrameworkSupport.Arc2d Or _
TypeOf oSource Is SolidEdgeFrameworkSupport.Circle2d Or _
TypeOf oSource Is SolidEdgeFrameworkSupport.Ellipse2d Or _
TypeOf oSource Is SolidEdgeFrameworkSupport.EllipticalArc2d Or _
TypeOf oSource Is SolidEdgeFrameworkSupport.BSplineCurve2d Or _
TypeOf oSource Is SolidEdgeFrameworkSupport.Point2d Then
sLayer = oSource.Layer
iColor = oSource.Style.LinearColor
dWidth = oSource.Style.Width
sLtype = oSource.Style.DashName
Finally if the source object is not one of the allowed types, the program terminates again.
Else
MessageBox.Show("Not a valid source object.", sTitle, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Me.Close()
End If
No comments:
Post a Comment