Hide Table of Contents

Analyze Geometry Example (VBA)

This example shows how to analyze the geometry of a part using the SOLIDWORKS Utilities API.

'------------------------------------------------------------------------------
' Preconditions:
' 1. Add the SOLIDWORKS Utilities as an add-in
'    (in SOLIDWORKS, click Tools > Add-Ins > SOLIDWORKS Utilities).
' 2. Add the SOLIDWORKS Utilities type library as a reference
'    (in the SOLIDWORKS Microsoft Visual Basic for Applications IDE, click
'    Tools > References > SolidWorks Utilities <version> Type Library).
' 3. Verify that C:\test\ exists.
' 4. Open a part.
'
' Postconditions:
' 1. Analyzes the geometry and creates a report,
'    C:\test\AnalyzeGeometry\gtReportIndex.htm.
' 2. Examine C:\test\AnalyzeGeometry\gtReportIndex.htm.
'------------------------------------------------------------------------------
Option Explicit
Dim swapp As SldWorks.SldWorks
Dim swUtil As SWUtilities.gtcocswUtilities
Dim swUtilGeometryAnalysis As SWUtilities.gtcocswGeometryAnalysis
Dim longStatus As gtError_e
Sub main()
    ' Connect to SOLIDWORKS
    Set swapp = Application.SldWorks
    ' Get the SOLIDWORKS Utilities interface
    Set swUtil = swapp.GetAddInObject("Utilities.UtilitiesApp")
    Set swUtilGeometryAnalysis = swUtil.GetToolInterface(gtSwToolGeomCheck, longStatus)
    
    ' Initiate the analysis
    longStatus = swUtilGeometryAnalysis.Init()
    
    ' Get the number of short edges
    Dim lShortEdgeCount As Long
    lShortEdgeCount = swUtilGeometryAnalysis.GetShortEdgesCount(0.0001, longStatus)
    
    ' Get the number of small faces
    Dim lSmallFaceCount As Long
    lSmallFaceCount = swUtilGeometryAnalysis.GetSmallFacesCount(0.0001, longStatus)
    
    ' Get the number of sliver faces
    Dim lSliverFaceCount As Long
    lSliverFaceCount = swUtilGeometryAnalysis.GetSliverFacesCount(0.0001, longStatus)
    
    ' Get the number of knife edges
    Dim lKnifeEdgecount As Long
    lKnifeEdgecount = swUtilGeometryAnalysis.GetKnifeEdgesCount(5#, longStatus)
    
    ' Get the number of knife vertices
    Dim lKnifeVertexCount As Long
    lKnifeVertexCount = swUtilGeometryAnalysis.GetKnifeVerticesCount(5#, longStatus)
    
    ' Get the number of discontinuous edges
    Dim lDiscontinuousEdgeCount As Long
    lDiscontinuousEdgeCount = swUtilGeometryAnalysis.GetDiscontinuousEdgesCount(longStatus)
    
    ' Get the number of discontinuous faces
    Dim lDiscontinuousFaceCount As Long
    lDiscontinuousFaceCount = swUtilGeometryAnalysis.GetDiscontinuousFacesCount(longStatus)
    
    ' Save the results to a file in the specified path
    longStatus = swUtilGeometryAnalysis.SaveReport2("C:\test\AnalyzeGeometry", False, True)
    
    ' Perform any necessary cleanup
    longStatus = swUtilGeometryAnalysis.Close()
    
End Sub
    


Provide feedback on this topic

SOLIDWORKS welcomes your feedback concerning the presentation, accuracy, and thoroughness of the documentation. Use the form below to send your comments and suggestions about this topic directly to our documentation team. The documentation team cannot answer technical support questions. Click here for information about technical support.

* Required

 
*Email:  
Subject:   Feedback on Help Topics
Page:   Analyze Geometry Example (VBA)
*Comment:  
*   I acknowledge I have read and I hereby accept the privacy policy under which my Personal Data will be used by Dassault Systèmes

Print Topic

Select the scope of content to print:

x

We have detected you are using a browser version older than Internet Explorer 7. For optimized display, we suggest upgrading your browser to Internet Explorer 7 or newer.

 Never show this message again
x

Web Help Content Version: API Help (English only) 2018 SP05

To disable Web help from within SOLIDWORKS and use local help instead, click Help > Use SOLIDWORKS Web Help.

To report problems encountered with the Web help interface and search, contact your local support representative. To provide feedback on individual help topics, use the “Feedback on this topic” link on the individual topic page.