
図 1. LISPコンソールウィンドウ
リリース8.5は次の重要な一歩を踏み出し、コマンドラインでLISP式の入力が可能になり、さらにPAUSEシンボルのサポートが登場しました。 この記事に記載されている変更は、8.5.4131.2629、アセンブリ4133から始まるリリース8.5に含まれていました。
コマンドではなくLISP式
プロンプトコマンドへの応答でのLISP式の入力:他のクエリがない場合に可能です。 例:
(最小k1 k2) 、
ここで、 k1とk2はいくつかのグローバル変数です(図2):

図 2.コマンドラインでのLISP式
Enterキーを押すと、システムは結果をコマンドラインに返します。 LISP関数コマンドを使用して、コマンドを実行し、パラメーターを設定することができます-たとえば、RECTANGLEコマンド(図3):

図 3. RECTANGLEコマンドを実行するLISP式の例
画面に実行結果が表示されます。

図 4. RECTANGLEコマンドの結果
ユーザー入力の一時停止としてのLISP文字の一時停止
バージョン8.5では、 PAUSE LISPシンボルの使用が実装されています。これは、コマンドを中断してユーザー入力を要求することを意味します。 半径が事前にわかっていて、円の中心点を要求する必要があるとします。 次に、式を使用します。
(コマンド「_.CIRCLE」PAUSE(sqrt 2894.73))
処理結果を図に示します。 5:

図 5. PAUSEを使用したCIRCLEコマンドの中止
CIRCLEコマンドが開始し、円の中心の要求によって中断され、中心点を指定した後、式(sqrt 2894.73)を半径値として評価した結果を使用して実行を完了しました。
同じLISP式でPAUSEを繰り返し使用することは可能です、例えば:
(コマンド「_.CIRCLE」PAUSE PAUSE)
LISP文字値にアクセスする
デバッグには、多くの場合、LISP文字の現在の値を確認する必要があります。 他のCADシステムの経験から、グローバルLISP変数の現在の値を取得する方法を知っています-感嘆符、たとえば:
!myvar
バージョン8.5では、そのような可能性はありませんが、代替関数evalがあります。 次の式は、 myvar変数の値を返します。
(eval myvar)
ご注意 nanoCADの(eval PAUSE)はnilを返します。
eval関数は、異なるタイプのデータでは異なる動作をするため、リスト値を格納する変数については、次のようにquote関数を追加する必要があります 。
(setq lista1(リスト1(リスト2 99)))
(eval lista1)エラーを返します
(eval(quote lista1))は(1(2 99))を返します
ニコライ・ポレシュチュク