OpenSource-Hub

text-to-cad

ライブラリ

earthtojake/text-to-cad

CAD、ロボットおよびハードウェア設計のためのエージェントスキルライブラリ。

概要

CAD モデル、ロボット記述、およびシミュレーションアーティファクトの生成、検査、エクスポートに特化したワークフローを提供します。CAD、URDF、SDF、DXF などのスキルを含み、AI エージェントが機械工学タスクを処理できるようにします。

README プレビュー

\n\n\n\n\n\n\n ██████╗ █████╗ ██████╗       ███████╗██╗  ██╗██╗██╗     ██╗     ███████╗\n██╔════╝██╔══██╗██╔══██╗      ██╔════╝██║ ██╔╝██║██║     ██║     ██╔════╝\n██║     ███████║██║  ██║      ███████╗█████╔╝ ██║██║     ██║     ███████╗\n██║     ██╔══██║██║  ██║      ╚════██║██╔═██╗ ██║██║     ██║     ╚════██║\n╚██████╗██║  ██║██████╔╝      ███████║██║  ██╗██║███████╗███████╗███████║\n ╚═════╝╚═╝  ╚═╝╚═════╝       ╚══════╝╚═╝  ╚═╝╚═╝╚══════╝╚══════╝╚══════╝\n\n\nA skills library for CAD, robotics, and hardware design agents\n\n[Docs](https://www.cadskills.xyz) | [Demo](https://demo.cadskills.xyz)\n\n[](https://discord.gg/5FGB9DwJYU)\n[](https://github.com/earthtojake/text-to-cad/stargazers)\n[](LICENSE)\n[](https://x.com/earthtojake)\n[](skills/cad/requirements.txt)\n[](skills/cad/SKILL.md)\n[](skills/cad/SKILL.md)\n[](skills/cad/SKILL.md)\n[](skills/urdf/SKILL.md)\n[](skills/sdf/SKILL.md)\n[](skills/srdf/SKILL.md)\n\n\n\n# CAD Skills\n\nCAD Skills is a library of agent skills for generating, inspecting, sourcing,\nslicing, and handing off CAD and robot-description artifacts from local project\nfiles.\n\n## 🧰 Skills\n\nInstall the library to give agents focused workflows for CAD, fabrication,\nrobot description files, simulation, and local review.\n\n| Skill        | Summary                                                                                                                                            | Source                                              |\n| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- |\n| CAD          | Creates and edits CAD models from plain-language or image requests, with STEP as the main output along with options to export to STL, 3MF and GLB. | [skills/cad](skills/cad/SKILL.md)                   |\n| CAD Viewer   | Shows local browser previews for CAD, G-code, a

FAQ (5)

トラブル対応
cadgenで有効なSTEPソリッドをSTLにエクスポートする際に、穴、重複三角形、ノンマニフォールドエッジを修正するにはどうすればよいですか?

cadgen 0.7.15 以降にアップグレードしてください。欠陥のあるテッセレーションはそのリリースで修正されました:

pip install -U cadgen==0.7.15

その後、エクスポートを再実行してください:

cadgen stl build teacup.step teacup-export.stl --json

キャッシュをクリアする必要はありません。テッセレーションバージョンが変更されたため、0.7.14 で作成されたメッシュは自動的に再構築されます。text-to-cad agent/CAD server 経由で cadgen を使用している場合は、そのインストールを更新し、CAD server と skills が cadgen 0.7.15 を pin するようにしてください。

影響を受けるバージョンには 0.7.9 と 0.7.14 が含まれます。--mesh-tolerance や --mesh-angular-tolerance を厳しくしても、この問題は確実には解決しません。古いバージョンでの一時的な回避策として、同じ有効な STEP を build123d/OCCT 経由で直接エクスポートしてください:

import build123d as bd
part = bd.import_step("teacup.step")
bd.export_stl(part, "teacup-occt.stl", tolerance=0.0004, angular_tolerance=0.15)

生成された STL で、重複する三角形が 0、境界エッジが 0、3 つ以上の面で共有されているエッジが 0 であることを確認してください。

参照 Issue #555
トラブル対応
穴が曲面の壁を貫通している場合に、non-watertight または non-manifold の cadgen STL を修正するにはどうすればよいですか?

曲面上の穴の周囲に発生する重複三角形および面積ゼロの三角形が修正された cadgen 0.7.3 以降にアップグレードしてください:

pip install --upgrade cadgen==0.7.3

影響を受けるSTLを再エクスポートしてください。新しいテッセレーションキャッシュバージョンによりメッシュが強制的に再生成されますが、キャッシュされたCADジオメトリは保持できます。dfam-check または Bambu Studio で検証してください。メッシュは watertight: true/manifold = yes と報告され、有効な体積を持つはずです。

cadgen 0.6.6 以前では、一時的な回避策として、OpenCascade のメッシャーを使用して build123d.export_stl で同じ形状をエクスポートすると、欠陥のないSTLが生成されます。

参照 Issue #433
トラブル対応
Windows Smart App Control によってブロックされた 'DLL load failed while importing OCP' の修正方法

これは Windows 11 で発生する問題で、Smart App Control が cadquery-ocp/cadquery-ocp-novtk 7.9.3.1.1 の Windows ホイールに同梱されている署名なしのネイティブ OCP.cp312-win_amd64.pyd をブロックすることが原因です。イベントビューアーの Applications and Services Logs > Microsoft > Windows > CodeIntegrity > Operational で確認できます。Event ID 3077 を探してください。SAC にはファイル単位やアプリケーション単位の例外設定はありません。

回避策:
1. 推奨: SAC が適用されない WSL2 上で CAD ワークフローを実行します。wsl --install で WSL をインストールし、Linux 仮想環境を再作成して pip install -r skills/cad/requirements.txt を実行し、そこで cadgen/build123d を使用してください。
2. セキュリティ上のトレードオフを受け入れられる場合は、SAC を無効にします: Windows セキュリティ → アプリとブラウザーの制御 → スマート アプリ コントロールの設定 → オフ にし、Windows を再起動します。後で再度有効にするにはリセット/再インストールが必要です。
3. テスト専用の代替案: 管理者として reg add HKLM\SYSTEM\CurrentControlSet\Control\CI\Policy /v VerifiedAndReputablePolicyState /t REG_DWORD /d 2 /f を実行して SAC を Evaluation モードに設定し、再起動します。これはテスト用として文書化されており、実質的に強制が無効になります。

cadgen 0.6.2 以降にアップグレードしてください。cadgen doctor と CLI の失敗レポートは、この ImportError を明示的に検出し、SAC/Event ID 3077 を示します。Windows ネイティブでの恒久的な修正には、上流の cadquery-ocp ホイールへの Authenticode 署名が必要です。

参照 Issue #404
トラブル対応
並列ビルドの直後に発生する cadgen "STALE (closure changed: ./)" を修正する方法は?

これは cadgen 0.7.11–0.7.15 におけるクロージャダイジェストの競合(race)です。各 STEP 出力は、.<part>-xxxxxxxx のような、最終出力の隣にある隠しディレクトリ内で一時的にビルドされます。別のモデルが os.listdir()、glob、またはレジストリスキャンでそのフォルダを一覧表示すると、その一時ディレクトリ名がモデルのクロージャにハッシュとして取り込まれます。兄弟ビルドが完了してステージングディレクトリを削除すると一覧が変化するため、そのモデルは直ちに STALE (closure changed: ./; changed during the build) とマークされます。

PR #575 と #578 を含む cadgen リリースにアップグレードするか、両方がマージ済みの main からインストールすることで修正できます:

python -m pip install -U cadgen

#575 は cadgen 自身の STEP ステージングフォルダと一時ファイルをフォルダ一覧のダイジェストから除外します。#578 はモデル自身が宣言した出力を除外するため、モデルは初回ビルド後に最新(current)として読み取られます。アップグレード後は、既存のレコードを更新するために 1 回リビルドを実行してください:

cadgen gen

すぐにアップグレードできない場合の回避策は、cadgen gen を再実行することです。影響を受けるモデルは同一のバイト列でリビルドされ、通常は安定します。ソースレベルの回避策としては、cadgen/_internal/generation.py で .cadgen-stage-<name>- のような cadgen 所有のステージングプレフィックスを使用し、_listing_digest の計算時に cadgen/store/closure.py でこれらの cadgen の一時エントリをスキップする方法があります。

注意:空のフォルダへのごく最初のビルドの後、兄弟モデルが一度だけ stale になる可能性は依然としてあります。これは意図的な動作であり、モデルがフォルダを一覧表示して新しく公開された兄弟出力を検出する場合があるためです。もう一度ビルドすれば解消されます。

参照 Issue #564
トラブル対応
DXF ファイルを開いたときに「The viewer did not respond while preparing this model」と表示される問題は、どうすれば解決できますか?

このタイムアウトは、Windows 上の CAD 0.7.15 で、DXF に数千の TEXT または MTEXT エンティティが含まれている場合に発生することがあります。テキストはアウトラインとしてレンダリングされるため、非常に大きなペイロードが生成され、ビューアの 10 秒の制限を超えてしまいます。インストール後に最初に開く DXF は特に遅くなることがあります。

一時的な回避策: 約 1 分待ってから Retry をクリックしてください。2 回目のリクエストでは既存のレンダリングが再利用され、成功する場合があります。

恒久的な修正: 修正 #579 を含むリリースに更新してください。そのリリースでは、図面のテキストがアウトラインではなくテキストとして送信され、図面が到着している間にビューアがタイムアウトしなくなります。6,000 のテキストを含むテスト図面では、150 MB から 1.5 MB に削減され、約 2.5 秒で開くようになりました。更新後もファイルが開けない場合は、DXF ファイルのサイズを添えて問題を報告してください。

参照 Issue #566