CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ActiveX 开发指南

相关分类

公差精度属性 (ActiveX)

2023-1-3 03:08| 发布者: admin| 查看: 193| 评论: 0|来自: AutoCAD

摘要: 指定主要尺寸中公差值的精度。

指定主要尺寸中公差值的精度。

支持的平台:仅窗口

签名

工 务 局:

object.TolerancePrecision
对象

类型:暗三点角度,暗对齐,暗,暗弧长度,暗直径,尺寸,暗坐标,径向,向大,暗旋转

此属性适用的对象。

属性值

只读:

类型:枚举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

言论

此属性的初始值为。acDimPrecisionFour

仅当属性设置为除以下值以外的任何值时,此属性才可用。ToleranceDisplayacTolNone

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

例子

工 务 局:

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"))
        )
    )
)

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2024-5-19 13:10

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部