【アプリ開発③】「まず3Dで組んでから、図面は後でいい」AI×3Dモデリングを搭載したデスクトップアプリ
きっかけは、ある製造業の開発担当の方から聞いた一言でした。「うちはもう、3Dモデルを先に作って、そこから2D図面は後から出すんですよ」と。
普段JW_CADのような2D CADに部品を自動配置するツール(CADポン)を作っていた自分にとって、これは発想の転換でした。図面(2D)が主役で、3Dはあくまで確認用、という順番を疑ったことがなかったからです。
「柱の本数が現場ごとに違う」という一言から
私が以前働いていてお世話になった、ある鉄工所に無償でツールを提供させていただく中で、庇(ひさし)や手すりの構造について伺う機会がありました。柱があって、下端に穴あきのベースプレートを溶接してアンカーで固定し、柱と柱の間を梁でつなぎ、その接続部は穴あきプレート同士をボルト・ナットで締結する。よくある構成です。
ただし「柱の本数は現場ごとに変わる」とのことでした。3本の時もあれば、5本、7本の時もある。だとしたら、決め打ちの3Dモデルを作っても意味がありません。本数や間隔をパラメータとして、その場で構造を組み立て直せる仕組みが必要でした。

作ったデスクトップアプリ
製品を選ぶと、必要な部品がギャラリー表示される
部品を選ぶと、標準的な寸法がすでに入った状態で3Dプレビューが出る。数値を変えると、その場でプレビューが更新される
「モデルに組み込む」を押すと、右側の3Dビューにその部品が追加される
ここが一番こだわった部分です。追加された部品には、CADのような移動・回転ハンドルが表示され、マウスでドラッグして実際の位置に調整できます
部品を選んでは組み込む、を繰り返して、全体の完成図を組み上げていきます
過去の図面実績を参照すれば、その鉄工所が普段作っている「お手本となる完成形」のベースは掴めます。つまり「モデルに組み込む」を押すだけで、その型に沿った位置へ部品がはまっていく。デスクトップアプリ側で調整するのは、現場ごとに違う寸法や逃げ、柱の本数といった部分だけ、という組み立てです。
技術的には、部品の立体形状の計算にオープンソースの3D CADエンジンを使い、表示とマウス操作の部分は科学技術計算の分野で使われる可視化ライブラリを使っています。学生の頃にFusion360を触っていた記憶からオマージュした部分もありますが、「掴んで動かす」という操作感を自作するのではなく、既にある仕組みをそのまま活用することで、実装に無理のない形にしました。
やってみて感じたこと
正直、最初はうまくいきませんでした。部品を組み込んだ瞬間、画面が原色の三角形で埋め尽くされる、というバグに遭遇しました。原因はカメラの視野が小さいままだったことで、部品を追加するたびに視野を合わせ直す処理を足して解決しました。地味ですが、こういう「動かしてみて初めてわかる」不具合をひとつずつ潰していく作業が、結局一番時間がかかります。

2D図面(組立図)への変換は、まだ検証段階です。3Dモデルを指定した方向に投影して、隠れた線を消す、という昔からある手法(隠線処理)を使えば実現できそうだ、というところまでは確認できました。
スタート地点
繰り返しになりますが、これはまだ検証段階のツールです。実際の図面や構造のクセに合わせて、これから何度も作り直すことになると思います。ただ、「3Dを先に組んでから、必要な時に2Dを取り出す」という順番自体は、間違っていない方向だと感じています。

この先
デスクトップアプリではAIを使って修正させることもできますが、時間がかかることは往々にしてあります。またこのようなアイデアは他の製品でもきっと思いついているはず。
まずは庇・手すりで、実際に使える精度まで持っていくことが目標です。その先には、螺旋階段のような複雑なものや、部品同士が正しい位置で自動的にはまってくれる仕組みや、組み上げた構造がちゃんと強度的に問題ないかをその場で確認できる仕組みも構想しています。
もし「うちの現場にも似たような悩みがある」という方がいれば、お気軽にご連絡ください。まずは無償のデモや壁打ちからでも大丈夫です。
Coconala(見積り・ご相談はこちら)
ホームページはこちら(実績・プロフィール一覧)
