mcpField
A
autocad-dwg-redraw

autocad-dwg-redraw

github.com/pengxiaoanデザイン・UI273265 回インストール16 週間前に更新
リポジトリ

autocad-dwg-redraw について

autocad-dwg-redrawは、元のDWG、PDF、または寸法付き画像からAutoCAD図面を再作成して検証するスキルです。元データがある場合は図形を保持し、別の証拠から形状を構築する際は不確実性を記録します。

主な機能

  1. 01DWGの分析と個別の再作成プロンプト
  2. 02AutoCAD COMによる図形コピー
  3. 03PDF証拠から中間DWGを作成
  4. 04画像と寸法に基づくパラメーター仕様
  5. 05DWG構造と見た目の検証

活用シーン

  1. 01既存DWGから図面を再作成
  2. 02PDF証拠から追跡可能なDWGを作成
  3. 03画像と寸法に基づく図面の構築
  4. 04図形数と図面レイアウトの確認

インストール

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

$npx skills add https://github.com/pengxiaoan/autocad-dwg-redraw-skill --skill autocad-dwg-redraw

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

同梱ファイル

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

agents/
openai.yaml
references/
prompt-template.md
scripts/
dwg_prompt_builder.py
dwg_redraw.py

詳細

AutoCAD DWG の再作図

次の3つの入力モードのいずれかを使用し、作成されたDWGを検証します。

  1. ソースDWGモード: DWGのプロファイルを作成し、図面専用の標準化されたプロンプトを生成して、正確に再現します。
  2. PDF由来DWGモード: PDFを監査可能な中間DWGに変換してから、ソースDWGのフローを使用して、その中間図面を再構築して検証します。
  3. 画像+メトリクスモード: 参照画像と信頼できる寸法を正規化してパラメーター仕様にまとめ、AutoLISPまたはCOMでジオメトリを生成し、メトリクスと目に見えるレイアウトの両方に照らして結果を検証します。

基本ルール

ソースDWGが利用できる場合は、スクリーンショットや見た目だけから複雑なDWGを推測しないでください。まず実際のソースエンティティを抽出するかコピーしてから、元の図面と照合して検証します。

最終納品では、AutoCAD COMを使用したDWGエンティティの正確なコピーを優先してください。生成したAutoLISPやPythonによる再構築は、監査可能なソースコードが必要で、正確に抽出したエンティティデータが利用できる場合に限って使用してください。

画像+メトリクス入力では、提供された寸法、単位、数、レイアウト上の制約を信頼できる情報として扱います。画像のピクセルは、トポロジー、順序、視覚的な関係、および指定されていない詳細の特定にのみ使用します。画像と提供されたメトリクスに矛盾がある場合は、メトリクスに従い、その食い違いを報告してください。

PDF入力では、元のDWGが利用できない限り、ソースDWGとの完全な忠実性を主張しないでください。まずPDFの内容が、抽出可能なベクターパス、埋め込みラスター画像、抽出可能なテキスト、またはそれらの組み合わせのどれに当たるかを特定します。その情報を中間DWGに変換し、変換の制限を記録したうえで、通常のDWG再作図ワークフローで中間DWGを検証します。

ソースDWGのフロー

ユーザーからDWGが提供された場合は、次の再現可能なフローに従います。

  1. ソースDWGのプロファイルを作成する
    python path\to\scripts\dwg_prompt_builder.py --source input.dwg --output input-redraw-prompt.md --restart-autocad --acad-exe "C:\Path\To\acad.exe"
    
  2. 生成されたカスタムプロンプトを確認する 図面名、エンティティ数、画層テーブル、ブロック一覧、文字スタイル、寸法スタイル、注釈数、リスクに関する注記を確認します。
  3. 正確な再作図を作成する
    python path\to\scripts\dwg_redraw.py --source input.dwg --output outputs\redraw_exact.dwg --restart-autocad --acad-exe "C:\Path\To\acad.exe"
    
  4. 検証する ソースとターゲットのModelSpace/PaperSpaceのエンティティ数、オブジェクトタイプの分布、寸法/引出線の数、TEXT/MTEXTの数、ブロック参照、画層、視覚的なレイアウトを比較します。

PDF から DWG へのフロー

ユーザーが PDF を提供し、元の DWG がない場合にこのモードを使用します。目的は、PDF の情報を根拠に再現可能な CAD 図面を描き起こし、生成した中間 DWG に対して通常の DWG 検証を行うことです。

  1. PDF の内容を確認する
    • ページ数、ページサイズ、判明している場合は単位、作成者/生成ソフトのメタデータ、抽出可能なテキストの数、埋め込み画像の数、ベクター描画パスを利用できるかどうかを記録します。
    • 利用可能な場合は、ラスターのトレースよりベクター PDF パスを優先します。
    • PDF の大部分がラスターの場合は、高 DPI でページをレンダリングし、その結果を正確な CAD 元データではなく視覚的な根拠として扱います。
  2. 中間 CAD ファイルを作成する
    • ベクター PDF の場合は、PDF のページサイズまたは明示された用紙寸法に基づいて単位を調整し、パスを DXF/DWG に変換します。
    • ラスターまたは混在 PDF の場合は、高 DPI でのラスタライズ、線画/ベクター化、利用可能な場合はテキスト抽出を使用します。抽出可能または OCR で確認できたテキストのみ、実際の TEXT/MTEXT として書き込みます。それ以外はトレースした図形として保持するか、不確実であることを明記します。
    • PDF またはユーザーからレイヤー規則が指定されていない限り、LINEWORK、TEXT、BORDER、DIM、CENTER、CONSTRUCTION などの汎用レイヤーを使用します。
    • PDF や元の DWG を上書きせずに、中間 DWG を保存します。
  3. 中間 DWG のプロファイルを作成する
    python path\to\scripts\dwg_prompt_builder.py --source intermediate.dwg --output intermediate-redraw-prompt.md
    
  4. Source DWG フローで再構築して検証する
    python path\to\scripts\dwg_redraw.py --source intermediate.dwg --output outputs\redraw_from_pdf.dwg
    
    検証では、中間 DWG のエンティティ数とオブジェクト分布が一致することが期待されます。また、中間 DWG と最終 DWG を元の PDF と目視で比較します。
  5. 変換の制約を報告する ジオメトリがベクター PDF パス、ラスターのトレース、OCR/テキスト抽出、推定のいずれに由来するかを明記します。判読できないテキスト、編集できないトレース済みテキスト、近似された曲線、欠落している寸法、縮尺に関する仮定も明示します。

画像+寸法フロー

ユーザーが 1 つ以上の PNG/JPG/JPEG 参照画像と、記載された寸法またはパラメータ表を提供した場合にこのモードを使用します。

  1. 入力仕様を整理する 画像のパス、単位、全体寸法、繰り返しモジュールの寸法、厚さ、オフセット、フィーチャーの数、内部レイアウト、必要なビュー、レイヤー、注記、3D 要件、出力パス、許容差を記録します。値が不明な項目はすべて、推測で補わず明示的な不明値として示します。
  2. ジオメトリの根拠を確定する 記載された寸法を最優先し、次に算術から導出した値、その次に画像の比率を適用します。作図前に、算出したクリアランスと繰り返しモジュールの合計寸法を確認します。
  3. AutoCAD での構築を計画する 監査可能なパラメータ駆動の構築には AutoLISP を優先します。Python は、パラメータファイルの生成または AutoCAD COM のオーケストレーションにのみ使用します。要求されたすべてのレイヤー、文字/寸法スタイル、グループ、ビュー、保存先を決定論的に作成します。
  4. 決定論的に作図する セットアップ、主要な外形、内部ジオメトリ、注記、3D ソリッドを、監査可能な段階に分けて構築します。同じパラメータから常に同じ DWG が生成されるよう、構築を再現可能に保ちます。
  5. 検証して納品する 寸法が正であること、算術上の合計、オブジェクトの範囲、意図しない重なり、必要なレイヤー、エンティティ/ソリッド数、名前付きグループ、要求されたビュー、最終 DWG の保存状態を確認します。寸法の根拠を優先し、参照画像に合わせるために変更せずに、完成した図面を参照画像と目視で比較します。

autocad-image-redraw がインストールされている場合は、このスキルのパラメータの優先順位、AutoLISP/COM による構築、DWG 検証の要件を維持しながら、画像のトポロジーと表示された注記について、その視覚分析の規則を使用します。

最小限のパラメータ仕様
  • 参照画像のパス(1 つまたは複数)。
  • 単位系と、該当する場合は全体の幅、高さ、奥行き。
  • コンポーネントの寸法、厚さ、オフセット、数、繰り返し間隔の規則。
  • 必要な 2D ビュー、3D ソリッド、レイヤー、寸法、テキスト、ブロック、名前付きグループ。
  • 出力 DWG のパス。
  • 寸法で指定されていない詳細についての明示的な仮定と許容差。

プロンプト再作成標準

生成するカスタムプロンプトには、必ず以下を含めてください。

  • ファイルの識別情報:元ファイル名、判明している場合は DWG のバージョン、エンティティ数、ModelSpace/PaperSpace の数。
  • 図面の分類:部品図、組立図、レイアウト/タイトルブロック図、または不明。
  • 必須のワークフロー:最終納品には正確な AutoCAD COM コピーを使用すること。生成コードは、正確に抽出されたエンティティデータが提供されている場合にのみ使用すること。
  • 環境の前提条件:Windows、AutoCAD、Python、COM、pywin32。
  • レイヤーテーブル:レイヤー名、色、線種、線の太さ(入手可能な場合)。
  • スタイルテーブル:文字スタイルと寸法スタイル(入手可能な場合)。
  • 注釈の一覧:寸法エンティティ、引出線、文字、MTEXT、公差、データム/表面仕上げ記号、および注釈ブロック。
  • ブロックの一覧:ブロック名、特にタイトルブロック、BOM テーブル、データム記号、表面仕上げ記号、カスタム注釈ブロック。
  • エンティティの分布:AutoCAD オブジェクトタイプ別、およびスペース別の数。
  • 抽出要件:生成ソースコードが要求された場合の DXFOUT/DATAEXTRACTION/LIST の手順。
  • 検証基準:元図と出力図のエンティティ数の比較、寸法/引出線の比較、ZOOM EXTENTS による目視確認、タイトルブロック/BOM/ブロックの検証。
  • 既知のリスク:レガシーエンコーディング、SHX フォント、連動する注釈、異尺度対応寸法、ネストされたブロック、外部参照、プロキシオブジェクト、レイアウト固有のオブジェクト。

カスタムプロンプトを手動で作成するときは、テンプレートとして references/prompt-template.md を使用してください。AutoCAD COM が利用可能な場合は、scripts/dwg_prompt_builder.py を優先してください。

精度要件

  • ユーザーが ModelSpace のみを明示的に要求していない限り、ModelSpace と PaperSpace のエンティティをコピーしてください。
  • 寸法、引出線、文字、MTEXT、ハッチング、ブロック、レイヤー、線種、色、線の太さ、文字スタイル、寸法スタイルを保持してください。
  • 元図に寸法または引出線がある場合、それらが欠落していれば検証不合格としてください。
  • 元の DWG を上書きしないでください。必ず新しい出力パスに書き込んでください。
  • 図面に外部参照、プロキシオブジェクト、カスタムオブジェクト、または異尺度対応寸法が含まれる場合は、リスクを報告し、AutoCAD で目視検証してください。
  • PDF 由来の DWG モードでは、正確なベクター変換、ラスター/ベクタートレース、テキスト抽出/OCR、推定ジオメトリを明確に区別してください。
  • PDF 由来の中間 DWG を、元の CAD データを正確に再現したものとして提示しないでください。
  • 画像+寸法データモードでは、負またはゼロの製作寸法、範囲外のコンポーネント、説明のない重なり、提示された全体寸法と一致しない計算合計を拒否してください。
  • 提示された数値寸法の代わりに、画像の比率を使用しないでください。
  • 寸法を変更して図面を再生成できるよう、パラメータブロックまたはパラメータファイルを保持してください。

AutoCAD の安定性に関する注意事項

  • AutoCAD COM が「call was rejected by callee」を返す場合、またはドキュメントコレクションが読み取り不能になる場合は、少し待ってから再試行してください。問題が続く場合は、余分な AutoCAD ウィンドウを閉じて AutoCAD を再起動してください。
  • AutoCAD がスタートページのみを開く場合、または Documents.Count、ActiveDocument.Name、Documents.Open、ModelSpace が <unknown> で失敗する場合は、--restart-autocad --acad-exe "path\to\acad.exe" を使用して、クリーンな AutoCAD プロセスからスクリプトを開始してください。
  • 一部の AutoCAD バージョンでは、Documents.Open() がドキュメントオブジェクトではなく、<COMObject Open> のようなメソッドプロキシを返します。ファイルを開いた後は ActiveDocument を使用し、ActiveDocument.ModelSpace.Count を確認してください。
  • レガシー DWG の場合は、COM コレクションを読み取る前に AutoCAD の読み込みが完了するまで待ってください。ウィンドウタイトルが変わっても COM の準備ができていない場合は、待ってから再試行するか、再起動してください。
  • 古い DWG ではレガシーエンコーディングやカスタム SHX フォントが使われていることがあります。推測で文字を作り直すのではなく、元のエンティティを保持してください。

ソースデータの抽出

エンティティの完全なコピーが許可されず、ユーザーが生成されたソースコードを本当に必要としている場合は、まず構造化データを抽出してください。

  • DXFOUT:テキスト形式の DXF をエクスポートし、TABLES、BLOCKS、ENTITIES を調べます。
  • DATAEXTRACTION:エンティティの座標、半径、長さ、画層、ブロック属性をエクスポートします。
  • -LAYER ? *:画層、色、線種、線の太さを一覧表示します。
  • -STYLE ? *:文字スタイルとフォントを一覧表示します。
  • -DIMSTYLE ? *:寸法スタイルの設定を一覧表示します。
  • LIST:選択したエンティティのジオメトリを調べます。

抽出したデータから AutoLISP または Python の再描画コードを生成する際は、簡潔なプロンプトテンプレートとして references/prompt-template.md を使用してください。

同梱スクリプト

script/dwg_prompt_builder.py を使用して、図面固有のプロンプトを生成します。

python scripts\dwg_prompt_builder.py --source input.dwg --output input-redraw-prompt.md
python scripts\dwg_prompt_builder.py --source input.dwg --output input-redraw-prompt.md --restart-autocad --acad-exe "C:\Path\To\acad.exe"

script/dwg_redraw.py を使用して、決定的な AutoCAD COM による再描画と検証を行います。

python scripts\dwg_redraw.py --source input.dwg --output outputs\redraw_exact.dwg
python scripts\dwg_redraw.py --source input.dwg --output outputs\redraw_exact.dwg --restart-autocad --acad-exe "C:\Path\To\acad.exe"
python scripts\dwg_redraw.py --source input.dwg --output outputs\redraw_modelspace_only.dwg --modelspace-only

スクリプトの実行には、Windows、AutoCAD、Python 3.10 以降、および pywin32 が必要です。

コメント