mcpField
C
create-cad-files

create-cad-files

github.com/caid-technologiesデザイン・UI6655 回インストール3 週間前に更新
リポジトリ

create-cad-files について

create-cad-filesは、パラメトリックなCADモデルを作成・書き出すスキルで、STEPやSTLファイルが必要な設計・製造作業向けです。OpenCAD Pythonのソース、ネイティブOCCTによる書き出し、ファイル検証を一連の手順にまとめ、再現可能なプロジェクト構成を保ちます。

主な機能

  1. 01要件から寸法と形状を抽出
  2. 02パラメトリックなOpenCAD Pythonモデルの生成
  3. 03OCCTによるSTEPまたはSTLの書き出し
  4. 04交換ファイルの検証とフィーチャーツリー確認
  5. 05ソースとプロジェクト文書の保持

活用シーン

  1. 01編集可能なSTEP形状の作成
  2. 023Dプリント用STLファイルの生成
  3. 03再現可能なCADコンポーネントの整理

インストール

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

$npx skills add https://github.com/caid-technologies/opencad --skill create-cad-files

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

同梱ファイル

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

agents/
openai.yaml
references/
opencad-api.md
scripts/
build_cad_file.py
create_project.py
validate_cad_file.py

詳細

CAD ファイルの作成

モデルを読みやすい OpenCAD Python で作成し、ネイティブの OCCT バックエンドでエクスポートしてから、返却前に交換ファイルを検証します。ユーザー体験はプロンプト優先とし、Python の操作をユーザーに求めずに、ソースの生成、ビルドコマンドの実行、検証を行います。

ワークフロー

  1. 寸法、単位、形状、穴、クリアランス、出力形式を抽出します。特に指定がない限り、単位にはミリメートルを使用します。寸法が不明で部品に大きな影響がある場合に限り質問し、それ以外は前提を明示します。

  2. 編集可能な製造用形状には STEP を、三角形分割された 3D プリント用データには STL を優先します。両方を指定された場合は、両方を作成します。

  3. モデルを作成する前に、references/opencad-api.md を読みます。各実行の開始時に scripts/create_project.py を使って新しいプロジェクトディレクトリを作成し、返されたパスを PROJECT_DIR として使用します。このヘルパーは ~/forma-workspace/ 内に UUID 名のディレクトリを作成します。リクエストからプロジェクト ID を導出してはいけません。すべてのソースファイル、README、コンポーネント、生成アーティファクトを PROJECT_DIR 内に置きます。プロジェクトのコンテキストを記述する README.md、マスター構成エントリーポイントとしての assembly.py、寸法を共有する場合は parameters.py、コンポーネントモジュール用の Python パッケージ components/、生成アーティファクト用のディレクトリ outputs/ を作成します。明示的に指定されたファイル名は PROJECT_DIR 内で使用しますが、共有ルートや生成されたプロジェクト ID は置き換えないでください。

  4. モデルはパラメトリックに保ちます。重要な寸法には名前付き定数を割り当て、コンポーネントモジュールには名前付きビルダーまたはパーツを公開させ、assembly.py では最終的な Part を 1 つ作成します。最終的なパーツは assembly.py(または明示的に指定されたマスターファイル)内で最後に生成される形状にしてください。モデル内で Part.export() を呼び出してはいけません。エクスポートと検証はビルドヘルパーが行います。

  5. opencad[occt] がインストールされていることを確認します。OpenCAD のインポートに失敗した場合は、依存関係について説明し、アクティブな Python 環境へのインストール前にユーザーへ確認します。

  6. このスキルのディレクトリを解決し、絶対パスを使ってプロジェクトディレクトリを作成し、返されたプロジェクトディレクトリ内にとどまり、ビルドヘルパーを絶対パスで実行します。

    PROJECT_DIR=$(python /path/to/create-cad-files/scripts/create_project.py)
    python /path/to/create-cad-files/scripts/build_cad_file.py "$PROJECT_DIR/assembly.py" "$PROJECT_DIR/outputs/assembly.step" --tree-output "$PROJECT_DIR/outputs/assembly.tree.json"
    

    STL の場合は .stl の出力名を使用します。ヘルパーは --force が明示的に指定されない限り、既存ファイルの置き換えを拒否します。

  7. 両方の形式をエクスポートする場合は、同じプロジェクトの assembly.py ソースを使って 2 回実行します。既存のアーティファクトを検証する場合は、scripts/validate_cad_file.py の絶対パスを使って個別に検証します。

  8. 失敗を確認し、検証を回避せずにソースを修正します。ソース、CAD アーティファクト、フィーチャーツリーへのクリック可能なパスに加え、単位と前提を提示します。

品質ルール

  • 指定された寸法を正確に維持し、ユーザー向けパラメーターには名前を付けます。
  • 閉じた順序どおりのスケッチプロファイルを使用します。自己交差、厚みゼロの接触、ブーリアン演算における同一平面の曖昧さを避けます。
  • メインのソリッドとブーリアン演算の後に、フィレットと面取りを適用します。
  • 穴とクリアランスを明示します。製造公差を独自に設定せず、嵌合が重要な場合はその旨を明示します。
  • 基本的なファイル検証だけで、印刷可能性、耐荷重、法規制への適合、製造可能性が証明されたと主張してはいけません。
  • 修正を再現できるよう、プロジェクトのソース、README.md、ツリー JSON を保持します。
  • assembly.py、ネストされたコンポーネントパッケージ、生成アーティファクトをまとめて管理できるよう、プロジェクトを自己完結させます。
  • コンポーネントのパッケージとサブパッケージには __init__.py ファイルを使用します。たとえば、プロジェクトルートから from components.motor.mount.screw_pattern import make_screw_pattern のようにネストされたコンポーネントをインポートします。
  • プロジェクトの目的、単位、前提、主要寸法、コンポーネント/パッケージツリー、ビルドコマンド、アーティファクト、既知の制限事項を README.md に記載します。

失敗時の対処

  • CadQuery/OCP を利用できない場合は、opencad[occt] を使用してください。成果物に解析バックエンドを代用しないでください。
  • ブーリアン演算やフィレットが失敗した場合は、フィーチャーを簡略化するか、半径を小さくするか、重なり合う面をなくしてください。
  • 要求された形状が API の対応範囲を超える場合は、制限を説明し、ユーザーの同意を得た場合に限り、最も忠実なパラメトリックモデルを実装してください。

コメント