LISP で線分ってどうやって描くの?
こんにちは、メモだよ!!管理人です。
今回は、そんなあなたに、AutoCAD で LISP を使用して線分を作成する方法を紹介します。
以前、以下の記事で Command 関数を使用して作成する方法を紹介しました。
-
参考【AutoCAD】AutoLISP で線や円を描く方法
AutoLISP で線や円を描きたい こんにちは、メモだよ!!管理人です。 以前 【AutoCAD】AutoLISP(ActiveX)で円を描く方法 の記事で、ActiveX の AutoLISP を ...
続きを見る
今回は、ActiveX を使用した方法です。
ActiveX を使用すると、後から図形のプロパティを取得したり変更したりするときなど簡単です。
vla-addline 関数で線分を作成
vla-addline 関数を使用して線分を作成することができます。
最初に、コードを見てみましょう。
(defun C:DrawLine()
; 現在のドキュメント(図面)を取得
(setq activeDocument (vla-get-activedocument (vlax-get-acad-object)))
; モデル空間を取得
(setq modelSpace (vla-get-ModelSpace activeDocument))
; 作成する線分の始点、終点を設定
(setq startPoint (vlax-3d-point 0 0 0))
(setq endPoint (vlax-3d-point 100 100 0))
; 線分をモデル空間に追加
(setq line (vla-addline modelSpace startPoint endPoint ))
(princ)
)
LISP をロードして、DrawLine コマンドを実行してみてください。
やったー!!
LISP で線分を作成できた!!
-
参考【AutoCAD LISP】LISP の実行方法
こんにちは、メモだよ!!管理人です。 今回は、そんなあなたに、AutoCAD で LISP を実行する方法を紹介します。 せっかく AutoLISP を勉強しようと思って、コードを書いてみても実行 ...
続きを見る
では、ひとつずつ解説していきます。
(defun C:DrawLine()
defun 関数で、DrawLine というコマンドを作成しています。
LISP をロードしたあと、DrawLine コマンドを実行すると、このあとに書かれているコードが実行されます。
(setq activeDocument (vla-get-activedocument (vlax-get-acad-object)))
vlax-get-acad-object 関数で、AutoCAD のオブジェクトを取得しています。
そして、それを引数にして vla-get-activedocument 関数で現在アクティブなドキュメント(図面)のオブジェクトを取得しています。
(setq modelSpace (vla-get-ModelSpace activeDocument))
vla-get-ModelSpace 関数を使用して、モデル空間のオブジェクトを取得しています。
今回は、モデル空間に図形を作成するからです。
(setq startPoint (vlax-3d-point 0 0 0))
線分を作成するには、線分の始点と終点を指定する必要があります。
ここでは、変数 starPoint に始点の座標値(0,0,0)を代入しています。
座標値を設定するときは、vlax-3d-point 関数を使用します。
(setq endPoint (vlax-3d-point 100 100 0))
変数 endPoint に、作成する線分の終点の座標値(100,100,0)を代入しています。
(setq line (vla-addline modelSpace startPoint endPoint ))
vla-addline 関数を使用して、モデル空間に線分を作成しています。
線分の始点は startPoint で、線分の終点は endPoint です。
(princ)
DrawLine コマンドを実行したとき、最後に記述されている vla-addline 関数の戻り値として、作成されたオブジェクトが返されます。
その結果、コマンド ラインに「#<VLA-OBJECT IAcadLine 000001eb4f9fdf78>」のように表示されます。
この表示は不要なので、princ 関数で DrawLine コマンドを実行したとき、コマンド ラインに何も表示しないようにしています。
作成した図形のプロパティを変更したいときは、以下の記事を参考にしてくださいね。😉
-
参考【AutoCAD LISP】図形のプロパティを取得したり変更する方法
AutoCAD で LISP を使用して、図形のプロパティを取得する方法を紹介します。また、プロパティを変更する方法も紹介します。
続きを見る