CATIAで何がなんでもショートカットキーを設定する方法|0から学ぶCATIA V5
CATIAではカスタマイズより、既存コマンドに対してショートカットキーを割り振ることができます。
このとき「ショートカットキー関連まとめ」でも紹介している通りちょっとした操作を挟むことで、通常ではショートカットキーを割り振ることのできないコマンドに対しても設定が可能になります。
しかし、ここでショートカットキー狂の人はこう思うはずです。
カスタマイズのコマンド欄にいないんだけど?
あまり気にしたことのない人の方が多いと思いますが、実はカスタマイズのコマンド欄にはCATIAの全てのコマンドがまとまっているわけではないのです。
具体的なコマンド名をいうと「自動ソート」や「形状セットを除去」などがあります。
このようなカスタマイズのコマンド欄に存在しないコマンドに対しては、どう頑張ってもショートカットキーを割り振ることはできません。
ただ、ここで絶対に諦めないのがショートカットキー狂です。そこで今回は方々向けに「カスタマイズに登録されていないコマンドに対してショートカットキーを設定する方法」を紹介していきます。
コマンドを呼び出す方法
ここでは「自動ソート」にショートカットキーを設定することを例に進めていきます。
まず結論を言うとショートカットキーの設定欄にコマンドがないのは仕方がないので”それに相当する機能を持つマクロ”を作り、そのマクロに対してショートカットキーを設定するという方法をとります。
マクロとはVBAというプログラミング言語を使って作成することのできる作業効率のツールと思ってもらえれば大丈夫です。詳しくはマクロ詳細ページを参照ください。
ショートカットキーの設定する際にマクロカテゴリがあることから予想できますが、CATIAでは自作したマクロに対して通常のコマンドと同じようにショートカットキーを割り振ることができます。
つまり、「自動ソート」と同等の機能を持つマクロを作成し、そのマクロに対してショートカットキーを割り振れば、実質的に「自動ソート」にショートカットキーを設定できるということです。
マクロの作成
カスタマイズのコマンド欄に無いコマンドに対してショートカットキーを設定する考え方は理解できたと思います。しかし、VBAをあまり深く知らない方からすると「そもそも、コマンドと同等の機能をなんて再現できるの?」という疑問があると思います。
そこでここではコピペで使え、かつ一部分を書き換えればほぼ全てのコマンドに対応できるコードとして下記コードを紹介します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Option Explicit Sub CATMain() Dim sel 'As Selection Set sel = CATIA.ActiveDocument.Selection Dim filter: filter = Array("HybridBody") Dim msg As String: msg = "形状セットを選択して下さい。" Dim status As String status = sel.SelectElement2(filter, msg, False) If status <> "Normal" Then Exit Sub CATIA.StartCommand ("自動ソート") End Sub |
マクロ詳細ページの「基礎知識編」を参考にマクロライブラリを作成し、上記コードを新規モジュール内にコピペして下さい。
自動ソートの場合は上記コードのコピペだけでOKですが、その他のコマンドに対応する場合は下記の4箇所を書き換える必要があります。(自動ソートの場合でも多少の設定はできるため一応全て確認しておいた方が良いです)
・実行コマンドの設定
・事前選択の設定
・表示メッセージの設定
・選択フィルターの設定
難しそうと感じるかもしれませんが、基本的にはそれも数文字書き換えるだけの単純なものです。
上記の4箇所以外は全くのコピペでOKです。
実行コマンドの設定
まずはどのコマンドを実行するか、言い換えればどのコマンドに対してショートカットキーを設定するのかを指定します。
上記コードでコマンドを実行しているのは「CATIA.StartCommand (“自動ソート”)」の部分です。
「StartCommandメソッド」は括弧内のコマンド名を実行することができるVBAコードです。
上記コードの場合は「”自動ソート”」と書いているので「自動ソート」が実行されます。
括弧内の文字列を任意のコマンド名に書き換えれば、そのコマンドを呼び出すことも可能です。
※コード上では半角全角が一致していないとうまく実行できないので注意
コマンド名はカーソルを合わせたときに画面右下に表示される「c:〇〇」の「〇〇」の部分です。
今回の「自動ソート」の場合は表示されませんが、その他コマンドで調べたい時に便利です。
日本語環境以外の場合もそれらに合わせて文字列を書き換える必要があるので注意しましょう。
事前選択の設定
「SelectElement2」とかかれている括弧内の「False」を「True」と書き換えると事前選択の使用が可能になります。
たとえば今回設定した「自動ソート」の場合、普段ははじめに形状セットなどを選択してから右クリックして「自動ソート」を実行します。つまり事前に選択した形状セットに対して「自動ソート」という処理を行なっているので、上記コードの「False」は「True」に書き換えておいた方が、より実際のコマンドに近い操作になるというわけです。
ちなみに「False」の場合は、ショートカットキーを押した後(つまりはマクロ実行後)に形状セットを選択するという操作になります。選択するタイミングがコマンド実行前か後かの違いだけなので、コマンドに合わせて「True」「False」を書き換えましょう。
表示メッセージの設定
コマンド実行時に表示するメッセージを設定します。
メッセージは画面左下のステータスバーに表示されます。
コード内の「msg = “形状セットを選択して下さい。”」のダブルクォーテーション[“]で囲まれた文字列が表示されるので、指定するコマンドによってメッセージを書き換えましょう。
選択フィルターの設定
選択フィルターとは、その名の通り選択する際にフィルターをかけることをいいます。
たとえば選択時に「形状セット」しか選択できないようにしたり、「点」しか選択できないようにすることが可能になります。自動ソートは形状セットに対してのみ実行するコマンドなので、ここでは形状セットしか選択できないようにしています。
選択フィルターの設定はコードでいうと「filter = Array(“HybridBody”)」の部分です。
このArrayの中にある「HybridBody」というのが、VBAでいうところの形状セットです。
つまり、「Array(“〇〇”)」の〇〇を書き換えれば選択フィルターを変更することができます。
ただ、ここに書く文字列はVBAをある程度理解している必要があるため、よくわからない場合は「AnyObject」というものを使って「filter = Array(“AnyObject”)」としておきましょう。こうすることで選択フィルターはなくなり、なんでも選択できるようになります。
ショートカットキーの設定
マクロの作成ができたのでショートカットキーを設定していきます。
ショートカットキーの設定は通常のコマンドと同じなので「ショートカットキー関連まとめ」をみながら同じように設定して下さい。
設定する際は[マクロ]カテゴリを見れば作成したマクロが全て表示されます。
ここで作成したマクロに対してショートカットキーを設定すれば、”実質的”には自動ソートにショートカットキーが設定できたことになります。
まとめ
今回の内容を一言でいうと「ショートカットキーを設定したいコマンドがカスタマイズのコマンド欄にない場合は仕方がない。同じ機能のマクロを作ってそれにショートカットキーを割り振ろう」という内容でした。
個人的には「形状セットを除去」をかなり頻繁に使うので、この方法を使って作業スピードをUPさせています。また、以前に「お問い合わせ」より、自動ソートにショートカットキーを設定したいというものを頂いていたということもあり効率重視型の作業者の方にはある程度需要のある内容だと思います。
今回の内容でも軽く触れましたが、VBAマクロを使うことで作業効率は格段にUPさせることができます。
マクロ詳細ページでは基本的なマクロ知識を初め様々なサンプルマクロを用意しているので、今回の内容で興味を持った方はぜひ合わせて確認してみて下さい。