AutoLISP でコマンドを作る前に、まずは、知っておいて欲しいことの記事です。
用語を知ろう
このブログに限らず、AutoLISPの解説を読むときに知っておくべき用語です。
”数” “値”が着く言葉が多いですが、数字のことでは無い場合がほとんどです。
関数
関数は単語。一つ一つの単語がそれぞれ機能や働きを持っていきます。
AutoLISPプログラミングは、既存の関数の一つ一つの機能や働き組み合わせて、新たに機能や働きを作りだしていく作業です。ピタゴラスイッチみたいなイメージ。
引数
関数がその働きをするのに必要な情報が引数です。
変数
変数に値を代入する。という感じでよく出てきます。
変数という箱に情報を入れて名前を付ける。
情報にニックネームを付けて、その後はニックネームで呼び出せる。
というイメージです。
戻り値
AutoLISPを使ってAutoCADに話しかけた時、AutoCADが返事をくれます。
この返事が戻り値です。
はい/いいえは、AutoLISP ではT/nil です。
プロンプト
プロンプトというのは、ユーザーに何をするのか促してくれるメッセージ。
例えば、線分を引きたいとき、LINE[線分]コマンドをスタートすると、コマンドラインに「1点目を指定」と出てくる文言のこと。
ルーティーン
毎回決まったパターン化された作業のこと。
パターン化されている作業こそ、プログラムにしやすくAutoLISPで自動化しやすい部分です。CADのルーティーン作業をAutoLISPで自動化します。
もしくは、プログラム内でよく使う一連のパターンのこともルーティーンと言います。
定義
コマンド/関数を定義する。変数を定義する。などと使われます。
この名前のコマンド/関数の中身はこれにしますよ。この名前の変数の中身はこれにしますよ。と決めることです。
ちなみに関数 defun は define function (関数を定義する)の略。
AutoLISPの基本ルール
大文字? 小文字?
大文字小文字どっちでもいいけれど、たまに例外があります。
コマンドの名づけ
(defun c:コマンド名…..) で自作コマンドができます。
コメントアウト (プログラム内にメモ)
プログラムの機能には影響しない、人間が読むためのメモを入れることができます。
(princ) は何のため?
AutoLISPコマンドは、最後に(princ)がついている場合が多いです。
コマンドラインの見た目をよくするためで、プログラムの機能には関係ありません。
文字列と数値
文字列と数値の違いは、” ” ダブルクォーテーションマーク。
“1”は文字列、 1は数値です。
ローカル変数の宣言
この変数はこの中でしか使わないローカル変数です!!と宣言すると、その変数が、外から影響を受けることも外へ影響することもありません。
AutoLISPを作成編集するソフト エディタ
エディタはAutoLISPを書くのに使うソフトです。
Visual Studio Code / Visual LISP IDE / メモ帳 / Notepad++
を使ってみての私の感想です。
一番のおススメはVisual Studio Code。
一番メジャーなのはAutoCADに搭載されているVisual LISP IDEですが、AutoCAD2021では”旧機能、将来のリリースでは削除”と明記されているのでおススメしません。
AutoLISP の読み込み方
AutoLISPの書き方を覚えても、AutoCADに読み込めなければ使えない。
逆に読み込み方さえ知っていれば、最悪AutoLISPプログラミングの習得を諦めたとしても、いろんなサイトからコピペしてAutoLISPを使えます。
次のステップ
基礎編では、比較的シンプルな自作コマンドを作る方法を紹介していきます。