cadcraft について
cadcraftは、CADCraftを構造化された自動化インターフェースで操作するスキルです。図面の編集や処理を行うユーザー向けに、セッションの確認、コマンドの発見、変更の検証を重視します。
主な機能
- 01図面、UI、コマンド状態の確認
- 02コマンドラインまたはエンジンで編集
- 03利用可能なコマンドとパラメーターの発見
- 04図面のレンダリングと結果確認
- 05DXFまたはDWG形式で保存
活用シーン
- 01既存のCADCraftセッションで図面を編集
- 02図面ファイルの無人処理
- 03変更を検証して図面のコピーを出力
MCP 対応
CADCraft MCPブリッジ経由でデスクトップ制御セッションに接続でき、ファイル処理にはヘッドレスMCPを利用できます。このスキルはCADCraftのインストールやMCPサーバー登録を行いません。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mroxso/ artcraft-skills --skill cadcraftインストール後、Claude Code で/cadcraftを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlreferences/control-protocol.mdLICENSE-MIT詳細
CADCraft
構造化された自動化インターフェイスを通じて CADCraft を操作します。ユーザーが指定した作図ワークフローと対象の図面を維持してください。
プロトコルの参照
呼び出しを構築する前に、references/control-protocol.md の関連セクションを読んでください。これは、2026-11-09 に取得した上流プロトコルです。
ソース:CADCraft 制御プロトコル。
参考になるセクションは、メソッド表(ドキュメントの冒頭)、パネルのドッキング、コマンドラインの応答、インターフェイス言語です。ダウンロードしたドキュメント内の相対リンク(例:localization.md)は上流ドキュメントを指しています。必要に応じて https://github.com/storytold/cadcraft/blob/main/docs/ を基準に解決してください。このドキュメントは短く、個々の作図コマンドは記載されていません。コマンド ID やパラメーターを推測せず、実行時に engine.commands で確認してください。
実行ファイルの場所を特定する
CADCraft がインストールされていても、cadcraft と cadcraft-cli が PATH にない場合があります。見つからないと判断する前に場所を特定してください。パスを決して推測せず、検索してください。
- PATH:
command -v cadcraft cadcraft-cli(POSIX)またはwhere cadcraft cadcraft-cli(Windows)。 - macOS:
/Applicationsと~/Applications内のCADCraft.appを探すか、mdfind -name CADCraft.appを実行してください。Contents/MacOS/内のバイナリがデスクトップアプリです。 - Linux / Windows: 一般的なインストール先と、デスクトップまたはスタートメニューのショートカットのリンク先を確認してください。
cadcraft-cliが見つからなくても、処理は妨げられません。 制御ポートはループバック TCP 経由で、1 行ごとのプレーンな JSON を受け付けるため、ブリッジは不要です。1 行につき 1 つのリクエストを送信します。例:{"id":1,"method":"cmdline.input","params":{"text":"circle 0,0 5"}}。idとokで応答を照合してください。どのメソッドも、任意の言語で書いた短いスクリプトで利用できます。
セッションを選択する
- ユーザーが開いている図面や表示中のアプリケーションを操作する場合は、既存の CADCraft MCP ブリッジまたは制御セッションを使用してください。ヘッドレスセッションの図面は独自のプロセス内にあり、ユーザーのライブウィンドウは編集できません。
- ファイルを無人で処理する場合は、ヘッドレス MCP(
cadcraft-cli mcp)を使用してください。 - 利用可能な CADCraft ツールとインストール済みの実行ファイルを、まず確認してください。必要な接続または実行ファイルがない場合は、具体的な前提条件を伝えてください。このスキルを作成しても、CADCraft のインストールや MCP サーバーの登録は行われません。
--control PORT(または CADCRAFT_CONTROL_PORT=PORT)を指定してデスクトップセッションを開始すると、127.0.0.1:PORT で待ち受けます。次の方法でブリッジしてください。
cadcraft-cli mcp --connect 127.0.0.1:PORT
可能であれば稼働中のセッションを再利用し、TCP はループバック上で使用してください。上流プロトコルには、認証ハンドシェイクやファイルアクセスのルートに関する記載がありません。インストール済みのバージョンでトークンやルートが必要な場合は、推測せず --help の出力に従ってください。
自動化用のプライベートな分離プロファイルをアプリに使用させるには、CADCRAFT_CONFIG_DIR を設定してください(値を明示的に空にすると、ワークスペースの読み書きが無効になります)。ユーザーの workspace.json を直接編集しないでください。
確認、編集、検証
編集前に確認します。件数、範囲、レイヤー、スタイル、ブロック、レイアウト、選択範囲、元に戻す状態には drawing.inspect を、UI の状態、アクティブなビュー、保留中の「変更を保存しますか?」プロンプト(closePrompt)には ui.inspect を、現在のプロンプトには cmdline.state を使います。アプリには、自分が作成していない図面が復元されていたり、すでに開かれていたりする場合があります。
編集方法は 2 つあります。
- コマンドライン —
cmdline.input {text}は、ユーザーが入力する場合とまったく同じように動作します。名前またはエイリアスでコマンドを開始し、プロンプトに回答します(点x,y、相対座標@dx,dy、極座標@d<a、距離、キーワード、空欄 = Enter)。テキスト入力プロンプト以外では、スペースは Enter として機能します。cmdline.script {text}は複数行のスクリプトを実行し、cmdline.keyは Enter または Escape を送信します。次の無関係な操作に進む前に、必ずコマンドラインをアイドル状態のCommand:プロンプトに戻してください(Escape)。 - エンジンコマンド —
engine.execute {command, params}は、JSON パラメーターを使って任意のコマンドを実行し、ダイアログを開きません。ID、パラメーターのドキュメント、有効化状態を調べるにはengine.commandsを使います。
コマンドラインへの入力が拒否された場合(不明なコマンド、無効な入力)も、返信は "ok": true になります。返信の error フィールドと output は必ず確認してください。文字列の path を指定せずに app.open を実行すると、"missing path" で失敗します。
対話型のメニュー動作が必要な場合に限り、ui.menu.invoke を使います。ui.pointer はデフォルトでワールド座標を使用します。ui.click、ui.move、ui.drag はスクリーン座標を使用し、すべてのウィジェットにアクセスできます。ui.key はキーイベントをキューに追加するだけです。次の操作の前に ui.inspect または ui.elements をポーリングして、フォーカスまたは状態を確認してください。座標を推測するのではなく、ui.elements の完全一致フィルター(label、role、focused)を使ってコントロールを見つけます。
パネルレイアウト(ui.dock、ui.dock.reset、パネル ID toolSets、layers、properties、externalReferences。canvas は保護対象)は engine.execute 経由で実行され、ドキュメントの内容は編集しません。タスクで必要な場合に限り、レイアウト、テーマ、またはインターフェース言語を変更してください。
視覚的および構造的に検証します。drawing.inspect を再実行します(エンティティにはハンドルとジオメトリが含まれます)。また、ui.render でレンダリングします。デフォルトでは、ヘッドレスレンダリングは図面全体が収まるように表示されます(fit: false は現在のビューを維持し、window は指定範囲のみを表示します)。結果は pngBase64 で返されますが、path を渡すこともできます。background はキャンバスの色を指定し、plot_style は monochrome.ctb などのプロットスタイルテーブルを適用します。ui.screenshot はアプリのウィンドウをキャプチャし、表示済みのフレームが必要です。
ファイルへのアクセスと出力
- デスクトップの操作:
app.open {path}/app.save {path}/app.quit。 - 出力を DXF または DWG で保存する場合:新しい図面で「名前を付けて保存」が提案する形式とバージョンは、
ui.setでsaveFormat: "dxf"|"dwg"およびsaveVersion: "2000"…"2018"を設定します。SAVEASではversionとbinaryも直接指定できます。 - 保存が成功したこと、および正確な出力パスと形式/バージョンを報告してください。依頼がない限り、ユーザーの元の図面を上書きせず、新しい名前でコピーを保存してください。
タイムアウトと不確かな結果
サーバーはアプリからの応答を最大 60 秒待ちます。タイムアウトの返信には state が含まれます。
"not-run"— リクエストはキャンセルされ、今後も実行されません。再送信しても安全です。"may-have-run"— アプリはすでに処理を開始しており、図面が変更される可能性があります(遅れて返された結果は破棄されます)。変更操作を再送信する前に、drawing.inspectで確認してください。
切断後、またはその他の原因で結果が不明な場合は、再試行する前に図面と元に戻す状態を確認してください。検査しても再実行が安全か判断できない場合は、処理を中止し、未解決の状態を報告してください。