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

CATIAマクロではドキュメント(CATPart,CATProduct,CATDrawingなど)を新規作成したり、既存のドキュメントファイルを開いたりすることができます。
今回はこれらの操作をするために必要な「Documentsコレクション」を詳しく解説していきます。

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

Documentsコレクションとは
 マクロで新規ドキュメントを作成する方法
マクロで既存のドキュメントファイルを開く方法

 icon-exclamation-triangle 注意 

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

 

Documentsコレクションとは

Documentsコレクションとは簡単にいうと開いているドキュメント(Documentオブジェクト)をひとまとめにしたオブジェクトのことをいいます。

たとえば「Part1.CATPart」「Part2.CATPart」「Part3.CATPart」という3つのドキュメントを開いている場合、3つのドキュメントをまとめてDocumentsコレクションといいます。
(イメージとしてはDocumentオブジェクトを入れている”フォルダ”のようなもの)

このオブジェクトでは「新規ドキュメントの作成」や「既存ドキュメントファイルを開く」というような、新しいドキュメントをDocumentsコレクションの中に入れるという操作を行うことができます。
 

Documentsコレクションの定義

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

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

  Documentsコレクションの定義

Dim DOCs As Documents
Set DOCs = CATIA.Documents

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

あとはこの変数DOCsに対してメソッドを使い、さまざまな操作を行っていきます。
Documentsコレクションのメソッドは以下のとおりです。

メソッド名 メソッド内容
Add 新規ドキュメントの作成
Item 任意のDocumentオブジェクトを取り出す
NewForm 既存ドキュメントを開く(読み取り専用)
Open 既存ドキュメントを開く
Read 既存ドキュメントを読み取る

 

メソッド

Documentsコレクションのメソッドで新規作成/開かれるドキュメントは全てDocumentオブジェクト」として取得することができます。

そのため取得したドキュメントを受け取るための変数は「Dim DOC As Document」のようにDocumentとして宣言する必要があります

Documentオブジェクトとして取得した変数(DOC)に対しては「DOC.Save」「DOC.Activate」のようにDocumentオブジェクトのプロパティやメソッドを使うことができます。これによりDocumentsコレクションでは対応できない、ドキュメント単体に対する操作も可能になります。
 

Addメソッド

Addメソッドは新規のドキュメントファイルを作成することができます。
新規のドキュメントファイルを作成するには以下のように書きます。

  Addメソッド

Dim DOC As Document
Set DOC= DOCs.Add(“DocumentType“)

DocumentTypeには作成するドキュメントのタイプを入力します。
基本の3つのドキュメント(CATPart,CATProduct,CATDrawing)は以下のように書きます。

CATPart       → Part
CATProduct  →   Product
CATDrawing   →   Drawing

その他のドキュメントタイプについては[新規作成]ウィンドウ(メニューバー [ファイル]>[新規作成])の[タイプのリスト]内に書かれている文字列を使用することができます。

 
サンプルコード

新規ドキュメント(CATPart)を作成するには以下のコードを実行します。

  
 

Itemメソッド

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

  Itemメソッド

Dim DOC As Document
DOC = DOCs.Item(index)

indexにはドキュメントのインデックス番号を入力します。
インデックス番号は自動で設定される番号で、Documentsコレクションの場合は開いたドキュメントから順に1,2,3…と割り振られていきます

1番初めに開いたドキュメントは「DOCs.Item(1)」,2番目に開いたドキュメントは「DOCs.Item(2)」のように書くことでそのドキュメントを取り出すことができます。
また「DOCs.Item(“Part1.CATPart”)」のようにドキュメント名を直接入力することも可能です。

 
サンプルコード

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

  
  

NewFromメソッド

NewFromメソッドは既存のドキュメントファイルを読み取り専用で開くことができます。
読み取り専用で既存ファイルを開くとそのファイルを別のファイルとして開くことができます。
たとえば「Test.CATPart」というドキュメントを開くと「Test_1.CATPart」という名前で「Test.CATPart」の複製データが開かれます。

読み取り専用で既存のドキュメントファイルを開くには以下のように書きます。

  NewFromメソッド

Dim DOC As Document
DOC = DOCs.NewFrom(Path)

Pathには開きたいドキュメントファイルのパスを入力します。
パスとはファイル/フォルダの保存場所を表した文字列のことです。
たとえばデスクトップ上にある「Part1.CATPart」を開きたい場合はPathに「”C:\Users\ユーザー名\Desktop\Part1.CATPart”」というような文字列を入力します。

Windows10の場合、ドキュメントファイルをエクスプローラー上で選択し、[ホーム]タブの[パスをコピー]をクリックすることでパスを取得することができます。パスの取得後は、特に書き変える必要はなく上記コードのPathの部分にそのままペーストするだけです。

 
サンプルコード

デスクトップ上の「Part1.CATPart」を読み取り専用で開くには以下のコードを実行します。
()の中に直接パスを入力しないで、以下のように変数を使って入力することもできます。

 
 

Openメソッド

Openメソッドは既存のドキュメントファイルを開くことができます。
既存のドキュメントファイルを開くには以下のように書きます。

  Openメソッド

Dim DOC As Document
DOC = DOCs.Open(Path)

Pathには開きたいドキュメントファイルのパスを入力します。
※詳しくは「NewFromメソッド」と同じため割愛します。

サンプルコード

デスクトップ上の「Part1.CATPart」を開くには以下のコードを実行します。

 
 

Readメソッド

Readメソッドは既存のドキュメントファイルを読み取ることができます。
既存のドキュメントファイルを読み取るには以下のように書きます。

  Readメソッド

Dim DOC As Document
DOC = DOCs.Read(Path)

Pathには読み取りたいドキュメントファイルのパスを入力します。
※詳しくは「NewFromメソッド」と同じため割愛します。

このメソッドではドキュメントを読み取るだけなのでドキュメント自体は開きません。
任意のドキュメントを開くことなく参照したい場合に使用します。
(たとえば既存ドキュメントを開くことなく、名称やパスを取得したい場合など)

サンプルコード

デスクトップ上の「Part1.CATPart」を読み取るには以下のコードを実行します。

 

まとめ

今回はCATIAマクロでの「Documentsコレクション」についての内容でした。
「Documentsコレクション」は「Documentオブジェクト」と合わせて非常に重要なオブジェクトなのでどちらもよく理解しておく必要があります。

1つのドキュメント内で完結するマクロの場合はこの「Documentsコレクション」はあまり使う必要はありませんが、複数のドキュメント間を移動するようなマクロの場合は必須のオブジェクトです。

はじめのうちはすぐには理解できないかもしれませんが、いくつか簡単なマクロを作ることで徐々に使い方がわかってくると思います。ぜひいろいろなマクロの作成にチャレンジしてみて下さい。

目次へ戻る
 

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

 

 

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

Posted by Lic