一次料号切换、一次公司更名、一次标准升版,牵动的往往是上千张历史图纸。手工改图慢且容易漏,改错一处就可能一路流到采购和产线。
批量替换听上去像是「查找替换」的放大版,真做起来完全不是一回事。图纸不是文档:同一个字符串出现在标题栏、明细表和技术要求里,含义可能完全不同;扫描件里根本没有可编辑的文本层;改完之后还要向审核方证明你只改了该改的地方。下面把我们在几个变更项目里总结的做法整理出来。
一、先定义清楚「要改什么」
典型的变更诉求大致有四类:企业前缀或图号规则调整、料号与物料编码切换、版本号统一递增、以及公司名称与标准号更新。它们的共同点是替换目标高度结构化,差别在于作用范围。
所以规则不能只写「把 UW 换成 SW」,至少要包含三个维度:匹配模式(精确串、正则还是带校验位的编码)、生效区域(仅标题栏、仅明细表某列、还是全图)、以及排除条件(比如出现在历史修订记录里的旧编号必须保留,那是变更履历,改掉就等于篡改历史)。这条排除规则我们几乎在每个项目里都会用到,建议默认打开。
二、先评估影响面,再动手
真正开始替换之前,先跑一次只检测不修改的扫描,产出一张影响面清单:哪些图纸命中、每张命中几处、分别落在哪个区域、匹配的置信度多少。这份清单有三个用处:给变更负责人签字确认;识别出规则写得过宽的情况(比如某条规则意外命中了几百处尺寸标注);以及作为后续核对的基线。
我们遇到过一次,规则本意是替换料号前缀,结果因为前缀恰好是两个常见字母,在技术要求段落里命中了大量无关文字。如果没有预扫描直接执行,后果是上千张图纸的说明区被污染,回滚成本极高。
三、矢量和扫描件,要用两套办法
矢量 PDF 或 CAD 导出件里文字是对象,可以直接改内容,难点是版式不能崩:新编号如果比旧编号长,可能顶出单元格边界。处理办法是限定文本框宽度,必要时做轻微字距压缩,而不是让它溢出。
扫描件和图片没有文本层,只能走像素级替换:先精确定位目标文本的外接框,用邻域背景把原文擦除,再用与原图风格接近的字体把新内容写回去。这里的关键是字形一致性——字体、字号、笔画粗细、基线位置都要贴合,否则打印出来一眼就能看出是「贴上去的」,审核方不会认。我们通常会为常见的工程字准备专用字体,并按原文的实际高度反推字号,而不是用固定值。
四、灰度执行与差异复核
- 分批灰度。先跑 20 到 50 张覆盖各种模板的代表性图纸,人工全检通过后再放开全量。
- 逐处留痕。每一处替换都记录图号、页码、坐标、原值、新值、命中规则与置信度,形成可导出的变更台账。
- 可视化差异。输出替换前后的对照视图,把改动位置高亮出来。复核人员看的是「哪里变了」,而不是重新读一遍整张图。
- 低置信度强制人工。模糊、倾斜、手写批注附近的命中,一律不自动写回,转人工确认。
五、回滚与交付
永远不要原地覆盖源文件。正确做法是生成副本、保留原始件,并让每一批任务都能按批次整体回滚。交付物除了改好的图纸,还应包含三样东西:变更台账、影响面清单与复核记录。这三份材料决定了变更能不能通过内部审计,也决定了半年后有人问起「这张图为什么是 SW 开头」时,你能不能在一分钟内答上来。
批量替换项目的真实瓶颈很少是替换本身,而是「怎么证明没改错」。把留痕和差异复核做扎实,交付效率反而更高。
六、一个可复用的执行清单
- 整理变更单,明确匹配模式、生效区域与排除条件。
- 只检测不修改,产出影响面清单并会签。
- 按模板抽样灰度,人工全检并修正规则。
- 全量执行,生成副本、保留原件、逐处留痕。
- 可视化差异复核,低置信度项人工确认。
- 输出台账与复核记录,归档并同步到 PLM。
提示:如果同一批变更涉及多条规则,建议按规则分批执行而不是一次全上。出问题时定位和回滚的粒度会小很多。
小结
把批量替换当成一次受控的工程变更来做,而不是一次批处理脚本运行,是这类项目成败的分水岭。规则要写得保守、影响面要提前看清、执行要灰度推进、结果要可复核可回滚——做到这四点,一次改上千张图并不可怕。