Fill hole with temp body using SOLIDWORKS API
This VBA example demonstrates how to use IModeler::CreateBodyFromFaces2 API to fill the hole of the selected feature (e.g. cut-extrude) with temp geometry.
Macro stops execution and displays temp body. Continue execution to remove the temp body.
Dim swApp As SldWorks.SldWorks
Sub main()
Set swApp = Application.SldWorks
Dim swModel As SldWorks.ModelDoc2
Set swModel = swApp.ActiveDoc
If swModel Is Nothing Then
Err.Raise vbError, "", "Open model"
End If
Dim swSelMgr As SldWorks.SelectionMgr
Set swSelMgr = swModel.SelectionManager
Dim swFeat As SldWorks.Feature
Set swFeat = swSelMgr.GetSelectedObject6(1, -1)
If swFeat Is Nothing Then
Err.Raise vbError, "", "Select feature"
End If
Dim vFaces As Variant
Dim swTempBody As SldWorks.Body2
vFaces = swFeat.GetFaces
Dim swModeler As SldWorks.Modeler
Set swModeler = swApp.GetModeler
Set swTempBody = swModeler.CreateBodyFromFaces2(UBound(vFaces) + 1, vFaces, swCreateFacesBodyAction_e.swCreateFacesBodyActionCap, _
False, False)
If swTempBody Is Nothing Then
Err.Raise vbError, "", "Failed to create body"
End If
swTempBody.Display3 swModel, RGB(255, 255, 0), swTempBodySelectOptions_e.swTempBodySelectOptionNone
Stop
End Sub