AutoLISP入門 関数紹介

【入門】AutoLISP初心者が最初に覚えるべき関数5種|簡単な使用例も解説

基礎
  • AutoCADを自動化して楽したい
  • CADオペレーターとしてスキルアップしたい
  • プログラミングなんて自分には難しそう

AutoLISPでAutoCADを自動化・効率化したいけど、何から覚えていいかお困りではないでしょうか。プログラミングと聞いて抵抗感を持ってしまう方も多いはず。

そもそもAutoLISPってなに?という方はこちらをご覧ください。
>>AutoCADユーザー必見!【AutoLISPを覚えるべきメリット5選】デメリットも解説

私はAutoLISPを独学し、業務の自動化・効率化に役立つプログラムを5年以上作成しています。数行で書けるような簡単なプログラムから、1000行以上の少し複雑なプログラムまで様々なツールを作成してきました。

当記事ではAutoLISP初心者が最初に覚えるべき関数をご紹介します。

基礎的な関数の使い方が分かるため、AutoLISP開発の第一歩を踏み出すことが可能。今すぐ活用できる簡単な内容に絞っているので、プログラミング経験がない方や苦手意識のある方でも、AutoCADの自動化を体感できます。

はこ
はこ

AutoLISPを覚えて、ワンランク上のCADオペレーターを目指しましょう。

AutoLISP初心者の方に覚えていただきたい関数は次の5種類。どれも使用頻度が高く、今後のプログラム作成に大きく役立ちます。

・command
・setq
・四則演算(+、-、*、/)
・list
・print

AutoLISP初心者が最初に覚えるべき関数5種

beginner-image1

今回ご紹介する関数は以下の5種類です。

  • command
  • setq
  • 四則演算(+、-、*、/)
  • list
  • print

ちなみにAutoLISPの関数は次のように記述します。

(関数 引数1 引数2 ・・・)

関数を一番左に記述して、必要な引数は関数の右側に記述してください。1文の両側にはかっこが必要です。かっこの数が合わないとエラーになるので注意してください。

command

「command」とは、AutoCADコマンドを自動で実行できる関数のこと。最大の特徴は普段の作業を自動化しやすい点です。

AutoCADコマンドの実行に必要な座標や文字列を手動で選択、または手動で入力している方も多いでしょう。commandを使えば、あらゆるAutoCADコマンドを自由な設定で自動的に実行できます。

例えば、中心座標(0,0)で直径10の円を作図する場合、手動だと「ホーム」タブ→「円」を選択してから、必要なパラメータを入力しなければなりません。commandであれば、次のプログラムを実行するだけで円を作図できます。

(command "circle" (list 0 0) "D" 10)

commandの実行方法は、上記のプログラムをコマンドラインにコピペして「Enter」キーを押すだけ。

image1-1

プログラムが実行されると次のような円が作図されます。座標や直径を書き換えると、別な円を作図できるので色々試してみましょう。

editor-image4-5

長方形や線分など、様々な作図コマンドの実行例を知りたい方はこちらをご覧ください。
>>【AutoLISP】コマンドを呼び出す関数「command」

はこ
はこ

commandはAutoLISPのすごさを体感しやすい関数です。

setq

「setq」は数値や文字列など、様々なデータを変数に格納する関数です。

変数とは?

数値や文字列、関数など様々なデータを出し入れできる箱のこと。変数の名前(変数名)はユーザーが自由に設定できます。
>>変数とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

変数を使う最大のメリットは、格納されているデータの代わりとして扱えること。長い文字列(フォルダのアドレスなど)や、桁数が多い数値を記述する手間が省けます。

変数名は格納されているデータが推測できる名前を付けてください。プログラムの見た目がきれいになり、動作も分かりやすくなります。

setqで変数にデータを格納する場合は、次のように記述してください。変数名の右隣にあるデータが変数に格納されます。

(setq 変数名 データ)

前述した円を作図するプログラムは、変数を使うと次のように記述することもできます。

(setq center (list 0 0))
(setq diameter 10)
(command "circle" center "D" diameter)

中心座標と直径を変数へ格納していることに注目してください。データを直接記述した場合に比べてプログラムが読みやすく、変更も楽になります。「list」については後述するのでお楽しみに。

setqの使い方をもう少し知りたい方はこちらの記事をご覧ください。
>>【AutoLISP】変数にデータを格納する関数「setq」

はこ
はこ

setqはAutoLISPのプログラム作成に欠かせない関数です。

四則演算(+、-、*、/)

四則演算とは足し算、引き算、掛け算、割り算のことです。それぞれの演算子を表す関数は次のとおり。

  • 足し算 +
  • 引き算 -
  • 掛け算 *
  • 割り算 /

例えば、AutoLISPで「1+2」を計算する場合は次のように記述します。

(+ 1 2)

AutoLISPでは関数を先頭に記述するため、それぞれの演算子は先頭に記述してください。数値は複数記述することができます。

引き算と割り算は演算子の右隣にある数値に対して、他の数値を処理するので注意してください。足し算と掛け算は全ての数値を処理するためイメージしやすいはず。

計算結果は以下の表を参考にしてください。小数点以下を含む数値で計算したときは、計算結果にも小数点が表示されます。

プログラム計算結果
(+ 1 2 3)6
(+ 1.0 2 3)6.0
(- 2 1)1
(- 1 3)-2
(* 2 3 4)24
(/ 5 2)2
(/ 5 2.0)2.5
(/ 6 3 2)1

四則演算以外の数値計算についてはこちらの記事で解説しています。
>>【AutoLISP】四則演算の関数

はこ
はこ

四則演算は使用頻度が高く、重要な関数なのでしっかりとマスターしてください。

list

「list」とは名前のとおり、リスト形式のデータを作成する関数です。

リストとは?

いくつかのデータを左右一組のかっこでくくった、特殊なデータ形式のこと。数値や文字列など、様々なデータを1つにまとめることができます。

リスト内のデータ1つ1つを「要素」と呼び、専用の関数によって要素の取得が可能。

要素を取得する関数については、こちらの記事をご覧ください。
>>【AutoLISP】リストの要素を取得する関数「nth」「last」「assoc」

要素が数値だけ(3つまで)の場合は、図面上の座標として扱うことができるため、作図には欠かせません。

例えば、前述した円を作図するプログラムでは、中心座標をリストで表現しています。変数centerの右隣に記述している、list関数に注目してください。

(setq center (list 0 0))

左から1つ目の数値がX座標、2つ目がY座標に対応しており、3つ目に数値を記述すればZ座標として認識されます。座標の数値を書き換えると、作図される座標が変わるので色々試してみてください。

listについてもっと知りたい方はこちらの記事をご覧ください。
>>【AutoLISP】リストを作成する関数「list」「cons」

はこ
はこ

listは座標以外にも用途が多く、使いやすい関数です。

print

「print」とはコマンドライン上に引数のデータを文字列として表示する関数のこと。ユーザーへのメッセージや変数の中身を表示できるため、プログラムの状態が分かります。

例えば、次のプログラムをコマンドラインにコピペしてください。

(print "関数aを実行します。")

プログラムの実行結果は次のとおりです。

image5-1

"関数aを実行します"という文字列が、2つ表示されている点に注目してください。AutoLISPではプログラムの最終的な実行結果がコマンドライン上に表示されるので、printの実行結果と最終的な実行結果の2つの文字列が表示されています。

文字列を直接記述する代わりに変数を使うことも可能。

(setq str "関数aを実行します。")
(print str)

文字列を表示する関数はprint以外にもいくつかあります。他の文字列表示関数について知りたい方は、こちらの記事をご覧ください。
>>【AutoLISP】表示コントロール関数「princ」「print」

はこ
はこ

文字列表示関数は用途に合わせて使い分けることが大切です。

AutoLISPを覚えてAutoCADの自動化を目指そう

beginner-image-last

今回ご紹介した5種の関数を以下にまとめます。

関数コメント詳細記事リンク
commandAutoCADコマンドを自動で実行できる詳細を見る
setq変数にデータを格納する詳細を見る
+、-、*、/四則演算を行う詳細を見る
listリスト形式のデータ(座標)を作成できる詳細を見る
printコマンドライン上に文字列を表示する詳細を見る

もっと実用性の高いプログラムを作成したい方は、エディタを活用してください。

  • エディタってなに?
  • どんなエディタを使えばいいの?

こんな方にはAutoCAD標準搭載の「Visual LISP エディタ」をおすすめします。

Visual LISP エディタの使用方法を、こちらの記事で詳しく解説していますので、よろしければご覧ください。
>>【入門】AutoLISP開発をはじめよう!Visual LISP エディタの使い方

AutoLISPを書籍で学びたい方には「AutoCAD 自動化攻略読本」がおすすめ。初心者向けに解説されており、AutoLISP以外の自動化方法も学べるお得な一冊。とにかくAutoCADで楽をしたい方はぜひご覧ください。

だれでも簡単にAutoCADを自動化

-AutoLISP入門, 関数紹介

AutoLISPのおすすめ書籍はコチラ
AutoLISPのおすすめ書籍はコチラ