返回 Skill 列表
extension
分类: 数据与分析无需 API Key

图纸关键尺寸提取

PDF工程图纸关键尺寸解析工具。当用户上传PDF图纸并需要提取关键尺寸时触发此技能。支持CAD导出的矢量PDF和纸质扫描件PDF两种来源。自动识别图纸中带星号标注的关键尺寸,解析尺寸类型(线性/直径/角度/螺纹/半径)、公差(对称公差±、不对称公差+偏差/-偏差、配合代号H7/g6等),计算上下限,并生成质检用Excel清单(含实测值/判定待填列)。扫描件结果标注置信度,低置信度项高亮提醒人工复核。适用于离散制造行业(汽车零部件、3C电子等)的来料检验、首件检验、过程检验等质检场景。触发词包括:解析图纸尺寸、提取图纸尺寸、图纸关键尺寸、PDF尺寸提取、读取图纸尺寸、图纸尺寸识别、parse drawing dimensions、extract dimensions from PDF。

person作者: user_c542ade9hubcommunity

Drawing Dimension Parser - PDF图纸关键尺寸解析

Overview

本技能从PDF工程图纸中提取带 * 号标注的关键尺寸,解析尺寸类型与公差,生成质检用Excel清单。支持矢量PDF(CAD导出)和扫描件PDF两种来源,扫描件结果标注置信度。

Trigger Conditions

触发此技能的场景:

  • 用户上传PDF图纸文件,要求提取/解析/读取尺寸
  • 用户提到"关键尺寸"、"图纸尺寸"、"质检尺寸"等关键词
  • 用户要求生成尺寸清单用于质检/检验
  • 用户说"看看尺寸"、"这图关键尺寸有哪些"等隐含意图

不触发的场景:

  • 非PDF格式的图纸(DWG/DXF需先转换为PDF)
  • 非尺寸提取需求(如仅查看图纸内容、提取BOM等)
  • 纯文字PDF文档(非工程图纸)

Prerequisites

运行前检查以下Python依赖,缺失则提示用户安装:

pip install PyMuPDF pdfplumber pytesseract openpyxl Pillow

系统依赖:

  • Tesseract OCR 引擎(扫描件OCR必需)
    • Windows: 安装 Tesseract-OCR,确认 tesseract 在 PATH 中
    • 或通过 pytesseract.pytesseract.tesseract_cmd 指定路径

Execution Workflow

Step 1: File Validation

  1. 确认输入文件为 .pdf 格式
  2. 检查文件大小(>100MB 警告)
  3. 获取PDF页数,记录总页数
  4. 一次仅处理一个PDF文件

Step 2: PDF Type Detection

判断PDF类型,决定后续解析路径:

  1. 使用 scripts/parse_pdf_dimensions.py --detect 检测
  2. 判定逻辑:
    • 提取前N页文本内容,若文本量 > 阈值(如200字符/页)→ 矢量PDF(路径A)
    • 文本量极少或为空 → 扫描件PDF(路径B)
    • 混合情况(部分页有文本、部分无)→ 逐页判断,分别走对应路径

Step 3: Dimension Extraction

路径A: 矢量PDF

  1. 执行 scripts/parse_pdf_dimensions.py <pdf_path> --mode vector
  2. 脚本使用 PyMuPDF 提取文本层,保留坐标信息
  3. 正则匹配尺寸标注模式(见 references/dimension_notation.md
  4. 记录每个尺寸的页码和坐标位置

路径B: 扫描件PDF

  1. 执行 scripts/parse_pdf_dimensions.py <pdf_path> --mode scan
  2. 脚本将PDF页面渲染为高分辨率图像(300 DPI)
  3. 使用 pytesseract OCR 识别文本
  4. 正则匹配尺寸标注模式
  5. 对每个识别结果评估置信度(见 Confidence Scoring Rules)

Step 4: Key Dimension Filtering

  1. 从所有提取的尺寸中,筛选标注前含 * 号的尺寸
  2. * 号识别规则:
    • 矢量PDF:文本中紧邻尺寸值前的 * 字符
    • 扫描件:OCR结果中尺寸值前的 *(需注意OCR可能将 * 误识为其他字符,置信度降低)
  3. 不含 * 的尺寸不输出

Step 5: Tolerance Parsing

对每个关键尺寸解析公差信息,详细规则见 references/tolerance_parsing.md

支持的公差格式:

| 格式 | 示例 | 解析结果 | |------|------|----------| | 对称公差 | *Ø50±0.02 | nominal=50, upper=+0.02, lower=-0.02 | | 不对称公差 | *50 +0.1/-0.05 | nominal=50, upper=+0.1, lower=-0.05 | | 配合代号(孔) | *Ø50 H7 | 查表换算为数值公差 | | 配合代号(轴) | *Ø50 g6 | 查表换算为数值公差 | | 螺纹公差 | *M8-7H | 螺纹中径/大径公差 | | 无公差 | *50 | 按GB/T 1804未注公差(标注"未注公差") |

Step 6: Confidence Assessment

对每个提取的尺寸评估置信度:

| 置信度等级 | 分值范围 | 条件 | Excel标记 | |-----------|---------|------|-----------| | HIGH | 0.9-1.0 | 矢量PDF,文本清晰,*号明确 | 无特殊标记 | | MEDIUM | 0.7-0.89 | 矢量PDF但部分字符模糊,或扫描件OCR质量好 | 黄色底色 | | LOW | 0.5-0.69 | 扫描件OCR质量一般,号识别不确定 | 橙色底色 + "人工复核"标记 | | VERY LOW | <0.5 | 扫描件质量差,尺寸值或号无法确认 | 红色底色 + "人工复核"标记 |

Step 7: Duplicate Dimension Handling

同一尺寸在多视图中重复标注时的处理:

  1. 比对规则:名义值 + 尺寸类型 + 公差均相同 → 判定为重复标注
  2. 重复标注的尺寸全部列出(不合并、不去重)
  3. 在 Excel "备注" 列标注 "重复标注-人工复核"
  4. 在 "页码" 列列出所有出现的页码(如 P1, P3)

Step 8: Excel Output Generation

  1. 执行 scripts/generate_inspection_excel.py <json_data> -o <output_path>
  2. 生成质检用Excel文件

输出文件名: {图号或文件名}_关键尺寸清单_{YYYYMMDD}.xlsx

Excel 列定义:

| 列序 | 列名 | 说明 | 填写方 | |------|------|------|--------| | A | 序号 | 自增编号 | 自动 | | B | 图号 | 标题栏提取,无法提取则用文件名 | 自动 | | C | 页码 | 尺寸所在页码 | 自动 | | D | 尺寸标注 | 原始标注文本(含*号) | 自动 | | E | 尺寸类型 | 线性/直径/角度/螺纹/半径 | 自动 | | F | 名义值 | 数值 | 自动 | | G | 上偏差 | 数值 | 自动 | | H | 下偏差 | 数值 | 自动 | | I | 上限 | 名义值 + 上偏差 | 自动 | | J | 下限 | 名义值 + 下偏差 | 自动 | | K | 单位 | mm 或 inch | 自动 | | L | 置信度 | HIGH/MEDIUM/LOW/VERY LOW | 自动 | | M | 位置描述 | 视图名称+大致区域 | 自动 | | N | 备注 | 重复标注/未注公差/人工复核等 | 自动 | | O | 实测值 | | 质检待填 | | P | 判定 | 合格/不合格 | 质检待填 | | Q | 不合格原因 | | 质检待填 | | R | 检验员 | | 质检待填 | | S | 检验日期 | | 质检待填 |

Excel 格式规则:

  • 表头:深蓝底白字,加粗,居中
  • 置信度颜色标记:按 Step 6 规则填充行底色
  • 质检待填列(O-S):浅灰底色,提示用户填写
  • 冻结首行
  • 列宽自适应
  • 添加自动筛选

Error Handling

| 异常场景 | 处理方式 | |---------|---------| | PDF加密/密码保护 | 提示用户解除密码后重试 | | PDF损坏无法打开 | 报错退出,提示文件可能损坏 | | 依赖缺失(PyMuPDF/ocr等) | 提示安装命令,不继续执行 | | 矢量PDF无文本层 | 自动切换到扫描件路径B | | OCR引擎未安装 | 提示安装Tesseract,仅支持矢量PDF路径 | | 未提取到任何关键尺寸 | 输出空Excel(仅表头),备注"未检测到带*号的关键尺寸" | | 标题栏信息无法识别 | 图号列填入PDF文件名 | | 配合代号无法查表 | 公差列填入原始代号,上下偏差标注"需人工查表" |

Units Handling

  • 默认单位 mm
  • 若标题栏或图纸标注中检测到 inch/in/IN 标记 → 单位切换为 inch
  • 输出Excel中K列明确标注单位
  • 同一图纸中不混用单位(以标题栏声明单位为准)

Resources

scripts/

  • parse_pdf_dimensions.py - PDF解析主脚本。输入PDF文件路径,输出JSON格式的尺寸数据。支持 --detect(检测PDF类型)、--mode vector(矢量模式)、--mode scan(扫描模式)参数。
  • generate_inspection_excel.py - Excel生成脚本。输入JSON数据,输出质检用.xlsx文件,含置信度高亮和重复标注标记。

references/

  • tolerance_parsing.md - 公差解析详细规则,含ISO配合代号查表(孔H系列、轴g/h/k/n/p/s系列常用等级)、螺纹公差解析规则、未注公差等级表(GB/T 1804)。
  • dimension_notation.md - 尺寸标注识别规则,含正则表达式模式库、GB制图标准尺寸标注格式说明、常见标注变体处理。