VBAで寸法線のシンボル(矢印)を変更する方法|CATIAマクロの作成方法

今回はお問い合わせより頂いた内容です。
送って頂いた内容は以下のようなマクロです。

CATIA Drawingの“寸法線のシンボルを「開いた矢印」から「塗りつぶし円」、
「塗りつぶし円」から「開いた矢印」のように順次、切り替わる”ように
マクロで操作することは可能でしょうか?(どちらの矢印が変わるのか分からないため)

今回はお問い合わせ頂いた内容に合わせて寸法線のシンボルを変更しますが、本ページの内容さえ理解できれば自分の好きなシンボルに変更することも可能になります。

 

マクロの機能

今回作成したマクロは『選択した寸法線のシンボルを順に変換するマクロ』です。
同じ寸法線をクリックするたびに上図のようにシンボルを変更していきます。

具体的な機能は以下のとおりです。

  マクロの機能まとめ ・選択した寸法線のシンボル(矢印)を変更する
・選択した寸法線のシンボルによって以下の変更を行う(上図の通り)
  「開いた矢印」「開いた矢印」の場合は「開いた矢印」「塗りつぶし円」に変更
  「開いた矢印」「塗りつぶし円」の場合は「塗りつぶし円」「開いた矢印」に変更
  「塗りつぶし円」「開いた矢印」の場合は「開いた矢印」「開いた矢印」に変更

今回は選択した寸法線のみに対応させていますが、サンプルコードさえ理解できればまとめてシンボルを変更することも可能になります。

 

サンプルコード

サンプルコードは下記の通りです。
実行後に選択した寸法線に対して、シンボルの変更が行われます。

 

コード解説

アクティブドキュメント確認

まず、はじめにアクティブドキュメントの定義をします。
今回のマクロはCATDrawingでのみ有効なものなので、アクティブドキュメントがCATDrawing以外の場合はTypeName関数を使った条件分岐でマクロを終了するようにしています。
 

アクティブドキュメント/Selectionの定義

アクティブドキュメントとSelectionの定義を行います。
Selectionの定義の際は「As Selection」と定義せずに、Variant型で定義をします。
これは以降でSelectElement2メソッドを利用できるようにするためです。
 

ユーザー選択

SelectElement2メソッドを使ってユーザーに寸法線を選択させます。
(SelectElement2の詳しい使い方は上記リンクページを参照下さい)

このとき選択された寸法線は変数「DrwDim」に格納します。
 

寸法線のシンボル(矢印)を取得

「DrwDim」(選択された寸法線)のシンボルを取得します。

寸法線のシンボルを取得するにはまず「DrawingDimLineオブジェクト」を取得する必要があります。「DrawingDimLineオブジェクト」を取得するには「DrawingDimensionオブジェクト」の「GetDimLineメソッド」を使い以下のように書きます。

 icon-code DrawingDimLineオブジェクトの取得

Dim DrwDimLine As DrawingDimLine
Set DrwDimLine = DrawingDimensionオブジェクト.GetDimLine

 
次に今取得した「DrawingDimLineオブジェクト」の「GetSymbTypeメソッド」を使って、以下のように書くことでシンボルを取得することができます。

 icon-code GetSymbTypeメソッド

Dim DrwDimLineSymb As CatDimSymbols
DrwDimLineSymb = DrawingDimLineオブジェクト.GetSymbType(Index)

1つ目のシンボルを取得したい場合は Index に「を、
2つ目のシンボルを取得したい場合は Index に「2を、
引出線のシンボルを取得したい場合は Index に「3を入力します。

「GetSymbTypeメソッド」で取得できる値は下記ページを参照下さい。
英語ですがどの文字列がどのシンボルのことを表しているかは何となくわかると思います。
r1 Enumeration CatDimSymbols – CATIADOC
 

シンボル変更

最後に、取得したシンボル別に新たなるシンボルへの変更を行います。

シンボルの変更は「DrawingDimLineオブジェクト」の「SetSymbTypeメソッド」を使って以下のように書きます。

 icon-code SetSymbTypeメソッド

Call DrawingDimLineオブジェクト.SetSymbType (Index , SymbolType)

Indexには「GetSymbTypeメソッド」のときと同じく、変更するシンボルが 1つ目のシンボル場合は「」、2つ目のシンボル場合は「2」、引出線のシンボルの場合は「3を入力します。

SymbolTypeも同様に「GetSymbTypeメソッド」で取得できる値(文字列)を入力します。
(参考:r1 Enumeration CatDimSymbols – CATIADOC)
たとえば「開いた矢印」に変更したい場合はcatDimSymbOpenArrowを入力します。

 

まとめ

今回はVBAで寸法線のシンボル(矢印)を変更する方法としてサンプルコードの解説を行いました。

本マクロで重要なのは「DrawingDimLineオブジェクト」と、
同オブジェクトの「GetSymbTypeメソッド」と「SetSymbTypeメソッド」の2つだけです。

今回取得した「DrawingDimLineオブジェクト」のプロパティ/メソッドを使うことで、シンボルだけでなく寸法線の色や線幅などを変更することもできるので、是非いろいろ試してみて下さい。
 

サンプルマクロ集に戻る
目次へ戻る
 

icon-book CATIAマクロを本気で勉強するなら

CATIA, CATIAマクロ, VBA

Posted by Lic