パラメータの名称を変更するマクロ|CATIAマクロの作成方法
今回の記事はマクロ案募集でいただいた内容です。
送って頂いた内容は以下のようなマクロです。
パラメータ(Parameter)のローカル名(Local Name)を変更するマクロ
このマクロで「すべてのローカル名を一括で変更したいのか」、「指定した文字列のローカル名を別の文字列に置き換えたいのか」というようにマクロの使用用途がわからなかったため、ここではマクロの作成というよりはローカル名を変更するためのコードの解説をしていきます。
簡単なサンプルコードは用意しているので理解はできると思います!
パラメータの名称をマクロで変更する
パラメータには「ローカル名(Local Name)」と「グローバル名(Global Name)」があります。
それぞれの名称は、パラメータの[プロパティ]ウィンドウを開くと確認することができます。
[ローカル名:]の文字列がローカル名で、[名前:]の文字列がグローバル名となっています。
グローバル名にパス(上の画像のように\で区切られているもの)が入力されている場合は、ローカル名とグローバル名がリンクされた状態となっており、ローカル名を変更するとグローバル名のパスも同時に変更されます。
2つの名称はそれぞれ変更するためのコードの書き方が少し違うので注意しましょう。
以下では説明の関係上、グローバル名を変更するためのコードから順に解説していきます。
グローバル名を変更する
パラメータのグローバル名を変更するには『Parameterオブジェクト』のRenameメソッドを使って以下のように書きます。
オブジェクト名.Rename(“変更する名称“)
オブジェクト名にはParameterとして宣言した変数の名称を入力します。
この変数に入っているオブジェクトのグローバル名を、「変更する名称」に入力した文字列に変更することができます。
たとえば、パラメータを選択した状態で以下のコードを実行すると、選択状態のパラメータのグローバル名を「NewName」に変更することができます。
Dim SEL As Selection
Set SEL = CATIA.ActiveDocument.Selection
Dim SELParm As Parameter
Set SELParm = SEL.Item(1).Value
SELParm.Rename (“NewName“)
ローカル名を変更する
パラメータのローカル名を変更するにはグローバル名と同様に『Parameterオブジェクト』のRenameメソッドを使って以下のように書きます。
オブジェクト名.Rename(“Local:変更する名称“)
基本的な書き方はグローバル名の時と同じですが、ローカル名の変更では変更する名称の前に「Local:」と入力します。
たとえば、ツリー上のパラメータを選択した状態で以下のコードを実行すると、選択状態のパラメータのローカル名を「NewName」に変更することができます。
Dim SEL As Selection
Set SEL = CATIA.ActiveDocument.Selection
Dim SELParm As Parameter
Set SELParm = SEL.Item(1).Value
SELParm.Rename (“Local:NewName“)
※注意※
[プロパティ]ウィンドウ上で変更ができないものは、このコードでも変更することはできません。
たとえばフィレットの[半径]のように、形状を作成したときに同時に作られるパラメータはローカル名を変更することができません。
まとめ
今回はパラメータの名称をマクロで変更する方法についての内容でした。
今回使用した「Prameterオブジェクト」を使えばコメントを入力したり、非表示にしたり、値を変更したりと様々なことをVBAコードで行うことができます。
ぜひ今回やった「Renameメソッド」以外のメソッドも勉強してみて下さい。
CATIAマクロを本気で勉強するなら