Skip to main content

Fill hole with temp body using SOLIDWORKS API

Hole filled with a temp geometry

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