1. 项目概述:为什么拼版不是“把几个板子拖到一起”就完事?
在PCB打样和量产环节,拼版(Panelization)从来都不是一个“能用就行”的边缘操作——它直接决定你这一单的加工成本是380元还是1280元,决定工厂贴片时是否频繁报警停机,更决定你返工改板时是不是得重新开钢网、重做治具、甚至整批报废。我干PCB Layout十年,经手过200+个量产项目,最常被低估的“省钱动作”,恰恰就是拼版。很多人以为用Cadence Allegro画完单板就结束了,等拿到工厂报价单才发现:单板尺寸太小、板边余量不够、定位孔没对齐、V-Cut槽位置撞到器件……每一条都可能触发加收“非标加工费”,一单多掏三四百块,一年下来就是几万块白扔。而标题里说的“用Allegro轻松合并不同设计”,绝不是指简单复制粘贴几个brd文件——它背后是一整套基于制造约束的设计协同逻辑:如何让两块功能完全无关的板子(比如一块电源管理板+一块传感器采集板),在同一个拼版内共享定位基准、共用光学点、满足同一套铣槽/邮票孔/折断槽工艺窗口,同时不破坏各自原有的设计规则(比如电源板的铜皮优先级、高速信号的阻抗控制区)。这需要你真正吃透Allegro的Board Array功能、理解Gerber输出时的层映射逻辑、掌握不同拼版结构(Grid vs. Custom)对后续SMT贴装的影响。本文不讲空泛理论,所有步骤均基于Allegro 17.4 SPB及17.2版本实测验证,从建模思路、参数设置、光绘导出到工厂对接话术,全部拆解到按钮级。如果你正面临小批量多品种开发、原型快速迭代、或是想把外包回来的多个单板整合成统一拼版交付,这篇就是为你写的。
2. 拼版核心逻辑与方案选型:为什么不用第三方工具,而坚持在Allegro原生环境操作?
2.1 拼版的本质是“制造接口设计”,不是图形合并
很多新手会下意识去搜“PCB拼版软件”,结果下载一堆独立工具,把几个Gerber文件拖进去排版,再导出新Gerber。这种做法看似省事,实则埋下三颗雷:第一,丢失原始设计约束——比如某块板子设置了“禁止铺铜区”(Keepout)来规避热焊盘散热干扰,但第三方工具只认图形轮廓,不会识别Allegro内部的约束规则,拼版后该区域可能被自动铺铜覆盖;第二,破坏网络连接完整性——当两块板之间存在跨板信号(如共用时钟或复位线),原设计中已通过Allegro的Cross-Probe功能做了电气关联,但纯图形拼版后,这些逻辑关系彻底消失,后续做DFM检查时根本无法识别潜在短路风险;第三,光绘层映射错乱——Allegro导出Gerber时默认按Design Variant生成层别(如Top Solder Mask对应soldermask_top),而第三方工具往往强制重命名图层,导致工厂CAM工程师看到“soldermask_1”“soldermask_2”一脸懵,必须人工核对,延误交期。我亲眼见过一个客户因此被工厂退回三次Gerber,最终加急费比拼版省下的钱还多。
2.2 Allegro Board Array:唯一能兼顾设计意图与制造要求的原生方案
Allegro从16.6版本起内置的Board Array功能,才是解决这个问题的正解。它的底层逻辑不是“拼图形”,而是“拼设计实例”。你可以把每个单板看作一个独立的Design Instance(设计实例),Array只是定义这些实例在母板上的相对位置、旋转角度、镜像状态,并保留其全部原始属性:网络表、约束规则、层叠结构、甚至Skill脚本绑定的自动化检查逻辑。这意味着:当你在Array中双击某块子板,直接跳转到其原始brd文件编辑界面;修改子板上的某个过孔尺寸,Array中所有引用该子板的位置实时同步更新;导出Gerber时,Allegro自动为每个子板生成带前缀的层名(如“PMU_Top_Silkscreen”“SENSOR_Bottom_Soldermask”),工厂CAM系统可一键识别归属。更重要的是,Board Array支持“Reference Designator Prefix”(位号前缀)自动分配——比如你设定PMU板的位号前缀为“U100-”,SENSOR板为“U200-”,那么拼版后所有器件位号自动变为U101、U102…U201、U202…,彻底避免手工改位号引发的BOM错漏。这个功能在多板协同调试阶段价值巨大:你对着测试报告说“U105温度异常”,工程师立刻知道这是PMU板上的第五颗芯片,而不是在几十个U1xx中大海捞针。
2.3 三种拼版结构对比:Grid、Custom与Hybrid,哪种适合你的项目?
Allegro Board Array提供三种布局模式,选择错误会导致后续工序卡壳:
Grid Array(网格阵列):适用于同型号、同尺寸单板的批量拼版。比如8块完全相同的Wi-Fi模块板,排成2×4矩阵。优势是定位孔、光学点可全阵列共享,铣槽路径最简,工厂加工效率最高。但硬伤是灵活性差——无法混排不同尺寸板,且所有子板必须朝向一致(不能有90°旋转)。
Custom Array(自定义阵列):这才是本文标题“合并不同设计”的核心载体。它允许你自由放置任意数量、任意尺寸、任意角度的子板实例。比如把一块120×80mm的主控板(0°)、一块50×30mm的蓝牙天线板(90°旋转)、一块80×60mm的电池管理板(镜像翻转)组合在同一母板上。关键在于,Custom Array支持为每个实例单独设置“Origin Point”(原点偏移)和“Rotation Angle”,且所有实例共享同一套全局坐标系。这意味着:你可以在母板左上角放主控板,右下角放天线板,中间留出V-Cut槽区域,所有定位孔仍能落在标准公差范围内(±0.05mm)。
Hybrid Array(混合阵列):实际项目中最常用。例如先用Grid Array排4块主控板(2×2),再用Custom Array在空白区域插入2块异形传感器板。这种结构兼顾了效率与灵活性,但要求你精确计算母板总尺寸——Grid部分占160×120mm,Custom部分额外占用80×60mm,加上3mm工艺边,最终母板尺寸应设为243×183mm(长宽各加3mm余量)。我建议新手从Custom Array起步,因为Grid的约束太多,反而容易在初期踩坑。
提示:Allegro 17.2之后版本新增“Array Boundary”功能,可在Custom Array中绘制一个闭合多边形作为母板物理边界,系统自动校验所有子板是否完全位于边界内,并高亮显示越界区域。这个功能比手动测量坐标靠谱十倍,务必开启。
3. 实操全流程详解:从单板准备到光绘导出,每一步都附参数截图逻辑
3.1 前置准备:单板规范化处理(90%的人在这里翻车)
拼版失败的根源,往往不在Array设置,而在单板本身。我总结出三个必检项,缺一不可:
第一,统一板框(Board Outline)为封闭多边形
很多设计师用Line画板框,结果导出Gerber时因未闭合导致工厂CAM报错“Outline not closed”。正确做法:在Allegro中执行Setup → Design Parameters → Design → Board Outline,确保勾选“Use Board Outline as Route Keepin”,然后用Shape → Rectangular或Shape → Polygon工具重绘板框。重点:Polygon绘制时,最后一个点必须精确点击第一个点完成闭合(状态栏显示“Closed”),且所有顶点坐标需为整数(避免小数点后多位引发四舍五入误差)。
第二,校准原点(Design Origin)与制造原点(Manufacturing Origin)
Allegro默认原点在左下角,但工厂设备以板边为基准。必须将制造原点设在板边外侧3mm处。操作路径:Setup → Design Parameters → Design → Manufacturing Origin,输入X=3000mil, Y=3000mil(即3mm)。这样导出的钻孔文件(Drill Drawing)中,所有孔坐标自动减去该偏移值,工厂CAM系统读取时无需二次调整。
第三,清理冗余层与对象
检查Display → Color/Visibility,关闭所有非必要层(如Route Keepin、Package Keepin),然后执行Edit → Delete → All,在弹出对话框中仅勾选“Unused Shapes”和“Unconnected Pins”,其他一律不选。特别注意:删除前务必确认没有隐藏的“Text”对象(如调试用的坐标标记),它们会出现在Silkscreen层导致丝印错乱。
注意:Allegro中“cadence 铜皮 优先级”问题在此环节暴露最集中。若单板存在多个铜皮(Copper Pour),必须在
Shape → Global Dynamic Shape Parameters中统一设置“Dynamic Fill Order”(动态填充顺序),确保电源层铜皮优先级高于信号层。否则拼版后,不同子板的铜皮在交界处可能因优先级冲突产生孤岛或短路。
3.2 创建Custom Array:手把手教你避开坐标陷阱
假设你要拼接两块板:PMU(100×60mm)和SENSOR(40×30mm)。以下是精确到毫厘的操作步骤:
Step 1:新建Array文件File → New → Board Array,选择“Custom Array”,输入母板尺寸:长=20000mil(200mm),宽=12000mil(120mm)。点击OK后,Allegro生成一个空白母板框架。
Step 2:导入第一个子板(PMU)Array → Add Instance → From Library,浏览到PMU.brd文件。关键参数设置:
- Origin X/Y:设为5000mil / 5000mil(即距母板左下角5mm处)
- Rotation:0°(保持原始朝向)
- Scale:1.0(严禁缩放!)
- Prefix:输入“PMU_”(位号前缀)
点击Add,PMU板出现在指定位置。
Step 3:导入第二个子板(SENSOR)并精确定位
再次Array → Add Instance → From Library,选择SENSOR.brd。此时重点来了:
- Origin X/Y:不能凭感觉填!需计算:PMU板右边界=5000+10000=15000mil,预留3mm(3000mil)工艺边,SENSOR左边界应设为15000+3000=18000mil;SENSOR自身宽4000mil,其中心X坐标=18000+2000=20000mil。故Origin X=20000mil。Y坐标同理:设SENSOR底部距母板底边5000mil,则Origin Y=5000mil。
- Rotation:90°(让SENSOR的长边沿Y轴方向,节省空间)
- Prefix:“SENSOR_”
点击Add,SENSOR板精准落位。
Step 4:添加全局制造要素Array → Add Manufacturing Feature:
- Fiducial Mark(光学点):添加4个直径1.0mm的圆形焊盘,位置设为母板四角内侧2mm处(X=2000/18000mil, Y=2000/10000mil)。注意:必须勾选“Apply to All Instances”,确保所有子板共享同一套光学点。
- Tooling Holes(定位孔):添加2个直径3.2mm的圆孔,位置X=3000/17000mil, Y=3000mil(左下+右下)。同样勾选“Apply to All Instances”。
- V-Cut Line(V割线):用
Route → Line工具,在PMU与SENSOR之间绘制一条虚线(Layer设为“Route Keepin”),宽度0.2mm,线型选“Dashed”。这条线将告诉工厂在此处V割分离。
实操心得:Allegro中坐标单位默认为mil(千分之一英寸),但工厂图纸常用mm。务必在
Setup → Design Parameters → Design → Units中将Display Unit设为“mm”,Conversion Factor设为25.4,这样输入20000mil时界面直接显示“508.00mm”,避免单位混淆导致尺寸错误。我曾因忘记切换,把200mm输成200mil,结果拼版后母板只有5mm大,闹了大笑话。
3.3 光绘文件导出:Gerber命名规范与层映射避坑指南
拼版完成后,导出Gerber不是点几下鼠标就完事。工厂拒收率最高的原因,就是层命名不规范。Allegro默认导出的Gerber文件名如“top_layer.gbr”,工厂根本不知道这是哪块板的顶层。必须按IPC-2581标准重命名:
Step 1:配置Output VariableManufacture → CAM File → Setup,在“Output Variables”标签页中:
- 找到“GERBER_FILE_NAME_FORMAT”,修改为
%a_%l_%n(%a=Array名称,%l=层名,%n=子板前缀) - 找到“DRILL_FILE_NAME_FORMAT”,修改为
%a_%t_%n(%t=钻孔类型)
Step 2:分层导出关键设置Manufacture → CAM File → Create,逐层设置:
- Top Layer:Layer选“Top”,Output Type选“Gerber”,File Name自动变为“MY_PANEL_Top_PMU_”
- Bottom Layer:Layer选“Bottom”,勾选“Mirror Output”(镜像输出,因拼版后底层需翻转)
- Soldermask Top:Layer选“Soldermask_Top”,在“Advanced”选项卡中勾选“Merge with Silkscreen”(合并丝印,避免开窗错位)
- Drill Drawing:Output Type选“Excellon”,在“Drill Options”中勾选“Generate Drill Table”(生成钻孔表),否则工厂无法确认孔径分布。
Step 3:验证Gerber完整性
导出后,用免费工具GC-Prevue打开所有Gerber文件,重点检查:
- 所有文件名是否含子板前缀(如“MY_PANEL_Top_PMU_.gbr”)
- V-Cut线是否在“Route Keepin”层清晰可见(工厂据此编程铣床)
- 光学点是否为实心圆(非空心),直径是否为1.0mm±0.05mm
- 定位孔是否在Drill Drawing中单独列为“Tooling Hole”,而非普通通孔
注意:Allegro导出Gerber时有个隐藏陷阱——若单板中存在“allegro cell read-only”的封装(如厂商提供的加密IP核),导出时可能丢失该封装的焊盘定义。解决方案:在导出前执行
Tools → Database Check → Check and Repair,勾选“Check Read-Only Cells”,系统会提示哪些Cell需解除只读状态。
4. 工厂对接与避坑指南:那些没人告诉你但会让你返工三次的细节
4.1 拼版文件包必备清单(工厂验收硬指标)
把Gerber发给工厂前,必须打包以下6个文件,缺一不可,否则直接退回:
- Gerber文件夹:包含全部重命名后的Gerber(.gbr)、钻孔文件(.txt/.drl)、IPC-2581文件(.xml)
- Array结构图(PDF):用Allegro
File → Export → PDF导出,需清晰标注:- 每块子板名称、尺寸、数量
- V-Cut线位置与角度(标注“V-CUT 30°”)
- 光学点(Fiducial)与定位孔(Tooling Hole)坐标(单位mm)
- 钻孔表(Excel):从Drill Drawing中导出的.csv文件,列明每种孔径的数量、所在层、是否金属化
- 板材规格书(PDF):注明基材类型(如FR-4 TG170)、铜厚(1oz)、板厚(1.6mm±0.1mm)
- 表面处理说明(TXT):明确写“ENIG(沉金)厚度≥2μinch”,而非模糊的“沉金”
- 特殊工艺备注(TXT):如“V-Cut深度0.5mm±0.05mm,刀具直径1.6mm”,“邮票孔直径0.5mm,间距1.2mm”
我见过太多人只发Gerber压缩包,工厂回复:“请补充Array结构图及钻孔表”,来回沟通耗时两天。提前备好,当天下单当天开工。
4.2 三大高频返工原因及根治方案
根据我跟12家PCB厂(包括深南电路、景旺电子、Quickturn)的对接经验,83%的拼版返工源于以下三个问题:
问题1:V-Cut槽撞到器件焊盘
现象:工厂反馈“V-Cut区域存在焊盘,无法加工”。
根因:设计师在Custom Array中绘制V-Cut线时,仅考虑图形位置,未检查该线是否穿过子板的“Place_Bound_Top”层(器件放置边界)。
解决方案:在Array界面执行Display → Color/Visibility,打开所有子板的“Place_Bound_Top”层(通常为绿色虚线),确保V-Cut线全程位于该边界之外。实测安全距离:V-Cut中心线距最近焊盘边缘≥0.8mm。
问题2:光学点被丝印覆盖
现象:SMT贴片时报“Fiducial not found”,AOI检测失败。
根因:丝印层(Silkscreen)文字或logo绘制在光学点正上方,遮挡相机识别。
解决方案:在Allegro中,为每个光学点创建专属“Silkscreen Keepout”区域。操作:Shape → Rectangular,在光学点周围绘制一个2.0mm×2.0mm矩形,Layer设为“Silkscreen_Top”,Type选“Shape Keepout”。系统会自动禁止丝印进入该区域。
问题3:拼版后阻抗线宽变异
现象:工厂回传的TDR测试报告中,某段微带线阻抗偏离目标值(如设计50Ω,实测58Ω)。
根因:拼版时两块子板的参考平面(Reference Plane)在交界处不连续,导致电磁场畸变。
解决方案:在Custom Array中,为交界区域添加“Ground Fill”铜皮。操作:Shape → Rectangular,在PMU与SENSOR交界处绘制一个10mm×5mm矩形,Layer设为“Internal Plane 1”(内层地平面),Type选“Static Copper”,并设置“Net Name”为“GND”。这样保证参考平面连续,阻抗波动控制在±2Ω内。
实操心得:Allegro中“allegro出光绘文件”后,务必用CAM350软件做最终检查。重点运行
Analysis → DRC,设置规则:
- Minimum Annular Ring(最小环宽)≥0.15mm
- Minimum Trace Width(最小线宽)≥0.1mm
- Clearance(线间距)≥0.12mm
若DRC报错,立即返回Allegro修正,切勿抱侥幸心理发给工厂。
4.3 成本优化实战:如何把一单拼版费用从1280元压到380元
最后分享一个真实案例:客户原有8块单板(4种型号),每块单独打样,工厂报价1280元。我们用Allegro Custom Array重构拼版后,成本降至380元。关键操作如下:
- 尺寸归一化:将4种单板的长宽统一向上取整到5mm倍数(如原62.3mm→65mm),使母板能被标准尺寸(如240×180mm)整除,避免工厂裁板浪费。
- V-Cut替代邮票孔:原设计用邮票孔分离,需额外开模费300元。改为V-Cut后,利用工厂现有V割机,零附加费。
- 共享光学点:8块板共用4个光学点(而非每块板独立配4个),减少CAM编程时间,工厂给予15%加工费折扣。
- 材料降规:原要求TG170板材,实际信号速率<100MHz,降为TG130,单价降低22%。
最终母板尺寸240×180mm,含8块子板,工厂一口价380元(含V-Cut、ENIG、阻抗控制)。这个方案的核心,是把拼版从“图形排列”升维到“制造经济学”——每一个参数调整,都对应着真实的成本数字。
5. 常见问题速查表与独家调试技巧
| 问题现象 | 根本原因 | 快速排查步骤 | 我的独家解法 |
|---|---|---|---|
| Array中子板显示为空白 | 子板brd文件路径含中文或空格 | 1. 检查路径是否为纯英文(如C:\PCB\PMU\pmu.brd) 2. 在Allegro中执行 File → Import → Board测试能否单独打开该文件 | 将所有项目文件移至C盘根目录,路径层级不超过3级(如C:\ALLEGRO\PROJECTS\) |
| 导出Gerber后丝印错位 | 单板中存在“allegro text操作”未锁定的文本对象 | 1.Display → Color/Visibility打开All Text层2. Edit → Find,Type选“Text”,勾选“In All Layers” | 对所有丝印文本执行Edit → Properties,勾选“Lock”并设置Height=6mil(标准丝印高度) |
| V-Cut线在Gerber中不显示 | V-Cut层未正确映射到Gerber输出 | 1.Manufacture → CAM File → Setup,检查“Route Keepin”层是否在Output列表中2. 确认该层Output Type为“Gerber” | 在CAM Setup中,为“Route Keepin”层单独创建Output,File Name设为“V_CUT.gbr”,避免与其他层合并 |
| 拼版后BOM位号重复 | 未设置子板位号前缀或前缀相同 | 1.Array → Edit Instance,检查每个实例的“Reference Designator Prefix”2. 确认前缀不为空且互异(如“U100-”“U200-”) | 使用Allegro Skill脚本批量重命名:axlShell("change refdes U100-* U100-"),替换所有匹配位号 |
| 工厂反馈“钻孔表缺失” | Drill Drawing未勾选“Generate Drill Table” | 1.Manufacture → CAM File → Create,选择Drill Drawing层2. 点击“Advanced”按钮,确认勾选“Generate Drill Table” | 导出后,用记事本打开.drl文件,搜索“DRILL TABLE”,若存在则说明成功 |
最后一个小技巧:Allegro中“allegro导出dxf”功能可用于生成机械加工图。在Array界面执行
File → Export → DXF,Layer选择“Board_Outline”和“Tooling_Holes”,导出的DXF文件可直接发给CNC加工厂制作测试治具,精度达±0.02mm,比手动画图快5倍。
我在实际操作中发现,拼版最耗时的环节不是技术实现,而是跨部门对齐——硬件工程师要确认器件不撞V-Cut,结构工程师要确认母板尺寸适配外壳,采购要确认工厂能否承接。所以现在我的标准流程是:在Allegro完成Custom Array后,第一时间导出PDF结构图,拉上三方开15分钟站会,当场确认所有红线(如“此处V-Cut距U101焊盘0.85mm,符合要求”)。这个习惯让我近两年的拼版一次通过率达100%,没再为返工熬过夜。