C#ATIA

↑タイトル詐欺 主にFusion360API 偶にCATIA V5 VBA(絶賛ネタ切れ中)

D&DでIgesファイルを変換する(オマケ付き)

バッチモード起動を利用したマクロが完成しました。
IgesファイルをD&Dすることで、レイヤー毎の形状セットに分かれた状態で
CATPartファイルに変換します。
要はこちらのマクロを組み込んだものです。

レイヤーの扱いを考える5 - C#ATIA


コードが少し長くなった為、こちらにUpしました。

GrabCAD - CAD library

今回使用するマクロは2つと作成するファイル1つがあります。
・Igs2Cat_GroupByLayer.vbs - IgesファイルをこのファイルにD&Dします。
・Igs2Cat_Support.CATScript - Igesファイルを変換し、レイヤー毎に分けます。
・Cat-Dll_Env-Path.txt - 後に作成するファイルです。


  • ○準備

使用する際は、一度だけですが事前に準備が必要です。
普段使用しているCATIAと、同条件で変換する為に必要な情報を取得します。

・まず、普段使用しているCATIAを起動します。
・起動したままの状態で、「Igs2Cat_GroupByLayer.vbs」をダブルクリックします。
・メッセージ出現後、「Cat-Dll_Env-Path.txt」ファイルが出来上がります。

通常この作業は、使用するPC毎に一度だけ行えばOKです。
但し、リリースアップ等 使用する環境が変わった際には再度行う必要があります。
(ホットフィックスの変更に関しては、この作業は不要です)

ファイルが3つもあると邪魔な為、「Igs2Cat_GroupByLayer.vbs」ファイルのショートカットを
事前に作成される事をお勧めします。


  • ○実行

実行方法は単純にIgesファイルを「Igs2Cat_GroupByLayer.vbs」ファイル(又はショートカット)
D&Dするだけです。
D&D後、変換可能なファイル名が記載されたメッセージボックスが表示されます。
「はい」を選択することで変換を開始します。

複数のIgesファイルをD&Dしても構いません。
・判断は拡張子のみで行っています(「.igs」「.iges」)
・CATIAは基本的に「.iges」(JAMA-IS)は認識しないのですが、拡張子
 変更する事で、変換可能です。
 D&Dしたファイルの中に「.iges」が入っている場合は、メッセージが表示されます。
 「はい」を選択した際、拡張子を「.igs」に強制的に変更を行い変換を行います。
 「いいえ」を選択した際は、このファイルは変換を行いません。


  • ○実行終了

全て変換後は、変換を行い作成したファイル名がメッセージとして表示されます。
・Igesファイルと同一フォルダ内にCATPartファイルが作成されます。
・事前に重複するファイル名が存在する場合 「XXXX_1.CATPart」のようなファイル名で
変換されます。(さらに重複する場合は、数字が増えます)
D&Dされるファイルが多い場合、ファイル名が長い場合メッセージが表示しきれない場合があります。


  • ○変換後のファイル

変換後のファイルは、レイヤー毎の形状セットに分かれています。
f:id:kandennti:20160422130836p:plain
左:通常の変換  右:マクロを使用した変換

レイヤーが割り当てられていない要素については、一番上の形状セットに入っています。

マクロがバッチモード起動なので、GUI起動のCATIAで通常の作業を行っていても
処理します。 (正直に書くと、起動時間がかかる為小さいファイルは遅いかも)




バッチモード起動は、デフォルトで起動すれば環境を取得する必要が無いので楽なのですが、
そうするとハイブリッドデザインONで変換されてしまう為、このような形にしました。

以前、バッチユーティリティを利用しD&DでIges→CATPart変換するマクロを公開したことが
ありました。半年ほど前に少し修正し公開しようとしたら、どうしてもハイブリッド
デザインONで変換されてしまい、上手く行かなかった為公開しませんでした。
(サポートに問い合わせても、わからん って言われてしまい・・・)