読者です 読者をやめる 読者になる 読者になる

C#ATIA

↑タイトル詐欺 主にCATIA V5 の VBA

ライセンス無しでSTLをCATIAに取り込む

先日3DDXFのインポートマクロを作ったのですが、座標値さえ取れて
しまえば、STLやOBJでも同じようにインポートさせる事は可能なの
だろう と思っているのですが、本音で言えばサーフェスでは要らない
です。

恐らく "ライセンスは無いがCATIAでSTLを表示させたい、CGR辺りで "
と言う需要はあるような気がしてます。
うちはHD2パッケージしかないので、当然ライセンスがないです。
CATIA V5 価格(キャティア ブイファイブ 価格)|3DCAD(3次元設計)|CAD Japan.com
HD2だって結構なお値段するんですけどね。
(僕の乗っている車より、遥かに高いです)

CATIAでポリゴンっぽいものを読み込めるのは、CATProductで
VRML(.wrl )フォーマットがあります。
STLVRMLで変換できる、オープンソースソフト "MeshLab" を利用
すれば出来そうだな と挑戦してみました。
MeshLab

  • まず手頃なSTLデータですが、プロフィールの所にあるこの子にします。

CADデータな為、一旦STLでエクスポート。
f:id:kandennti:20160218184210p:plain

  • MeshLabを起動して "Inport Mesh" で取り込みます。

f:id:kandennti:20160218184218p:plain

  • STLなので色が抜けます。 ・・・かわいくないです。

f:id:kandennti:20160218184307p:plain

  • "Export Mesh As" を選択し "VRML File Format" に切り替え

 "Save" を押します。
f:id:kandennti:20160218184326p:plainf:id:kandennti:20160218184333p:plain

  • すぐにはエクスポートされず、もう一つダイアログが出てくるので

  "OK" を押します。
f:id:kandennti:20160218184404p:plain

  • CATIA側のCATProductで、先程のVRMLを取り込もうとしたの

 ですが、処理が一向に進まない。(強制的に終了させました)
f:id:kandennti:20160218184426p:plain
 甘かった・・・でも何故?



VRMLは1.0と2.0があるようなのですが、試しにCATIAでエクスポートした
ものも、MeshLabでエクスポートしたものも両方2.0。
※当方CATIA V5-6R2012(64bit) と MeshLab1.3.1(32bit)で試しました。
改行コードが異なっていたので、合わせてみましたがやっぱりNG。

色々と試しているうちに判りました。

  • MeshLabで一度VRML以外でエクスポートします。

 (自分はOBJで行いましたが、他のフォーマットでも大丈夫ではない
  かと思います)

  • 面倒なのですが、エクスポートしたファイルを再度インポートします。
  • このデータを再度VRMLでエクスポートします。

 実は "Save" を押した後に出てくるダイアログの状態が若干違います。
 "Color" 部分がグレーアウトしている状態では、CATIA側では
 取り込まないようです。
f:id:kandennti:20160218184456p:plain

 

  • この時点で取り込める事は判っていたのですが、まだ罠が待って

 いました。
 CATIAでエクスポートしたVRMLを取り込みます。
 (お腹の辺りにカーソルを持っていったため、メッシュっぽさが確認
  できると思います)
f:id:kandennti:20160218184507p:plain

  • 続いてMeshLabでエクスポートしたVRMLを取り込みました。

 ん?何かが変?
f:id:kandennti:20160218184529p:plain
 えらく成長してました。
f:id:kandennti:20160218184536p:plain

  • 大まかにサイズを確認してみると、元は27mm程で

f:id:kandennti:20160218184554p:plain

成長後は27000mm程
f:id:kandennti:20160218184604p:plain
MeshLabとCATIAは、単位が違うんですね。
インチじゃなかっただけ、良かったです。

  • MeshLabで1/1000にします。

 "Filters" - "Normals,~" - "Transform: Scale"の
f:id:kandennti:20160218184620p:plain
 各軸を "0.001" にし "Apply" です。
f:id:kandennti:20160218184628p:plain

  • 小さすぎて消えたみたいになってしまいますが、表示を

 マッチさせる操作がわかりませんでした・・・。
f:id:kandennti:20160218184642p:plain

  • 後は先程と同様の操作で取り込みます。

 ご覧の通り一致しましたが、何だかちょっとかわいそうな
 気分に・・・。
f:id:kandennti:20160218184705p:plain

・並べるとこんな感じです。
 左からCATIAエクスポート、MeshLabエクスポート(色なし)、
 MeshLabエクスポート(色有り)
 色有りだと日焼け具合が半端ないです。
f:id:kandennti:20160218184717p:plain
 MeshLabで色が塗れるのですが、テクスチャのためかCATIAでは
 入ってきませんでした。

  • MeshLabは、DXFでエクスポート出来たので、昨日のマクロを

 試しました。
f:id:kandennti:20160218184732p:plain
 素直に、止めておけば良かったです・・・。


取り込めた以上、もちろん干渉チェックも可能です。
f:id:kandennti:20160218184743p:plain



VRMLとして取り込めたら、CGRとして保存できます。
そちらの方が扱いやすいのではないかな?と思います。


偶々CATIAからのエクスポートだった事が原因かな?とも思い、
念の為こちらのIgesとSTLで行いましたが、やはり同様でした。
GrabCAD - CAD library
(IgesとSTLの原点が異なるような気がします)


要点をまとめると
MeshLabで直接STLVRMLしたものは、CATIAにとって
受け入れがたい何かがある。
(Choose Saving OptionのColorをチェックしましょう)

単位が違う為、1/1000にしましょう

STLぐらい標準でインポートさせて下さい