← ブログに戻る
Ai読了目安 13 分

エージェントは STEP ファイルを渡せる:text-to-cad と"コードを形状にする"発想

公開日 2026年10月17日
エージェントは STEP ファイルを渡せる:text-to-cad と"コードを形状にする"発想

ずっとテキストじゃなかった部分

コーディングエージェントがソフトウェアを書けるのは、ソフトウェアがテキストだからだ。この一事実が、彼らが得意なことのほぼすべてを説明している。機械系の仕事でずっと役に立たなかった理由も説明してくれる。ブラケットはテキストじゃないし、肉厚もテキストじゃないし、STEP ファイルは断じてテキストじゃない。技術的にはテキストなんだけど。

text-to-cad は earthtojake による MIT ライセンスのプラグインで、今月はずっと GitHub のトレンドに載っていて、だいたい 18,600 stars。この矛盾を古い手で解いている。テキストじゃないなら、そのもののテキスト表現を作ればいい。ここでは、パラメトリックな Python スクリプトだ。

エージェントの仕事は 3D モデルを想像することじゃない。ジオメトリカーネルが実行できるコードを書くことだ。この違いが製品そのものになっている。

ループは実際どう回るのか

土台になっているのは cadgen という PyPI の Python パッケージで、build123d の上に載っていて、build123d が Open CASCADE を動かしている。ちゃんとした CAD ツールが使っているのと同じ系統のジオメトリカーネルだ。モデルはただの Python スクリプトで、step 定義のデコレータが付いて shape を返す関数。

3mm の肉厚で M3 穴が二つのカメラマウントが欲しいとする。言葉で説明する。エージェントが肉厚、穴径、穴ピッチをパラメータにしたスクリプトを書く。cadgen がそれを実行して STEP を書き出す。頼めば STL、3MF、GLB も。穴の位置を変えたければ数字をひとつ直して、また走らせる。モデルのソースはリポジトリに残って、他のコードと並ぶ。つまり diff もレビューも revert も、他のものと同じようにできる。

これが正確なジオメトリと、それらしいメッシュの違いだ。メッシュ生成器はブラケットに見える面を作る。ソリッドモデラーは肉厚が既知のブラケットを作る。町工場は STEP ファイルなら受け取るが、4,000 枚の三角形でできた曲面の STL は丁寧に断る。

プラグインは、設計が現実になるかどうかを決める地味な部分も引き受ける。製造のための設計と積層造形のための設計のチェックを回し、肉厚、オーバーハング、抜け勾配、アンダーカットを見る。そして指摘ごとに、警告をひとつ投げるのではなく、背後にあるルールを出す。ビュー、隠れ線、穴の注記、表題欄を備えた寸法入りの図面を PDF で生成する。レーザーカット用の DXF プロファイルを書き、OrcaSlicer で G-code にスライスし、Bambu Lab の機械にプリントを送り、SendCutSend 向けのアップロード前チェックを回し、ロボット記述とシミュレータのワールド用に URDF、SRDF、SDF ファイルを書く。

ローカルのビューアもある。対応しているアプリならモデルはチャット内のカードとして出る。それ以外では localhost のリンクが渡される。

A small machined bracket in brushed metal resting on a dark surface, its mounting holes and wall thickness catching a single hard light, faint blueprint lines behind it

なぜ一般化するのか

CAD というユースケースは具体的だが、パターンは具体的じゃない。二つの性質を持っている領域なら、コーディングエージェントに渡せる。成果物のコード表現と、その成果物が妥当かどうかを言ってくれるチェッカーだ。

機械部品は両方ある。スクリプトが表現で、製造性チェックがバリデータだ。Web ページも両方ある。HTML とブラウザだ。インフラも両方ある。設定と plan だ。動画は最近までどちらもなかった。少なくともエージェントが実行できる形では持っていなかった。HyperFrames のようなプロジェクトが埋めているのは、まさにその穴だ。

チェッカーがない領域では、エージェントは自信たっぷりのゴミを出す。'AI for 3D' がプレビューの段階で止まっていたのはそういうことだ。"椅子に見える"と"製造できる"の間にバリデータがなかった。

パターンのもう半分はローカル実行だ。cadgen はあなたのマシンの上で、本物のジオメトリカーネルに対して動く。ジオメトリの段階でニューラルネットワークに近似されているものは何もない。エージェントがパラメトリックな意図を出し、カーネルが真実を出す。

導入コストは、実際にかかる

つまずく点が二つある。どちらもリポジトリに書いてある。痛い目を見てから知るのではなく。これは作者たちの手柄だ。

Windows 11 には専用の罠がある。 CAD カーネルの Python バインディングは署名されていないネイティブモジュールを同梱していて、Windows 11 の Smart App Control(クリーンインストールでは既定でオン)がそれをブロックする。するとどのコマンドも DLL のロードエラーで失敗する。アプリ単位の例外はない。選択肢は Smart App Control を切る(システムによっては Windows の再インストールでしか戻せない)か、WSL の下で CAD スキルを動かすか。doctor コマンドがこのケースを検出するので、少なくともすぐ分かる。

テレメトリは既定でオン。 README が異例なほど詳しく書いていて、その勘は正しい。送られるのは、バージョン、インストール元、OS、使っているエージェントアプリ、それに各ツールが何回呼ばれたか、モデルをいくつ作ったかといったカウント。失敗理由はエラーテキストではなく固定リストから選ばれたもの。クラッシュレポートにはエラーの種類とコードのどこで失敗したかが入る。すべてにランダムなインストール ID が付き、PostHog に保存される。サーバーは IP から国を割り出すが、アドレスは保持しない。送られないのは、ファイル名、パス、ファイルの中身、プロンプト。コマンドひとつで切れて、すでに送った分も削除される。CI からも開発版インストールからも何も送られない。

どちらも若いプロジェクトには普通のことで、どちらも導入の足を引っ張る。商用 CAD ベンダーならどちらも出さない。

向いていないもの

有機的な形状。キャラクター、フィギュア、彫刻的なフォルム。形そのものが目的で機能が目的じゃないものは、メッシュ生成の領域で、メッシュベースの image-to-3D モデルのほうが適している。ドラゴンをパラメータで説明しようとするのは、ひどい午後になる。

エンジニアのサインオフの代わりにもならない。DFM スキルはガイド付きのレビューで、認証じゃない。人の体重を支える部品なら、いまも人間のエンジニアが図面にサインする。ループの終わりには誰かが請求書を払う。人間の居場所はたぶんそこだ。

リポジトリ自体が若くて、動きが速い。2026 年 4 月に作られ、1,400 commits 以上、PyPI パッケージは数十リリース、10 月初旬には二日で三バージョン出た。この速さは、新しいスキルが好きなら利点で、安定性が要るならリスクだ。

README にある、効いてくる一文

説明の中に、飛ばしやすい主張が埋まっている。このプラグインはエージェントに本物の CAD ワークフローを与える。デモでもプロンプトのラッパーでもなく、表現と、実行者と、バリデータと、加工屋への引き渡しを備えたワークフローだ。

これが、エージェントをソフトウェアの外でも役に立たせるものの形だ。ブラケットに詳しいモデルではなく、モデルが実行可能な何かを書き、別の何かがそれを検査し、出力が別のシステムに受け入れられるファイルになるループ。エージェントは CAD が得意である必要はない。コードが得意であればいい。そしてその領域にコンパイラがあればいい。

機械工学が最初にたどり着いたのは、コンパイラが五十年物で、バリデータが製造ルールの集合だったからだ。この二つを手に入れた領域は、一年以内にこう見えるようになる。

関連記事