Sponsored links

【AutoLISP 初めの一歩】大文字?小文字?

Sponsored links
初めの一歩
Sponsored links

AutoLISPは、基本的には大文字小文字を区別しないので、どちらでも見やすい方を使えばいいです。

しかし、ダイアログボックスを作るときなど例外もあります

Sponsored links

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