お知らせ

--------------------------------------------------

プログラム作成/コンサルティングの申し込みはこちら

--------------------------------------------------

2010年3月23日火曜日

マクロについて - その5 「^R の参考情報」(AutoCAD 2011)

前回の ^R についての参考情報です。
ただ単に、へぇ~、という話です。

前回、コマンド バージョンというものが追加されたという話をしました。
コマンドには、古いコマンド バージョンと新しいコマンド バージョンがあるということですが、すべてのコマンドに対してそれが影響するわけではありません。
昔からずっと、同じ動きをしているコマンドは古いも新しいもないからです。

例えば、LINE[線分] コマンドの動きは、昔から変わらないので、コマンド バージョンの影響は受けません。

じゃあ、どのコマンドがコマンド バージョンの影響を受けるの?

それは、レジストリで確認できるみたいです。
HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R18.1\ACAD-9001:411\FixedProfile\Commands
ここの下に影響を受けるコマンドのキーがあって、その中の DefaultVersion に既定値のコマンド バージョンが書かれているみたいです。

既定値はどれも 2 なので、どれも新しいコマンド バージョンです。
これを 1 に変えると古いコマンド バージョンになります。でも、普通これを変える必要が出てくることなんてないでしょう。

もし、古いコマンド バージョンでの動きを確認したいときはレジストリを変えなくても、AutoLISP の INITCOMMANDVERSION 関数が使えます。

例えば、COPY コマンドの古いコマンド バージョンでの動きを見たいときは、こんな手順で確認できます。

  1. コマンド ラインに (INITCOMMANDVERSION 1) と入力する。
  2. COPY コマンドを実行する。

INITCOMMANDVERSION 関数は、実行した直後のコマンドに対してしか有効ではないので、このあと、もう一回 COPY コマンドを実行しても、古いコマンド バージョンの動きになりません。

また、マクロを使用しても確認でき ”場合” があります。
例えば、 ^C^CCOPY; とだけマクロに記入したとします。
このときは、新しいコマンド バージョンの動作になります。

ここで、^C^CCOPY;\ とマクロに記入したとします。
このときは、古いコマンド バージョンの動作になります。

つまり、コマンドを実行するだけの時は新しいコマンド バージョンの動作になって、そのあとにも何かマクロに記述すると古いコマンド バージョンの動作になります。
(もし、マクロでコマンドだけを実行して古いコマンド バージョンの動作になっちゃったら、リボンとかに元から割り当てられているコマンドが全部古い動きになっちゃうってことだから当然ですよね。)

今日は、動画はありません。。。

0 件のコメント:

コメントを投稿