nanoCAD 8.5の新しいLISP機能

nanoCADでのLISPのサポートはかなり前に登場し、主に式を入力して変数を分析するために設計されたLISPコンソールを開く特別なLSPチームに関連付けられていました。





1. LISPコンソールウィンドウ



リリース8.5は次の重要な一歩を踏み出し、コマンドラインでLISP式の入力が可能になり、さらにPAUSEシンボルのサポートが登場しました。 この記事に記載されている変更は、8.5.4131.2629、アセンブリ4133から始まるリリース8.5に含まれていました。



コマンドではなくLISP式



プロンプトコマンドへの応答でのLISP式の入力他のクエリがない場合に可能です。 例:

(最小k1 k2)

ここで、 k1k2はいくつかのグローバル変数です(図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))を返します



ニコライ・ポレシュチュク



All Articles