Windowsコレクション|CATIAマクロの作成方法

このページでは「Windowsコレクション」について詳しく解説していきます。
Windowsコレクションはウィンドウについての操作や、仕様ツリーの表示方法などを変更するためのオブジェクトの親となるオブジェクトです。

Windowsコレクション自体でできる操作は少ないですが、このオブジェクトの子供でできる操作はかなり多くあるので「Windowsコレクションとは何なのか」は理解しておいた方がいいです。

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

Windowsコレクションとは
Windowsコレクションのメソッドについて

 icon-exclamation-triangle 注意 

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

 

Windowsコレクションとは

Windowsコレクションとは簡単にいうと開いているドキュメントウィンドウ(Windowオブジェクト)をひとまとめにしたオブジェクトのことをいいます。(※WindowsコレクションとWindowオブジェクトはメニューバーの[ウィンドウ]タブを見ると以下のようになっているのでイメージしやすいです)


 

Windowsコレクションでは「コレクション内のウィンドウを並べて表示」「コレクション内にある任意のWindowオブジェクトを取り出す」というコレクションに関する操作を行うことができます。

※「ウィンドウのサイズを変更」「ウィンドウ名を取得」「ウィンドウを閉じる」というような、1つのウィンドウに対して操作を行いたい場合は「Windowオブジェクト」を使用します。
 

Windowsコレクションの定義

Windowsコレクションは以下のとおりApplicationオブジェクトの直下のオブジェクトです。

そのため「Applicationオブジェクト」の「Windowsプロパティ」を使って以下のよう書くことでWindowsコレクションを定義することができます。

  Windowsコレクションの定義

Dim WINs As Windows
Set WINs = CATIA.Windows

この構文により、Windowsコレクションを操作することのできる変数『WINsを定義することができます。(変数名は好きに変えてもらって構いません)

あとはこの変数WINsに対してメソッドを使って操作を行っていきます。
Windowsコレクションのメソッドは以下の2つです。

メソッド名 メソッド内容
Arrange ウィンドウを並べて表示する
Item 任意のWindowオブジェクトを取り出す

 

メソッド

メソッドは基本的には先ほど定義した変数を使って「WINs.メソッド」のように書くことでメソッドを使うことができます。

以下ではそれぞれのメソッドの使い方を詳しく解説していきます。
サンプルコードも載せているので、コピペして実際に実行してどのような操作が行われるのかを確認してみましょう。
 

Arrangeメソッド

Arrangeメソッドはドキュメントウィンドウを並べて表示することができます。
簡単にいえばメニューバーの[ウィンドウ]タブにある「上下に並べて表示」「左右に並べて表示」「重ねて表示」のいずれかの操作を行うことができるメソッドです。

ドキュメントウィンドウを並べて表示するには以下のように書きます。

  Arrangeメソッド

WINs.Arrange (CatArrangeStyle)

CatArrangeStyleには表示方法を表す、以下のいずれかのコードを入力します。

重ねて表示       → catArrangeCascade
上下に並べて表示  →   catArrangeTiledHorizontal
左右に並べて表示    →   catArrangeTiledVertical

 
サンプルコード

ドキュメントウィンドウを「左右に並べて表示」するには以下のコードを実行します。

  
 

Itemメソッド

Itemメソッドはコレクション内にある任意のWindowオブジェクトを取り出すことができ、主に任意のウィンドウ単体に対して操作を行いたい場合に使用するメソッドです。
Windowsコレクション内にある任意のウィンドウを取り出すには以下のように書きます。

  Itemメソッド

Dim WIN As Window
WIN = WINs.Item(index)

indexにはウィンドウのインデックス番号を入力します。
インデックス番号は自動で設定される番号で、Windowsコレクションの場合はメニューバーの[ウィンドウ]タブの上にあるものから順に1,2,3…と割り振られていきます


 
たとえば上の画像の場合、「Product1」のウィンドウを取得したい場合には「WINs.Item(1)
「Drawing1」のウィンドウを取得したい場合には「WINs.Item(2)」のように書きます。

また「WINs.Item(“Part1”)」のように表示されているウィンドウ名(Caption)をダブルクォーテーション[“]で囲んで直接入力することも可能です。

 
サンプルコード

1番初めに開いたドキュメントを取得する(取り出す)には以下のコードを実行します。
取得だけでは実行結果を目で確認することができないため、取得したドキュメントの名称をメッセージボックスで表示するコードになっています。

 

まとめ

今回はCATIAマクロでの「Windowsコレクション」についての内容でした。
「Windowsコレクション」は「Windowオブジェクト」と合わせて理解しておきましょう。

これらのオブジェクトは主にウィンドウを切り替えたいときや閉じたいとき、並べたいときのように、ウィンドウの表示を変えたい場合に使うオブジェクトです。

また、キャプチャを撮ったり背景の色を変更するなどの操作を行うことのできる「Viewerオブジェクト」を子にもつオブジェクトでもあるので、Viewerオブジェクトを使う場合にも「Windowsコレクション」と「Windowオブジェクト」は理解しておく必要があります。

目次へ戻る
 

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

 

 

2020年3月17日CATIA, CATIAマクロ

Posted by Lic