MACRO LIBRARY

Lesson 4.3 find largest face code

Free public access. No account or subscription required.

Files

Lesson 4.3 find largest face code

Code

Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swPart As SldWorks.PartDoc
Dim vBodies As Variant
Dim swBody As SldWorks.Body2
Dim vFaces As Variant
Dim swFace As SldWorks.Face2
Dim swFinalFace As SldWorks.Face2
Dim swSurf As SldWorks.Surface
Dim swEnt As SldWorks.Entity
Dim i As Integer
Dim dblArea As Double
    
Sub main()
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swPart = swModel
    
    dblArea = 0
    
    vBodies = swPart.GetBodies2(swSolidBody, False)
    Set swBody = vBodies(0) 'assumes only one solid body in part
    
    vFaces = swBody.GetFaces
    For i = 0 To UBound(vFaces)
        Set swFace = vFaces(i)
        Set swSurf = swFace.GetSurface
        If swSurf.IsCylinder Then
            If swFace.GetArea > dblArea Then
                dblArea = swFace.GetArea
                Set swFinalFace = swFace
            End If
        End If
    Next i
    
    Set swEnt = swFinalFace
    swEnt.Select4 False, Nothing
End Sub