DrawingWeldingオブジェクト|CATIAマクロの作成方法

今回はCATDrawingのコマンド『 溶接記号』をVBAで操作するための『DrawingWeldingオブジェクト』について詳しく解説していきます。

今回学べる内容は以下のとおりです。

DrawingWeldingオブジェクトとは
DrawingWeldingオブジェクトのプロパティの使い方
DrawingWeldingオブジェクトのメソッドの使い方

 icon-exclamation-triangle 注意 

CATIAのオブジェクトを理解するには前提として『Infrastructure Automation Objects』について理解している必要があります。
『Infrastructure Automation Objects』が何を意味しているのか分からない方は、まずオブジェクトとコレクション/プロパティとメソッドとは 』を先に読むことをオススメします。

 

DrawingWeldingオブジェクトとは

DrawingWeldingオブジェクトとは 溶接記号』を操作するためのオブジェクトです。
このオブジェクトを使うことで溶接記号の変更や角度/位置の変更などが可能になります。

DrawingWeldingオブジェクトは以下のとおりの構成になっています。

溶接指示内の引出線の追加や削除は『DrawingLeadersオブジェクト』テキスト値の変更は『DrawingTextRangeオブジェクト』テキストのフォントやサイズ、色は『DrawingTextPropertiesオブジェクト』で操作可能になります。どのオブジェクトもDrawingWeldingオブジェクトのプロパティ/メソッドから取得することができます。

DrawingWeldingオブジェクトを使うには、DrawingWeldingオブジェクトの変数を定義します。
定義する方法はいくつかありますが、ここではアクティブビュー内の直近で作られた『溶接記号』を定義する方法を紹介します。(DrawingWeldingオブジェクトは多くの親オブジェクトを持っているので、先にそれらを定義します)

 icon-code DrawingWeldingオブジェクトの定義

‘アクティブドキュメント定義
Dim doc As DrawingDocument
Set doc = CATIA.ActiveDocument
 

‘アクティブシート定義
Dim ActSheet As DrawingSheet
Set ActSheet = doc.Sheets.ActiveSheet

 
‘アクティブビュー定義

Dim ActView As DrawingView
Set ActView = ActSheet.Views.ActiveView

 
‘DrawingWelding定義

Dim WeldTxt As DrawingWelding
Set WeldTxt = ActView.Weldings.Item(ActView.Weldings.Count)

この構文により、「アクティブビュー内の直近で作られた『溶接記号』」を扱うことのできる変数『WeldTxtを定義することができます。(変数名は好きに変えてもらって構いません)

あとはこの変数WeldTxtに対してプロパティとメソッドを使い、さまざまな操作を行っていきます。
DrawingWeldingオブジェクトの代表的なプロパティとメソッドは下記の通りです。

プロパティ名 プロパティ内容
Angle WeldTxtの角度の取得/変更
IdentificationLineSide WeldTxtのインデント行サイドの取得/変更(ISO規格のみ)
Leaders WeldTxtのDrawingLeadersオブジェクトを取得
TextProperties WeldTxtのDrawingTextPropertiesオブジェクトを取得
x WeldTxtのX座標の取得/変更
y WeldTxtのY座標の取得/変更
   
メソッド名 メソッド内容
GetAdditionalSymbol WeldTxtの補助記号(表面形状)の取得
GetFinishSymbol WeldTxtの補助記号(仕上げ方法)の取得
GetSymbol WeldTxtの基本記号の取得
GetTextRange WeldTxtのDrawingTextRangeオブジェクトを取得
SetAdditionalSymbol WeldTxtの補助記号(表面形状)の変更
SetFinishSymbol WeldTxtの補助記号(仕上げ方法)の変更
SetSymbol WeldTxtの基本記号の変更

そのほかのプロパティ/メソッドに関しては『CAA V5 Visual Basic Help』で『Infrastructure Automation Objects』のページから確認ください。

 

プロパティ

DrawingWeldingオブジェクトのプロパティでは『溶接記号』の記号以外のほとんどのものを操作することができます。子供のオブジェクトを取得するためのプロパティもいくつかあり、手動でできるほとんどの操作をVBAでも行うことができます。
 

Angleプロパティ

Angleプロパティは角度を取得/変更することができます。
このときの角度は反時計回りにカウントされています。([プロパティ]>[テキスト]>[角度:]と同じ)

角度を変更するには以下のように書きます。

  Angleプロパティ

Dim WeldAngle As Double
WeldAngle = WeldTxt.Angle

指定した角度に変更するには以下のように書きます。

  Angleプロパティ

WeldTxt.Angle = 90

 

IdentificationLineSideプロパティ

IdentificationLineSideプロパティはインデント行サイドを取得/変更することができます。
インデント行サイドとは基線の上もしくは下に書く破線のことで、溶接する位置が矢に対し手前側か向こう側かを示すISO規格専用の指示です。そのため図面の規格がJISやANSIなどのISO以外の規格では使用することができません。


 

インデント行サイドを取得するには以下のように書きます。

  IdentificationLineSideプロパティ

Dim WeldIdent As CatWeldingSide
WeldIdent = WeldTxt.IdentificationLineSide

上記のコードを実行すると以下のいずれかが格納されます。

catWeldingUp      → 破線が基線の上側

catWeldingDown → 破線が基線の下側

また、上記の値を使い以下のように書くことでインデント行サイドを変更するができます。

  IdentificationLineSideプロパティ

WeldTxt.IdentificationLineSidecatWeldingUp

 

Leadersプロパティ

Leadersプロパティは「DrawingLeadersオブジェクト」を取得することができます。
(このオブジェクトのメソッドを使うことで引出線を追加したり削除したりすることができます)

DrawingLeadersオブジェクトを取得するには以下のように書きます。

  Leadersプロパティ

Dim WeldLeaders As DrawingLeaders
Set WeldLeaders = WeldTxt.Leaders

 

TextPropertiesプロパティ

TextPropertiesプロパティは「DrawingTextPropertiesオブジェクト」を取得することができます。(このオブジェクトのプロパティ/メソッドを使うことでテキストのフォントやフォントサイズ、色などを取得/変更することができます)

DrawingTextPropertiesオブジェクトを取得するには以下のように書きます。

  TextPropertiesプロパティ

Dim WeldTxtProps As DrawingTextProperties
Set WeldTxtProps = WeldTxt.TextProperties

 

xプロパティ/yプロパティ

xプロパティは「溶接記号」のX座標を取得/変更することができます。
yプロパティは「溶接記号」のY座標を取得/変更することができます。

取得される座標は下図の赤点の座標(アクティブビュー内での座標)です。
引出線の”向き”によって基準の位置が変わるので注意しましょう。

X,Y座標を取得するには以下のように書きます。

  xプロパティ/yプロパティ

Dim WeldCoordX As Double
Dim WeldCoordY As Double
WeldCoordX = WeldTxt.x
WeldCoordY
 = WeldTxt.y

また、以下のように書くことでX,Y座標を変更することもできます。

  xプロパティ/yプロパティ

WeldTxt.x = 30
WeldTxt.y = 50

 

 

メソッド

DrawingWeldingオブジェクトのメソッドでは主に『溶接記号』の取得/変更を行うことが出来ます。
基本的にはどれも同じような使い方なので、1つ理解できれば他のメソッドも理解することができます。

他にはテキストを取得/変更するために必要な「DrawingTextRangeオブジェクト」を取得するtためのメソッドも存在していますが、引数がいらないのでプロパティと同じように扱うことができるようになってます。
 

GetAdditionalSymbolメソッド

GetAdditionalSymbolメソッドは現在の補助記号(表面形状)を取得することができます。

補助記号(表面形状)を取得するには以下のように書きます。

  GetAdditionalSymbolメソッド

Dim WeldAddSym As CatWeldAdditionalSymbol
WeldAddSym = WeldTxt.GetAdditionalSymbol(iWeld)

iWeldには取得する溶接記号が基線の上側と下側のどちらかを入力します。
上側の場合は「catFirstWelding」、下側の場合は「catSecondWelding」を入力します。

取得した記号は列挙型変数CatWeldAdditionalSymbolのいずれかの値が返ってきます。
詳しくはDrawingWeldingオブジェクトでの列挙型変数まとめ「CatWeldAdditionalSymbol」の項を参照下さい。

 

GetFinishSymbolメソッド

GetFinishSymbolメソッドは現在の補助記号(仕上げ方法)を取得することができます。

補助記号(仕上げ方法)を取得するには以下のように書きます。

  GetFinishSymbolメソッド

Dim WeldFinishSym As CatDftWeldFinishSymbol
WeldFinishSym = WeldTxt.GetFinishSymbol(iWeld)

iWeldには取得する溶接記号が基線の上側と下側のどちらかを入力します。
上側の場合は「catFirstWelding」、下側の場合は「catSecondWelding」を入力します。

取得した記号は列挙型変数CatDftWeldFinishSymbolのいずれかの値が返ってきます。
詳しくはDrawingWeldingオブジェクトでの列挙型変数まとめ「CatDftWeldFinishSymbol」の項を参照下さい。

 

GetSymbolメソッド

GetSymbolメソッドは現在の基本記号を取得することができます。

基本記号を取得するには以下のように書きます。

  GetSymbolメソッド

Dim WeldSym As CatWeldingSymbol
WeldSym = WeldTxt.GetSymbol(iWeld)

iWeldには取得する溶接記号が基線の上側と下側のどちらかを入力します。
上側の場合は「catFirstWelding」、下側の場合は「catSecondWelding」を入力します。

取得した記号は列挙型変数CatWeldingSymbolのいずれかの値が返ってきます。
詳しくはDrawingWeldingオブジェクトでの列挙型変数まとめ「CatWeldingSymbol」の項を参照下さい。

 

GetTextRangeメソッド

GetTextRangeメソッドは「DrawingTextRangeオブジェクト」を取得することができます。(このオブジェクトのプロパティ/メソッドを使うことでテキストの値を取得/変更することができます)

DrawingTextRangeオブジェクトを取得するには以下のように書きます。

  GetTextRangeメソッド

Dim WeldTxtRange As DrawingTextRange
Set WeldTxtRange = WeldTxt.GetTextRange(iField)

 溶接記号』にはテキスト入力できるエリアが複数あります。
iField
にはどの部分のDrawingTextRangeを取得するのかを入力します。

1のエリアの場合は「catWeldingFieldOne
2のエリアの場合は「catWeldingFieldTwo
3のエリアの場合は「catWeldingFieldThree
4のエリアの場合は「catWeldingFieldFour
5のエリアの場合は「catWeldingFieldFive」を入力します。

たとえば3のエリアに「ABC」と入力したい場合は以下のように書きます。

  GetTextRangeメソッド

Dim WeldTxtRange As DrawingTextRange
Set WeldTxtRange = WeldTxt.GetTextRange(catWeldingFieldThree)
WeldTxtRange
.Text = “ABC”
WeldTxt.TextProperties.Update
‘※「.Text」はDrawingTextRangeオブジェクトのプロパティです。

 

SetAdditionalSymbolメソッド

SetAdditionalSymbolメソッドは補助記号(表面形状)を設定することができます。

補助記号(表面形状)を設定するには以下のように書きます。

  SetAdditionalSymbolメソッド

Call WeldTxt.SetAdditionalSymbol(iSymbol,iWeld)

iSymbolには設定する溶接記号を入力します。
入力する値は列挙型変数CatWeldAdditionalSymbolのいずれかの値を入力します。
値についてはDrawingWeldingオブジェクトでの列挙型変数まとめ「CatWeldAdditionalSymbol」の項を参照下さい。

iWeldには設定する溶接記号が基線の上側と下側のどちらかを入力します。
上側の場合は「catFirstWelding」、下側の場合は「catSecondWelding」を入力します。

 

SetFinishSymbolメソッド

SetFinishSymbolメソッドは補助記号(仕上げ方法)を設定することができます。

補助記号(仕上げ方法)を設定するには以下のように書きます。

  SetFinishSymbolメソッド

Call WeldTxt.SetFinishSymbol(iSymbol,iWeld)

iSymbolには設定する溶接記号を入力します。
入力する値は列挙型変数CatDftWeldFinishSymbolのいずれかの値を入力します。
値についてはDrawingWeldingオブジェクトでの列挙型変数まとめ「CatDftWeldFinishSymbol」の項を参照下さい。

iWeldには設定する溶接記号が基線の上側と下側のどちらかを入力します。
上側の場合は「catFirstWelding」、下側の場合は「catSecondWelding」を入力します。

 

SetSymbolメソッド

SetSymbolメソッドは基本記号を設定することができます。

基本記号を設定するには以下のように書きます。

  SetSymbolメソッド

Call WeldTxt.SetSymbol(iSymbol,iWeld)

iSymbolには設定する溶接記号を入力します。
入力する値は列挙型変数CatWeldingSymbolのいずれかの値を入力します。
値についてはDrawingWeldingオブジェクトでの列挙型変数まとめ「CatWeldingSymbol」の項を参照下さい。

iWeldには設定する溶接記号が基線の上側と下側のどちらかを入力します。
上側の場合は「catFirstWelding」、下側の場合は「catSecondWelding」を入力します。

 

まとめ

今回はCATIAマクロでのDrawingWeldingオブジェクトについての内容でした。
本オブジェクトは『 溶接記号』コマンドをVBAで操作するときに使うオブジェクトです。

あまり使用頻度の高いものではないので、深く理解する必要はないと思います。
ただ、海外を含めてもDrawingWeldingオブジェクトの情報はほとんど見つからなかったため、ここに情報として残しておきます。誰かしらのお役に立てれば幸いです。

 
目次へ戻る
 

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

 

2022年7月28日CATIA, CATIAマクロ

Posted by Lic