概要 - ダイアログ ボックスが開いているときに制約を受ける関数(DCL)

ダイアログ ボックスがアクティブなとき、つまり start_dialog が呼び出されているときは、AutoCAD のコマンド行でユーザ入力を要求する関数や、ダイアログ ボックスの外側(たとえば、AutoCAD のグラフィックス ウィンドウ)での表示に影響を与える関数を呼び出すことはできません。この制約は、printprincprin1 などの文字を出力する関数にも当てはまります。

注: AutoLISP での DCL のサポートは Windows のみに制限されています。

ユーザ入力を要求するオプションを使用しなければ、ssget を呼び出すことはできます。プログラムが start_dialog から done_dialog までの間に制約を受ける関数を呼び出すと、すべてのダイアログ ボックスが閉じ、次のエラー メッセージが表示されます。

AutoCAD が関数を拒否しました

システム変数 CMDACTIVE を使用すると、ダイアログ ボックスがアクティブかどうかを調べることができます。CMDACTIVE の値が 7 よりも大きい場合は、ダイアログ ボックスはアクティブです。システム変数 CMDACTIVE にはコマンド、スクリプト、およびダイアログ ボックスの状態(アクティブ/非アクティブ)を示すビット コード値が格納されています。

注: アプリケーションが、ユーザにダイアログ ボックスで入力するのではなくグラフィックス スクリーン上で入力するよう要求する場合は(たとえば、点を指定したりオブジェクトを選択するよう要求する場合は)、ダイアログ ボックスを隠す必要があります。つまり、グラフィックス スクリーンを再び表示して、ユーザが選択を行った後でダイアログ ボックスを再び表示するように、done_dialog を呼び出す必要があります。

term_dialog 関数は、ユーザがそれぞれのダイアログ ボックスをキャンセルした場合と同じように、現在のすべてのダイアログ ボックスを終了させます。この関数を使用すると、一連のネストしたダイアログ ボックスを一度にキャンセルできます。