Solid Edge Part Type Library
Profile Property
Description
Sets and returns the Profile object used to construct the referenced feature object.
Property type
Read-write property
Syntax
Visual Basic
Public Property Profile As Object
Example
Private Sub Form_Load()
    Dim objApp As SolidEdgeFramework.Application
    Dim objDoc As SolidEdgePart.PartDocument
    Dim objProfile(1 To 2) As SolidEdgePart.Profile
    Dim objExtProt As SolidEdgePart.ExtrudedProtrusion
    Dim objModel As SolidEdgePart.Model
    Dim objLines As SolidEdgeFrameworkSupport.Lines2d
    Dim objRelns As SolidEdgeFrameworkSupport.Relations2d
    Dim objExtProf As SolidEdgePart.Profile
    Dim objProf1 As SolidEdgePart.Profile
    Dim objProf2 As SolidEdgePart.Profile
    Dim objRefPln As SolidEdgePart.RefPlane
    Dim lngStatus As Long
    ' 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(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 for the Profile Validity
    lngStatus = objProfile(1).End(ValidationCriteria:=igProfileClosed)
    If lngStatus <> 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 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 objRefPln = objDoc.RefPlanes.AddParallelByDistance(ParentPlane:=objDoc.RefPlanes(2), _
                                                           Distance:=0.01, NormalSide:=igRight)
    Set objExtProf = objDoc.ProfileSets.Add.Profiles.Add(pRefPlaneDisp:=objRefPln)
    Call objExtProf.Circles2d.AddByCenterRadius(x:=-0.025, y:=0.035, Radius:=0.005)
    ' Check if the Profile is closed
    lngStatus = objExtProf.End(ValidationCriteria:=igProfileClosed)
    If lngStatus <> 0 Then
        MsgBox ("Profile not closed")
    End If
    'Create the ExtrudedProtrusion feature
    Set objExtProt = objModel.ExtrudedProtrusions.AddFinite(Profile:=objExtProf, _
                                                            profileSide:=igLeft, profileplaneSide:= _
                                                            igRight, Depth:=0.035)
    objExtProf.Visible = False
    If objExtProt.Status <> igFeatureOK Then
        MsgBox ("AddFinite Method with Profileside set to igLeft and ProfilePlaneSide set to igRight failed")
    End If
    ' Create another Profile
    Set objProf2 = objDoc.ProfileSets.Add.Profiles.Add(pRefPlaneDisp:=objRefPln)
    Set objLines = objProf2.Lines2d
    Call objLines.AddBy2Points(x1:=-0.01, y1:=0.03, x2:=-0.04, y2:=0.03)
    Call objLines.AddBy2Points(x1:=-0.04, y1:=0.03, x2:=-0.04, y2:=0.04)
    Call objLines.AddBy2Points(x1:=-0.04, y1:=0.04, x2:=-0.01, y2:=0.04)
    Call objLines.AddBy2Points(x1:=-0.01, y1:=0.04, x2:=-0.01, y2:=0.03)
    ' Define Relations among the Line objects to make the Profile closed
    Set objRelns = objProf2.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(1), Index2:=igLineStart)
    lngStatus = objProf2.End(ValidationCriteria:=igProfileClosed)
    If lngStatus <> 0 Then
        MsgBox ("Profile not closed")
    End If
    ' Get the Profile of the Protrusion object
    Set objProf1 = objExtProt.Profile
    objExtProt.Profile = objProf2
    objProf2.Visible = False
    ' USER DISPLAY
    ' Release objects
    Set objApp = Nothing
    Set objDoc = Nothing
    Set objProfile(1) = Nothing
    Set objProfile(2) = Nothing
    Set objExtProt = Nothing
    Set objLines = Nothing
    Set objModel = Nothing
    Set objRelns = Nothing
    Set objExtProf = Nothing
    Set objProf1 = Nothing
    Set objProf2 = Nothing
    Set objRefPln = Nothing
End Sub
See Also

ExtrudedProtrusion Object  | ExtrudedProtrusion Members

Send comments on this topic.