Get Offset Surface Data Example (VB.NET)
This example shows how to get data for an offset surface.
'------------------------------------------------------------------------
' Preconditions:
' 1. Open a model document that contains a surface offset feature.
' 2. Select a surface offset feature.
'
' Postconditions: Inspect the Immediate window.
'-------------------------------------------------
Imports
SolidWorks.Interop.sldworks
Imports
SolidWorks.Interop.swconst
Imports
System.Runtime.InteropServices
Imports
System
Imports
System.Diagnostics
Partial
Class
SolidWorksMacro
Sub
main()
Dim
swModel As
ModelDoc2
Dim
swSelMgr As
SelectionMgr
Dim
swSelData As
SelectData
Dim
swOffset As
SurfaceOffsetFeatureData
Dim
swFeat As
Feature
Dim
swEnt As
Entity
Dim
vFace As
Object
Dim
i As
Long
Dim
bRet As
Boolean
Dim
comp As
Component2
Dim
swCompFace As
Component2
Dim
pBodyOfFace As
Body2
swModel = swApp.ActiveDoc
swSelMgr = swModel.SelectionManager
swSelData = swSelMgr.CreateSelectData
swFeat = swSelMgr.GetSelectedObject6(1,
-1)
swOffset = swFeat.GetDefinition
comp = swSelMgr.GetSelectedObjectsComponent3(1,
-1)
Debug.Print("File = "
& swModel.GetPathName)
Debug.Print("CompFeature = "
& comp.Name2)
Debug.Print(" "
& swFeat.Name)
Debug.Print(" Distance =
" & swOffset.Distance * 1000.0# &
" mm")
Debug.Print(" Flip =
" & swOffset.Flip)
Debug.Print(" FacesCount =
" & swOffset.GetEntitiesCount)
bRet = swOffset.AccessSelections(swModel, comp)
swModel.ClearSelection2(True)
vFace = swOffset.Entities
For
i = 0 To
UBound(vFace)
swEnt = vFace(i)
swFeat = swEnt
pBodyOfFace = swFeat.GetBody
Debug.Print(" Number of
faces in the Body = " & pBodyOfFace.GetFaceCount)
swCompFace = swEnt.GetComponent
Debug.Print(" Component
face = " & swCompFace.Name2)
Next
i
swOffset.ReleaseSelectionAccess()
End
Sub
Public
swApp As
SldWorks
End
Class