mcpField
E
engineering-drawing

engineering-drawing

github.com/earthtojakeドキュメント23.9k2.4k 回インストール今日更新
リポジトリ

engineering-drawing について

engineering-drawing は、CAD 部品の形状から製図を生成するスクリプト型スキルです。モデルに追従する寸法入り PDF を必要とする CAD モデラー向けです。

主な機能

  1. 01正投影図とアイソメ図の投影
  2. 02形状に基づく寸法と穴の注記
  3. 03ISO 用紙枠とタイトル欄
  4. 04同じ内容から同一バイト列の PDF を生成

活用シーン

  1. 01製造現場向けの部品図作成
  2. 02モデル変更後のビューと寸法の更新

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/earthtojake/text-to-cad --skill engineering-drawing

インストール後、Claude Code で/engineering-drawingを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

LICENSE
agents/
openai.yaml
references/
sheet-api.md

詳細

エンジニアリング図面

出典:earthtojake/text-to-cadで保守されています。 インストール済みのローカルスキルファイルを、実行時の信頼できる情報源として使用してください。

エンジニアリング図面は、部品から作成されるドキュメントです。cadgen.eng_drawing は部品のジオメトリからビューを投影し、そのジオメトリ上の点どうしに寸法を配置して、 中心マークを検出し、枠と表題欄を備えた ISO 用紙に結果をレイアウトします。モデルを変更して 図面スクリプトを再実行すると、ビュー、隠れ線、測定値もそれに合わせて更新されます。 用紙上に手描きされたものはなく、値を上書きすることを選ばない限り、手入力した数値もありません。

出力は 1 つの PDF です。 製造現場に渡すのも、すべてのオペレーティングシステムで開くのもこの PDF です。DXF は出力されず、ペアになるファイルやリンクされたファイルもありません。また、CLI もありません。スクリプトがインターフェースです。$dxf はカットレイアウトやフラットパターンを作成しますが、これらはツールパスであり、ドキュメントではありません。両者は別の用途です。

セットアップ

cadgen は uv 経由で実行してください。これにより、このスキルのコマンドは CAD アプリのサーバーと同じインストール環境およびウォームビルドデーモンを共有します。

  • 以下の cadgen は uvx --no-config --managed-python --python 3.13 --from cadgen==0.7.26 cadgen を意味します
  • 以下の python は uvx --no-config --managed-python --python 3.13 --from cadgen==0.7.26 python を意味します

初回の実行時にこのインストール環境がダウンロードされ、以降の実行では再利用されます。

ワークフロー

  1. パーツを取得します。cadgen.read_step(Path(__file__).parent / "../STEP/part.step") は、@step モデルが作成したアーティファクトを読み込みます(最初に python <model>.py を実行してください)。ライブの build123d 形状も同様に使えます。図面は形状を記録するものであり、形状を作成するものではありません。

  2. モデルの隣に <name>_drawing.py を作成します。テンプレートを使用してください。寸法が参照するモデルの情報(穴ピッチ、全体サイズ、壁厚)は、入力し直すのではなくモデルモジュールからインポートしてください。そうすれば、フィーチャーを移動すると寸法も移動します。

  3. sheet.three_views(part, iso=True) でビューを配置します。これは4つのビューを返します。第三角法による上面図、正面図、右側面図には寸法を2段配置できるスペースがあり、空いた隅にはアイソメトリック図が配置されます。sheet.three_views(part) は3つのビューを返します。カスタムレイアウトの場合に限り、sheet.view(part, name, at=(x, y)) を使用します(シート上の座標は左下隅を原点とするミリメートル単位です。A3 は 420 × 297、A4 は 297 × 210 です)。

  4. 製作者に必要な寸法をモデル座標で記入します。ビューごとの全体サイズ(view.overall())、フィーチャーの位置とサイズ(設計上必要な場合は tol= または fit= を指定する view.dim)、穴の引出線注記(view.hole:貫通穴、深さ、座ぐり、皿穴、ねじ)、引出線付きの注記(view.note)を記入してください。寸法を測定させるため、text は未指定のままにします。モデルで値が定義されていない場合に限り、値を指定してください。offset も未指定のままにすると、寸法はビューの外側にある次の空き段に配置されます。寸法を意図的に配置する場合にのみ指定してください。また、寸法の基準はビューの端ではなく、その寸法自身の点であることに注意してください。注記は少なく、短くしてください。シートの注記欄より幅の広い注記は拒否されます。また、notes= はリストを受け取ります(notes="BREAK EDGES" は11文字の列なので、こちらも拒否されます)。

  5. python <name>_drawing.py を実行します。書き出した PDF のパスと、作図中に検出した内容が表示されます。まずはそれらを確認してください。

    • 「何もない用紙を測定しています」:寸法のモデル上の点がビューの形状に重なっていません。ほとんどの場合、パーツが角を基準に作成されているのに、スクリプトでは中心を基準にしていると想定しています。パーツのバウンディングボックスを確認してください。
    • 「注記が重なっています」:通常は、あるビューの最外側の寸法と、その上にあるビューのラベルが重なり、2つの引出線注記が印刷時に重なっています。three_views(gap=...) に大きな値を渡すか、片方に offset= を指定してください。テキストは描画時にグリフごとに測定されるため、マークアップではなくインクの重なりを検出します。許容差付き寸法の数値同士が離れていれば、寸法が連なっていても警告は出ません。

    手順3と5は単独でも実行できます。寸法がまだ記入されていないビューシートも図面であり、PDF が書き出されます。

    無人で実行する場合は、matplotlib のフォントキャッシュに関する警告を防ぐため、MPLCONFIGDIR に書き込み可能なディレクトリを設定してください。

  6. PDFを確認し、重なりを修正します。寸法テキストがビューに重なっていないこと、形状の背後にフィーチャーがある場合に隠れ線が表示されていること、すべての穴に中心マークがあること、引出線がパーツを横切っていないことを確認してください。非常に小さい寸法(数 mm)は数値が補助線上に配置されるため、代わりに大きいフィーチャーに寸法を記入してください。at= または offset= を移動して、再実行します。

シートに含まれるもの

  • 意味を持つレイヤー:VISIBLE(太い輪郭線)、HIDDEN(破線)、CENTER (中心線)、DIM、NOTES、TITLE、SHEET(枠)。それぞれ線の太さを 0.5 mmから0.18 mmまで変えて印刷するため、紙面上で太線と細線を見分けられます。 エッジは一度だけ描画します。カーネルが可視エッジと隠れエッジの両方として返す シルエットも、VISIBLEに配置します。隠れた接線遷移は一切描画しません。 面につながるフィレットや、円筒が閉じる位置の継ぎ目は、加工現場で見えるものを 示さず、破線で描くと存在しない隠れエッジのように見えてしまいます(穴では、 穴自体の軸に沿った線として表示されます)。
  • ジオメトリから測定した寸法。塗りつぶし矢印と補助線を使い、図面の縮尺にかかわらず 実寸の値を表示します。
  • タイトル、部品番号、材質、作成者、縮尺、単位、投影法、改訂、SHEET n OF m、 作図関数名を含むタイトル欄。その上には番号付き注記を配置します(一般公差が 指定されている場合は、注記1とします)。revisions=が指定されている場合は、 右上に改訂表を配置します。セルに収まらない長さのテキストは、文字を小さくし、 はみ出さずに省略記号で切り詰めます。
  • 内容に応じて生成されるPDFバイト列。作成日は記録されないため、変更のない図面は 再ビルドしても同一のファイルになります。

エラーを明確にする項目

誤った文書や欠落した文書を書き出すのではなく、スクリプトは例外を発生させます。

  • 枠からはみ出すビュー。レイアウトして収まることを確認した縮尺を示すか、 標準縮尺では対応できないことを示します。
  • 語彙で定義されていない部品引数:不明なビュー名、シートサイズまたは投影法、 "h"/"v"以外のorientation=、負またはゼロの直径、(diameter, depth)の ペアではない座ぐり、数値でもペアでもないtol、深さを指定しながらthruでも ある穴、文字列のみで指定されたnotes=またはrevisions=、シート幅を超える注記、 同一直線上にあるか長さがゼロのangle()の辺、有限値ではないat=またはoffset=。
  • レンダラーの欠落。PDFが図面そのものなので、matplotlibがなければ処理を省略するのでは なく失敗となります。レンダリングに失敗した場合、ファイルは残りません。
  • インポート時に、out=がない、または.pdfを指定していない場合。

引き継ぎ時に伝える制限事項

  • 公差は、指定したtol=、fit=、general_tolerance=からのみ取得します。 値は設計要件またはユーザーから取得し、決して創作しないでください。公差のない 寸法は公称値です。
  • ビューはカーネルから取得した隠れ線を含む正投影です。断面図、詳細図、補助投影図には まだ対応していません。各ビューで表示されない内容を明記してください。
  • シートでは、把握しているビューに注記が重ならないように配置し、それでも注記同士が 重なって印刷される場合は報告しますが、注記と線画との重なりは確認しません。 PDFを確認してください。

コメント