💬

FreeCAD MCPでいろいろ3DCAD蚭蚈しおみた

に公開1件

はじめに

株匏䌚瀟ファヌスト・オヌトメヌション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

株匏䌚瀟ファヌスト・オヌトメヌション

Discussion

ばぐばぐ

FreeCADは、簡易なFEM解析もできるFEAの入門アプリを、MCPサヌバで動くようにしおくれた蚘事ずおも参考になりたした
同様に、他の方のQGISをMCPサヌバで動かす蚘事や、MinecraftをMCPサヌバで動かす蚘事などを詊しおみたした。Claude 3.7 Sonnet を䜿っおいるのですが、アプリによっおは、GPT4.1の方が向いおいるもののあるようです。
共通点ずしお、どのアプリも䜕床もやり盎すうちに、Claudeが、Pythonで、ざぁヌっず手順を曞き䞊げお、execute_code()で流し蟌むずころに蟿り着きたす。人もAPIリファレンスを参照しお、同じこずをやるので、Claudeもやっぱりその方が解決しやすいのだな、ず思いたした。
そうなるず、以䞋にClaudeにAPIの知識をコンテキストに持たせるか、になるず思い、ドキュメント参照するMCPサヌバなどずの連携など詊しおいたす 

1