みなさん、こんにちは!「機器図からPlant3Dの機器を自動生成できないか?」シリーズ第4回です。
前回までで、AIが機器図から情報を抽出し、レビュー画面で人間が確認して、confirmed JSONとして確定データを残すところまで進みました。ここまで来たら、いよいよ次の段階です。
そのデータを使って、Plant3Dに本物のEquipmentを自動生成できるのか?
今回は、Plant3D APIを調べながら、V-1の胴・鏡板・胴フランジを実際に生成するところまで挑戦します。正直よくわかっていませんが、相棒のAIがいれば何とかなるはず!?
ただの3Dソリッドでは意味がない
AutoCAD上に円筒や鏡板の形を作るだけなら、それほど難しくありません。でも今回作りたいのは、見た目がタンクっぽい3Dモデルではありません。Plant3DがEquipmentとして認識する機器です。
最終的にはノズルを持たせ、配管と接続できて、Plant3D上で機器として扱える必要があります。
そこでまず、Plant3DのSDKや公開APIを調べるところから始めました。
Plant3D APIを調べてみる
調べていくと、Plant3DにはEquipmentを作成するためのAPIが用意されていることが分かりました。今回の検証では、Equipment本体の作成、プロジェクトへの登録、ノズル追加、独自形状の取り付けなどに使えそうな公開APIをひとつずつ確認していきました。
ただ、APIの名前が分かったからといって、すぐ完成するわけではありません(笑)
「どの順番で呼ぶのか?」「作ったオブジェクトをどうPlant3Dへ登録するのか?」「保存して図面を開き直しても残るのか?」など、実際に動かして確認しないと分からないことがかなりありました。
まずは最小構成でEquipmentを作る
最初からV-1を全部作ろうとすると、どこで失敗したのか分からなくなります。そこで、まずは最小構成のEquipmentをPlant3D上に生成するテストから始めました。
形状を作り、それをEquipmentとして登録する。保存して、一度閉じて、もう一度開く。この地味な確認を繰り返して、Plant3Dの中でちゃんとEquipmentとして成立するところまで確認します。
この時点で、今回の自動生成は「AutoCADを外から無理やり操作する」のではなく、Plant3Dの公開APIを使って機器を生成する方針に固まりました。
V-1の胴を作ってみる
最小構成が動いたので、次は実際のテスト機器V-1へ進みます。まずは円筒胴。
ここでひとつ決めたのが、図面上の板厚をそのまま3D形状へ反映するのではなく、今回のPlant3Dモデルでは機器の呼び径を基準にしたシンプルな形状にすることです。
目的は製作用の詳細モデルを作ることではなく、配管設計で使えるPlant3D Equipmentを自動生成すること。何でも図面通りに細かく作るのではなく、どこまでを3Dモデルに持たせるかも自動化では重要だと感じました。この考えは3D-CADを扱う上ではとても大事な考え方です。以前の記事でも紹介していますが、MOD(モデル詳細度)をあらかじめしっかりと決めておくという事です。
鏡板はPlant3Dの標準形状を使う
次に悩んだのが上下の鏡板です。V-1では10%皿形鏡板を使っています。独自に3Dソリッドを計算して作る方法もありますが、Plant3D側に標準の鏡板形状があるなら、できるだけ標準機能を使った方が後から扱いやすい。
そこで今回は、Plant3Dの標準Dished Headを使って上下の鏡板を構成しました。この「Plant3Dの標準機能で表現できるものは、なるべく標準機能を使う」という考え方は、その後の開発でもかなり重要な方針になっています。
胴フランジも付けてみる
V-1は胴の途中にフランジがあります。ここはEquipment本体だけでは表現しづらかったので、フランジ形状を3Dソリッドとして作成し、Equipmentへ取り付ける方法を試しました。
つまり、ひとつの機器の中でも、Plant3Dの標準形状と独自に作った形状を組み合わせています。
最終的に、円筒胴+上下の鏡板+胴フランジまでを持ったV-1の基本形状を自動生成できるところまで到達しました。画面にV-1らしい形が出てきたときは、かなりテンションが上がりました(笑)
でも、まだ「機器の形」ができただけ
ここまででEquipment本体は作れました。ただし、配管設計で本当に重要なのはここからです。
まだ、ノズルがない。
しかもノズルは、ただ円筒をくっつければいいわけではありません。口径、フランジ規格、圧力クラス、取付位置、方向、接続面などをPlant3Dの情報として正しく持たせる必要があります。
そして、このノズル作成でまた新しい問題が出てきます。
次回はPlant3Dのカタログから目的のノズルをどう選ぶのか?、そしてV-1へN-1、N-2、N-3を自動生成していくところへ進みます!

コメント