ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Allegro定位孔设计全流程:从Pad Designer到PCB放置与接地

2026/10/7 5:32:57 拓冰建站 浏览量
Allegro定位孔设计全流程:从Pad Designer到PCB放置与接地 1. 定位孔在PCB设计里到底扮演什么角色很多人刚接触Allegro的时候会把定位孔当成一个随便放个圆就行的东西。我刚开始画板子那会儿也是这么想的结果第一块板子打样回来螺丝根本拧不进去孔位偏了0.3mm整批板子报废。从那以后我才认真去研究定位孔到底该怎么设计。定位孔英文一般叫Mounting Hole或者Tooling Hole它的核心作用其实有三个层面。第一个层面是机械固定板子要通过螺丝、铜柱或者卡扣固定在壳体或者机箱里定位孔就是这些固定件的落脚点。第二个层面是装配定位在SMT贴片或者插件焊接的时候产线需要用工装夹具把板子固定住这时候定位孔就是夹具的基准点。第三个层面是电气连接有些定位孔需要接地通过螺丝把板子和金属壳体连成一体起到屏蔽或者泄放静电的作用。这三个层面决定了定位孔不是一个简单的挖个洞它涉及到孔径、焊盘、阻焊开窗、接地方式、公差配合等一系列设计决策。在Allegro里定位孔的实现方式跟普通元器件封装不太一样它通常是以**机械符号Mechanical Symbol**的形式存在的而不是电气符号。这个区别很关键因为机械符号不参与网表连接不会被DRC当成缺件报错但它又实实在在地占据板面空间影响布局和布线。我见过不少新手直接把定位孔画在Board Geometry层里用Shape或者Line拼一个圆出来。这样做短期看没问题出Gerber的时候也能出但后期改板就很痛苦——你没法像替换封装一样一键更新所有定位孔也没法在Placement模式下精确控制它的位置。所以正确的做法还是老老实实做一个Mechanical Symbol把它当成一个标准件来管理。这篇文章我会从零开始把定位孔从Pad Designer的焊盘配置到Symbol创建再到PCB中放置和接地的完整流程讲清楚。不管你是刚装好Allegro的新手还是从AD转过来还在适应Cadence体系的老手跟着走一遍基本就能掌握。中间我会穿插一些我自己踩过的坑和实际项目中的经验参数这些在官方文档里通常不会写。2. 先搞清楚定位孔的分类再动手在打开Pad Designer之前你得先想清楚你要做的是哪种定位孔。不同类型的定位孔焊盘配置和后续处理方式完全不同。如果这一步没想明白后面返工的概率非常高。2.1 非金属化定位孔与金属化定位孔的区别非金属化孔NPTHNon-Plated Through Hole就是孔壁没有铜纯粹是一个机械洞。这种孔通常用于纯结构固定的场景比如塑料壳体里的定位柱穿过板子或者螺丝只起固定作用不需要接地。NPTH孔的优点是加工简单、成本低缺点是孔壁没有铜螺丝和板子之间没有电气连接。金属化孔PTHPlated Through Hole则是孔壁有铜可以导电。这种孔一般用于需要接地的场景比如金属壳体通过螺丝和板子的地平面连在一起。PTH孔的加工步骤多一道沉铜工序成本略高但在需要屏蔽或者静电泄放的场合是必须的。怎么选我的经验是如果壳体是塑料的用NPTH就够了如果壳体是金属的而且对EMC有要求那就用PTH并且接地。还有一种折中方案是做一个带焊盘的NPTH孔孔本身不金属化但孔周围有一圈铜箔焊盘可以通过其他方式接地比如用弹片或者导电泡棉。这种方案在一些消费电子里很常见。2.2 常见孔径与螺丝规格的对应关系孔径选多大取决于你用多大的螺丝。这个不能拍脑袋得查螺丝的规格书。下面这张表是我整理出来的常用对照关系基于M系列公制螺丝和常见的自攻螺丝螺丝规格螺丝外径(mm)推荐孔径(mm)推荐焊盘直径(mm)适用场景M22.02.24.0小型模块、传感器板M2.52.52.74.5一般消费电子M33.03.25.5工业控制板、电源板M44.04.37.0大功率设备、机箱固定M55.05.38.0重型设备这里有个细节要注意孔径一般比螺丝外径大0.2mm左右这是为了留装配公差。如果你做的是精密定位比如要用定位销那公差要控制在0.05mm以内这时候就得跟加工厂确认他们的钻孔精度能不能达到。焊盘直径的选取原则是孔径加上两边各留1mm左右的环宽。比如M3的孔孔径3.2mm焊盘直径5.5mm环宽就是(5.5-3.2)/21.15mm。这个环宽不能太小否则螺丝头压上去的时候可能压到阻焊层导致铜箔开裂也不能太大浪费板面空间。2.3 定位孔在板边的安全距离定位孔离板边太近加工的时候容易崩边离板边太远又浪费空间。一般建议孔边缘到板边的距离不小于1mm如果是V-CUT拼板的话这个距离要加大到2mm以上因为V-CUT会有一个切割余量。还有一个容易被忽略的点定位孔周围要留出螺丝头或者垫片的空间。M3的螺丝头直径一般是5.5mm到6mm如果你用的是带垫片的螺丝垫片直径可能到8mm。这意味着定位孔周围至少要有4mm的净空区域不能放元器件否则螺丝拧下去会压到元件。我在实际项目中一般会在定位孔周围画一个Keepout区域半径设为焊盘半径加2mm这样布局的时候就不会误放元件了。3. Pad Designer里定位孔焊盘的配置细节Pad Designer是Allegro体系里专门用来做焊盘的工具定位孔的焊盘也是在这里配置。很多人觉得Pad Designer界面复杂其实做定位孔只需要关注几个关键参数其他保持默认就行。3.1 新建焊盘时的参数选择逻辑打开Pad Designer点击File New先给焊盘起个名字。命名规范我建议用类型孔径焊盘直径的格式比如MH_3R2_5R5表示Mounting Hole孔径3.2mm焊盘直径5.5mm。这样一看名字就知道参数后期维护很方便。接下来是几个关键选择Units选Millimeter除非你的项目是英制体系。国内大部分项目都用公制保持一致避免换算错误。Padstack usage这里有Through、Blind/Buried、Single三种。定位孔选Through因为它是通孔。Drill/Slot这里要填钻孔信息。Hole type选Circle然后填Diameter。如果是NPTH孔这里填了直径之后下面的Plating选项要选Non-Plated。Plating这是区分PTH和NPTH的关键。Plated表示孔壁金属化Non-Plated表示非金属化。选错了会导致加工出来的板子跟预期不符。3.2 钻孔尺寸与焊盘尺寸的精确计算在Pad Designer的Layers标签页里你需要为每一层配置焊盘尺寸。对于定位孔来说主要关注以下几层BEGIN LAYER顶层焊盘DEFAULT INTERNAL内层焊盘END LAYER底层焊盘SOLDERMASK_TOP/BOTTOM阻焊开窗PASTEMASK_TOP/BOTTOM钢网开窗定位孔一般不需要对于PTH定位孔BEGIN LAYER和END LAYER的Regular Pad填焊盘直径比如5.5mm。DEFAULT INTERNAL也填5.5mm这样内层如果有铜皮经过会有一个隔离环。阻焊开窗一般比焊盘大0.1mm到0.15mm这是为了补偿加工误差确保焊盘完全露出来。所以SOLDERMASK填5.6mm到5.65mm。对于NPTH定位孔情况稍微不同。因为孔壁没有铜所以BEGIN LAYER和END LAYER的Regular Pad可以填0或者填一个跟钻孔一样大的值。但如果你想让孔周围有一圈铜比如前面说的带焊盘的NPTH那就正常填焊盘直径只是Plating选Non-Plated。这里有个坑我要特别提醒NPTH孔的阻焊开窗。如果你不设置阻焊开窗加工出来的板子孔周围会被阻焊油墨盖住看起来就是一个普通的洞。但如果你设置了阻焊开窗孔周围会露出一圈基材颜色跟板面不一样。这个视觉效果在装配的时候有影响看你的需求决定。3.3 热风焊盘与反焊盘的取舍对于需要接地的PTH定位孔内层如果有地平面就需要考虑热风焊盘Thermal Relief和反焊盘Anti-Pad的设置。热风焊盘的作用是让焊盘和铜皮之间通过几根细线连接而不是直接全连接。这样做的好处是焊接的时候散热慢一些但对于定位孔来说它不需要焊接所以直接用全连接Solid就行散热不是问题。反焊盘的作用是在内层铜皮上挖一个比焊盘大的隔离区防止焊盘和不该连接的铜皮短路。对于接地的定位孔如果内层是地平面那就不需要反焊盘直接连上就行。如果内层是电源平面或者其他网络那就需要设置反焊盘直径一般比焊盘大0.5mm左右。在Pad Designer里DEFAULT INTERNAL这一层就是控制内层焊盘和反焊盘的。如果你填了Regular PadAllegro会自动根据设计规则生成反焊盘。你也可以手动在Anti Pad栏里填一个值来覆盖。4. 从焊盘到机械符号的完整创建流程焊盘做好了接下来要把它变成一个可以在PCB里放置的符号。这就是Mechanical Symbol的创建过程。4.1 为什么要用Mechanical Symbol而不是Package Symbol前面提过定位孔不参与电气连接所以不能用普通的Package Symbol。Package Symbol需要指定Pin Number、Pin Name还要关联网表定位孔没有这些属性。Mechanical Symbol则没有这些限制它就是一个纯粹的几何图形集合可以包含焊盘、线条、文字、Shape等元素。放置的时候也不会被DRC检查缺件或者网络冲突。创建Mechanical Symbol的入口是File New然后选择Mechanical Symbol。注意不要选成Package Symbol或者Shape Symbol选错了后面很麻烦。4.2 在Symbol编辑器中放置焊盘和绘制丝印进入Symbol编辑器后首先要设置好工作区域和栅格。我一般把栅格设成0.1mm这样放置焊盘的时候可以精确定位。放置焊盘的命令是Layout Pins然后在Options面板里选择你刚才做好的焊盘。放置的时候注意坐标一般把定位孔的中心放在(0,0)点这样在PCB里放置的时候坐标好算。焊盘放好之后要在Assembly_Top层和Silkscreen_Top层画一些辅助图形。Assembly层一般画一个比焊盘大1mm的圆表示这个定位孔的实际占位范围。Silkscreen层画一个比焊盘大0.5mm的圆作为丝印标识。注意丝印不能压在焊盘上否则会被阻焊开窗切掉。还有一个细节Place_Bound_Top层。这一层定义了元件的占位边界布局的时候DRC会检查元件之间是否重叠。对于定位孔Place_Bound一般画一个比焊盘大2mm的圆把螺丝头的空间也算进去。4.3 符号原点与Place_Bound的设置技巧符号原点Origin的位置很重要它决定了你在PCB里放置这个符号时的参考点。对于定位孔我习惯把原点设在孔中心这样放置的时候直接输入目标坐标就行。设置原点的命令是Setup Change Drawing Origin然后点击孔中心。Place_Bound的设置前面提了一句这里再展开说一下。Place_Bound_Top层的作用是告诉Allegro这个元件占多大地方布局的时候如果两个元件的Place_Bound重叠DRC会报错。对于定位孔因为螺丝头会占用额外空间所以Place_Bound要画大一点。但这里有个矛盾如果你把Place_Bound画得太大布局的时候可能会发现很多地方放不下元件其实那些空间是可以用的只是被Place_Bound挡住了。我的做法是Place_Bound画到焊盘边缘加1.5mm然后在实际布局的时候人工判断螺丝头会不会干涉。这样既不会误报太多DRC又能保证安全。5. 在PCB Editor中放置定位孔并处理接地符号做好了接下来就是把它放到PCB里并处理接地相关的问题。5.1 手动放置与坐标精确输入在PCB Editor里放置Mechanical Symbol的命令是Place Manually然后在Placement面板里选择你的定位孔符号。放置的时候可以在Options面板里直接输入坐标比如(10, 10)、(10, 90)、(90, 10)、(90, 90)这样四个角各放一个位置精确。如果你用的是异形板或者定位孔位置不规则那就需要先量好尺寸再放置。我一般会在结构图上标好定位孔的坐标然后直接输入。如果结构图是DXF格式可以导入到Allegro里作为参考这样放置的时候可以捕捉DXF上的点。放置完成后建议用Tools Reports Symbol Report检查一下确认所有定位孔都放上了坐标也对。5.2 定位孔接地的几种实现方式如果定位孔需要接地有几种实现方式第一种是直接连接到地平面。如果定位孔所在的位置内层有地平面而且焊盘设置了DEFAULT INTERNAL那么焊盘会自动和地平面连接。这种方式最简单但前提是定位孔的位置正好在地平面覆盖范围内。第二种是用Shape连接。如果定位孔周围没有地平面或者地平面被其他走线割裂了你可以手动画一个Shape把定位孔和附近的地网络连起来。画Shape的时候注意网络要选GND然后铺到焊盘上。第三种是用走线连接。这种方式不太推荐因为走线的载流能力有限而且占用布线空间。但在一些简单板子上也能用。不管用哪种方式都要注意连接电阻。定位孔接地是为了泄放静电或者屏蔽如果连接电阻太大效果会打折扣。所以连接要尽量短、尽量宽。5.3 定位孔与板框、禁布区的协同处理定位孔放置好之后还要检查它和板框、禁布区的关系。板框Outline定义了板子的物理边界定位孔必须在板框内部而且孔边缘到板边的距离要满足加工要求。前面说过一般不小于1mmV-CUT拼板要2mm以上。禁布区Keepout是用来限制布线或者铺铜的区域。定位孔周围一般要设一个禁布区防止走线或者铜皮靠得太近。禁布区的半径一般是焊盘半径加0.5mm到1mm。在Allegro里设置禁布区可以用Shape Keepout然后选择要禁的元素走线、过孔、铜皮等。设置好之后DRC会自动检查。6. 出Gerber前必须检查的定位孔相关项板子画完了出Gerber之前一定要仔细检查定位孔相关的设置。我见过太多因为定位孔问题导致板子报废的案例下面这几项是必查的。6.1 钻孔文件中的定位孔是否正确输出钻孔文件NC Drill是加工厂用来钻孔的依据。出钻孔文件之前要确认定位孔的钻孔参数是否正确。在Allegro里出钻孔文件的命令是Manufacture NC NC Drill。出来的文件里会列出所有钻孔的尺寸和数量。你要检查定位孔的孔径是否跟设计一致数量是否正确。特别注意NPTH孔和PTH孔在钻孔文件里是分开的。有些加工厂会默认把所有孔都当成PTH处理如果你有NPTH孔一定要在加工说明里注明否则加工厂可能会多做一道沉铜工序导致孔径变小。6.2 阻焊层与焊盘层的对齐检查阻焊层Solder Mask和焊盘层Pad的对齐很重要。如果阻焊开窗偏了焊盘可能被盖住一部分导致螺丝接触不良或者接地电阻变大。检查方法是在Allegro里打开SOLDERMASK_TOP和PIN两层用不同的颜色显示然后放大看对齐情况。正常情况下阻焊开窗应该比焊盘大0.1mm左右四周均匀。如果发现偏了要回到Pad Designer里修改然后更新PCB里的符号。更新的命令是Tools Padstack Refresh选择要更新的焊盘Allegro会自动替换。6.3 定位孔周围丝印与阻焊的冲突排查丝印Silkscreen如果压在阻焊开窗上会被切掉导致丝印不完整。对于定位孔来说如果丝印圈被切掉一部分看起来会很难看而且可能影响装配时的识别。检查方法是打开SILKSCREEN_TOP和SOLDERMASK_TOP两层看有没有重叠。如果有要么调整丝印位置要么调整阻焊开窗大小。我一般会把丝印圈画在阻焊开窗外面留0.1mm的间隙。这样丝印完整阻焊也正常。7. 新手最容易踩的几个定位孔坑最后这部分我总结几个新手最容易踩的坑都是我自己或者身边朋友实际遇到过的。7.1 孔径选错导致螺丝装不进去这是最常见的坑。很多人做封装的时候随手填了一个孔径比如3.0mm结果M3的螺丝外径就是3.0mm根本装不进去。记住孔径一定要比螺丝外径大0.2mm左右。还有一个变种是忘了考虑镀层厚度。PTH孔在沉铜之后孔径会变小一般小0.05mm到0.1mm。所以如果你设计的是3.2mm的PTH孔实际加工出来可能只有3.1mm。对于精密装配这个差异要考虑进去。7.2 忘了设置Place_Bound导致布局冲突Place_Bound没设或者设得太小布局的时候可能把元件放到螺丝头的范围内装配的时候螺丝拧下去压到元件轻则元件损坏重则板子报废。我的建议是Place_Bound至少画到焊盘边缘加1.5mm如果空间允许画到2mm更安全。7.3 接地定位孔连接不良的排查思路如果定位孔接地了但测试的时候发现接地电阻很大排查思路是这样的先检查焊盘和内层铜皮的连接方式。如果是热风焊盘连接连接线可能太细导致电阻大。改成全连接试试。再检查内层铜皮是否被割裂。如果定位孔周围的地平面被其他走线或者过孔割裂了连接路径可能很长电阻自然大。最后检查阻焊开窗。如果阻焊开窗太小螺丝和焊盘之间可能隔着阻焊油墨接触不良。这种情况要把阻焊开窗加大。7.4 拼板时定位孔被V-CUT切到的处理拼板的时候如果定位孔离V-CUT线太近V-CUT的切割余量可能会切到定位孔导致孔径变形。一般建议定位孔边缘到V-CUT线至少2mm。如果空间实在不够可以考虑把定位孔移到工艺边Breakaway上拼板完成后再掰掉。但这样定位孔就没了所以只适用于定位孔只在生产过程中使用、成品不需要的情况。8. 一些提高效率的实用技巧做定位孔这个事做一次两次不觉得做多了就会发现有很多重复劳动。下面分享几个我常用的效率技巧。8.1 建立自己的定位孔符号库把常用的定位孔做成标准符号存在自己的库里面。下次做新项目的时候直接调用不用重新做。我一般会做M2、M2.5、M3、M4这几种规格的PTH和NPTH版本基本覆盖大部分项目需求。库的目录结构建议按焊盘/符号/封装分开每个下面再按规格分子目录。这样找起来快也不容易乱。8.2 用Skill脚本批量放置定位孔如果板子上定位孔很多或者位置有规律比如四个角对称可以写一个简单的Skill脚本批量放置。Allegro的Skill语言不难学网上也有很多现成的例子。比如下面这个简单的脚本可以在指定坐标放置定位孔axlCmdRegister(place_mh place_mh) defun(place_mh () let((symName coords) symName MH_3R2_5R5 coords list(10.0:10.0 10.0:90.0 90.0:10.0 90.0:90.0) foreach(coord coords axlDBCreateSymbol(symName car(coord) cadr(coord) nil) ) ) )这个脚本只是示例实际用的时候要根据你的符号名和坐标调整。8.3 定位孔参数的快速核对清单每次出Gerber之前用这个清单核对一遍孔径是否比螺丝外径大0.2mm以上PTH/NPTH设置是否正确焊盘直径是否足够环宽≥1mm阻焊开窗是否比焊盘大0.1mmPlace_Bound是否覆盖螺丝头范围定位孔到板边距离是否≥1mm接地连接是否可靠如果是接地孔钻孔文件里定位孔是否正确输出这个清单我用了好几年基本能覆盖90%以上的定位孔问题。每次花两分钟核对一遍能省下后面大量的返工时间。定位孔这个东西说简单也简单说复杂也复杂。关键是要理解它背后的机械和电气需求然后把这些需求转化成Allegro里的正确设置。我刚开始学的时候也是各种踩坑但踩多了就有经验了。希望这篇内容能帮你少走一些弯路一次就把定位孔做对。