Vla-put-primaryunitsprecision

提供:GizmoLabs - だいたい CAD LISP なサイト
構文
(vla-put-primaryunitsprecision vla-object precision )


機能
寸法または寸法許容差の基本単位で表示する小数部桁数を指定する。


引数
  • vla-object … VLAオブジェクト(DimAligned、DimArcLength、DimDiametric、DimOrdinate、DimRadial、DimRadialLarge、DimRotated)
  • precision … 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


戻り値
nil
  • MEMO:このプロパティは、指定された寸法でシステム変数 DIMDEC[寸法精度]の値を変更する。


サンプル
(vl-load-com)
(defun c:Example_PrimaryUnitsPrecision()
    ;; 平行寸法を作成し、基本単位と寸法の許容差単位に表示される
    ;; 小数点以下の桁数を変更するサンプル
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
    
    ;; 寸法の定義
    (setq point1 (vlax-3d-point 0 5 0)
          point2 (vlax-3d-point 5.12345678 5 0)
          location (vlax-3d-point 5 7 0))
    
    ;; 寸法を作成
    (setq modelSpace (vla-get-ModelSpace doc))
    (setq dimObj (vla-AddDimAligned modelSpace point1 point2 location))
    
    ;; 許容差を表示にセット
    (vla-put-ToleranceDisplay dimObj acTolSymmetrical)
    (vla-put-ToleranceLowerLimit dimObj -0.0001)
    (vla-put-ToleranceUpperLimit dimObj 0.005)
    (vla-ZoomAll acadObj)

    ;; 精度値入力ボックスの既定値として格納します。
    (setq oldPrecision (vla-get-PrimaryUnitsPrecision dimObj))
    ;; 寸法と寸法許容差の精度を変更するユーザー入力
    (setq newPrecision (vla-GetInteger (vla-get-Utility doc) "\n寸法と公差の新しい精度を入力 (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)
                       ))
    
    ;; 変更
    (if (/= newPrecision nil)
        (progn
            (vla-put-TolerancePrecision dimObj newPrecision)
            (vla-put-PrimaryUnitsPrecision dimObj newPrecision)
    
            (vla-Regen doc acAllViewports)
    
            ;; 戻す
            (setq newPrecision (vla-get-PrimaryUnitsPrecision dimObj))
            (alert (strcat "寸法と公差の新しい精度は、小数点以下 " (itoa newPrecision) ))
        )
        (alert "変更してません。")
    )
)

関連事項