AutoLISPは、基本的には大文字小文字を区別しないので、どちらでも見やすい方を使えばいいです。
しかし、ダイアログボックスを作るときなど例外もあります。
AutoLISP 大文字/小文字
関数名、変数名、コマンド名、コマンド内のオプション、など、基本的にはAutoLISPは大文字/小文字を区別しません。
(defun c:Aisatsu () (alert “こんにちは”))
(DEFUN C:AISATSU () (ALERT “こんにちは”))
どちらも同じように読み込まれます。
全角/半角に関しては別物です。
文字列 “ ” の中以外は、必ず半角英数字で入力してください。
この ” ” クォーテーションマーク、( )や空白全て半角です。
例外
ダイアログボックス
ダイアログボックスを作るときは、AutoLISPファイルだけでなく、ダイアログコントロール言語 Dialog Control Language (DCL) を使います。
DCLは大文字小文字を区別します。
DCLとAutoLISPは、”Key” の値を送ったり受け取ったりするのですが、DCLは大文字小文字を区別するので、AutoLISPから送るKeyの値も大文字小文字がDCLにあるKeyと同じである必要があります。
文字列を比較するとき
= や wcmactchを使って文字列を比較する場合は、大文字小文字が区別されます。
例えば、(= “A” “a”) (wcmatch “A” “a”) は 別文字として判断されてnil になります。
大文字小文字を区別せずに文字列の比較をしたいときは、文字列を大文字に変更する関数 strcase を使い、
(= “A” (strcase “a”))
(wcmatch “A” (strcase “a”))
のよう全て大文字にして比較するといいです。
JagaimoLISP内での大文字/小文字マイルール
大文字小文字を区別しないとはいえ、ルールを決めておいた方が、わかりやすく見やすいプログラムになります。
私はその時の気分で違ったりしていたのですが、、、ここでブログを作るにあたり、ルールを決めようと思います。
- AutoLISP関数はすべて小文字
- AutoCADコマンド、コマンド内オプションは大文字
- 変数は1文字目だけ大文字。単語をつなげた変数名にするときは、単語の1文字目は大文字 (例 ObjCol)
- DCLに渡すキーは基本的に変数名と同じにする。
このルールに沿って、このブログを書いていこうと思いますので、よろしくお願いします。
まとめ
- AutoLISPは基本的には大文字小文字を区別しない。
- ダイアログボックス用のDialog Control Language (DCL)は大文字小文字を区別する。
- AutoLISPからKeyの値をDCLに送るときは大文字小文字が違っていると、DCLが受け取らないので区別する。
- =やwcmatchなど、文字列を比較するときは、大文字小文字を区別する。
- =やwcmatchなどで、大文字小文字を区別せずに比較したいときは、strcase を組み合わせて使うと使うとよい。
- 区別しなくても、ルールを決めた方が、わかりやすい見やすいプログラムになる。
Comments