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. 02通过 AutoCAD COM 复制图元
  3. 03从 PDF 证据生成中间 DWG
  4. 04图像与尺寸参数规格
  5. 05DWG 结构和视觉验证

适用场景

  1. 01根据现有 DWG 复现图纸
  2. 02依据 PDF 证据创建可追溯 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 重绘

使用以下三种输入模式之一,然后验证生成的 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 实体数量、对象类型分布、标注/引线数量、文字/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;否则将其保留为描摹几何图形,或标记为不确定内容。
    • 使用 LINEWORK、TEXT、BORDER、DIM、CENTER 和 CONSTRUCTION 等通用图层,除非 PDF 或用户提供了图层约定。
    • 保存中间 DWG 时,不要覆盖 PDF 或任何原始 DWG。
  3. 分析中间 DWG
    python path\to\scripts\dwg_prompt_builder.py --source intermediate.dwg --output intermediate-redraw-prompt.md
    
  4. 使用源 DWG 流程重建并验证
    python path\to\scripts\dwg_redraw.py --source intermediate.dwg --output outputs\redraw_from_pdf.dwg
    
    验证结果应与中间 DWG 的实体数量和对象分布一致。还应将中间 DWG 和最终 DWG 与原始 PDF 进行目视比较。
  5. 说明转换限制 说明几何图形来自矢量 PDF 路径、栅格描摹、OCR/文本提取,还是推断。指出无法辨认的文本、不可编辑的描摹文本、近似曲线、缺失尺寸以及任何比例假设。

图像 + 指标流程

当用户提供一张或多张 PNG/JPG/JPEG 参考图,以及文字尺寸或参数表时,使用此模式。

  1. 规范化输入规格 记录图像路径、单位、总体尺寸、重复模块尺寸、厚度、偏移量、特征数量、内部布局、所需视图、图层、标注、3D 要求、输出路径和公差。将所有缺失值明确标记为未知,不要默默猜测。
  2. 确定几何依据 优先采用文字指标,其次采用推导出的算术结果,最后参考图像比例。绘图前确认计算所得的净空和重复模块总尺寸。
  3. 规划 AutoCAD 构建 优先使用 AutoLISP 进行可审计的参数驱动构建。仅将 Python 用于生成参数文件或编排 AutoCAD COM。以确定性的方式创建所有请求的图层、文字/标注样式、组、视图和保存目标。
  4. 确定性绘图 按可审计的阶段构建设置、主要轮廓、内部几何、标注和 3D 实体。确保构建过程可重复,使相同参数生成相同的 DWG。
  5. 验证并交付 检查正尺寸、算术总和、对象边界、意外重叠、所需图层、实体/实体计数、命名组、请求的视图以及最终 DWG 的保存状态。将完成的图纸与参考图进行目视比较,但不要因此覆盖权威指标。

安装了 autocad-image-redraw 时,使用其图像拓扑和可见标注的视觉分析惯例,同时保留此技能的参数权威性、AutoLISP/COM 构建方式和 DWG 验证约定。

最低参数规格
  • 参考图像路径。
  • 单位制,以及适用时的总体宽度、高度和深度。
  • 组件尺寸、厚度、偏移量、数量和重复间距规则。
  • 所需的 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,请等待 AutoCAD 完成加载后再读取 COM 集合。如果窗口标题发生变化但 COM 尚未就绪,请等待后重试或重启。
  • 旧版 DWG 可能使用旧版编码和自定义 SHX 字体。请保留源实体,不要通过猜测来重新创建文字。

源数据提取

如果无法接受精确复制实体,而用户确实需要生成源代码,请先提取结构化数据:

  • DXFOUT:导出文本 DXF,并检查 TABLES、BLOCKS 和 ENTITIES。
  • DATAEXTRACTION:导出实体坐标、半径、长度、图层和块属性。
  • -LAYER ? *:列出图层、颜色、线型和线宽。
  • -STYLE ? *:列出文字样式和字体。
  • -DIMSTYLE ? *:列出标注样式设置。
  • LIST:检查所选实体的几何信息。

根据提取的数据生成 AutoLISP 或 Python 重绘代码时,请使用 references/prompt-template.md 中的简洁提示词模板。

捆绑脚本

使用 scripts/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"

使用 scripts/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。

评论

支持 Markdown