【AutoLISP】AutoLISP入門講座 ② 「defun」関数でオリジナルコマンドを定義しよう

 AutoLISPを学ぶ上で欠かせないのが、関数の理解です。 今回は「AutoLISP入門講座」の第2回として、プログラミングの中で毎回のように使うことになる「defun」関数について解説します。

自分だけのオリジナルコマンドを作成するための第一歩となりますので、ぜひ参考にしてください。


AutoLISPの基本ルール(復習)

本題に入る前に、まずはAutoLISPの基本を少し復習します。 AutoLISPのプログラムは、基本的にカッコ ( ) で囲まれた「リスト」という形式で記述されていきます。

カッコの中には、最初に「関数」、その後に「引数(ひきすう)」を記述するというルールがあります。引数については、Excelの関数を使うときのイメージを持っていただけると分かりやすいです。


defun関数とは?

数ある関数の中でも、一番最初によく使うのが「defun」関数です。 これは「Define Function(関数の定義)」から来ており、これから自分で作りたい新しいコマンド(機能)を定義するための関数です。


defun関数の書き方と3つのポイント

基本的な記述スタイルは以下のようになります。

(defun c:test ()
  ここに処理の内容を記述します
)

コードを書く際に覚えておきたい重要なポイントを3つ紹介します。


1. コマンド名の前には「c:」をつける

コマンド名(上記の例では test)の前に付いている c: は非常に重要な役割を持っています。 これをつけておくことで、AutoCADのコマンドラインから直接「test」と打ち込んで、自作したプログラムを実行できるようになります。Cドライブという意味ではなく、コマンド(Command)のCとして覚えておきましょう。

2. 引数のカッコ「()」は必須

コマンド名の後ろにある () には、そのコマンドに対する引数が入ります。 今回は引数なしの例ですが、もし引数がない場合であっても、このカッコは省略せずに必ずつけるルールになっています。

3. 改行してコードを見やすくする

プログラムは1行に続けて書くことも可能ですが、後から見返したときに読みやすいよう、適切に改行をして整理しながら書くのがおすすめです。


動画での解説

テキストだけでは分かりにくい部分もあるかと思いますので、実際の画面を用いた解説動画をご用意しました。 細かいニュアンスやコードを記述する様子を確認したい方は、ぜひこちらの動画も併せてご参照ください。


いかがでしたでしょうか。 defun関数はAutoLISPでプログラムを書く際の土台となる部分です。 しっかりと書き方のルールを覚えて、オリジナルコマンドの作成に挑戦してみてください。