1998/ 9/15
1999/ 5/14


ショートカットキーの作り方

ショートカットってなに?

マウスを使ってメニューやツールボタンをクリックして作業を行うGUI(グラフィカル・ユーザー・インターファイス)は、マッキントッシュで使われていた方式ですが、今やこれがパソコンの標準のようになっています。確かに使い易い方式ですが、ツールボタンまでマウスを移動しなければならないのが、煩わしいこともあります。
マッキントッシュではGUIの欠点を補うために、決められたキーを1つ押すだけで目的のツールを選ぶ事ができる方式も早くから用意してくれていました。MS-DOSでもフリーウェアのJW-CADなどがこの方式を使っていますね。これをキーボードショートカットと言います。
幾つかのCGソフトでは、スペースバーを押している間だけ手のひらツールに切り替わり、離すと元のツールに戻るという便利なショートカットもあります。手のひらツールはLT95から登場した「リアルタイム画面移動」がこれに当たります。

ショートカットキーを作るには

Auto CADでは1つのキーでショートカットを作ると、そのキーが押された瞬間にツールが呼び出されてしまい、コマンドが打てなくなります。そこでシフトキーやコントロールキーなどの修飾キーと組み合わせて、SHIFT+"Q"やCTRL+"2"などをショートカットキーにします。
CTRL+"C"、CTRL+"V"はそれぞれ「コピー」、「貼り付け」というように、既に使われているショートカットもありますので、ダブらないように注意しましょう。
ショートカットに割り当てる機能はコマンド単体でもいいですし、「端点」や「交点」などのサブコマンドもOKです。「端点」や「交点」などをショートカットにしておくと、Oスナップがオフでも一時的にスナップが使えて、なかなか重宝です。
また、複数のコマンドからなるマクロ構文もショートカットにできますので、複雑な処理をさせることもできます。ツールボタンと一緒です。

具体的にどうするの?

ショートカットの定義は、次の2つのファイルに登録されています。
ACLT.MNUACLT.MNS です。
AutoCAD LTがインストールされているフォルダにあります。
これらのファイルはメニューやツールボタンの情報が書かれた重要なファイルです。
改造を始める前に、失敗した時のために別のフォルダにコピーを取っておく事をお勧めします。
また、これらのファイルはメモ帳で開くには大きすぎるので、テキスト編集ができるソフトが必要です。

カスタマイズが反映されるのは、ACLT.MNSの方です。このファイルをテキストエディターで開いて、内容を書き換えます。
似た名前のファイルがたくさんありますので、間違えないようにしましょう。

これから説明するカスタマイズは、あくまでもあなた個人の責任で行って下さい。これらのメニューファイルが壊れた場合、Auto CADの再インストールも最悪の場合ありえるということも覚悟して下さい。とは言っても、もともとあるファイルの情報を壊さないように気をつければ、そんなに恐ろしいものではありません。

ファイルを開くと ***ACCELERATORS という項目がありますので、その項目の末尾に定義したい内容を追加します。
[SHIFTキー]+右クリックで表示される「端点」を[SHIFT]+"Q"に割り当てるには次のようにします。

ACLT.MNS を開きます。
***ACCELERATORS はファイルの中ほどにあります。テキストエディターの検索機能を使うと早く見つかるでしょう。
次の項目が ***HELPSTRINGS ですので、その前に次の文をタイプします。



***ACCELERATORS
...
...
...
[SHIFT+"Q"]_endp

***HELPSTRINGS
...
...



_endp が端点を現すサブコマンドです。
タイプしたら上書き保存します。これだけです。
この例では[SHIFT]キーを使いましたが、[CTRL]キーも使えます。
これらのキーはモデファイアキーとか修飾キーと呼ばれます。LTのヘルプには修飾子と訳されているようです。[CTRL]キーの場合は [CONTROL+"Q"]のように書きます。[SHIFT+CONTROL+"L"]などという使い方もできます。
修飾子の次には"L"や"3"などの1つの文字が続きます。ファンクションキーなども使えるそうです。ヘルプに一覧表があります。

上の例の _endp の部分にはマクロ構文を使った複雑な処理も記述できます。
TILEMODE が1の時は TILEMODE を0にし、逆に0の時は1にする(つまりモデル空間とペーパー空間を交互に切り替える)ショートカットキーを作ってみると次のようになります。



[CONTROL+"1"]^C^C^P$M=$(if,$(=,$(getvar,tilemode),1),tilemode;0;,tilemode;1;)^Z



[CTRL]キーと数字の1を押すたびにモデル空間とペーパー空間が切り替わります。
ペーパー空間に作ったビューポートとペーパー空間との切り替え(MSPACE と PSPACE の切り替え)は



[CONTROL+"2"]^C^C^P$M=$(if,$(=,$(getvar,cvport),1),mspace,pspace)



のようになります。もちろん割り当てるキーは自由に変えて下さって結構です。
ところがこのマクロ、LT97では機能するのですが、LT95では「そのようなコマンドはありません」と叱られてしまいます。どこが悪いのかお解りの方がいたら教えて下さい。


(C) Yoshiyuki Inaba 1998-1999

目 次 | Home | E-mail