Vla-put-toleranceprecision

提供:GizmoLabs - だいたい CAD LISP なサイト
2016年1月12日 (火) 22:49時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (vla-put-toleranceprecision ''vla-object'' ''precision'') ; 機能 : 基本寸法の寸法許容差値の精度を指定する。 ; 引数 :*...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla-put-toleranceprecision vla-object precision)


機能
基本寸法の寸法許容差値の精度を指定する。


引数
  • vla-object … VLAオブジェクト(Dim3PointAngular、DimAligned、DimAngular、DimArcLength、DimDiametric、Dimension、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 : このプロパティの初期値は acDimPrecisionFour で、ToleranceDisplay プロパティが acTolNone 以外の値に設定されている場合にのみ使用できる。

注: このプロパティは、指定された寸法でシステム変数 DIMTDEC[寸法許容差精度]の値を変更する。


サンプル
(vl-load-com)
(defun c:Example_TolerancePrecision()
    ;; 寸法が作成して、寸法公差の精度を変更するサンプル
    (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 oldTolerance (vla-get-TolerancePrecision dimObj))
    
    ;; 寸法公差の精度を変更することを許可
    (setq newTolerance (vla-GetInteger (vla-get-Utility doc) (strcat "\n寸法の新しい公差精度を入力 (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 "公差精度は変更されません。"))
                       ))

    (if (/= newTolerance nil)
        (progn
            (vla-put-TolerancePrecision dimObj newTolerance)   ;; 公差精度の変更にコミットする
	    
            (vla-Regen doc acAllViewports)
	    
            ;; Read back and display the dimension tolerance precision
            (alert (strcat "公差精度を次の値に戻します " (itoa (vla-get-TolerancePrecision dimObj)) " 少数桁"))
        )
    )
)


関連事項