Private Sub Form_Load()
Dim objApp As SolidEdgeFramework.Application
Dim objDoc As SolidEdgePart.PartDocument
Dim objProfArr(1 To 2) As SolidEdgePart.Profile
Dim objModel As SolidEdgePart.Model
Dim objChmfr As SolidEdgePart.Chamfer
Dim objLines As SolidEdgeFrameworkSupport.Lines2d
Dim objRelns1 As SolidEdgeFrameworkSupport.Relations2d
Dim objExtProt As SolidEdgePart.ExtrudedProtrusion
Dim objFacs As Object
Dim objEdgs As Object
Dim objEdgArr(1 To 4) As Object
Dim lngStatus As Long
Dim lngCnt 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 Profile
Set objProfArr(1) = objDoc.ProfileSets.Add.Profiles.Add(pRefPlaneDisp:=objDoc.RefPlanes(1))
Set objLines = objProfArr(1).Lines2d
Call objLines.AddBy2Points(x1:=0, y1:=0, x2:=0.06, y2:=0)
Call objLines.AddBy2Points(x1:=0.06, y1:=0, x2:=0.06, y2:=0.06)
Call objLines.AddBy2Points(x1:=0.06, y1:=0.06, x2:=0, y2:=0.06)
Call objLines.AddBy2Points(x1:=0, y1:=0.06, x2:=0, y2:=0)
' Relate the Lines to make the Profile closed
Set objRelns1 = objProfArr(1).Relations2d
Call objRelns1.AddKeypoint(Object1:=objLines(1), Index1:=igLineEnd, Object2:=objLines(2), Index2:=igLineStart)
Call objRelns1.AddKeypoint(Object1:=objLines(2), Index1:=igLineEnd, Object2:=objLines(3), Index2:=igLineStart)
Call objRelns1.AddKeypoint(Object1:=objLines(3), Index1:=igLineEnd, Object2:=objLines(4), Index2:=igLineStart)
Call objRelns1.AddKeypoint(Object1:=objLines(4), Index1:=igLineEnd, Object2:=objLines(1), Index2:=igLineStart)
' Check for the Profile Validity
lngStatus = objProfArr(1).End(ValidationCriteria:=igProfileClosed)
If lngStatus <> 0 Then
MsgBox ("Profile not closed")
End If
' Create the Base Protrusion Object
Set objModel = objDoc.Models.AddFiniteExtrudedProtrusion(NumberOfProfiles:=1, _
ProfileArray:=objProfArr, profileplaneSide:=igRight, _
ExtrusionDistance:=0.02)
objProfArr(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
Set objExtProt = objModel.ExtrudedProtrusions(1)
' Get the Edges collection
Set objEdgs = objExtProt.Edges(EdgeType:=igQueryAll)
' Get the Edges and store them in an Array
Set objEdgArr(1) = objEdgs(5)
Set objEdgArr(2) = objEdgs(8)
' Get the Faces
Set objFacs = objExtProt.Faces(FaceType:=igQueryAll)
' Create a Chamfer object
Set objChmfr = objModel.Chamfers.AddUnequalSetback(ReferenceFace:=objFacs(1), _
NumberOfEdgeSets:=2, EdgeSetArray:=objEdgArr, _
SetbackDistance1:=0.009, SetbackDistance2:=0.001)
If objChmfr.Status <> igFeatureOK Then
MsgBox ("Error in the AddUnequalSetBack Method of Chamfers object")
End If
' Check the Count of Chamfer Features
lngCnt = objChmfr.Parent.Chamfers.Count
If lngCnt <> 1 Then
MsgBox ("Chamfer not created")
End If
' Delete the Chamfer feature
Call objChmfr.Delete
' USER DISPLAY
'Release objects
Set objApp = Nothing
Set objDoc = Nothing
Set objProfArr(1) = Nothing
Set objModel = Nothing
Set objExtProt = Nothing
Set objLines = Nothing
Set objRelns1 = Nothing
Set objChmfr = Nothing
Set objEdgs = Nothing
Set objFacs = Nothing
Set objEdgArr(1) = Nothing
Set objEdgArr(2) = Nothing
End Sub