Public Sub GetFeatureInfo()
' Get the active document assuming it is a part.
Dim partDoc As PartDocument
Set partDoc = ThisApplication.ActiveDocument
' Get the component definition. This owns the part specific info for the part.
Dim partDef As PartComponentDefinition
Set partDef = partDoc.ComponentDefinition
' Iterate over the extrude features.
Dim extrude As ExtrudeFeature
For Each extrude In partDef.Features.ExtrudeFeatures
Debug.Print extrude.name
' Get the definition object from the feature.
Dim extrudeDef As ExtrudeDefinition
Set extrudeDef = extrude.Definition
' Display information in the definition object.
Select Case extrudeDef.ExtentType
Case kDistanceExtent
Dim distance As DistanceExtent
Set distance = extrudeDef.Extent
Debug.Print "Distance"
Call DisplayToleranceInfo(distance.distance)
Case kFromToExtent
Dim fromTo As FromToExtent
Set fromTo = extrudeDef.Extent
Debug.Print "FromTo extent between to faces and/or work features."
Case kThroughAllExtent
Dim throughAll As ThroughAllExtent
Set throughAll = extrudeDef.Extent
Debug.Print "Through all extent."
Case kToExtent
Dim toExt As ToExtent
Set toExt = extrudeDef.Extent
Debug.Print "To a face or work plane extent."
Case kToNextExtent
Dim toNext As ToNextExtent
Set toNext = extrudeDef.Extent
Debug.Print "To next extent."
Case Else
Debug.Print "Unhandled case: " & extrudeDef.ExtentType
End Select
Next
End Sub
' Utility function used to display tolerance info for a parameter.
Private Sub DisplayToleranceInfo(Param As Parameter)
' Get the Tolerance object from the parameter.
Dim tol As Tolerance
Set tol = Param.Tolerance
' Display some info about the tolerance.
Select Case tol.ToleranceType
Case kDefaultTolerance
Debug.Print "kDefaultTolerance"
Case kBasicTolerance
Debug.Print "kBasicTolerance"
Case kDeviationTolerance
Debug.Print "kDeviationTolerance"
Case kLimitLinearTolerance
Debug.Print "kLimitLinearTolerance"
Case kLimitsFitsLinearTolerance
Debug.Print "kLimitsFitsLinearTolerance"
Case kLimitsFitsShowSizeTolerance
Debug.Print "kLimitsFitsShowSizeTolerance"
Case kLimitsFitsShowTolerance
Debug.Print "kLimitsFitsShowTolerance"
Case kLimitsFitsStackedTolerance
Debug.Print "kLimitsFitsStackedTolerance"
Case kLimitsStackedTolerance
Debug.Print "kLimitsStackedTolerance"
Case kMaxTolerance
Debug.Print "kMaxTolerance"
Case kMinTolerance
Debug.Print "kMinTolerance"
Case kOverrideTolerance
Debug.Print "kOverrideTolerance"
Case kReferenceTolerance
Debug.Print "kReferenceTolerance"
Case kSymmetricTolerance
Debug.Print "kSymmetricTolerance"
End Select
Debug.Print " Upper: " & tol.Upper
Debug.Print " Lower: " & tol.Lower
Debug.Print " Hole: " & tol.HoleTolerance
Debug.Print " Shaft: " & tol.ShaftTolerance
End Sub