Zenn
💬

FreeCAD MCPでいろいろ3DCAD設計してみた

に公開
11

はじめに

株式会社ファースト・オートメーションCTOの田中(しろくま)です!
弊社では製造業向けにLLMで図面やCADデータから情報を読み取ったり、逆にそれらを生成するようなプロダクトの開発を行っています。
今回は最近流行りの MCP(Model Context Protocol)を使ってCADソフトとClaudeをつなげてLLMのCAD設計支援の可能性を探っていきたいと思っています。

使用するCADソフト

FreeCADというフリーで使えるOSSのCADソフトを使用します。
フリーでありながらなかなか機能も豊富で、CAM(工作機械用のコードを生成する機能)やCAE(材料の強度計算などを行う機能)などにも対応しています。
https://www.freecad.org/index.php?lang=ja

FreeCAD MCPについて

今回使用するのは自作したFreeCAD用のMCPサーバになります。
https://github.com/neka-nat/freecad-mcp

Github上にはもう一つFreeCAD用のMCPサーバがあるのですが、私が作成したものは よりツールの種類が多いのと、CADモデルのスクショ画像をフィードバックとして送ったりできる ようになっています。

仕組みとしてはBlenderMCPを参考にしており、Blenderと同様、FreeCADもpythonによるプラグイン作成が可能なので、プラグイン内で外部との通信の口を作っておき、その口を通してMCPサーバとやり取りを行うようになっています。

作成したMCPサーバの中で使用できるツールは以下のようになっています。

  • create_document - FreeCADの新規ドキュメントを作成します。
  • create_object - 指定したドキュメント内にオブジェクトを作成します。
  • edit_object - 指定したオブジェクトのプロパティを編集します。
  • delete_object - 指定したオブジェクトを削除します。
  • execute_code - FreeCAD内でPythonコードを実行します。
  • insert_part_from_library - Parts libraryから指定のCADモデルを持ってきます。
  • get_view - 指定した方向のビューのスクショを撮ります。
  • get_objects - ドキュメント内にあるオブジェクトの一覧の情報を取得します。
  • get_object - ドキュメント内にある指定したオブジェクトの情報を取得します。
  • get_parts_list - Parts library内にあるCADモデルのリストを返します。

FreeCAD MCPでいろいろ設計してみる

シンプルなフランジの設計

まずはシンプルなフランジの設計から行ってみます。
Claude上で「freecadを使ってフランジの3DCADモデルを作ってみて。」とプロンプトを打った結果が以下の動画になります。(動画は4倍速です。)

おもちゃのクルマ

次におもちゃのクルマを作らせてみました。
オブジェクトの数が増えてもある程度位置関係を理解して組み立てられているのかなと思います。(動画は4倍速です。)

2D図面画像から3DCADの生成

次は2D図面画像から3DCADを生成してみます。
こちらの記事でGPT-4oを使ってある程度対称性の高いフランジは上手く3D化できるのですが、以下のような図面はあまりうまくいきませんでした。こちらをClaude+FreeCAD MCPで再トライしてみました。

一回の指示ではないですが、3回ほど修正などの指示をするとだいぶ形が近くなったかと思います。
動画を見ると、最初の指示で見た目を確認しながらAIが2回ほど作り直しを行っていて、その後、私の指示によって修正を行っている様子が分かります。(動画は8倍速です。)

以下に前回結果と今回結果の比較を載せます。
Claude + MCPのほうが厚みが少し変ですが、角の部分が段になっているところが再現されていて、より細かく要素を再現していると思います。

前回結果(GPT-4o)

今回結果(Claude + FreeCAD MCP)

CAEのデモ

CAEのデモとして梁のFEM解析も行ってみました。
これに関しては最後までうまくいきませんでした。拘束条件や外力の設定までは上手くいくのですが、FEMで使用するメッシュの構築まわりでかなり失敗してしまいます。
FreeCADのドキュメントを見ていると、この辺りは結構APIの変更も多そうで、Claudeが対応しきれてない感じがしました。(動画は8倍速です。)

まとめ

FreeCADのMCPサーバを作ることでClaudeによるFreeCADの設計支援をいろいろ検証してみました。
CADは初心者にはなかなかとっつきづらいところもありますが、MCPでAIと繋げることでかなり楽に使えるようになる気がしています。

最後までお読みいただきありがとうございました。
最後に宣伝ですが、株式会社ファースト・オートメーションは一緒に働いて下さる仲間を絶賛募集中です!

  • CADデータや3DデータとLLMを使ったプロダクトに興味がある
  • 生成AIの社会実装に貢献したい
  • 製造業をより良くしたい

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

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

Discussion

ログインするとコメントできます