Insert and Change DeleteFace Feature Example (VBA)
This example shows how to insert a DeleteFace feature and how to then
modify that feature.
'
---------------------------------------------------------------------------
' Preconditions: Open:
'<SolidWorks_install_dir>\samples\tutorial\fillets\knob.sldprt
'
' Postconditions: A DeleteFace feature is created and
then modified.
'
' NOTE: Because
this part document is used
' with
a SolidWorks online tutorial,
' do
not save any changes when closing
' the
document.
'
--------------------------------------------------------------------------
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim swFeature As SldWorks.Feature
Dim swDeleteFaceFeature As SldWorks.DeleteFaceFeatureData
Dim featureName As String
Dim boolstatus As Boolean
Dim opt As Long
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swModelDocExt = swModel.Extension
' Select a face for the DeleteFace
' feature
boolstatus = swModel.Extension.SelectByID2("",
"FACE", 0.002251015125069, -0.001872569429423, 0.02015405789763,
False, 0, Nothing, 0)
' Insert a DeleteFace feature
boolstatus = swModelDocExt.InsertDeleteFace(swFaceDelete_Default)
' Get the DeleteFace feature
Set swFeature = swModel.FirstFeature
While Not swFeature Is Nothing
featureName
= swFeature.Name
While
featureName <> "DeleteFace1"
Set
swFeature = swFeature.GetNextFeature
featureName
= swFeature.Name
Wend
Debug.Print
"Feature name: " & featureName
Set
swDeleteFaceFeature = swFeature.GetDefinition
boolstatus
= swDeleteFaceFeature.AccessSelections(swModel,
Nothing)
Debug.Print
" Number
of deleted faces: " & swDeleteFaceFeature.GetDeletedFacesCount
'
Get the DeleteFace feature's option
opt
= swDeleteFaceFeature.options
Debug.Print
" Before
changing the option..."
DeleteFaceOptions
opt
'
Change the DeleteFace feature's option
swDeleteFaceFeature.options = swFaceDeletePatch
opt
= swDeleteFaceFeature.options
Debug.Print
" After
changing the option..."
DeleteFaceOptions
opt
'
Save modification made to DeleteFace feature
boolstatus
= swFeature.ModifyDefinition(swDeleteFaceFeature,
swModel, Nothing)
'
Get next feature until no more features
Set
swFeature = swFeature.GetNextFeature
Wend
End Sub
Sub DeleteFaceOptions(options As Long)
Select Case options
Case
0
Debug.Print
" Option
= swFaceDelete_Default"
Case
1
Debug.Print
" Option
= swFaceDelete_Patch"
Case
2
Debug.Print
" Option
= swFaceDelete_Fill"
Case
3
Debug.Print
" Option
= swFaceDelete_FillWithTangent"
End Select
End Sub