工业图纸批量处理器
任务目标
- 本 Skill 用于:批量处理工业产品图纸目录,自动化提取关键字段并生成标准化清单
- 能力包含:多格式图纸扫描、AI视觉字段提取、XLS清单生成、规范化重命名归档
- 触发条件:用户需要整理图纸文件夹、建立图纸档案系统、生成图纸清单或规范命名
- 批量能力:支持一次性处理100张图纸的批量识别任务
前置准备
```
openpyxl==3.1.2
```
- 输入要求:准备包含图纸文件的源目录,确保目录可访问
- 批量处理要求:
- 无上传数量限制,支持任意数量的图纸
- 建议分批处理以保证系统稳定性(每批次10-20张)
- 确保足够的系统内存和处理时间
操作步骤
步骤 1:扫描图纸目录
- 调用
scripts/scan_drawings.py 扫描指定目录 - 参数:
--input-dir <图纸目录路径> - 输出:JSON格式的文件清单,包含文件路径、格式、大小等信息
- 命令示例:
```bash
python /workspace/projects/industrial-drawing-processor/scripts/scan_drawings.py --input-dir ./drawings
```
步骤 2:提取图纸字段(智能体执行 - 关键环节)
- 对于PDF和图片格式:使用
read_image 工具逐个提取关键字段 - 对于CAD和三维文件:标记为"需专业软件查看",仅提取元数据
- 批量处理能力:支持任意数量的图纸批量处理,无数量限制
- 建议分批处理策略:
- 普通批次:每批10-20张图纸,便于智能体处理
- 大批量:超过50张时,可分多个批次并行提取
- 归档时自动分批:超过20张时自动分批归档,但清单统一生成一份
- 核心要求:
- 图号必须识别:采用多处定位策略
- 优先查找左下角大字号标注(醒目提示)
- 其次查找标题栏"圖號/图号/Drawing No."栏位
- 支持简繁中文和英文标注
- 产品名称必须识别:
- 查看标题栏"圖名/图名/Name"栏位
- 支持多种格式:
- 中文+数字:输出齿37、齿轮轴15
- 中英文混合:ND:50 3HP SHAFT GEAR
- 纯英文:SHAFT GEAR
- 保留名称中的数字编号和规格代码
- 规格精确提取(按零件类型):
- 轴类:φ直径×长度,如 φ50×200mm
- 齿轮轴类(重点类型):
- 必须提取齿轮参数:模数m/mn、齿数z、旋向
- 支持简单参数表:m=2,z=9,φ45×138.5mm,LH
- 支持专业详细表:mn=1.67,z=37,φ70×77mm,右,887FL
- 斜齿轮使用法向模数mn,提取螺旋角和旋向(LH/左=左旋,RH/右=右旋)
- 可选参数(变位系数、跨棒距、公法线长度、配对齿轮)提取到remarks
- 齿轮类:m=模数,z=齿数,b=齿宽,如 m=3,z=32,b=25mm
- 块类:长×宽×高,如 100×50×30mm
- 法兰类:外径×内径×厚度,如 φ150×φ50×20mm
- 多尺寸用逗号分隔,保留公差标注(如 φ38 -0.05)
- 多视图处理:
- 读取步骤1生成的文件清单JSON
- 批量处理策略(无数量限制):
- 使用批量读取方式一次性传入多张图纸URL
- 或逐个调用图像识别,系统自动处理批量队列
- 建议每批次10-20张,便于智能体高效处理
- 超过50张时,可分多个批次并行提取
- 对每个可识别文件调用图像识别(使用优化后的详细提示词)
- 验证图号和产品名称是否已识别(关键字段不能为"未标注")
- 按标准格式整理提取结果,生成统一的数据JSON
- 对于复杂图纸,可多次调用以确保信息完整
步骤 3:生成XLS清单
- 调用
scripts/generate_xls.py 生成标准化Excel表格 - 参数:
--data-file <数据JSON路径> --output <输出路径> - 输出:包含序号、图号、产品名称、材质、规格、原始文件名、文件格式、处理时间的标准表格
- 命令示例:
```bash
python /workspace/projects/industrial-drawing-processor/scripts/generate_xls.py --data-file ./extracted_data.json --output ./图纸清单.xlsx
```
步骤 4:归档重命名文件(支持自动分批归档)
- 调用
scripts/archive_drawings.py 执行文件归档 - 参数:
--data-file <数据JSON路径> --output-dir <归档目录> - 功能:
- 按
{图号}_{产品名称}{原扩展名}规则复制并重命名文件到目标目录 - 分批归档:当图纸数量超过20张时,自动分批归档到子目录(batch_01、batch_02等)
- 统一清单:无论是否分批归档,只生成一份统一的表格清单
- 命令示例:
```bash
python /workspace/projects/industrial-drawing-processor/scripts/archive_drawings.py --data-file ./extracted_data.json --output-dir ./archived_drawings
```
- 输出结构:
- 图纸数量 <= 20张:所有文件直接归档到输出目录
- 图纸数量 > 20张:创建batch_01、batch_02等子目录,每批20张
- 统一生成:
archive_log.json(归档日志)和 batch_manifest.txt(分批清单)
特殊情况处理
CAD和三维文件
- 文件类型:
.dxf .dwg .step .stp .iges .igs .stl .obj - 处理方式:不进行视觉提取,在清单中标记为"需专业软件查看"
- 提取信息:仅记录文件名、格式、大小、修改时间等元数据
多页PDF文件
- 处理策略:仅提取首页关键信息(通常标题栏在首页)
- 在清单中标注页数信息
多视图图纸
- 处理策略:综合所有视图提取完整信息
- 优先查看主视图(最大、最详细)
- 辅助查看侧视图、俯视图、端面视图
- 合并所有视图的尺寸信息
关键字段缺失情况
- 当图号或产品名称为空时,优先从文件名推断
- 如果无法推断,填写"未标注图号"/"未标注名称"
- 在备注列说明可能的原因:"图纸模糊"、"标题栏信息不全"等
齿轮类零件特殊处理
- 必须提取齿轮参数:模数(m/mn)、齿数(z)
- 斜齿轮需提取:螺旋角、旋向(LH/左=左旋,RH/右=右旋)
- 支持两种参数表类型:
- 简单表:m, z, 压力角, 螺旋角, 旋向
- 专业详细表:mn, z, 齿形角, 螺旋角, 旋向, x, 精度等级, 跨棒距, 公法线长度等
- 优先查看参数表格(通常在右上角或左上角)
- 斜齿轮使用法向模数mn
- 规格格式:
- 简单表:m=模数,z=齿数,φ外径×长度,旋向
- 详细表:mn=法向模数,z=齿数,φ外径×长度,旋向,精度等级
- 可选参数(变位系数、跨棒距、公法线长度、配对齿轮等)提取到remarks
产品名称格式多样
- 支持中文+数字格式:输出齿37、齿轮轴15
- 支持编号+英文:ND:50 3HP SHAFT GEAR
- 支持纯英文:SHAFT GEAR
- 支持纯中文:传动轴、齿轮轴
- 保留名称中的数字编号(如37、15等)
复杂图纸处理
- 对于大型装配图:提取装配体名称和主要外形尺寸
- 对于详细零件图:提取所有关键尺寸和公差
- 对于手绘图纸:尽力识别,标记为"手绘,可能不准确"
- 对于倾斜/模糊图纸:尝试旋转识别,标记质量问题
- 对于繁体中文图纸:支持繁体标注识别(圖號、圖名等)
- 对于英文图纸:支持英文标注识别(Drawing No.、Part Name等)
- 对于多语言混合图纸:支持中英文混合识别
资源索引
注意事项
- 确保输入目录路径正确且可访问
- CAD和三维文件无法直接通过视觉识别,仅提取元数据
- 关键字段要求:图号和产品名称必须识别,不能留空
- 图号查找优先级:左下角大字号 → 标题栏图号栏位 → 右上角标注
- 产品名称格式多样:支持中文+数字(输出齿37)、英文(SHAFT GEAR)、中英文混合
- 语言支持:简体中文、繁体中文、英文混合识别
- 齿轮轴类零件特殊处理:
- 必须提取模数(m/mn)、齿数(z)
- 斜齿轮需提取螺旋角、旋向(LH/左=左旋,RH/右=右旋)
- 支持简单参数表和专业详细表两种格式
- 斜齿轮使用法向模数mn
- 可选参数(变位系数、跨棒距、公法线长度、配对齿轮等)提取到remarks
- 规格精确性:尽可能提取详细的尺寸信息,包含公差标注
- 多视图图纸:综合主视图、侧视图、端面视图提取完整规格
- 批量处理建议(无数量限制):
- 单个批次建议10-20张图纸,便于智能体高效处理
- 超过50张时,可分多个批次并行提取
- 归档时自动分批:超过20张自动创建batch_01、batch_02等子目录
- 统一清单:无论是否分批归档,只生成一份统一的XLS清单
- 确保系统有足够的处理时间和内存
- 建议在非高峰时段执行大批量任务
- 提取结果以JSON格式在各脚本间传递,确保数据一致性
- 归档操作为复制而非移动,原文件保持不变
- 大批量处理时建议分批执行,避免内存溢出
- 对于模糊或质量较差的图纸,可尝试多次识别或人工标注
使用示例
场景1:整理想纸目录
# 步骤1:扫描目录
python scripts/scan_drawings.py --input-dir ./raw_drawings
# 步骤2:智能体提取字段(自动执行)
# 使用read_image工具逐个识别
# 步骤3:生成清单
python scripts/generate_xls.py --data-file ./data.json --output ./清单.xlsx
# 步骤4:归档文件
python scripts/archive_drawings.py --data-file ./data.json --output-dir ./archived
场景2:建立图纸档案系统
- 按上述流程执行后,获得:
- 标准化XLS清单(可导入ERP/PDM系统)
- 规范命名的图纸文件库
- 完整的处理日志