Vla-getdistance

提供:GizmoLabs - だいたい CAD LISP なサイト
構文
(vla-getdistance vla-object Point Prompt )


機能
プロンプト ラインまたは画面上の点の選択セットからの距離を取得する。


引数
  • vla-object … Utility のVLAオブジェクト
  • Point … 基点を指定する 3D WCS 座標この点が与えられていない場合は、2 点を入力する必要がある。
  • Prompt … ユーザに入力を求めるときに表示される文字列。


戻り値
プロンプト ラインおよび図面上で選択された点の集合からの距離


  • MEMO: CAD は、ユーザが直線距離を入力するのを待って、選択された距離の値に対する戻り値を設定する。
  • パラメータ Point は、基点の WCS 座標を指定する。
  • パラメータ Prompt は、ユーザ入力を求める際に CAD が表示する文字列を指定する。
  • Point および Prompt はオプション。
  • 現在の単位で数値を入力すれば、距離を指定することができる。また、グラフィックス画面上の 2 点を指定して、距離を設定することもできる。CAD は距離を視覚的に確認できるように、最初の点から現在のクロスヘア カーソルの位置までのラバーバンド線を描く。パラメータ Point が与えられている場合は、その値が 2 点の内の最初の点として使用される。
  • 既定では、GetDistance メソッドはパラメータ Point と戻り値を 3 次元の点として処理する。あらかじめ InitializeUserInput メソッドを呼び出して、Point を 2 次元の値として処理するよう設定すれば、このメソッドで平面上の距離を得ることができる。
  • 使用する方法や現在の距離の単位(例、フィートとインチ)に関係なく、GetDistance メソッドは常に倍精度浮動小数点数型の戻り値を返す。
  • AutLISP では、getdist 関数があるのでそちらも使える。


サンプル
(vl-load-com)
(defun c:Example_GetDistance()
    ;; ユーザが入力した距離を取得するサンプル
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
  
    ;; ユーザーが入力した値を返す。入力を行う。
    (setq returnDist (vla-GetDistance (vla-get-Utility doc) nil "距離を入力して Enter : "))
    (alert (strcat "The distance entered was " (rtos returnDist 2) "\n"
            "(Enter the next value without prompting.)"))
    
    ;; ユーザーが入力した値を返す。入力を行わない。
    (setq returnDist (vla-GetDistance (vla-get-Utility doc)))
    (alert (strcat "入力された距離は " (rtos returnDist 2)))
    
    ;; ユーザーが入力した値を返す。2点目の指示を行う
    (setq basePnt (vlax-3d-point 0 0 0))
    (setq returnDist (vla-GetDistance (vla-get-Utility doc) basePnt "距離を入力して Enter: "))
    (alert (strcat "入力された距離は  " (rtos returnDist 2)))
)


関連事項