Sponsored links

【AutoLISP 初めの一歩】自作コマンドの名づけ defun

Sponsored links
初めの一歩
Sponsored links
Sponsored links

コマンドって何?

Jagaimo
Jagaimo

線を引きたいときの “LINE” 、コピーしたいときの “COPY“。コマンドラインに入力するアレです。

さすがにAutoCADを使っていてコマンドが何かを知らない人はほぼいないのかなと思いますが念のため。

コマンドとは、プログラムに実行内容を指示する命令のことです。

AUTODESK ヘルプ

直接コマンドラインに入力していない方でも、リボン、ツールバー、メニューからアイコンを選択した時にコマンドが実行されます。

AutoLISPで自作コマンド

AutoLISPを使えば、コマンドを自分で作ることができます。

例えば、線分を引くにしても、現在画層を変更せずに特定の画層に引くとか、始点は同じで終点だけクリックして引きたいとかなどなど。

こんなコマンドが欲しい!このコマンドのこの部分がこうなら便利なのに!
そんな願いが叶います。

関数 defun

defun は、関数を定義するための関数です。

ここでは、(defun c:コマンド名 ( ) )で、コマンドの名前を付ける。と覚えておいてください。

Jagaimo
Jagaimo

コマンド名の後ろの空っぽの( )かっこ。

必要なものなので空っぽだからと省略はしてはいけません

(alert “こんにちは” )は、AutoCADに警告ボックスを出すAutoLISPです。
詳しくはこちらの記事
【初めの一歩】関数-AutoCADにして欲しいことをお願いする呪文

この動作に aisatsu とコマンド名を付けて、defunでコマンド関数としてプログラミングすると、下記のようになります。

(defun c:Aisatsu () (alert "こんにちは"))

AutoCADのコマンドラインにこのプログラムを入力して読み込んで、コマンドを試してみましょう。

AutoCAD上にコマンドラインが見当たりませんか?

CTRL+9  がコマンドラインの表示/非表示切替ショートカットです。

もしくはコマンド COMMANDLINE でコマンドラインを表示させることができます。

Jagaimo
Jagaimo

関数はいつも( で始まり、)で終わります。

( と )の数は必ず同じになるのでお忘れなく!!

コマンドラインにプログラムを入力、エンターで、AutoCADがコマンドとして読み込んだら、
C:AISATSU
と、AutoCADが返事をしてくれます。

これで、コマンドAisatsuが使えます。

普通のコマンドを使う時のように、Aisatsu と入力してエンターを押すと、

This image has an empty alt attribute; its file name is image-3.png

と、警告ボックスが出てきます。

無事、こんにちはと警告ボックスを出すコマンドAisatsuをプログラミングして、AutoCADに読み込んでコマンドとして使うことができました。

このコマンド、もう二度と使わないだろうから消したいな。

Jagaimo
Jagaimo

安心してください。

AutoLISPは、その図面ファイルを閉じれば全部消えます。

そして、毎回使うAutoLISPは毎回読み込むように設定できます。

AutoLISPファイルの読み込み方についてはコチラの記事を。

今回は、 (defun c:コマンド名 ( ) ) でコマンドを作ることができる!ということを頭に入れておいてください。

まとめ

  • コマンドとは、AutoCADに何をしたいか伝えるもの。例えば線分の”LINE”。コマンドラインに入力しても、アイコンをクリックしても実行できる。
  • AutoLISPを使えば、欲しかったコマンドを自作できる。
  • (defun c:コマンド名 ( )  プログラム) でコマンドを作ることができる

関連記事

(defun c:コマンド名 ( ) ) の空カッコ、一体何なのか気になる!!
と言う方はコチラの記事へ。

このカッコは、(関数を定義する際の引数を入れる変数 / ローカル変数を宣言) を入れる場所です。


AutoLISPの読み込み方について。

作ったコマンドをアイコンやショートカットメニューなどから実行する方法について。
AutoLISPはやっぱり好きになれない。。。という方も、既存コマンドアイコンの並べ替えや自分用のリボンを作ったりするだけでも作業効率アップできますよ!

Comments