menucmd (AutoLISP)

メニュー コマンドを発行したり、メニュー項目のステータスの設定や取得を行います。

サポートされているプラットフォーム: Windows および Mac OS

構文と要素

(menucmd str)
str

タイプ: 文字列

メニュー領域と、そのメニュー領域に割り当てる値。string 引数の構文は次のとおりです。

"menu_area=value"

menu_area に使用できる値は次のリストに示すとおりで、メニュー ファイルのサブメニュー参照の場合と同じです。

B1 ~ B4: BUTTONS メニュー 1 から 4。

A1 ~ A4: AUX メニュー 1 から 4。

P0 ~ P16: プルダウン(POP) メニュー 0 から 16。

I: イメージ タイル メニュー。

S: SCREEN メニュー(古い機能です)

T1 ~ T4: TABLET メニュー 1 から 4。

M: DIESEL 文字列式

Gmenugroup.nametag : メニュー グループと名前タグ。

注: Mac OS では、プル ダウン(POP)メニューと DIESEL 文字列式のみがサポートされています。

戻り値

タイプ: nil

常に nil を返します。

注意

menucmd 関数は、AutoCAD メニューのサブページを切り替えることができます。この関数は、メニューを強制的に表示することもできます。これによって、AutoLISP プログラムは、イメージ タイル メニューを使用したり、ユーザが選択できる他のメニューを表示できます。また、メニュー項目またはリボン項目を使用可能や使用禁止にしたり、マークを付けることも、AutoLISP プログラムで行うことができます。

次のコードは、イメージ タイル メニュー MOREICONS を表示します。

(menucmd "I=moreicons")       Loads the MOREICONS image tile menu
(menucmd "I=*")               Displays the menu

次のコードは、プルダウン メニュー POP11 の 3 番目のメニュー項目のステータスをチェックします。メニュー項目が現在使用可能な場合、 menucmd 関数で使用禁止にします。

(setq s (menucmd "P11.3=?"))  Gets the status of the menu item
(if (= s "")                  If the status is an empty string,
  (menucmd "P11.3=~")         disable the menu item
)

このコードは、いつでも安全というわけではありません。メニュー項目は、使用可能か使用禁止にされるだけではなく、マークが付けられることもあります。(menucmd "P11.3=?") というコードは、メニュー項目に現在チェック マークが付いていることを示す "!." を返す場合もあります。その場合、上記のコードはメニュー項目が使用禁止になっているとみなし、メニュー項目を使用禁止にしないで続行します。wcmatch 関数の呼び出しをコードに含めると、ティルダ文字(~)がステータスに存在するかどうかをチェックして適切な動作を行うことができます。

menucmd 関数を使用すると、AutoLISP プログラムで DIESEL 文字列式が利用できるようになります。DIESEL を利用すると、同等な AutoLISP のコードを使用するよりもはるかに容易に処理できる場合があります。次のコードは、現在の日付と曜日を表す文字列を返します。

(menucmd "M=$(edtime,$(getvar,date),DDDD\",\" D MONTH YYYY)")
"Sunday, 16 July 1995"