Specifies the number of decimal places displayed for the primary units of a dimension or tolerance.
Supported platforms: Windows only
VBA:
object.PrimaryUnitsPrecision
Type: DimAligned, DimArcLength, DimDiametric, DimOrdinate, DimRadial, DimRadialLarge, DimRotated
The objects this property applies to.
Read-only: No
Type: acDimPrecision enum
VBA:
Sub Example_PrimaryUnitsPrecision() ' This example creates an aligned dimension in model space and ' uses PrimaryUnitsPrecision to allow the user to change ' the number of decimal places displayed for the primary units and tolerance ' units of the dimension. 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 oldPrecision As String, newPrecision 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 precision value as default for input box oldPrecision = dimObj.PrimaryUnitsPrecision ' Allow the user to change the precision for the dimension and dimension tolerance newPrecision = InputBox("Enter a new precision for the dimension and tolerances. The value must range from 0 to 8.", "Change Precision", oldPrecision) Select Case newPrecision Case 0: newPrecision = acDimPrecisionZero Case 1: newPrecision = acDimPrecisionOne Case 2: newPrecision = acDimPrecisionTwo Case 3: newPrecision = acDimPrecisionThree Case 4: newPrecision = acDimPrecisionFour Case 5: newPrecision = acDimPrecisionFive Case 6: newPrecision = acDimPrecisionSix Case 7: newPrecision = acDimPrecisionSeven Case 8: newPrecision = acDimPrecisionEight Case Else MsgBox "The precision has not been changed." Exit Sub End Select ' Change the dimension and tolerance precision dimObj.TolerancePrecision = newPrecision dimObj.PrimaryUnitsPrecision = newPrecision ThisDrawing.Regen acAllViewports ' Read back and display the dimension and dimension tolerance precision newPrecision = dimObj.PrimaryUnitsPrecision MsgBox "The precision has been set to " & newPrecision & " decimal places" End Sub
Visual LISP:
(vl-load-com) (defun c:Example_PrimaryUnitsPrecision() ;; This example creates an aligned dimension in model space and ;; uses PrimaryUnitsPrecision to allow the user to change ;; the number of decimal places displayed for the primary units and tolerance ;; units of the dimension. (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 precision value as default for input box (setq oldPrecision (vla-get-PrimaryUnitsPrecision dimObj)) ;; Allow the user to change the precision for the dimension and dimension tolerance (setq newPrecision (vla-GetInteger (vla-get-Utility doc) "\nEnter a new precision for the dimension and tolerances (0 - 8): ")) (setq newPrecision (cond ((= 0 newPrecision) acDimPrecisionZero) ((= 1 newPrecision) acDimPrecisionOne) ((= 2 newPrecision) acDimPrecisionTwo) ((= 3 newPrecision) acDimPrecisionThree) ((= 4 newPrecision) acDimPrecisionFour) ((= 5 newPrecision) acDimPrecisionFive) ((= 6 newPrecision) acDimPrecisionSix) ((= 7 newPrecision) acDimPrecisionSeven) ((= 8 newPrecision) acDimPrecisionEight) (nil) )) ;; Change the dimension and tolerance precision (if (/= newPrecision nil) (progn (vla-put-TolerancePrecision dimObj newPrecision) (vla-put-PrimaryUnitsPrecision dimObj newPrecision) (vla-Regen doc acAllViewports) ;; Read back and display the dimension and dimension tolerance precision (setq newPrecision (vla-get-PrimaryUnitsPrecision dimObj)) (alert (strcat "The precision has been set to " (itoa newPrecision) " decimal places")) ) (alert "The precision has not been changed.") ) )