create-cad-files について
create-cad-filesは、パラメトリックなCADモデルを作成・書き出すスキルで、STEPやSTLファイルが必要な設計・製造作業向けです。OpenCAD Pythonのソース、ネイティブOCCTによる書き出し、ファイル検証を一連の手順にまとめ、再現可能なプロジェクト構成を保ちます。
主な機能
- 01要件から寸法と形状を抽出
- 02パラメトリックなOpenCAD Pythonモデルの生成
- 03OCCTによるSTEPまたはSTLの書き出し
- 04交換ファイルの検証とフィーチャーツリー確認
- 05ソースとプロジェクト文書の保持
活用シーン
- 01編集可能なSTEP形状の作成
- 023Dプリント用STLファイルの生成
- 03再現可能なCADコンポーネントの整理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ caid-technologies/ opencad --skill create-cad-filesインストール後、Claude Code で/create-cad-filesを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlreferences/opencad-api.mdscripts/build_cad_file.pycreate_project.pyvalidate_cad_file.py詳細
CAD ファイルの作成
モデルを読みやすい OpenCAD Python で作成し、ネイティブの OCCT バックエンドでエクスポートしてから、返却前に交換ファイルを検証します。ユーザー体験はプロンプト優先とし、Python の操作をユーザーに求めずに、ソースの生成、ビルドコマンドの実行、検証を行います。
ワークフロー
-
寸法、単位、形状、穴、クリアランス、出力形式を抽出します。特に指定がない限り、単位にはミリメートルを使用します。寸法が不明で部品に大きな影響がある場合に限り質問し、それ以外は前提を明示します。
-
編集可能な製造用形状には STEP を、三角形分割された 3D プリント用データには STL を優先します。両方を指定された場合は、両方を作成します。
-
モデルを作成する前に、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 は置き換えないでください。 -
モデルはパラメトリックに保ちます。重要な寸法には名前付き定数を割り当て、コンポーネントモジュールには名前付きビルダーまたはパーツを公開させ、
assembly.pyでは最終的なPartを 1 つ作成します。最終的なパーツはassembly.py(または明示的に指定されたマスターファイル)内で最後に生成される形状にしてください。モデル内でPart.export()を呼び出してはいけません。エクスポートと検証はビルドヘルパーが行います。 -
opencad[occt]がインストールされていることを確認します。OpenCAD のインポートに失敗した場合は、依存関係について説明し、アクティブな Python 環境へのインストール前にユーザーへ確認します。 -
このスキルのディレクトリを解決し、絶対パスを使ってプロジェクトディレクトリを作成し、返されたプロジェクトディレクトリ内にとどまり、ビルドヘルパーを絶対パスで実行します。
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が明示的に指定されない限り、既存ファイルの置き換えを拒否します。 -
両方の形式をエクスポートする場合は、同じプロジェクトの
assembly.pyソースを使って 2 回実行します。既存のアーティファクトを検証する場合は、scripts/validate_cad_file.pyの絶対パスを使って個別に検証します。 -
失敗を確認し、検証を回避せずにソースを修正します。ソース、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 の対応範囲を超える場合は、制限を説明し、ユーザーの同意を得た場合に限り、最も忠実なパラメトリックモデルを実装してください。