DIESEL式を実行する関数  LTCustomizer21 for AutoCAD LT リファレンスマニュアル

ActiveX
    Function execute_diesel([diesel_expression As String], [check_termination As Boolean = True]) As Boolean
C/C++
   int WINAPI LTC_execute_diesel(const wchar_t *diesel_expression=NULL,BOOL check_termination=TRUE);

パラメータ
diesel_expression:DIESEL式(AutoCAD/LTのメニューファイルに記述されている文字列)
check_termination: Trueの場合、コマンドラインがレディ状態になるまで待つ

返り値:
ActiveX:True成功。False失敗
C/C++: 1:成功0:失敗

この関数はAutoCAD/LTのDIESEL式を実行します。要するにAutoCAD/LTのメニューファイルに記述されているifなどの制御文などを持つプログラム言語を外部から実行可能にします。メニューファイルを見ればわかりますが、単純なコマンド実行ならこの関数の動作はcommand()やcommand2()と同じ意味を持ちます。

この関数の実行にはAutoCAD/LTのメニューファイルをあらかじめ編集しなくてはなりません。

AutoCAD/LT 2013以降(テキスト形式のメニューファイルが存在しないバージョン)のメニューファイル変更方法

  1. AutoCAD/LTコマンドラインからcui(リターン) ダイアログが現れます。
  2. 左上のツリービューの中の「マウス」をクリック
  3. その中の「 [Ctrl]+[Shift]+クリック 」をクリック
  4. その中の「ボタン 2:スナップメニュー」をクリック
  5. 右上の「プロパティ」内にある「マクロ」を^P$M=$(getenv,__LTC_DIESEL);にする

古いAutoCAD/LTの場合のメニューファイル変更方法

デフォルトの動作では.mnsファイルの**AUX4セクション(CTRL+SHIFT+マウス右ボタンを押したときの動作)を以下のように書き換える必要があります。
***AUX4
[ LTCustomizer21]^P$M=$(getenv,__LTC_DIESEL);

これはCTRL+SHIFT+マウス右ボタンを押したとき環境変数__LTC_DIESELの内容を実行すると言う意味です。***AUX4以外を割り当てたい場合は、LTC21.CFGファイルを編集する必要があります。例えば***AUX3にしたい場合は、中身を以下のようにします。
AUX3
もちろんメニューファイルの***AUX3セクションも***AUX4の時の例のように書き換える必要があります。

注意:
1.DIESEL式が思ったとおりに実行しない場合があります。その場合は、あらかじめsetenvで環境変数__LTC_DIESELに値を代入して、そのあとexecute_diesel()を実行してください。その際のexecute_diesel()の第1引数には""(NULL)を入力してください。setenvはcommand2()などで実行してください。同じDIESEL式を何度も実行する場合も、setenvを1回実行するだけなので、この方法の方が高速に処理されます。
2.DIESEL式の中で^Pを含んだものはうまく実行できません。^Pは取り除いてください。