
安装孔是PCB设计里最不起眼、但最容易出幺蛾子的模块之一。画一个圆、放一个孔看起来谁都会但真正出图打样回来不是孔小了螺丝拧不进去就是孔位置被铜皮盖住导致短路或者3D视图里压根看不到这个孔。这篇东西专门给Altium Designer新手梳理安装孔设计的3种主流方法从Pad焊盘到Board Cutout再到封装库调用每种的适用场景、详细参数、容易踩的坑都写清楚基本覆盖日常项目里会遇到的情况。先聊点实在的为什么安装孔值得单独写一篇因为它在PCB里承担的功能远比“一个洞”复杂。第一它是机械层与电气层的交界处螺丝拧进去之后应力会沿着孔壁传导影响铜箔和走线。第二如果这个孔要求接地比如金属壳体的ESD泄放路径那它就是一块特殊焊盘处理不好会跟周围的GND网络产生DRC冲突。第三结构工程师给你的图纸上孔位坐标、孔径公差、沉头尺寸都是定死的AD里一个参数设错打样工厂那边就会提出“钻孔与阻焊层不匹配”的疑问。所以别小看这个环节。这篇内容适合正在学AD的硬件新手、刚接手PCB Layout的工程师以及那些画板多年但一直靠土办法应付安装孔的朋友。看完之后你可以根据项目实际需求直接做出选择并且能把每一个参数在面板里对应着调出来。1. 安装孔设计前的3个核心认知1.1 安装孔不只是一个“圆”先搞清楚它背负的任务很多新手第一次接触安装孔是在PCB上放了一个Keep-Out圆环或者干脆画了一个圆在丝印层然后到了3D视图一看——板上压根没有穿透的洞。原因很简单丝印层的圆只是标记没有钻孔属性Keep-Out层的圆只是禁布区域跟钻孔也没关系。真正的安装孔必须带有钻孔数据AD里能生成钻孔数据的对象有三种Pad、Via、以及Board Cutout。只有这些对象会被输出到Drill Drawing / NC Drill文件中工厂才能按照这些数据去钻孔。安装孔的任务通常有三类结构固定螺丝穿过PCB锁在外壳上、定位配合定位销或治具、电气连接金属化孔连接GND或连接内外层铜箔。第三种情况最容易被忽视如果你把安装孔做成非金属化孔却又要它接地那打样回来就会遇到“孔壁无铜”的尴尬。1.2 选方法之前先准备好3个输入条件我不建议拿到一张空板就开始放孔。在动手之前把下面三件事确认好孔径数值结构图纸上标注的是M3螺丝孔那PCB孔径一般是多少常规做法是螺丝直径加上0.2mm到0.5mm余量M3对应3.1mm或3.2mm比较常见如果要做沉头就要先算沉孔直径和深度。孔太小装配时螺丝卡住孔太大定位精度不够。是否需要金属化金属化孔Plated孔壁会沉铜可以接地、散热但成本略高非金属化孔Non-Plated更接近“纯机械孔”成本低、绝缘。这个选择直接决定你用Pad还是用Board Cutout。孔位坐标结构图纸上的坐标原点可能跟AD里的原点不一样拿到图纸后先在Excel里整理一遍坐标确认原点基准别直接用图上坐标去PCB上乱放。1.3 通用安装孔径参数速查表下面的表是我在实际打样过程中总结出来的一套常用参数适用于大多数消费类、工业控制类板卡具体到一个项目里仍然要以结构图纸为准螺纹规格建议PCB孔径非沉头焊盘外径若用Pad金属化建议M22.2mm ~ 2.5mm4.0mm ~ 5.0mm可选M2.52.7mm ~ 3.0mm5.0mm ~ 5.5mm可选M33.2mm ~ 3.5mm6.0mm ~ 7.0mm推荐接地M44.3mm ~ 4.5mm8.0mm ~ 9.0mm推荐接地M55.3mm ~ 5.5mm10.0mm ~ 11.0mm推荐接地提示孔径余量不是越大越好。余量过大会导致螺丝锁紧时受力不均板子固定不牢。对高精度设备M3孔开3.0mm加公差标注0.1/-0.05是常见做法对普通外壳固定直接给3.2mm最省心。1.4 安装孔跟周围走线和铜皮的关系安装孔不是孤立存在的。孔壁上如果有镀铜它就和周围的铜箔直接相连如果孔壁无铜钻孔时产生的碎屑和应力也可能会损伤旁边的走线。经验法则是安装孔边缘到最近的走线/铜皮边缘至少保持0.3mm以上的安全间距。如果是金属化孔并接GND则需要扩大一点间距避免高压或者ESD脉冲通过这个孔耦合到敏感信号线上。多层板里还有个容易被忽略的点内层铜皮也要避让非金属化安装孔。AD的层叠属性里如果设置了Plane层非金属化孔的避让规则要额外检查Keep-Out或者Plane Clearance设置。不然工厂做内层图形时Plane层可能把孔的位置覆盖导致钻孔时碰到铜箔边缘。2. 方法一Pad焊盘做安装孔——最通用也是新手首选2.1 原理图里放还是PCB里放两种流程的区别Pad做安装孔有两种入口从原理图入口在原理图里放置一个Mechanical Symbol机械符号或者放置一个连接了GND的Header类元件然后在PCB中对应生成一个特殊焊盘。这种做法的好处是可以在BOM里体现但如果只是机械孔不建议走这条路因为它要求你为安装孔专门建一个原理图符号还会让原理图看起来比较奇怪。直接从PCB入口在PCB文件中直接放置Pad不经过原理图同步。这种方法最直接、最快也推荐新手这么干。放置完Pad后还可以把它复制多个按坐标精确摆放。如果安装孔是标准化的、多个板子都要用那我更建议做成封装后面第4节细说。单板调试或快速原型阶段直接在PCB上放Pad完全够用。2.2 详细参数设置孔径、外径、镀孔、网络直接在PCB上放置Pad的操作菜单栏选择Place放置→ Pad或者在快捷键面板里按P、P。放置后选中这个Pad右侧Properties面板会出现参数设置。这里把每一项要注意的列出来Hole Type孔类型选择Round圆形孔。如果结构需要长圆孔则选Slot但要指定槽长。绝大多数安装孔用圆形。Hole Size孔径根据上面的速查表填。比如M3的孔填3.2mm。注意这里的孔径指的是最终成品孔的直径不是钻头直径。厂家会用等价钻头去处理阻焊层等工艺都会影响最终尺寸但AD里填的就是成品孔径。Plated镀孔这个开关决定孔壁是否有铜。要接地的安装孔就勾选Plated单纯固定孔、绝缘孔就不勾选。非镀孔在Gerber输出里的标识是Non-Plated钻孔文件也会分开。Size and Shape如果是圆孔选Simple即可。PCB外径Size是指焊盘外径也就是铜环的直径不是板子上的开孔区域。外径比孔径大1.5到2倍就可以了。M3配3.2mm孔径外径给6.0mm比较稳。Layer层Pad的默认层是Multi-Layer多层也就是顶层、底层、内层都出现铜箔。如果只是机械孔建议改成Top Layer或直接使用Multi-Layer但去掉Plated这取决于你是否需要避免阻焊开窗产生裸露铜环。Net网络如果不接地就选No Net如果接GND就选GND。新手常犯的错误是留着一个随机网络名或者空着不管等覆铜之后发现安装孔跟旁边铜皮连接关系混乱。实操小技巧如果你放了多个安装孔选中其中一个按CtrlH可以打开类似查找相似对象的功能可以一次性把所有安装孔选出来批量修改参数。这个功能在调整孔径或网络时特别好用。2.3 用Pad做安装孔怎么避免DRC报错Pad做安装孔引发的DRC问题是我见过的新手高频报错Top 3之一。最常见的是Clearance规则冲突默认的Clearance约束是0.2mm或0.25mm而你的安装孔外径可能离最近的走线只有0.15mm一跑DRC就是一堆绿色。这种情况有两种处理方式直接改全局Clearance不推荐会导致其他区域安全间距集体放宽影响布通率。给安装孔加Room规则在Design → Rules → Clearance里新建一条规则Query条件设为IsPad且Pad Stack Mode或者更精确地用Footnote或NetGND_MTG来约束。给安装孔留更大的间距比如0.4mm。我个人习惯是把接地的安装孔统一命名为GND_MTG然后在Clearance规则里加一条Net(GND_MTG)的例外规则间距设0.5mm。这样项目里其他区域仍然保持0.2mm的紧凑规则只有安装孔周边放宽。还有一个常见报错是Minimum Hole Size规则。AD默认的Minimum Hole Size是0.0254mm1mil本身不会拦下大孔但如果你设了板厂工艺的规则文件比如从工厂下载的Design Rule文件可能包含最大孔径限制过大的安装孔会触发Hole Size Constraint报错这时候需要在Manufacturing类别的Hole Size规则里把最大孔径调到大于你用的孔径值。注意Pad做的金属化安装孔在覆铜时会跟GND网络自动连接。如果你希望它跟GND之间有明确的热焊盘连接方便手工焊接或提高热阻需要在Properties里设置Thermal Relief属性或者依赖Polygon Connect Style规则。绝大多数情况下安装孔直接实心连接即可。3. 方法二Keep-Out层加Board Cutout——做异形孔和绝缘孔的关键手段3.1 为什么有Pad还推荐Board Cutout圆形Pad搞不定的场景Pad能做圆孔、能通过Slot做长圆孔看起来覆盖场景够多了。但实际结构设计中安装孔常常不只是圆形有些设备为了防转会做D型孔有些为了兼容多种螺丝做长条孔有些为了节省空间半孔安装在板边。这些形状用Pad做非常费劲而且Pad的钻孔数据只能用圆形或槽形表达D型异形孔如果输出到钻孔文件里基本不知道怎么标。这时候就需要Board Cutout板框切割出场了。它的原理是你在任意机械层通常建议Mechanical 1或Keep-Out层画一个闭合图形指定它为板框的一部分AD在处理板框数据和3D模型时会把这块区域“镂空”。对工厂来说异形孔可以通过铣刀加工出来而不是普通钻头钻孔所以它并不会和Pad的钻孔数据冲突反而更贴近机械加工逻辑。另外非金属化安装孔我强烈建议用Board Cutout去做。理由很简单用Pad做非金属化孔虽然可行但Processing Gerber时NC Drill文件里会有两条记录Plated和Non-Plated分开有些工厂在检查时容易漏掉Non-Plated孔造成孔内有铜残留。Board Cutout是纯粹的“板框挖空”不涉及孔壁镀铜的工序表达更干净。3.2 Board Cutout的正确用法一步步来直接说操作步骤版本以AD20到AD24为例旧版本菜单名称略有差异但逻辑一样切换或者新建一个机械层。我建议把安装孔统一放在Mechanical 1层并在Layer Stack中把Mechanical 1设为“可用于板框定义”。在这个层上用Place → Line快捷键P、L画出安装孔的轮廓。圆形孔用Place → Arc快捷键P、A画圆注意要让形状闭合。选中这个闭合图形在菜单Tools → Convert → Create Board Cutout from Selected Primitives中完成转换。转换成功后你会看到原来闭合图形内部变成半透明镂空状态。在3D视图按下数字键3中查看效果确认板子上确实出现了一个贯穿的洞。如果画的是矩形长条孔连线时注意用坐标精确定义四个角比如从(x, y)到(x, y6mm)再连回(x3mm, y6mm)等。所有线段必须端点相连不能有“看似闭合但实际有小开缝”的情况否则转换时会报错。还有一种更快的做法先画一个Shape然后快捷键T→V→C也会跳出转换菜单。并且AD还支持直接在属性面板中选中Board Cutout对象在X/Y/Radius等参数里精确修改尺寸。3.3 配合沉头设计、丝印标注和铜皮避让如果你做的是沉头孔比如沉头M3上面大孔放螺丝头、下面小孔过螺杆这属于“多层异形结构”沉头大孔径部分不需要焊盘螺杆部分可能需要绝缘。这种结构在PCB上的实现通常是大直径沉头区域用Keep-Out层画一个禁布圆环避免铜皮小直径通孔用Pad或Board Cutout实现。但PCB厂家对沉头孔有额外的铣削/bonding工艺要求下单时要在工艺备注里写清楚不能只靠PCB文件表达。另外一个容易忽略的地方是丝印标注。如果开的是非金属化安装孔四周没有铜环丝印上没有表示的话产线上装配工人可能找不到孔位。在丝印层画一个和孔径略大一圈的圆圈并标注M3 MTG之类的文字能省去很多沟通成本。我个人喜欢把安装孔的中心坐标也标在旁边方便IQC来料检验时测量。铜皮避让方面如果安装孔所在区域周围有大面积铜箔Board Cutout不会自动生成Plane层的Clearance因为它在AD的概念里属于“板外形”。所以你要在孔周边手工放置一个禁布区域或者用Polygon Pour Cutout多边形覆铜挖空来避让。具体操作Place → Polygon Pour Cutout在孔周围画一个稍大的封闭区域重新铺铜后这个区域内的铜就会消失。3.4 半孔板边开半安装孔的额外技巧半孔工艺在模块化设计中很常见板子边缘做出半个孔用于焊接引脚贴板安装。但在安装孔语境下半孔主要是配合铝型材或钣金件做侧面固定。这类设计比全孔复杂因为板框需要和半孔的形状精确对齐。我的做法是先在Keep-Out层画好板框再在板框线中央画一个圆形Board Cutout让圆的一半落在板框内、一半落在板框外。转换之后3D视图检查确认半圆缺口正常显示。如果边缘毛刺明显可以在加工说明中备注“板边半孔需铣削光滑无铜刺”。4. 方法三直接调用封装库中的标准安装孔——效率最高的长期方案4.1 官方库里的Mounting Hole省时省力Altium Designer自带的库体系里有一个非常经典的库Miscellaneous Devices.Lib。打开Components面板在搜索栏输入mounting hole或者更精确地输入MOUNTING_HOLE就能找到一系列标准安装孔元件。这些元件常见的有M3、M4、M2.5等通常用两个网络属性表示一个是GND连接型一个是不连接型No Net。直接拖出来放进去设置一下坐标就可以使用了。这是最省事的一种方式适合标准圆形安装孔。但要注意官方库里的安装孔元件外形尺寸有时跟你项目结构图不完全一致比如外径偏大占用了宝贵的布局空间。我建议拿到库元件后先双击检查它的Pad参数和外径再决定是否沿用。如果不满足可以基于它修改后存到自己的集成库里。4.2 自建“安装孔封装”一劳永逸适配非标需求做硬件时间久了的人最后都会沉淀一套自己的常用封装库安装孔绝对是这个库里最高频的成员之一。理由很简单一个项目里可能要用到5个M3接地孔、2个M2绝缘孔如果每次都重新画效率太低参数也容易漂移。自建安装孔封装的操作步骤打开PCB Library编辑器新建一个空白Component命名比如MTG_M3_PLHM3金属化接地孔。从Place菜单放置Pad放在原点(0, 0)。设置孔径3.2mm、外径6.0mm、勾选Plated、Net留空放在封装里Net都是空的由板级指定。在Top Overlay顶层丝印层以原点为中心画一个圆直径6.5mm或7mm作为装配识别标记。在Mechanical 1层用文字或者线标注“M3 MTG”用于说明这个孔的规格。文字放在距离孔中心约3mm处避免被螺丝头遮住。如果是非金属化孔复制一份封装命名MTG_M3_NPLH不勾选Pad的Plated选项或者干脆用Keep-OutBoard Cutout的方案做纯机械孔。建好的封装可以放入自己的集成库Integrated Library也可以放在独立的SchLibPcbLib里以*.PcbLib方式维护。后面新建项目时直接从库中拖出来配合坐标阵列功能一次性布置多个安装孔。这里特别提醒一点不要把安装孔封装做成普通电气元件的原理图符号再同步PCB。很多人习惯在原理图上放一堆CONN符号然后在PCB里手动把它改成安装孔。这不仅让原理图混乱而且同步到PCB后网络名、位号全都变了。正确做法是机械安装孔不进原理图直接在PCB里放置并赋予No Net或GND网络。如果因为公司流程要求原理图必须显示安装孔可以考虑专门建一个Mechanical Symbol类型并在原理图放置时选用“Standard (No ERC)”属性。4.3 自建库中安装孔的命名规范和文件管理命名规范直接决定了这个库一年后还好不好用。常见命名规则MTG_M2_PLHM2金属化安装孔可用于接地MTG_M25_NPLHM2.5非金属化绝缘孔MTG_M3_CBM3安装孔附带Board Cutout如果是非标形状MTG_M4_SPTM4沉头工艺孔需要额外工艺备注个人经验每个安装孔封装最好在Mechanical层写两行注释一行写规格一行写加工备注比如“孔径3.2mm阻焊开窗直径5mm”。这样当你把文件发给板厂时厂里的工程对孔位参数的确认速度会快很多。5. 三种方法对比与选型建议5.1 横向对比清单对比维度Pad焊盘方案Board Cutout方案库封装方案操作难度低新手友好中需要画闭合图形低但需要先建库是否支持金属化支持不支持纯机械挖空取决于封装的Pad设置异形孔/长条孔仅支持圆和槽支持任意闭合多边形取决于封装内使用哪种对象钻孔文件输出自动输出到NC Drill以板框/铣削路径输出自动输出DRC风险较高需要单独设规则较低远离电气规则可预先做好规则豁免适合场景圆形金属化接地孔非金属化孔、异形孔、半孔重复性强的标准化项目5.2 实际项目中的选型经验按项目类型归类我一般这样选电源板、电机驱动板这类板子通常有大电流、强干扰安装孔往往需要接地泄放共模干扰。首选Pad方案Plated开孔Net连GND周围用Clearance规则保证间距足够。如果对ESD有要求孔边缘到高压走线距离要拉到0.5mm以上。消费类电子产品主板大量使用M2或M2.5小孔结构简单。优先用封装库调用直接在原点阵列放几个孔效率最高。如果孔位附近有密集走线把Pad外径改小保持间距。仪器仪表、工控机箱板可能涉及D型孔、长条孔、板边半孔以及大量绝缘孔。这些用Board Cutout比Pad可靠因为异形孔结构上的表达更准铣削工序清晰不会跟普通孔混淆。射频类板卡安装孔附近若存在射频走线或微带线金属化安装孔会改变接地参考平面容易引起阻抗突变。此类项目尽量使用非金属化孔并用Board Cutout或非Plated的Pad做同时在孔周围加一圈地孔抑制谐振。另外多层板中如果安装孔是Pad方案且接GND要留意内层Plane层避让和热连接关系。有些项目会发现安装孔周围的Plane层被大面积镂空或者变成了十字连接这通常是Plane Clearance规则没有调好。打开Design Rules在Manufacturing → Plane → Power Plane Clearance里设置合适的间隙例如0.5mm再重新铺一次Plane即可。5.3 关于Keep-Out和禁止布线层的一句话提醒有些新手把安装孔画在Keep-Out层上就误以为板厂会钻孔。实际上Keep-Out层在AD中的作用是“禁止布线/禁止放置器件”的约束区域它对板厂的钻孔输出毫无影响。除非你用Keep-Out画了闭合的Board Cutout并转换成功了否则板厂不会在Keep-Out圆圈上打任何孔。这一点务必分清楚。如果你只是希望安装孔周围不铺铜、不走线Keep-Out层也可以用来做禁布区但它必须和“真正的孔”是两个独立对象。6. 常见问题与排查技巧实录6.1 3D视图里看不到安装孔板子是实心的怎么办这个问题十有八九是因为你“画”了一个圆但并没有生成真正的钻孔对象。检查顺序先看这个圆是哪个层的如果是丝印层那它本来就不代表孔如果是Keep-Out层它只能算禁布区如果它其实是一个Pad但层属性被改成了Top Layer或Bottom Layer那它只是单面板上的铜箔也没有贯穿。真正贯穿的钻孔对象必须有Hole属性或者必须是Board Cutout。按下ShiftC取消过滤然后在Properties里选中疑似对象查看是否是Pad/Via/Board Cutout。实在找不到就删掉重新用Pad或Board Cutout画一个。6.2 安装孔周围一片绿色DRC疯狂报错这个问题的根因通常是间距规则和孔径规则不适应实际对象。具体排查步骤点击绿色标记确认DRC错误类型。最常见是Clearance Constraint Violation。打开PCB Rules面板在Clearance目录下找到冲突的规则对确认是否是因为安装孔离走线太近。如果只是个别孔冲突移动孔位置或调整走线是最快的。如果孔位不能动给安装孔单独建一条Clearance规则。建规则时Query表达式写IsPad并配合HoleSize条件是比较通用的写法。比如IsPad And HoleSize 2mm这样把较大孔径的Pad作为一类对象间距约束单独设置。如果是Hole Size规则报错说明你的孔径超出了Manufacturing Hole Size规则的上限或者低于下限。进入Design Rules修改对应约束范围。6.3 安装孔的Net到底该不该连要不要设No Net如果安装孔用于接地那Net必须设为GND这样覆铜时才会自动连接。如果你希望这个孔与GND连接但在面上部分用热焊盘隔开可以在Polygon Connect Style里对这类Pad单独设置连接方式。如果安装孔纯粹是固定用不希望跟任何网络连接记得在Pad属性里把Net设为No Net。这里有个容易被坑的细节当你把Pad从一个网络改成No Net后DRC里可能出现“Un-Routed Net”的提醒——不用慌因为安装孔本来就不属于任何电气网络可以在DRC设置里忽略Un-Routed项或者在规则里把Un-Routed Net的检查范围排除安装孔。6.4 工厂反馈钻孔尺寸与Gerber文件不一致这往往是Plated/Non-Plated处理规则不同导致的。AD输出的NC Drill文件里Plated孔和Non-Plated孔分开存储Gerber文件中焊盘层的开窗大小会跟孔径不同。工厂如果看到孔径3.2mm、阻焊开窗3.5mm而此处又没有Plated标记就可能发邮件询问。对应做法在输出Gerber和钻孔文件时把Drill Drawing层的孔径符号表打开确认每个孔径对应的孔数并在Readme/工艺说明里写清楚每个安装孔的属性。尤其是非金属化孔明确标注“Non-Plated, 孔壁无铜”。6.5 覆铜之后安装孔被铜皮填满了怎么解决覆铜区域如果包围了安装孔而安装孔又是非金属化孔No Plated或Board Cutout并希望铜皮避开这个区域最直接的办法是在安装孔周围放一个Polygon Pour Cutout画一个比孔径大一圈的闭合区域重新执行Tools → Polygon Pours → Repour All即可。如果是金属化孔并接GND那被铜皮“包围”是正常的电气连接表现不需要特殊处理。6.6 一个安装孔周围多处出现小方块形状的紫红色区域这些小方块通常是Room或Rule区域。如果你在布局阶段用Room定义了部分电路的区域Room可能无意中把安装孔包进去在清除Rule区域时有些Room会保留在安装孔旁。处理方法选中这些紫红色区域按Delete删除即可或者去PCB面板中关闭Room显示。Board Cutout如果操作不当也可能残留对象选中它检查属性确认是Board Cutout后再删。收尾前的一点个人经验从手画圆到玩转Pad、Board Cutout和封装库安装孔设计这块我踩过的坑不少最深的体会是不要等Layout快结束才想起装孔一定要在结构确定后第一时间把安装孔位、孔径、是否金属化这些条件定下来并在PCB里以规范的Pad或Board Cutout形式布置好。因为安装孔会影响布局空间、走线通道、铺铜形状甚至结构上的装配顺序。提前定好孔位后面几乎所有环节都能避开返工。另一个经验是每个板子出Gerber之前务必打开3D视图把安装孔逐个看一眼。这一步看起来笨但能发现很多莫名其妙的问题——比如非金属化孔被覆铜堵住、异形孔方向偏移、孔的位置落在板框外面等。3D视图虽然不能保证绝对正确但绝对比只盯着2D平面文件发现问题要快。最后建议花一个小时给自己建一套安装孔封装库包含M2/M2.5/M3/M4的金属化和非金属化版本有条件再加几个长条孔和板边半孔。一次投入后面每个项目都能省下时间而且文件里再也不容易出现“随手的圆”式的垃圾对象。Altium Designer这个软件功能多到眼花但安装孔这种小事恰恰是体现一个Layout工程师是否严谨的试金石。