最近こそ業務の依頼として頂くので、CATIAで2D図を使うようになったのですが
以前からあまり好きではなく、他の2DCADで構わないのであれば他のCADを
使っていました。その理由のひとつが(3Dから投影したもの以外の)線を
ドラッグした際動いちゃう事なんです。
でも、こちらのオプションの設定で固定できる事に気が付きました。
あ~便利だ、と思ったものの人間はわがままです。ちょっとだけ動かしたいなぁ
と思うんです。その都度オプション開いてONにし動かした後にOFFにするのは
面倒です。(そもそも移動コマンドがもっとまともなら、気にしないのですが)
オプションの設定を知る方法のひとつが、CATSettingsファイルを見る事なのですが
バイナリファイルな為、エディタで開いてもわかりません。
その為、XMLフォーマットに変換する為のプログラムが存在しています。
ここに記載されている、CATBatGenXMLSetがそうです。
Importing and Exporting Settings Files to/from XML Format
インストールフォルダ内のCATIAの実行ファイルと同じフォルダに
入っているはずです。
(逆に XML→CATSettings はCATBatImpXMLSetです。)
でも、個人的な感覚としてCATSettingsファイルは、CATIA起動時に
読み込んで終了時に書き出しており、起動中のCATIAに対しては
何の役にも立たないんです。上記のオプションをマクロで変更したい時
CATSettingsを書き換えても変わってくれないはずです。
マクロの記録をとっても空、Webで検索してもHit無しなので
困って諦めていたのですが、Helpを見るとここにパラメータ値を
エクスポートするボタンがあると記載が有りました。
エクスポートしてみると何と、catvbsファイルなんです。
これなら届きそうです。
1)変更したいオプションの変更前と変更後をエクスポート。
上書きしてしまう為、一度行ったものをリネームして二度目を
実行してください。
2)違いを比較。イロイロ方法はあると思うのですが、コマンドプロンプト
を起動し、FCで比較しました。
ネーミングからしてもパラメータ名 ”Drw_settings_DragElts” が
怪しそうなのです。
エディタで開いてみると
まぁそうね、程度ですけど。
3)エクスポートしたcatvbsの先頭付近を参考にし、入力補完にも助けられ
こんな感じのコードを実行すると無事切り替わりました。
Sub CATMain() Dim setctl As SettingControllers Set setctl = CATIA.SettingControllers Dim setPpty As SettingRepository Set setPpty = setctl.Item("DraftingOptions") Dim bl As Boolean bl = IIf(setPpty.GetAttr("Drw_settings_DragElts"), _ False, True) 'キャストする必要有り Call setPpty.PutAttr("Drw_settings_DragElts", CBool(bl)) End Sub
試していないので断言できないのですが、今回の事を考えると
マクロでオプションの設定を知ることも変更する事も、
全て可能なのではないかと思います。今更かな?