Vla-put-altunitsprecision

提供:GizmoLabs - だいたい CAD LISP なサイト
構文
(vla-put-altunitsprecision 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:このプロパティの初期値は acDimPrecisionTwo。
  • 注 : このプロパティは、指定された寸法でシステム変数 DIMALTD[併記寸法精度]の値を変更する。


サンプル
(vl-load-com)
(defun c:Example_AltUnitsPrecision()
    ;; 寸法を作成して、精度を変更するサンプル
    (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-AltUnits dimObj :vlax-true)
    
    (vla-ZoomAll acadObj)

    ;; 既定の精度を保持
    (setq oldPrecision (vla-get-AltUnitsPrecision dimObj))
    
    ;; 新しい精度を入力
    (if (= (setq newPrecision (getint "\n変換単位の新しい精度を入力 (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)   ;; 結果をコミットする
    
    (vla-Regen doc acAllViewports)
    
    ;; 戻す
    (setq newPrecision (vla-get-AltUnitsPrecision dimObj))
    (alert (strcat "変換単位の精度を次に戻しました: " (itoa newPrecision) ))
)

関連事項