CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2018 开发者帮助

AltUnitsPrecision 属性 (ActiveX)

2024-5-18 16:54| 发布者: admin| 查看: 108| 评论: 0|原作者: admin|来自: AutoCAD

AltUnitsPrecision 属性 (ActiveX)

指定备用单位中的小数位数。

支持的平台:仅限 Windows

签名

VBA:

object.AltUnitsPrecision
对象

类型:DimAlignedDimArcLengthDimDiametricDimOrdinateDimRadial、DimRadialLargeDimRotated

此属性应用于的对象。

属性值

只读:

类型:枚举acDimPrecision

使用以下常量之一指定精度:

  • acDimPrecisionZero: 0.
  • acDimPrecisionOne: 0.0
  • acDimPrecisionTwo: 0.00
  • acDimPrecisionThree: 0.000
  • acDimPrecisionFour: 0.0000
  • acDimPrecisionFive: 0.00000
  • acDimPrecisionSix: 0.000000
  • acDimPrecisionSeven: 0.0000000
  • acDimPrecisionEight: 0.00000000

言论

此属性的初始值为 。acDimPrecisionTwo

注意:此属性将覆盖给定维度的 DIMALTD 系统变量的值。

例子

VBA:

Sub Example_AltUnitsPrecision()
    ' This example creates an aligned dimension in model space and
    ' uses AltUnitsPrecision to allow the user to change the
    ' precision of the alternate 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 alternate unit display
    dimObj.AltUnits = True
    
    ThisDrawing.Application.ZoomAll

    ' Store old Precision value as default for input box
    oldPrecision = dimObj.AltUnitsPrecision
    
    ' Allow the user to change the precision for the alternate dimension
    newPrecision = InputBox("Enter a new precision for the alternate dimension.  The value must range from 0 to 8.", "Alternate Dimension 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 alternate precision has not been changed."
            Exit Sub
    End Select
    
    dimObj.AltUnitsPrecision = newPrecision   ' Commit changes to precision
    
    ThisDrawing.Regen acAllViewports
    
    ' Read back and display the alternate dimension precision
    newPrecision = dimObj.AltUnitsPrecision
    MsgBox "The alternate dimension precision has been set to " & newPrecision & " decimal places"
End Sub

可视化 LISP:

(vl-load-com)
(defun c:Example_AltUnitsPrecision()
    ;; This example creates an aligned dimension in model space and
    ;; uses AltUnitsPrecision to allow the user to change the
    ;; precision of the alternate 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 alternate unit display
    (vla-put-AltUnits dimObj :vlax-true)
    
    (vla-ZoomAll acadObj)

    ;; Store old Precision value as default for input box
    (setq oldPrecision (vla-get-AltUnitsPrecision dimObj))
    
    ;; Allow the user to change the precision for the alternate dimension
    (if (= (setq newPrecision (getint "\nEnter a new precision for the alternate dimension (0-8): ")) nil) (setq newPrecision oldPrecision))
    
    (cond
      ((= newPrecision 0)(setq newPrecision acDimPrecisionZero))
      ((= newPrecision 1)(setq newPrecision acDimPrecisionOne))
      ((= newPrecision 2)(setq newPrecision acDimPrecisionTwo))
      ((= newPrecision 3)(setq newPrecision acDimPrecisionThree))
      ((= newPrecision 4)(setq newPrecision acDimPrecisionFour))
      ((= newPrecision 5)(setq newPrecision acDimPrecisionFive))
      ((= newPrecision 6)(setq newPrecision acDimPrecisionSix))
      ((= newPrecision 7)(setq newPrecision acDimPrecisionSeven))
      ((= newPrecision 8)(setq newPrecision acDimPrecisionEight))
      ((progn (alert "The alternate precision has not been changed.")(setq newPrecision oldPrecision)))
    )
    
    (vla-put-AltUnitsPrecision dimObj newPrecision)   ;; Commit changes to precision
    
    (vla-Regen doc acAllViewports)
    
    ;; Read back and display the alternate dimension precision
    (setq newPrecision (vla-get-AltUnitsPrecision dimObj))
    (alert (strcat "The alternate dimension precision has been set to " (itoa newPrecision) " decimal places."))
)

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1   苏公网安备32011402011833)

GMT+8, 2025-3-14 07:16

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部