Solid Edge Part Type Library
SetProfiles Method
Specifies the number of profiles in the Profiles array.
Contains the profiles for the referenced object.
Description
Sets the profiles associated with the referenced feature object.
Syntax
Visual Basic
Public Sub SetProfiles( _
   ByVal NumProfiles As Long, _
   ByRef Profiles() As Object _
) 
Parameters
NumProfiles
Specifies the number of profiles in the Profiles array.
Profiles
Contains the profiles for the referenced object.
Example
Private Sub Form_Load()
    Dim objApp As SolidEdgeFramework.Application
    Dim objDoc As SolidEdgePart.PartDocument
    Dim objProf As SolidEdgePart.Profile
    Dim objProfile(1 To 2) As SolidEdgePart.Profile
    Dim objExtCut As SolidEdgePart.ExtrudedCutout
    Dim objModel As SolidEdgePart.Model
    Dim objLines As SolidEdgeFrameworkSupport.Lines2d
    Dim objLines1 As SolidEdgeFrameworkSupport.Lines2d
    Dim objRelns As SolidEdgeFrameworkSupport.Relations2d
    Dim objRelns1 As SolidEdgeFrameworkSupport.Relations2d
    Dim objRefPln As SolidEdgePart.RefPlane
    Dim objProfCollection As SolidEdgePart.Profiles
    Dim objSetProfCollection As SolidEdgePart.Profiles
    Dim objProfArray(1 To 2) As SolidEdgePart.Profile
    Dim objSetProfArray(1 To 3) As SolidEdgePart.Profile
    Dim objGetProfArray(1 To 3) As SolidEdgePart.Profile
    Dim objSetProf As SolidEdgePart.Profile
    Dim objSetProfile(1 To 3) As SolidEdgePart.Profile
    Dim lngStatus As Long
    Dim lngNoOfProfiles As Long
    Dim i As Integer
    ' 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.08)
    Call objLines.AddBy2Points(x1:=0.08, y1:=0.08, x2:=0, y2:=0.08)
    Call objLines.AddBy2Points(x1:=0, y1:=0.08, 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(1), Index2:=igLineStart)
    ' Check for 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.1)
    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 a Cutout object with 2 closed profiles
    '***** ProfileSide set to igLeft and ProfilePlaneSide set to igRight
    ' Create a Circular Profile
    Set objRefPln = objDoc.RefPlanes.AddParallelByDistance(ParentPlane:=objDoc.RefPlanes(2), _
                                                           Distance:=0.05, NormalSide:=igRight)
    Set objProf = objDoc.ProfileSets.Add.Profiles.Add(pRefPlaneDisp:=objRefPln)
    Call objProf.Circles2d.AddByCenterRadius(x:=-0.02, y:=0.05, Radius:=0.005)
    Set objLines1 = objProf.Lines2d
    Call objLines1.AddBy2Points(x1:=-0.015, y1:=0.015, x2:=-0.015, y2:=0.02)
    Call objLines1.AddBy2Points(x1:=-0.015, y1:=0.02, x2:=-0.02, y2:=0.02)
    Call objLines1.AddBy2Points(x1:=-0.02, y1:=0.02, x2:=-0.02, y2:=0.015)
    Call objLines1.AddBy2Points(x1:=-0.02, y1:=0.015, x2:=-0.015, y2:=0.015)
    ' Define Relations among the Line objects to make the Profile closed
    Set objRelns1 = objProf.Relations2d
    Call objRelns1.AddKeypoint(Object1:=objLines1(1), Index1:=igLineEnd, Object2:=objLines1(2), Index2:=igLineStart)
    Call objRelns1.AddKeypoint(Object1:=objLines1(2), Index1:=igLineEnd, Object2:=objLines1(3), Index2:=igLineStart)
    Call objRelns1.AddKeypoint(Object1:=objLines1(3), Index1:=igLineEnd, Object2:=objLines1(4), Index2:=igLineStart)
    Call objRelns1.AddKeypoint(Object1:=objLines1(4), Index1:=igLineEnd, Object2:=objLines1(1), Index2:=igLineStart)
    ' Check if the Profile is closed
    lngStatus = objProf.End(ValidationCriteria:=igProfileClosed)
    If lngStatus <> 0 Then
        MsgBox ("Profile not closed")
    End If
    'get profiles collection into an array
    Set objProfCollection = objProf.Parent.Profiles
    For i = 1 To objProfCollection.Count
        Set objProfArray(i) = objProfCollection(i)
        objProfArray(i).Visible = False
    Next i
    'Create the ExtrudedCutout feature
    Set objExtCut = objModel.ExtrudedCutouts.AddFiniteMulti _
                    (NumberOfProfiles:=2, ProfileArray:=objProfArray, _
                     ProfilePlaneSide:=igRight, Depth:=0.1)
    If objExtCut.Status <> igFeatureOK Then
        MsgBox ("AddFiniteMulti Method with ProfileSide set to igLeft and ProfilePlaneSide set to igRight failed")
    End If
    ' Create a Circular Profile
    Set objRefPln = objDoc.RefPlanes.AddParallelByDistance(ParentPlane:=objDoc.RefPlanes(2), _
                                                           Distance:=0.01, NormalSide:=igRight)
    Set objSetProf = objDoc.ProfileSets.Add.Profiles.Add(pRefPlaneDisp:=objRefPln)
    Call objSetProf.Circles2d.AddByCenterRadius(x:=-0.05, y:=0.05, Radius:=0.005)
    Call objSetProf.Circles2d.AddByCenterRadius(x:=-0.07, y:=0.07, Radius:=0.005)
    Set objLines1 = objSetProf.Lines2d
    Call objLines1.AddBy2Points(x1:=-0.015, y1:=0.015, x2:=-0.015, y2:=0.03)
    Call objLines1.AddBy2Points(x1:=-0.015, y1:=0.03, x2:=-0.03, y2:=0.03)
    Call objLines1.AddBy2Points(x1:=-0.03, y1:=0.03, x2:=-0.03, y2:=0.015)
    Call objLines1.AddBy2Points(x1:=-0.03, y1:=0.015, x2:=-0.015, y2:=0.015)
    ' Define Relations among the Line objects to make the Profile closed
    Set objRelns1 = objProf.Relations2d
    Call objRelns1.AddKeypoint(Object1:=objLines1(1), Index1:=igLineEnd, Object2:=objLines1(2), Index2:=igLineStart)
    Call objRelns1.AddKeypoint(Object1:=objLines1(2), Index1:=igLineEnd, Object2:=objLines1(3), Index2:=igLineStart)
    Call objRelns1.AddKeypoint(Object1:=objLines1(3), Index1:=igLineEnd, Object2:=objLines1(4), Index2:=igLineStart)
    Call objRelns1.AddKeypoint(Object1:=objLines1(4), Index1:=igLineEnd, Object2:=objLines1(1), Index2:=igLineStart)
    ' Check if the Profile is closed
    lngStatus = objSetProf.End(ValidationCriteria:=igProfileClosed)
    If lngStatus <> 0 Then
        MsgBox ("Profile not closed")
    End If
    'get profiles collection into an array
    Set objSetProfCollection = objSetProf.Parent.Profiles
    For i = 1 To objSetProfCollection.Count
        Set objSetProfArray(i) = objSetProfCollection(i)
        objSetProfArray(i).Visible = False
    Next i
    'set profiles
    Call objExtCut.SetProfiles(NumProfiles:=3, Profiles:=objSetProfArray)
    ' USER DISPLAY
    ' Release objects
    Set objApp = Nothing
    Set objDoc = Nothing
    Set objProf = Nothing
    Set objProfile(1) = Nothing
    Set objProfile(2) = Nothing
    Set objExtCut = Nothing
    Set objModel = Nothing
    Set objLines = Nothing
    Set objLines1 = Nothing
    Set objRelns = Nothing
    Set objRelns1 = Nothing
    Set objRefPln = Nothing
    Set objProfCollection = Nothing
    Set objProfArray(1) = Nothing
    Set objProfArray(2) = Nothing
    Set objGetProfArray(1) = Nothing
    Set objGetProfArray(2) = Nothing
    Set objGetProfArray(3) = Nothing
    Set objSetProfCollection = Nothing
    Set objSetProfArray(1) = Nothing
    Set objSetProfArray(2) = Nothing
    Set objSetProfArray(3) = Nothing
    Set objSetProf = Nothing
    Set objSetProfile(1) = Nothing
    Set objSetProfile(2) = Nothing
    Set objSetProfile(3) = Nothing
End Sub
See Also

ExtrudedCutout Object  | ExtrudedCutout Members

Send comments on this topic.