👌

GPT-4oを使って2Dの図面から3DのCADモデルを作る

2024/05/18に公開

はじめに

株式会社ファースト・オートメーションCTOの田中(しろくま)です!
先日、 OpenAIからGPT-4oがリリース されました。
https://openai.com/index/hello-gpt-4o/

いろいろGPT-4oに関して調べていると、スピードが速くなっていたり、音声も直接扱えてマルチモーダル化が進んでいたりするようなのですが、画像に関して GPT-4-turboに比べ、認識やOCRの精度が向上している ようです。

https://qiita.com/sakasegawa/items/45947b0a1c1abb963d0a
https://zenn.dev/tomioka/articles/74adf0c6bc8bc6

製造業という観点からすると、これは 設計図面などに活かせるようになるのでは? と思いました。
機械部品などの設計図面は以下のように、特定の方向から部品を2次元上に落とし込んだ形で書かれるのですが、部品本体を描いている図以外に、寸法や名称といった文字も含まれた画像になっています。
このような 図と文字の複合データにおいて、GPT-4oの進化は有効なのではないか と考えました。

※画像元URL: http://cad.wp.xdomain.jp/

今回作ってみたもの

製造業において図面の作成にはCADが使用されます。
作成した図面から加工等を行っていくことを考えた場合に、3DCADを用いると非常に効率的に設計から製造への工程をつなげることができます。
しかし、3DCADソフトはちゃんとしたものだと高価であったり、習熟が大変ということもあり、上のような2Dの図面を使って業務を行っている会社も少なくありません。
そのような課題に対して、2DのCADから3DのCADモデルを作成するツールがこれまでも開発されてきました。

https://www.autodesk.co.jp/solutions/2d-to-3d
https://www.cad100.jp/solidworks/about/sw_2d3d202112.php

今回は2DのCADではなく、 2D図面の画像から3DのCADモデルを作成するツールをGPT-4oを使って作ってみました。

3DCADモデル作成方法

今回作ったコードは cad3dify という名前でgithubにあげています。

https://github.com/neka-nat/cad3dify

CADモデルの作り方としては、cadqueryというpythonを使ってCADモデルを作れるライブラリを使用して、以下のような流れで作成しています。

  1. 2D図面画像を読み込む
  2. 読み込んだ画像をcadqueryによって3DCADモデル化するコードをGPT-4oに作ってもらう
  3. コードを実行する
  4. 生成したモデルを3Dビューアで描画し、画像を保存する
  5. コードのリファインをGPT-4oを使って行う、具体的には3のコードと4の画像と元の図面画像をGPT-4oに送り、コードの修正を行ってもらう

結果

上の2D図面からSTEPファイル形式のCADモデルを生成してみました。
実際に生成されたCADファイルをFreeCADというツールで描画させた結果が以下です。

真ん中の穴が空いてないのと上部の円筒にRが付いてないなど微妙に差異がありますが、概ね再現できているのではないでしょうか。

5番めのリファインが結構いい感じに働いてくれました。
例えば上の2D図面に対し、一回目の生成だと以下のようなモデルなのですが、1回修正をかけるとその次の画像のようなモデルが生成されました。

実際のコードの中では3回ほど修正をかけるようにしています。

他にも作ってみた

正直、ほかはあんまり上手くいかなかったです。

サンプル1

サンプル2

まとめ

GPT-4oを使って2Dの図面画像から3DのCADモデルを作成するということを行ってみました。
GPT-4oになって画像の読み込み精度が上がっており、CAD以外にも製造業の中で画像を使ったアプリケーションに活かせるのではないかと思っています。
最後に宣伝ですが、株式会社ファースト・オートメーションは一緒に働いて下さる仲間を絶賛募集中です!

  • LangChainを使ったプロダクトに興味がある
  • LLMの社会実装に貢献したい
  • 製造業をより良くしたい

といったことに少しでも興味がある方、ぜひ下記応募リンクからご連絡下さい!
https://www.notion.so/firstam/5d68308315da46e7b0a7e02742338188

株式会社ファースト・オートメーション

Discussion