Display feature information
Description
Displays information about all of the extrude features in the active document. A part document must be active when this is run.
Code Samples
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
Sub Main
' Get the active document assuming it is a part.
Dim partDoc As PartDocument
partDoc = ThisApplication.ActiveDocument
' Get the component definition. This owns the part specific info for the part.
Dim partDef As PartComponentDefinition
partDef = partDoc.ComponentDefinition
' Iterate over the extrude features.
Dim extrude As ExtrudeFeature
For Each extrude In partDef.Features.ExtrudeFeatures
Logger.Info(extrude.name)
' Get the definition object from the feature.
Dim extrudeDef As ExtrudeDefinition
extrudeDef = extrude.Definition
' Display information in the definition object.
Select Case extrudeDef.ExtentType
Case kDistanceExtent
Dim distance As DistanceExtent
distance = extrudeDef.Extent
Logger.Info("Distance")
Call DisplayToleranceInfo(distance.distance)
Case kFromToExtent
Dim fromTo As FromToExtent
fromTo = extrudeDef.Extent
Logger.Info("FromTo extent between to faces and/or work features.")
Case kThroughAllExtent
Dim throughAll As ThroughAllExtent
throughAll = extrudeDef.Extent
Logger.Info("Through all extent.")
Case kToExtent
Dim toExt As ToExtent
toExt = extrudeDef.Extent
Logger.Info("To a face or work plane extent.")
Case kToNextExtent
Dim toNext As ToNextExtent
toNext = extrudeDef.Extent
Logger.Info("To next extent.")
Case Else
Logger.Info("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
tol = Param.Tolerance
' Display some info about the tolerance.
Select Case tol.ToleranceType
Case kDefaultTolerance
Logger.Info("kDefaultTolerance")
Case kBasicTolerance
Logger.Info("kBasicTolerance")
Case kDeviationTolerance
Logger.Info("kDeviationTolerance")
Case kLimitLinearTolerance
Logger.Info("kLimitLinearTolerance")
Case kLimitsFitsLinearTolerance
Logger.Info("kLimitsFitsLinearTolerance")
Case kLimitsFitsShowSizeTolerance
Logger.Info("kLimitsFitsShowSizeTolerance")
Case kLimitsFitsShowTolerance
Logger.Info("kLimitsFitsShowTolerance")
Case kLimitsFitsStackedTolerance
Logger.Info("kLimitsFitsStackedTolerance")
Case kLimitsStackedTolerance
Logger.Info("kLimitsStackedTolerance")
Case kMaxTolerance
Logger.Info("kMaxTolerance")
Case kMinTolerance
Logger.Info("kMinTolerance")
Case kOverrideTolerance
Logger.Info("kOverrideTolerance")
Case kReferenceTolerance
Logger.Info("kReferenceTolerance")
Case kSymmetricTolerance
Logger.Info("kSymmetricTolerance")
End Select
Logger.Info(" Upper: " & tol.Upper)
Logger.Info(" Lower: " & tol.Lower)
Logger.Info(" Hole: " & tol.HoleTolerance)
Logger.Info(" Shaft: " & tol.ShaftTolerance)
End Sub