VisualLispでプログラミング! 個人でできるAutoCADカスタマイズ 第2回
はじめに
本連載は「AutoCADのカスタマイズをやってみたいと思っている、基本的なプログラミングの概念は理解している個人の方」を対象にしています。
第2回です!
第1回となる前回はオリジナルコマンドの作成方法について解説しました。
コマンドの機能はコマンドウィンドウに「Hello world.」と表示するだけのシンプルなものでしたが、VisualLispでカスタマイズコマンドを作成できることがご理解いただけたと思います。
第2回となる今回はもう少し進んで、カスタマイズコマンドで図形を作図する方法を解説します。
VisualLispを起動する!
今回もVisualLispを使用します。
VLISPコマンドを実行してVisualLispを起動してください。
(リボンインタフェイスでは「管理」タブの「アプリケーション」パネルから「Visual LISP エディタ」を選択)
起動したら「ファイルを新規作成」でカスタマイズコマンド作成の準備をしてください。
CADカスタマイズとは何か?
いきなり図形作図から話がそれますが、皆さんはCADカスタマイズとは何かという質問を受けたときどんな答えが出てきますか?
いろんな考えや意見が出てくるとは思いますが、CADカスタマイズの基本は以下のようなものになると考えています。
「CADカスタマイズとは、CADで手作業で行っていることを、CADに自動で行わせること」
大規模なカスタマイズでは、外部のシステムとの連携や組み合わせなどで「CADだけではできないこと」を実現したりしますが、CADがやっている部分に限れば「手作業で行っていたことを自動で行えるようにした」だけなのです。
VisualLispで図形作図
図形作図の話に戻ります。
カスタマイズに慣れていない場合は「図形作図といってもどうすればいいかわからない」方もいるかもしれません。
しかし、図形作図といってもカスタマイズの基本から外れるものではありません。図形作図も「CADで手作業で行っていることを、CADに自動で行わせること」でしかないのです。
今回はいつもCADで手作業で行う作業として「原点を中心とした100.0×100.0のバツ印」の作図があると仮定して作図作業を自動化します。
「原点を中心とした100.0×100.0のバツ印」は手作業で2つの線を作図しているものとします。
では、以下の「MYCLINE」カスタムコマンドのプログラムをVisualLispに入力してください。
(defun C:MYCLINE ()
(command “line” “-50.0,-50.0” “50.0,50.0” “”)
(command “line” “-50.0,50.0” “50.0,-50.0” “”)
(princ)
)
VisualLispのメニューで「ツール – エディタ内のテキストをロード」を選択して、プログラムをAutoCADにロードします。
AutoCADのコマンドウィンドウに「MYCLINE」と入力してカスタマイズコマンドを実行すると、「原点を中心とした100.0×100.0のバツ印」が作図されます。
プログラムの解説
プログラムの内容について解説します。
defun C:MYCLINE ()
コマンドを登録する命令です。「MYCLINE」部分がコマンド名です。
command “line” “-50.0,-50.0” “50.0,50.0” “”
AutoCADのコマンドを実行する命令です。
「command」部分がAutoCADのコマンドを実行する命令で、続く「”line”」で線(line)コマンドを指定しています。
それ以降の「”-50.0,-50.0″ “50.0,50.0” “”」がコマンドのパラメータとなります。
この命令はいつも使用している線(line)コマンドの実行そのものです。
線(line)コマンドで(-50.0,-50.0)から(50.0,50.0)に線を手作業で作図する場合次のようにAutoCADに入力します。
- コマンドウィンドウに”line”を入力
- 始点として”-50.0,-50.0″を入力
- 終点として”50.0,50.0″を入力
- 次の線分を作図しないため未入力でコマンド終了(スペースやエンターの入力)
3つ目までは手作業と全く同じであることがわかります。4つ目のみ差異がありますが未入力をパラメータ化すると””となると覚えてください。
command “line” “-50.0,50.0” “50.0,-50.0” “”
同じくAutoCADのコマンドを実行する命令です。
ここでは2本目の線となるため、始点と終点のパラメータが変化しています。
princ
コマンドウィンドウにメッセージを表示する命令ですが、メッセージをして指定していません。
「AutoLispのプログラムの最後には必要なおまじない」として覚えてください。
()
プログラムの全体や命令を括弧で囲んでいます。これはAutoLispの(ベースとなっているLispの)ルールになります。
他の図形の作図について
今回のプログラムは線の作図のみとなりますが、「command」命令を使えば他の図形も作図できます。
手作業の作図で使用しているコマンドを指定して、その入力をそのままパラメータとすればどのような図形の作図も可能なのです。
例えば円を、原点を中心点に半径を100.0として、作図する場合は以下のプログラムになります。
(defun C:MYCIRCLE ()
(command “circle” “0.0,0.0” “100.0”)
(princ)
)
いつもの作図作業では、アイコンによるコマンドの起動や、マウスによる座標指示ダイナミック入力の使用などで、コマンド名称(lineやcircleなど)やパラメータの内容などを意識することは少ないかもしれません。
この機会にいつもの作図作業のコマンド名称やパラメータの内容を整理して、カスタマイズコマンドで作図手順を自動化してみてはいかがでしょうか。
まとめ
今回はVisualLispで図形作図する方法を解説しました。
今回の解説では固定的なパラメータ(座標)での作図でしたので、次回はパラメータ(座標)をカスタマイズコマンド実行時に変更する方法を解説したいと考えています。
それでは。
建設・土木業界向け 5分でわかるCAD・BIM・CIMの ホワイトペーパー配布中!
CAD・BIM・CIMの
❶データ活用方法
❷主要ソフトウェア
❸カスタマイズ
❹プログラミング
についてまとめたホワイトペーパーを配布中
デジタルツインと i-Constructionについての ホワイトペーパー配布中!
❶デジタルツインの定義
❷デジタルツインが建設業界にもたらすもの
❸i-Constructionの概要
❹i-Constructionのトップランナー施策