LoginSignup
0
1

More than 3 years have passed since last update.

【AutoLISP】ジオメトリ関数の使い方

Posted at

ジオメトリ関数リファレンス(公式ヘルプ)

2点を結ぶ線分の角度を求める angle

(angle '(0 0 0) '(1 1 0))
;; -> 0.785398
(angle '(5 5 0) '(1 2 0))
;; -> 3.78509
(angle '(0 0 0) '(2 5 0))
;; -> 1.19029

2点間の距離を求める distance

(distance '(0 0 0) '(1 1 0))
;; -> 1.41421
(distance '(0 0 0) '(100 0 0))
;; -> 100.0

2本の線分の交点を求める inters

(inters '(0 0 0) '(100 100 0) '(100 0 0) '(0 100 0))
;; -> (50.0 50.0 0.0)
(inters '(0 0 0) '(100 100 0) '(100 0 0) '(60 40 0))
;; -> nil

;; 延長線上も拾う
(inters '(0 0 0) '(100 100 0) '(100 0 0) '(60 40 0) nil)
;; -> (50.0 50.0 0.0)

指定された点にオブジェクトスナップモードを適用して取得した点を返す osnap

;; '(0 0 0) '(100 100 0) の線分が作図されているとして
(osnap '(40 40 0) "_mid")
;; -> (50.0 50.0 0.0)
(osnap '(40 41 0) "_mid")
;; -> (50.0 50.0 0.0)
(osnap '(100 50 0) "_mid")
;; -> nil

指定点から指定角度と距離だけ離れた点を返す polar

(polar '(0 0 0) 0 100)
;; -> (100.0 0.0 0.0)
(polar '(0 0 0) (/ pi 2) 100)
;; -> (0.0 100.0 0.0)
(polar '(0 0 0) (/ pi 4) (sqrt 2))
;; -> (1.0 1.0 0.0)

文字を囲むボックスの対角頂点の座標を返す textbox

;; 文字を選択 ※マルチテキスト不可
(setq text (car (entsel)))
(textbox (entget text))
;; -> ((0.75 0.25 0.0) (9.93122 3.43122 0.0)) ※選択した文字による
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1