Specifies the precision of tolerance values in primary dimensions.
Supported platforms: Windows only
VBA:
object.TolerancePrecision
Type: Dim3PointAngular, DimAligned, DimAngular, DimArcLength, DimDiametric, Dimension, DimOrdinate, DimRadial, DimRadialLarge, DimRotated
The objects this property applies to.
Read-only: No
Type: acDimPrecision enum
The initial value for this property is acDimPrecisionFour.
This property is only available when the ToleranceDisplay property is set to any value other than acTolNone.
VBA:
Sub Example_TolerancePrecision() ' This example creates an aligned dimension in model space and ' uses TolerancePrecision to allow the user to change the ' precision of the dimension tolerance Dim dimObj As AcadDimAligned Dim point1(0 To 2) As Double, point2(0 To 2) As Double Dim location(0 To 2) As Double Dim oldTolerance As String, newTolerance As String ' Define the dimension point1(0) = 0: point1(1) = 5: point1(2) = 0 point2(0) = 5.12345678: point2(1) = 5: point2(2) = 0 location(0) = 5: location(1) = 7: location(2) = 0 ' Create an aligned dimension object in model space Set dimObj = ThisDrawing.ModelSpace.AddDimAligned(point1, point2, location) ' Enable and setup tolerance display dimObj.ToleranceDisplay = acTolSymmetrical dimObj.ToleranceLowerLimit = -0.0001 dimObj.ToleranceUpperLimit = 0.005 ThisDrawing.Application.ZoomAll ' Store old tolerance value as default for input box oldTolerance = dimObj.TolerancePrecision ' Allow the user to change the precision for the dimension tolerance newTolerance = InputBox("Enter a new tolerance precision for the dimension. The value must range from 0 to 8.", "Dimension Tolerance Precision", oldTolerance) Select Case newTolerance Case 0: newTolerance = acDimPrecisionZero Case 1: newTolerance = acDimPrecisionOne Case 2: newTolerance = acDimPrecisionTwo Case 3: newTolerance = acDimPrecisionThree Case 4: newTolerance = acDimPrecisionFour Case 5: newTolerance = acDimPrecisionFive Case 6: newTolerance = acDimPrecisionSix Case 7: newTolerance = acDimPrecisionSeven Case 8: newTolerance = acDimPrecisionEight Case Else MsgBox "The tolerance precision has not been changed." Exit Sub End Select dimObj.TolerancePrecision = newTolerance ' Commit changes to tolerance precision ThisDrawing.Regen acAllViewports ' Read back and display the dimension tolerance precision newTolerance = dimObj.TolerancePrecision MsgBox "The tolerance precision has been set to " & newTolerance & " decimal places" End Sub
Visual LISP:
(vl-load-com) (defun c:Example_TolerancePrecision() ;; This example creates an aligned dimension in model space and ;; uses TolerancePrecision to allow the user to change the ;; precision of the dimension tolerance (setq acadObj (vlax-get-acad-object)) (setq doc (vla-get-ActiveDocument acadObj)) ;; Define the dimension (setq point1 (vlax-3d-point 0 5 0) point2 (vlax-3d-point 5.12345678 5 0) location (vlax-3d-point 5 7 0)) ;; Create an aligned dimension object in model space (setq modelSpace (vla-get-ModelSpace doc)) (setq dimObj (vla-AddDimAligned modelSpace point1 point2 location)) ;; Enable and setup tolerance display (vla-put-ToleranceDisplay dimObj acTolSymmetrical) (vla-put-ToleranceLowerLimit dimObj -0.0001) (vla-put-ToleranceUpperLimit dimObj 0.005) (vla-ZoomAll acadObj) ;; Store old tolerance value as default for input box (setq oldTolerance (vla-get-TolerancePrecision dimObj)) ;; Allow the user to change the precision for the dimension tolerance (setq newTolerance (vla-GetInteger (vla-get-Utility doc) (strcat "\nEnter a new tolerance precision for the dimension (0 to 8) <" (itoa oldTolerance) ">: "))) (if (= newTolerance nil) (setq newTolerance oldTolerance)) (setq newTolerance (cond ((= newTolerance 0) acDimPrecisionZero) ((= newTolerance 1) acDimPrecisionOne) ((= newTolerance 2) acDimPrecisionTwo) ((= newTolerance 3) acDimPrecisionThree) ((= newTolerance 4) acDimPrecisionFour) ((= newTolerance 5) acDimPrecisionFive) ((= newTolerance 6) acDimPrecisionSix) ((= newTolerance 7) acDimPrecisionSeven) ((= newTolerance 8) acDimPrecisionEight) (progn (setq newTolerance nil) (alert "The tolerance precision has not been changed.")) )) (if (/= newTolerance nil) (progn (vla-put-TolerancePrecision dimObj newTolerance) ;; Commit changes to tolerance precision (vla-Regen doc acAllViewports) ;; Read back and display the dimension tolerance precision (alert (strcat "The tolerance precision has been set to " (itoa (vla-get-TolerancePrecision dimObj)) " decimal places")) ) ) )