1. 为什么Cadence生成的Gerber文件会被嘉立创下单助手拒绝?
最近帮朋友调试一块STM32控制板时,遇到了一个典型问题:用Cadence Allegro 17.4生成的Gerber文件在CAM350里查看完全正常,但上传到嘉立创下单助手时却提示"解析失败"。这种情况其实很常见,我从业十年间处理过不下二十次类似案例。根本原因往往不在于文件本身损坏,而是Gerber生成设置与PCB厂商的规范存在隐形冲突。
先说几个最容易踩坑的点:首先是单位制式不匹配,很多工程师习惯用英制(mil)设计,但忘记在生成Gerber时同步设置;其次是钻孔文件(.drl)的格式问题,Cadence默认生成的注释行会被部分解析器误读;还有就是层命名不规范,比如用中文或特殊字符命名铜层。这些细节在本地查看时毫无异常,但一到生产环节就会暴雷。
我去年就遇到一个典型案例:某客户用Allegro设计的六层板,所有Gerber文件在Valor和CAM350中都能正常渲染,但工厂反馈无法识别钻孔数据。后来发现是.drl文件头部的分号注释行触发了解析器bug,删除后立即解决。这种问题特别具有迷惑性,因为EDA工具和常用查看器都不会报错,只有特定解析引擎才会暴露问题。
2. 从文件头开始的深度排查手册
2.1 第一步:检查.drl文件的隐藏陷阱
遇到解析失败时,第一个要排查的就是钻孔文件。用记事本打开.drl文件,你会看到类似这样的内容:
M48 ;FILE_FORMAT=3:3 ;TYPE=PLATED ;DRILL TOLERANCE=0.002 ;HOLE/SLOT SIZE=0.031 % G90 G05 ...重点看分号开头的注释行——这些在CAM350看来是合法注释,但某些在线解析器会错误地将它们识别为元数据指令。实测发现嘉立创的解析引擎对M48之后的注释行特别敏感,我的建议是:
- 删除所有分号开头的行
- 保留M48文件头标识
- 确保%符号作为格式分隔符独立成行
如果手动修改麻烦,可以用这个Python脚本批量处理:
with open('drill.drl', 'r+') as f: lines = [line for line in f if not line.strip().startswith(';')] f.seek(0) f.writelines(lines)2.2 第二步:英制与公制的生死抉择
单位不一致是导致解析失败的另一个重灾区。在Allegro中依次点击:
Manufacture -> NC -> NC Parameters这里有两个关键参数:
- Output units:必须与PCB设计时使用的单位一致
- Format:根据精度需求选择(通常选3:5足够)
我强烈建议在项目启动时就固定使用英制单位(English),因为:
- 多数元件封装以mil为单位
- 嘉立创的设备默认接受英制文件
- 公制文件容易因小数点位舍入产生误差
有个容易忽略的细节:当切换单位制时,Format值必须同步调整。比如从English改为Metric时,需要将Format从3:3改为4:4,否则钻孔坐标会错位。去年有个客户因此导致所有过孔偏移0.5mm,整批板子报废。
3. 那些容易被忽视的高级设置
3.1 层命名的玄学问题
嘉立创的解析器对层名称有严格限制,建议采用以下命名规则:
- 避免中文和特殊符号(如"#","%")
- 优先使用行业通用缩写(GTL/GBL对应顶层/底层)
- 保持各层后缀一致(.art或.gbr二选一)
我曾经遇到一个奇葩案例:客户用"电源层_VCC.gbr"命名导致解析失败,改为"PWR.gbr"后立即解决。这说明在线解析器对文件名的容错性远不如专业CAM软件。
3.2 文件打包的正确姿势
生成Gerber文件后,很多人习惯直接全选压缩,这其实有风险。正确的打包顺序应该是:
- 包含所有.art/.gbr光绘文件
- 必须包含.drl钻孔文件
- 可选包含.rou铣切文件(有板边开槽时)
- 不要混入无关的.txt/.pdf文档
特别提醒:压缩包必须用ZIP格式,RAR/7z等格式可能无法识别。建议使用Windows资源管理器自带的"压缩到ZIP文件"功能,避免用第三方压缩工具产生兼容性问题。
4. 终极验证方案:双保险策略
4.1 官方工具预检
嘉立创其实提供了Gerber查看器(在订单页面右上角),建议在上传前:
- 用该查看器预览所有层
- 检查钻孔是否显示正常
- 确认板框闭合无缺口
这个查看器用的就是实际生产用的解析引擎,能100%还原工厂看到的效果。我帮客户排查问题时,发现约30%的"解析失败"其实在这个预览阶段就能提前发现。
4.2 第三方工具交叉验证
推荐使用开源工具Gerbv进行二次检查,它能暴露一些厂商工具忽略的问题:
# Linux安装命令 sudo apt-get install gerbv # 检查命令 gerbv -p /path/to/gerbers/*.gbr重点关注:
- 不同工具间的图层对齐情况
- 钻孔与焊盘的匹配度
- 最小线宽/间距是否符合工艺要求
去年有个四层板项目,在CAM350中显示正常,但用Gerbv发现内层有两个短路的thermal relief,及时避免了一场灾难。这种跨工具验证的方法,我称之为"硬件工程师的防御性驾驶"。
最后分享一个血泪教训:永远保留原始设计文件和Gerber生成日志。有次客户坚持说按规范操作仍解析失败,后来查日志发现他其实勾选了"Embedded apertures"选项,导致生成非标准Gerber。这个选项藏在:
Manufacture -> Artwork -> Advanced里,99%的情况下都不应该启用。