Jagaimo
作図するAutoLISPの練習、ユーザー入力された1点から雪だるまを作る問題の解答編です。
解答
点座標編集して2点目の中心点を出す場合
(defun c:test ( / Pt1 Pt2)
(setq Pt1 (getpoint))
(setq Pt2
(list
(car Pt1)
(+ 90 (cadr Pt1))
0
);list
);setq Pt2
(command-s "._CIRCLE" Pt1 50)
(command-s "._CIRCLE" Pt2 40)
(princ))
コマンド MOVE[移動]を使う場合
ユーザー入力点に2つ円を書いて、半径40の円を上に90移動コマンドを使って移動させる方法もあります。こちらの方がシンプルですね。
entlast はその直前に作成された図形を得る関数です。
(defun c:test ( / Pt)
(setq Pt (getpoint))
(command-s "._CIRCLE" Pt 50)
(command-s "._CIRCLE" Pt 40)
(command-s "._MOVE" (entlast) "" "0,0" "0,90")
(princ))
参考記事
関数 getpoint を使ってユーザがクリックした所の点座標を得る方法について。
AutoCAD コマンドをAutoLISPで使う方法について。
AutoCAD コマンドをAutoLISPで使う方法のVisual Lispバージョン。
getpoint で得た1つ目の点を編集して、2つ目の円の中心点を出す方法について。
関数 entlast について
Comments