Private Sub Form_Load()
Dim objApp As SolidEdgeFramework.Application
Dim objDoc As SolidEdgePart.PartDocument
Dim objModel As SolidEdgePart.Model
Dim objProfArr(1 To 2) As SolidEdgePart.Profile
Dim objLines As SolidEdgeFrameworkSupport.Lines2d
Dim objRelns1 As SolidEdgeFrameworkSupport.Relations2d
Dim objThnWls As SolidEdgePart.Thinwalls
Dim objFaceArr(1 To 3) As Object
Dim objThnWl1 As SolidEdgePart.Thinwall
Dim objFaces As Object
Dim dblThkArr(1 To 3) As Double
Dim lngGetNum As Long
Dim dblGetThkArr(1 To 3) As Double
' 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.04, y2:=0)
Call objLines.AddBy2Points(x1:=0.04, y1:=0, x2:=0.04, y2:=0.04)
Call objLines.AddBy2Points(x1:=0.04, y1:=0.04, x2:=0, y2:=0.04)
Call objLines.AddBy2Points(x1:=0, y1:=0.04, 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
If objProfArr(1).End(ValidationCriteria:=igProfileClosed) <> 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.04)
objProfArr(1).Visible = False
' Check the status of Base Feature
If Not (objModel.ExtrudedProtrusions(1).Status = igFeatureOK) Then
MsgBox ("Error in the Creation of Base Protrusion Feature object")
End If
' Get the Faces collection of the Protrusion Feature
Set objFaces = objModel.ExtrudedProtrusions(1).Faces(FaceType:=igQueryAll)
' Create the UniqueThicknessArray & FacesArray having Unique thicknesses
dblThkArr(1) = 0.002
dblThkArr(2) = 0.001
Set objFaceArr(1) = objFaces(1)
Set objFaceArr(2) = objFaces(2)
' Create a ThinWall object
Set objThnWl1 = objModel.Thinwalls.Add(ThicknessSide:=igInside, CommonThickness:=0.005, _
OpenFaces:=objFaces(5), NumberOfUniqueThicknesses:=2, _
UniqueThicknessesArray:=dblThkArr, UniqueThicknessFaceListArray:=objFaceArr)
' Check the status of Base Feature
If (objThnWl1.Status <> igFeatureOK) Then
MsgBox ("Add method of ThinWalls object fails")
End If
' Reset the thickness values
dblGetThkArr(1) = 0.004
dblGetThkArr(2) = 0.003
' Set the UniqueThickness values
Call objThnWl1.SetUniqueThicknesses(UniqueThicknessCount:=2, UniqueThicknesses:=dblGetThkArr)
' USER DISPLAY
' Release objects
Set objApp = Nothing
Set objDoc = Nothing
Set objProfArr(1) = Nothing
Set objProfArr(2) = Nothing
Set objModel = Nothing
Set objLines = Nothing
Set objRelns1 = Nothing
Set objThnWls = Nothing
Set objFaceArr(1) = Nothing
Set objFaceArr(2) = Nothing
Set objFaceArr(3) = Nothing
End Sub