
1. 拼板场景下的Mark点核心认知1.1 为什么拼板必须手动加Mark点做PCB这行的人都知道单板打样的时候贴片厂通常不太挑板子上有没有Mark点都能凑合上机。但一旦进入拼板阶段尤其是多拼板、阴阳拼、旋转拼这类操作Mark点就成了决定贴片良率的生死线。我见过太多案例板子设计得漂漂亮亮结果拼完板贴片厂反馈“识别不到基准点”整批板子贴偏电容电阻集体移位返工成本直接吃掉利润。Mark点学名基准点Fiducial Mark它的本质是给贴片机的光学识别系统提供一个绝对坐标参照。贴片机的相机在编程阶段会先“看”这几个点建立坐标系然后所有元器件的贴装位置都相对于这个坐标系来计算。如果Mark点缺失、不规范或者被拼板操作搞乱了机器就相当于蒙着眼睛干活。在Cadence Allegro里做拼板很多人习惯用Sub-Drawing或者Module的方式把单板复制多份但复制完之后Mark点往往被忽略。原因很简单单板上可能原本有Mark点但拼板后需要的是整块拼板的大Mark点而不是每个小板上重复的局部Mark点。这两者的作用层级完全不同。注意拼板Mark点是给贴片机识别整块拼板用的通常放在拼板工艺边的对角位置而不是每个单板内部。单板内部的Mark点用于高精度器件如BGA、QFN的局部对位两者不能互相替代。1.2 Mark点在Allegro中的本质是什么从Allegro的文件结构来看Mark点就是一个特殊的封装Package Symbol。它由焊盘Pad和丝印/装配层的外框组成。听起来简单但坑就坑在“特殊”两个字上。普通元器件封装有引脚编号、有电气连接属性而Mark点封装是一个纯粹的机械符号它不需要网络连接不需要引脚编号甚至不需要放在原理图里。它就是一个“哑巴”器件只提供视觉识别特征。在Allegro的Pad Designer里做Mark点焊盘时有几个参数是必须锁死的焊盘形状必须是圆形不能是方形或椭圆形。圆形在各个旋转角度下识别一致性最好。焊盘尺寸通常直径1.0mm是通用标准但也要看贴片机的识别能力。有些老式贴片机需要1.5mm甚至2.0mm。阻焊开窗阻焊层开窗必须比焊盘单边大0.05mm到0.1mm保证Mark点边缘清晰锐利。表面处理Mark点必须和PCB表面处理一致不能覆盖绿油也不能被其他铜皮遮挡。很多新手在Pad Designer里建焊盘时只建了Top层忘了建SolderMask层结果做出来的Mark点在板子上被绿油盖住贴片机根本看不到。这个坑我踩过不止一次后来养成了习惯建完焊盘先导出光绘看一眼确认阻焊开窗正确再往下走。1.3 拼板Mark点的位置布局原则拼板Mark点的位置不是随便放的它有一套行业通用的布局逻辑。我总结下来就是“对角、对称、远离干扰”三个关键词。对角的意思是整块拼板至少需要两个Mark点放在拼板的对角位置。如果拼板尺寸较大或者拼板内单板数量多建议放三个甚至四个形成更稳定的坐标系。对称的意思是Mark点相对于拼板中心要尽量对称分布这样贴片机计算坐标时的累积误差最小。远离干扰这一点最容易被忽视。Mark点周围3mm范围内不能有高度超过0.5mm的元器件不能有通孔不能有丝印文字不能有裸露的走线。为什么因为贴片机的相机有景深限制如果Mark点旁边有个高电容挡着相机对焦就会出问题识别率直线下降。还有一个细节Mark点距离拼板边缘至少5mm。太靠边的话贴片机的传送轨道和夹爪可能会遮挡Mark点导致识别失败。这个距离在Allegro里用坐标计算很容易控制但拼板的时候如果工艺边宽度不够就很容易踩坑。2. Allegro中手动创建Mark点器件的完整流程2.1 用Pad Designer制作Mark点焊盘打开Pad Designer这是Allegro自带的焊盘编辑工具。新建一个焊盘命名建议用“MARK_1R0”这种格式1R0表示直径1.0mm的圆形焊盘一看就懂方便后续复用。在Pad Designer的Parameters标签页里单位选择Millimeter精度设到4位小数。然后进入Layers标签页这是核心操作区域。Begin Layer选择CircleDiameter填1.0mm。这就是Mark点的铜箔焊盘。SolderMask Top选择CircleDiameter填1.1mm。阻焊开窗比焊盘大0.1mm单边0.05mm。PasteMask Top这个层可以不做因为Mark点不需要刷锡膏。但有些贴片厂要求Mark点也开钢网那就加上尺寸和焊盘一致。Film Mask不用管保持默认。这里有个细节Pad Designer里有一个“Single layer mode”选项如果勾选了就只能编辑单层焊盘。做Mark点的时候建议不要勾选因为需要同时编辑Begin Layer和SolderMask层。建完之后点击Save保存到你的焊盘库路径下。建议单独建一个“Fiducial”文件夹存放所有Mark点焊盘方便管理。实操心得焊盘命名一定要有规律比如MARK_1R0、MARK_1R5、MARK_2R0分别对应1.0mm、1.5mm、2.0mm直径。后期换贴片厂需要调整Mark点尺寸时直接替换焊盘就行不用重新建封装。2.2 在Allegro中创建Mark点封装焊盘建好后打开Allegro的PCB Editor选择File New类型选Package Symbol。命名比如“MARK_1R0”和焊盘名字对应。进入封装编辑界面后第一步是设置工作区域。Setup Design Parameters里把单位改成Millimeter把Drawing Extents设成合适的大小比如X从-5到5Y从-5到5够用就行。然后放置焊盘。Layout Pins在Options面板里选择刚才建的MARK_1R0焊盘坐标填(0,0)放置一个焊盘。这个焊盘就是Mark点的核心。接下来加外框。在Package Geometry Silkscreen_Top层画一个圆直径比焊盘大0.5mm左右比如1.5mm。这个圆的作用是给贴片机编程人员一个视觉参考实际识别还是靠焊盘本身。再在Package Geometry Assembly_Top层画一个同样的圆用于装配图显示。最后别忘了加Place_Bound_Top层画一个比焊盘大1mm的圆防止Mark点和其他器件重叠。这个层在拼板的时候特别有用Allegro的DRC会检查Place_Bound是否冲突。保存封装一个标准的Mark点器件就做好了。整个过程熟练的话五分钟搞定但第一次做可能会在层设置上卡住。2.3 封装检查与常见错误排查封装建完后不要急着往板上放先做一次自检。我通常用这几个步骤在Allegro里打开封装用Display Element查看焊盘信息确认焊盘尺寸和层设置正确。用Tools Padstack Modify Design Padstack检查焊盘是否只包含必要的层。导出光绘预览看SolderMask层是否有正确的开窗。常见错误有这么几个错误现象根本原因解决方法板子上Mark点被绿油盖住Pad Designer里没建SolderMask层重新编辑焊盘添加SolderMask Top层贴片机识别不到Mark点焊盘直径太小或阻焊开窗太小加大焊盘到1.5mm开窗加大到1.2mmMark点旁边有丝印干扰Silkscreen层画了文字或线条删除Mark点周围3mm内的所有丝印DRC报Place_Bound冲突Place_Bound层画得太大缩小Place_Bound到焊盘直径1mm这些错误看起来简单但在实际项目中尤其是赶工期的时候很容易漏掉。我的建议是建一个Mark点封装的检查清单每次新建或修改后逐项核对。3. 拼板操作中Mark点的放置与调整3.1 拼板前的准备工作拼板不是一上来就复制粘贴前期准备决定了后面顺不顺。我一般会先做这几件事确认单板的Mark点情况。如果单板本身有Mark点要判断是保留还是删除。通常拼板后单板Mark点会被保留用于局部高精度器件的贴装但整板Mark点必须另外添加。确认工艺边宽度。工艺边是拼板边缘用于传送和夹持的区域通常宽度5mm到10mm。Mark点要放在工艺边上不能放在单板区域内。如果工艺边太窄Mark点放不下就需要加宽工艺边或者调整Mark点位置。确认拼板方式。是V-Cut还是邮票孔是阴阳拼还是同向拼不同的拼板方式对Mark点位置有影响。V-Cut拼板时Mark点要避开V-Cut线距离至少3mm。邮票孔拼板时Mark点要避开邮票孔区域。这些信息确认后在Allegro里把单板作为一个Module或者Sub-Drawing导入到拼板文件中。我习惯用Module方式因为Module可以保留单板的所有属性包括Mark点封装。3.2 手动放置Mark点的具体步骤拼板文件准备好后开始放置Mark点。步骤如下在Allegro中打开拼板文件确保当前层是Placement层。选择Place Manually在Placement对话框中选择Package Symbols找到之前建的MARK_1R0封装。在Options面板里设置旋转角度为0勾选“Place by Coordinates”。输入第一个Mark点的坐标比如拼板左下角工艺边的中心位置。重复放置第二个Mark点放在对角位置。坐标怎么算假设拼板尺寸是100mm x 80mm工艺边宽度5mm。左下角Mark点坐标可以设为(2.5, 2.5)右上角设为(97.5, 77.5)。这样Mark点距离拼板边缘2.5mm在工艺边中心。但实际项目中拼板尺寸往往不是整数而且工艺边上可能有定位孔、传送边等结构。这时候就需要根据具体情况调整。我的经验是Mark点距离拼板边缘至少5mm距离定位孔至少3mm距离V-Cut线至少3mm。放置完成后用Display Element检查每个Mark点的坐标和层信息。确认无误后锁定Mark点位置防止后续操作误移动。3.3 多个Mark点的坐标计算与对称性校验当拼板尺寸较大或者对贴片精度要求极高时两个Mark点可能不够。这时候需要放四个Mark点形成矩形坐标系。四个Mark点的坐标计算有个简单方法先确定拼板的有效区域去掉工艺边后的区域然后在这个区域的四个角各放一个Mark点距离边缘5mm。比如有效区域是90mm x 70mm那么四个Mark点坐标分别是左下(5, 5)右下(85, 5)左上(5, 65)右上(85, 65)放完后要校验对称性。在Allegro里可以用Tools Dimension Linear Dimension测量对角Mark点之间的距离确认两个对角线长度相等。如果不等说明Mark点位置有偏差需要调整。对称性为什么重要因为贴片机在建立坐标系时会假设Mark点是对称分布的。如果实际不对称机器计算出的坐标系就会扭曲导致贴装位置偏移。这个偏移在拼板边缘可能只有0.1mm但在拼板中心可能放大到0.5mm甚至更多。注意四个Mark点的对称性校验不能只看坐标还要考虑拼板本身的形变。如果拼板材料是FR4在回流焊过程中会有轻微收缩四个Mark点的相对位置会变化。所以Mark点尽量放在拼板的刚性区域避开邮票孔和V-Cut线附近。4. 拼板Mark点常见问题与避坑指南4.1 Mark点被绿油覆盖的排查与修复这是最经典的问题没有之一。板子做回来贴片厂说“Mark点找不到”你拿放大镜一看Mark点上盖着一层绿油跟周围铜皮一个颜色。根本原因Pad Designer里建焊盘时只建了Begin Layer没建SolderMask Top层。Allegro在生成光绘时SolderMask层没有开窗板厂就按默认处理把Mark点盖住了。排查方法在Allegro里打开封装用Display Element查看焊盘确认SolderMask Top层是否存在。或者直接导出SolderMask光绘用CAM工具查看Mark点位置是否有开窗。修复方法重新编辑焊盘在Pad Designer里添加SolderMask Top层尺寸比焊盘单边大0.05mm。然后更新封装重新导出光绘。预防措施建焊盘时养成习惯先建SolderMask层再建Begin Layer。或者建一个Mark点焊盘模板每次复制修改避免遗漏。4.2 贴片机识别率低的参数调整Mark点做出来了但贴片厂反馈“识别率低经常报错”。这时候不要急着改设计先问清楚贴片机的型号和识别参数。常见原因和调整方法焊盘直径太小贴片机相机分辨率有限1.0mm焊盘在有些老机器上识别困难。调整到1.5mm或2.0mm试试。阻焊开窗太小开窗比焊盘单边大0.05mm是理论值实际生产中板厂的阻焊对位精度可能有±0.05mm偏差。建议开窗单边加大到0.1mm。Mark点周围有干扰检查Mark点周围3mm内是否有丝印、走线、过孔。有的话删除或移开。Mark点表面氧化如果PCB表面处理是OSPMark点铜箔暴露在空气中容易氧化影响识别。建议Mark点做沉金或喷锡处理。我遇到过一次贴片厂用的是老式JUKI贴片机Mark点直径1.0mm识别率只有70%。后来把焊盘加大到1.5mm开窗加大到1.7mm识别率直接到99.5%。所以参数调整要结合实际情况不能死守标准。4.3 拼板形变导致Mark点偏移的应对拼板尺寸越大回流焊过程中的形变越明显。尤其是无铅焊接温度高FR4板材的热膨胀系数在X/Y方向大约是15ppm/°C。一块200mm长的拼板温度升高200°C理论膨胀量是0.6mm。这个膨胀量在Mark点上表现为坐标偏移贴片机如果按编程时的坐标贴装就会偏。应对方法有几个Mark点尽量放在拼板中心区域中心区域的形变量比边缘小。使用四个Mark点四个点可以建立更精确的坐标系贴片机可以通过算法补偿形变。拼板方向与板材纹理方向一致FR4板材的X/Y方向热膨胀系数不同拼板时长边尽量与板材长边一致。与贴片厂沟通有些贴片机支持“多点识别”和“形变补偿”功能提前告知拼板情况让贴片厂调整识别参数。这个问题在消费类电子产品中可能不明显但在汽车电子、医疗电子等高可靠性领域拼板形变导致的贴装偏移是必须考虑的。4.4 Mark点与定位孔、V-Cut线的位置冲突拼板工艺边上通常还有定位孔和V-Cut线Mark点放的时候要避开这些结构。定位孔是用于贴片机传送和定位的机械孔直径通常2mm到4mm。Mark点距离定位孔至少3mm否则定位孔的金属化孔壁会干扰相机识别。V-Cut线是用于分板的V形槽深度通常是板厚的1/3。Mark点距离V-Cut线至少3mm否则V-Cut线的反光会影响识别。而且V-Cut线在分板时会产生应力太近的Mark点可能会在分板时被拉裂。邮票孔拼板时Mark点要避开邮票孔区域。邮票孔是密集的小孔反光特性与Mark点焊盘完全不同放在附近会干扰识别。我的做法是在Allegro里用Keepout层把定位孔、V-Cut线、邮票孔区域标出来然后放Mark点时用DRC检查确保没有冲突。5. 从单板到拼板的Mark点管理策略5.1 单板Mark点与拼板Mark点的层级关系很多新手搞不清楚单板Mark点和拼板Mark点的关系以为拼板就是把单板的Mark点复制多份。实际上这是两个不同层级的概念。单板Mark点服务于单板内的高精度器件贴装。比如一个单板上有BGA芯片BGA的引脚间距0.4mm贴装精度要求±0.05mm。这时候单板Mark点就是给贴片机提供局部高精度参照的。拼板Mark点服务于整块拼板的全局坐标系建立。贴片机先识别拼板Mark点建立全局坐标系然后移动到每个单板的位置再识别单板Mark点建立局部坐标系最后贴装元器件。所以拼板后单板Mark点要保留拼板Mark点要新增。两者不能混淆也不能互相替代。在Allegro里管理这两类Mark点时我建议用不同的封装命名和不同的层。单板Mark点用“MARK_LOCAL_1R0”拼板Mark点用“MARK_GLOBAL_1R0”。层上单板Mark点放在单板区域内拼板Mark点放在工艺边上。5.2 用Allegro Skill批量处理Mark点如果拼板数量多手动放Mark点效率太低。这时候可以用Allegro Skill写个小脚本批量处理。Skill是Allegro的二次开发语言语法类似Lisp。写一个简单的脚本读取拼板尺寸自动计算四个Mark点坐标然后批量放置。比如这个脚本框架axlCmdRegister(place_fiducials place_fiducials) defun(place_fiducials () let((boardWidth boardHeight margin fiducialSymbol) boardWidth axlDBGetDesign()-bBox[2] - axlDBGetDesign()-bBox[0] boardHeight axlDBGetDesign()-bBox[3] - axlDBGetDesign()-bBox[1] margin 5.0 fiducialSymbol MARK_GLOBAL_1R0 axlDBCreateSymbol(fiducialSymbol, list(margin margin)) axlDBCreateSymbol(fiducialSymbol, list(boardWidth - margin, margin)) axlDBCreateSymbol(fiducialSymbol, list(margin, boardHeight - margin)) axlDBCreateSymbol(fiducialSymbol, list(boardWidth - margin, boardHeight - margin)) ) )这个脚本只是框架实际使用时要根据拼板的具体情况调整。比如要避开定位孔和V-Cut线就需要加入更多的坐标判断逻辑。Skill脚本的好处是一次编写多次复用。尤其是公司里有多个项目需要拼板时一个通用的Mark点放置脚本能省下大量时间。5.3 拼板文件的版本管理与复用拼板文件不是做完就扔的后续改版、换贴片厂、调整拼板方式都可能用到。所以版本管理很重要。我的做法是每个拼板文件单独建一个文件夹命名格式“项目名_拼板_日期”。文件夹里包含拼板Allegro文件、Mark点封装、光绘文件、拼板说明文档。拼板说明文档里记录拼板尺寸、Mark点坐标、工艺边宽度、拼板方式、贴片厂要求。用Git或者SVN做版本控制每次修改提交一次记录修改原因。这样下次换贴片厂或者改版时直接调出之前的拼板文件改改Mark点参数就能用不用从头再来。实操心得拼板说明文档里一定要记录贴片厂的反馈。比如“XX贴片厂要求Mark点直径1.5mm开窗1.7mm”下次给这家贴片厂做板时直接按这个参数来省去反复沟通的时间。6. 拼板Mark点与光绘输出的联动检查6.1 光绘层设置中Mark点的关键层拼板完成后导出光绘文件是最后一道关卡。Mark点涉及的光绘层主要有三个Top层Mark点焊盘的铜箔图形。SolderMask Top层Mark点的阻焊开窗。Silkscreen Top层Mark点的丝印外框可选。在Allegro的Artwork设置里要确保这三个层都正确包含了Mark点封装。有时候Mark点封装建好了但光绘层里没有添加对应的层导出后Mark点就消失了。检查方法在Artwork设置里打开Top层用Display Element查看Mark点焊盘是否在层内。如果不在手动添加Mark点封装的路径到光绘层。6.2 用CAM工具预览Mark点效果光绘导出后不要直接发给板厂先用CAM工具预览一下。我常用的是CAM350或者免费的Gerber查看器。预览时重点看Mark点焊盘是否清晰可见没有被绿油覆盖。阻焊开窗是否比焊盘大边缘是否整齐。Mark点周围是否有丝印、走线等干扰。Mark点坐标是否与拼板说明文档一致。如果发现问题回到Allegro修改重新导出光绘。这个检查流程看起来繁琐但能避免批量报废的风险。6.3 与板厂和贴片厂的沟通要点拼板Mark点不是设计完就完了还要和板厂、贴片厂沟通清楚。给板厂的说明Mark点位置和尺寸要求阻焊开窗单边比焊盘大0.05mm到0.1mm。Mark点表面处理要求通常与PCB整体表面处理一致。Mark点周围不能覆盖绿油不能有丝印。给贴片厂的说明拼板尺寸和Mark点坐标。Mark点直径和阻焊开窗尺寸。拼板方式V-Cut或邮票孔。单板Mark点位置如果有。这些信息最好整理成一页文档随光绘文件一起发送。我见过太多因为沟通不到位导致的返工明明设计没问题就是没说清楚贴片厂按自己的习惯处理结果Mark点识别不了。7. 个人实操体会与后续扩展7.1 几个让我印象深刻的踩坑经历做PCB设计这些年Mark点相关的坑我踩过不少。有一次赶一个急单拼板文件做完直接导出光绘发板厂忘了检查SolderMask层。板子回来贴片厂说Mark点找不到我打开光绘一看Mark点位置全是绿油。重新做板来不及最后贴片厂用单板Mark点凑合贴了良率只有85%返工了一大批。还有一次拼板尺寸比较大200mm x 150mm放了两个Mark点。贴片厂反馈识别率低我以为是Mark点太小加大到2.0mm还是不行。后来去贴片厂现场看发现是拼板形变导致Mark点偏移两个Mark点建立的坐标系在拼板中心区域偏差了0.3mm。后来改成四个Mark点问题解决。这些经历让我养成了一个习惯拼板Mark点做完后一定要做三件事——检查光绘、模拟贴片机识别、和贴片厂确认参数。这三件事花不了多少时间但能避免大问题。7.2 Mark点设计的未来趋势现在有些贴片机已经支持“无Mark点识别”通过识别板上的走线、焊盘等特征来建立坐标系。但这种技术对PCB设计的规范性要求极高而且识别率受板子表面处理影响很大。目前主流还是靠Mark点。另一个趋势是“智能Mark点”在Mark点旁边加二维码或Data Matrix码贴片机识别Mark点的同时读取板子信息自动调用对应的贴装程序。这种方案在汽车电子和医疗电子领域已经开始应用但成本较高消费类电子产品还用得少。对于大多数PCB设计者来说掌握标准的Mark点设计方法把拼板Mark点做规范就已经能解决95%以上的问题。剩下的5%靠和贴片厂的沟通和现场调试来解决。7.3 给新手的三个实用建议第一个建议建一个Mark点封装库把常用的1.0mm、1.5mm、2.0mm Mark点封装都做好命名规范层设置正确。以后做项目直接调用不用每次重新建。第二个建议拼板时先放Mark点再放单板。很多人习惯先拼单板再补Mark点结果Mark点位置被单板占了只能放在奇怪的位置。先放Mark点确保位置合理再拼单板这样Mark点永远在工艺边上不会冲突。第三个建议每次拼板完成后导出光绘用CAM工具预览一遍。这个习惯花5分钟但能避免5天的返工。我现在的流程是拼板完成→导出光绘→CAM预览→确认Mark点→发板厂。一步都不能少。拼板Mark点这件事说难不难说简单也不简单。核心就是理解它的作用掌握Allegro的操作方法避开常见的坑。希望这篇内容能帮你少走些弯路一次把拼板Mark点做对。