'----------------------------------------------------------------------------
' Preconditions:
' 1. Verify that the specified part template exists.
' 2. Open the Immediate window.
'
' Postconditions:
' 1. Creates Surface-Extrude1 in the FeatureManager design tree.
' 2. Expand the Surface Bodies folder
to verify that it contains:
' * Surface-Extrude[1]
' * Surface-Extrude[2]
' * Surface-Extrude[3]
' 3. Inspect the Immediate window.
'---------------------------------------------------------------------------
Imports SolidWorks.Interop.swconst
Imports SolidWorks.Interop.sldworks
Imports System.Runtime.InteropServices
Imports System
Imports System.Diagnostics
Partial Class SolidWorksMacro
Dim Part As ModelDoc2
Dim selMgr As SelectionMgr
Dim surfExtrudeFeat As Feature
Dim surfExtrude As SurfExtrudeFeatureData
Dim boolstatus As Boolean
Dim longstatus As Integer
Sub main()
Part = swApp.NewDocument("C:\ProgramData\SOLIDWORKS\SOLIDWORKS 2016\templates\Part.prtdot", 0, 0, 0)
swApp.ActivateDoc2("Part1", False, longstatus)
Part = swApp.ActiveDoc
Dim myModelView As ModelView
myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Part.SketchManager.InsertSketch(True)
boolstatus = Part.Extension.SelectByID2("Front Plane", "PLANE", -0.03891024234798, 0.02968528649877, 0.0003646590412283, False, 0, Nothing, 0)
Part.ClearSelection2(True)
Dim vSkLines As Object
vSkLines = Part.SketchManager.CreateCornerRectangle(-0.05517876768764, 0.008130204900836, 0, -0.02399076855985, -0.0155939995639, 0)
Part.ClearSelection2(True)
vSkLines = Part.SketchManager.CreateCornerRectangle(-0.003731897331531, 0.008130204900836, 0, 0.0285223581767, -0.02998846069981, 0)
Part.ClearSelection2(True)
Dim skSegment As SketchSegment
skSegment = Part.SketchManager.CreateCircle(0.053579, 0.013995, 0.0#, 0.06819, 0.018462, 0.0#)
Part.ClearSelection2(True)
Part.SketchManager.InsertSketch(True)
Part.ShowNamedView2("*Trimetric", 8)
Part.ClearSelection2(True)
boolstatus = Part.Extension.SelectByID2("Sketch1", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Dim myFeatMr As FeatureManager
myFeatMr = Part.FeatureManager
' Create a blind surface extrude of 10 mm
' in two directions from the selected sketch
' in a direction normal to the selected sketch plane
myFeatMr.FeatureExtruRefSurface2(False, False, False, 0, 0, 0.01, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, False, False, False, False)
Part.ClearSelection2(True)
selMgr = Part.SelectionManager
' Get Surface-Extrude1 data
boolstatus = Part.Extension.SelectByID2("Surface-Extrude1", "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0)
surfExtrudeFeat = selMgr.GetSelectedObject6(1, -1)
surfExtrude = surfExtrudeFeat.GetDefinition
surfExtrude.AccessSelections(Part, Nothing)
Debug.Print(surfExtrudeFeat.Name)
Debug.Print(" Depth:")
Debug.Print(" Forward direction: " & surfExtrude.GetDepth(True))
Debug.Print(" Reverse direction: " & surfExtrude.GetDepth(False))
Debug.Print(" End condition as defined in swSurfaceExtendEndCond_e:")
Debug.Print(" Forward direction: " & surfExtrude.GetEndCondition(True))
Debug.Print(" Reverse direction: " & surfExtrude.GetEndCondition(False))
Debug.Print(" Reverse offset enabled:")
Debug.Print(" Forward direction? " & surfExtrude.GetReverseOffset(True))
Debug.Print(" Reverse direction? " & surfExtrude.GetReverseOffset(False))
Debug.Print(" Translate surface setting enabled:")
Debug.Print(" Forward direction? " & surfExtrude.GetTranslateSurface(True))
Debug.Print(" Reverse direction? " & surfExtrude.GetTranslateSurface(False))
Debug.Print(" Surface extruded in both directions? " & surfExtrude.BothDirections)
Debug.Print(" Extrusion reversed? " & surfExtrude.ReverseDirection)
surfExtrude.ReleaseSelectionAccess()
End Sub
Public swApp As SldWorks
End Class