Solid Edge Part Type Library
Reorder Method
Specifies the feature object for which the referenced feature object is to be inserted in front of or behind.
Specifies if the active feature object is to be placed before or after the target object. If this argument is True, the active feature object is inserted before the target object. If this argument is False, the feature object is placed after the target object.
Description
Inserts the referenced object in front of or behind another feature.
Syntax
Visual Basic
Public Sub Reorder( _
   ByVal TargetFeature As Object, _
   ByVal InsertBefore As Boolean _
) 
Parameters
TargetFeature
Specifies the feature object for which the referenced feature object is to be inserted in front of or behind.
InsertBefore
Specifies if the active feature object is to be placed before or after the target object. If this argument is True, the active feature object is inserted before the target object. If this argument is False, the feature object is placed after the target object.
Example
Private Sub Form_Load()
    Dim objApp As SolidEdgeFramework.Application
    Dim objDoc As SolidEdgePart.PartDocument
    Dim objProf1 As SolidEdgePart.Profile
    Dim objProf2 As SolidEdgePart.Profile
    Dim objProfile(1 To 2) As SolidEdgePart.Profile
    Dim objExtProt2 As SolidEdgePart.ExtrudedProtrusion
    Dim objExtProt3 As SolidEdgePart.ExtrudedProtrusion
    Dim objModel As SolidEdgePart.Model
    Dim objLines As SolidEdgeFrameworkSupport.Lines2d
    Dim objRelns As SolidEdgeFrameworkSupport.Relations2d
    Dim objRefPln1 As SolidEdgePart.RefPlane
    Dim objRefPln2 As SolidEdgePart.RefPlane
    ' Report errors
    Const PI = 3.14159265358979
    ' Create/get the application with specific settings
    On Error Resume Next
    Set objApp = GetObject(, "SolidEdge.Application")
    If Err Then
        Err.Clear
        Set objApp = CreateObject("SolidEdge.Application")
        Set objDoc = objApp.Documents.Add("SolidEdge.PartDocument")
        objApp.Visible = True
    Else
        Set objDoc = objApp.ActiveDocument
    End If
    'Draw the Base Profile
    Set objProfile(1) = objDoc.ProfileSets.Add.Profiles.Add(pRefPlaneDisp:=objDoc.RefPlanes(3))
    Set objLines = objProfile(1).Lines2d
    Call objLines.AddBy2Points(x1:=0, y1:=0, x2:=0.08, y2:=0)
    Call objLines.AddBy2Points(x1:=0.08, y1:=0, x2:=0.08, y2:=0.06)
    Call objLines.AddBy2Points(x1:=0.08, y1:=0.06, x2:=0.064, y2:=0.06)
    Call objLines.AddBy2Points(x1:=0.064, y1:=0.06, x2:=0.064, y2:=0.02)
    Call objLines.AddBy2Points(x1:=0.064, y1:=0.02, x2:=0.048, y2:=0.02)
    Call objLines.AddBy2Points(x1:=0.048, y1:=0.02, x2:=0.048, y2:=0.06)
    Call objLines.AddBy2Points(x1:=0.048, y1:=0.06, x2:=0.032, y2:=0.06)
    Call objLines.AddBy2Points(x1:=0.032, y1:=0.06, x2:=0.032, y2:=0.02)
    Call objLines.AddBy2Points(x1:=0.032, y1:=0.02, x2:=0.016, y2:=0.02)
    Call objLines.AddBy2Points(x1:=0.016, y1:=0.02, x2:=0.016, y2:=0.06)
    Call objLines.AddBy2Points(x1:=0.016, y1:=0.06, x2:=0, y2:=0.06)
    Call objLines.AddBy2Points(x1:=0, y1:=0.06, x2:=0, y2:=0)
    ' Define Relations among the Line objects to make the Profile closed
    Set objRelns = objProfile(1).Relations2d
    Call objRelns.AddKeypoint(Object1:=objLines(1), Index1:=igLineEnd, Object2:=objLines(2), Index2:=igLineStart)
    Call objRelns.AddKeypoint(Object1:=objLines(2), Index1:=igLineEnd, Object2:=objLines(3), Index2:=igLineStart)
    Call objRelns.AddKeypoint(Object1:=objLines(3), Index1:=igLineEnd, Object2:=objLines(4), Index2:=igLineStart)
    Call objRelns.AddKeypoint(Object1:=objLines(4), Index1:=igLineEnd, Object2:=objLines(5), Index2:=igLineStart)
    Call objRelns.AddKeypoint(Object1:=objLines(5), Index1:=igLineEnd, Object2:=objLines(6), Index2:=igLineStart)
    Call objRelns.AddKeypoint(Object1:=objLines(6), Index1:=igLineEnd, Object2:=objLines(7), Index2:=igLineStart)
    Call objRelns.AddKeypoint(Object1:=objLines(7), Index1:=igLineEnd, Object2:=objLines(8), Index2:=igLineStart)
    Call objRelns.AddKeypoint(Object1:=objLines(8), Index1:=igLineEnd, Object2:=objLines(9), Index2:=igLineStart)
    Call objRelns.AddKeypoint(Object1:=objLines(9), Index1:=igLineEnd, Object2:=objLines(10), Index2:=igLineStart)
    Call objRelns.AddKeypoint(Object1:=objLines(10), Index1:=igLineEnd, Object2:=objLines(11), Index2:=igLineStart)
    Call objRelns.AddKeypoint(Object1:=objLines(11), Index1:=igLineEnd, Object2:=objLines(12), Index2:=igLineStart)
    Call objRelns.AddKeypoint(Object1:=objLines(12), Index1:=igLineEnd, Object2:=objLines(1), Index2:=igLineStart)
    ' Check if the Profile is closed
    If objProfile(1).End(ValidationCriteria:=igProfileClosed) <> 0 Then
        MsgBox ("Profile not closed")
    End If
    'Create the Base Extruded Protrusion Feature
    Set objModel = objDoc.Models.AddFiniteExtrudedProtrusion(NumberOfProfiles:=1, _
                                                             profileArray:=objProfile, profileplaneSide:=igRight, _
                                                             ExtrusionDistance:=0.05)
    objProfile(1).Visible = False
    ' Check the Status of the Base Feature
    If objModel.ExtrudedProtrusions(1).Status <> igFeatureOK Then
        MsgBox ("Error in the Creation of Base Protrusion Feature object")
    End If

    'Create another ExtrudedProtrusion Feature
    ' Create a Circular Profile
    Set objRefPln1 = objDoc.RefPlanes.AddParallelByDistance(ParentPlane:=objDoc.RefPlanes(2), _
                                                            Distance:=0.05, NormalSide:=igRight)
    Set objProf1 = objDoc.ProfileSets.Add.Profiles.Add(pRefPlaneDisp:=objRefPln1)
    Call objProf1.Circles2d.AddByCenterRadius(x:=-0.025, y:=0.035, Radius:=0.005)
    ' Check if the Profile is closed
    If objProf1.End(ValidationCriteria:=igProfileClosed) <> 0 Then
        MsgBox ("Profile not closed")
    End If
    Set objExtProt2 = objModel.ExtrudedProtrusions.AddThroughAll(Profile:=objProf1, _
                                                                 profileSide:=igLeft, profileplaneSide:=igRight)
    objProf1.Visible = False
    If objExtProt2.Status <> igFeatureOK Then
        MsgBox ("AddThroughAll Method of ExtrudedProtrusions object failed")
    End If
    'Create 3rd ExtrudedProtrusion Feature object
    ' Create a Circular Profile
    Set objRefPln2 = objDoc.RefPlanes.AddParallelByDistance(ParentPlane:=objDoc.RefPlanes(1), _
                                                            Distance:=0, NormalSide:=igRight)
    Set objProf2 = objDoc.ProfileSets.Add.Profiles.Add(pRefPlaneDisp:=objRefPln2)
    Call objProf2.Circles2d.AddByCenterRadius(x:=0.25, y:=-0.025, Radius:=0.05)
    ' Check if the Profile is closed
    If objProf2.End(ValidationCriteria:=igProfileClosed) <> 0 Then
        MsgBox ("Profile not closed")
    End If
    Set objExtProt3 = objModel.ExtrudedProtrusions.AddFinite(Profile:=objProf2, _
                                                             profileSide:=igLeft, profileplaneSide:=igRight, Depth:=0.1)
    objProf2.Visible = False
    If objExtProt3.Status <> igFeatureOK Then
        MsgBox ("AddFinite Method of ExtrudedProtrusions object failed")
    End If
    ' Reorder the Last Protrusion object before the ThroughAll Protrusion Object
    Call objExtProt3.Reorder(TargetFeature:=objModel.ExtrudedProtrusions(1), InsertBefore:=False)
    ' USER DISPLAY
    ' Release objects
    Set objApp = Nothing
    Set objDoc = Nothing
    Set objProfile(1) = Nothing
    Set objProf1 = Nothing
    Set objProf2 = Nothing
    Set objExtProt2 = Nothing
    Set objExtProt3 = Nothing
    Set objLines = Nothing
    Set objModel = Nothing
    Set objRelns = Nothing
    Set objRefPln2 = Nothing
    Set objRefPln1 = Nothing
End Sub
See Also

ExtrudedProtrusion Object  | ExtrudedProtrusion Members

Send comments on this topic.