Fill hole with temp body using SOLIDWORKS API

Edit ArticleEdit Article

Hole filled with a temp geometry
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
End Sub


All articles and code at CodeStack are now open-source and hosted on GitHub. If you want to contribute by modifying existing articles and code snippets, submitting new ones, reporting errors and bugs etc. please follow this blog post for more information. We appreciate any contribution.

Product of Xarial Product of Xarial