
做PCB设计这些年我发现在实际项目里“开孔”这件事远比想象中容易翻车。尤其是遇到非机械类的圆形孔比如导光柱安装孔、LED灯杯沉孔、传感器透光窗口、定位销孔、散热通风孔很多工程师第一反应是画个机械层圆、放个Keepout、或者干脆扔一个Via上去。这些做法不能说完全错但在后续做DRC检查、出Gerber、和板厂沟通时会遇到一堆说不清道不明的麻烦。我最早处理这类需求时也走过弯路。有次做一块带导光柱的面板为了省事直接在Keepout层画了个圆结果板厂来邮件问这个圆到底是“禁止布线区域”还是“物理开孔”来回确认浪费了两天。后来改用Altium Designer里的Board Cutout功能才发现这个工具就是专门为这种“非螺丝固定类的异性/圆形物理孔”设计的从设计到输出全程没有歧义3D视图里也能直观看到镂空效果。这篇内容围绕“圆形非机械孔”这个场景把Board Cutout的原理、操作流程、参数设置、输出注意事项和常见坑一次性讲透。不管是刚接触Altium Designer的新手还是被Keepout和Cutout搞混的老手都欢迎对号入座。1. Board Cutout的本质与适用场景1.1 什么是Board Cutout它和机械层、Keepout的本质区别Board Cutout直译是“板子挖空”在Altium Designer里它是定义在Keepout层通常显示为紫色上的一个闭合多边形区域。这里注意一个关键点Board Cutout本质上是“机械形状定义”不是“电气规则约束”。这句话很绕但理解透了你就明白为什么它比Keepout和机械层都更适合做非机械孔。Keepout层上的普通图形比如你随手画的圆告诉EDA工具的是“这里不能放器件、不能走线”它只约束你的布线行为本身不产生物理加工语义。板厂拿到Gerber后看到Keepout上的圆只能靠猜猜错了板子就废了。机械层Mechanical Layer上的圆呢它是通用的加工注释层理论上可以表达任意机械信息但它没有“专用语义”。板厂需要结合图纸、钻孔文件、装配图才能确定这个圆是铣出来的、还是激光切的、还是仅仅是个标注。Board Cutout既被Altium Designer识别为物理挖空区域又能在输出制造文件时正确映射为铣削数据。它在3D视图里直接显示为镂空在Gerber输出时可以映射到机械层在钻孔文件里也能体现取决于你配置的输出类型。用大白话说Keepout是给“人”看的规则机械层是给“人”看的标注Board Cutout是给“人和机器一起看”的物理定义。当你需要表达一个纯粹的物理圆孔、且不想参与电气连接时Board Cutout在语义上最精准。1.2 哪些孔适合用Board Cutout哪些孔应该老实走机械层不是所有孔都适合Board Cutout。根据我的项目经验把场景分成三类。第一类纯物理外形孔、非金属化孔典型的比如导光柱孔、LED灯珠透光孔、定位销孔、散热格栅孔。这类孔不参与电气网络不需要镀铜不需要焊盘用Board Cutout最合适。第二类金属化安装孔/螺丝孔比如常见的M3/M2.5固定孔。这类孔有镀铜要求还需要连接GND或者做星型接地直接用Pad/Via配合机械层孔径标注就完事。如果你硬要用Board Cutout去挖一个孔然后在旁边放个Via模拟金属化孔那就太绕了还容易把钻孔层弄乱。第三类异形金属化槽比如连接器开槽、金手指开槽、板边半孔等。这类需求比较复杂往往是“机械层Cutout走线铺铜”多方配合不是单独一个Cutout能搞定的需要单独设计流程。所以我给团队定了个简单规则不镀铜、不连接网络、纯外形的圆形孔优先Board Cutout需要导电镀铜的孔优先Pad/Via。这个规则在执行中几乎没有出过错。2. 圆形Board Cutout创建实操三种方式与参数细节2.1 方式一菜单放置最稳的入门操作在Altium Designer里放置Board Cutout最标准的路径是菜单栏Place→Board Cutout。点击后光标会变成十字进入放置模式然后直接在PCB上画一个闭合形状就行。但要注意如果你直接手动画圆很难画出正圆。所以我的习惯是先放置一个圆形再转换为Board Cutout。操作步骤在Keepout层如果你开启了Keepout层自动切换切到Keep-Out Layer用Place→Arc (Center)放置一个圆。选中这个圆按快捷键T→V→B或者菜单栏Tools→Convert→Create Board Cutout from Selected Primitives把选中的圆转换为Board Cutout。转换完成后这个圆会显示为Keepout层上的紫色圆环同时被赋予Board Cutout属性。这种方式最稳因为你先用“圆心半径”的方式精确定义了圆再转换不会出现椭圆或者封闭不严的问题。2.2 方式二快捷键直接画效率翻倍如果你已经打开了一个正在设计的PCB不想走菜单可以用快捷键P→V→BPlace → Board Cutout。进入放置模式后在Board Cutout模式下画圆按Ctrl切换圆弧模式或者直接按ShiftSpace切换放置基元类型直到出现Arc模式。先用鼠标在板上点一下确定圆心然后拖动鼠标设置半径再点一下确定圆的大小最后确认一次完成放置。这个方法比较考验鼠标手感但熟练以后比菜单方式快不少。我的习惯是如果这个圆的位置和半径在原理图/结构图里已经定死我就用方式一的“坐标半径”方式如果是粗略估计位置、后期再调用方式二更顺手。2.3 圆形孔的精确属性设置坐标、半径、层归属不管是哪种方式放置最终你都要在属性面板里把圆做到“精确”。双击这个Board Cutout圆会弹出属性面板注意以下参数关于层归属的误解网上经常有人说“Board Cutout必须放在Keepout层”实际上Altium Designer在放置时会自动将Board Cutout放在Keepout层并在属性面板的Layer栏显示为Keep-Out Layer但真正决定它是否生效的是属性面板中的“Board Cutout”选项卡。只要Board Cutout选项处于勾选状态它就是一个合法的物理挖空定义。有些人去做Gerber时发现孔没出来多半不是层放错了而是输出配置里漏掉了Board Cutout对应的输出项这个放到后面展开。精确调整尺寸如果你需要把半径改成6.35mm可以这样做选中这个圆打开属性面板。在Location区域填入圆心的X/Y坐标比如X: 50mm, Y: 40mm。在Radius栏直接填入半径6.35mm。确认后这个圆会精确地被定义为圆心在(50,40)、半径6.35mm的物理挖空。关于孔径的完整定义对于圆形非机械孔Board Cutout只定义了“外形孔径”它默认和板材厚度无关。如果这个孔是通孔贯穿板子那就完事了。如果孔需要沉孔比如导光柱需要卡住一个台阶那Board Cutout一个圆形是不够的通常需要在机械层补充沉孔直径标注或者在3D封装层面做Step模型配合。这里先不展开但大家要有这个概念。2.4 批量创建相同孔径的圆形孔实际项目中导光柱、LED阵列经常是多个圆形孔阵列分布一个个放太费劲。推荐两种批量方案方案一复制阵列——适合规则排列把做好的第一个Board Cutout圆选中按CtrlC然后E→A打开阵列粘贴对话框Paste Array。在弹出的对话框中设置Item Count要复制的数量Primary/Secondary SpacingX/Y方向的间距确定后这一排圆孔一次性就出来了。这里有一个坑阵列粘贴出来的新圆不会自动带网格或者吸附对齐所以在阵列粘贴之前先确保间距数值是经过计算的否则阵列完再逐个微调反而更浪费时间。方案二利用PCB List批量修改——适合不规则布局但属性统一把所有已放置的Board Cutout圆选中打开PCB→PCB List面板或者按快捷键ShiftF在列表里筛选出Location和Radius列然后批量修改。这种方式适合后期统一调孔径或统一纠偏时使用比如设计审查时发现所有孔的孔径都比结构图大了0.1mm用PCB List一次就能全改完不用一个个双击。3. 背后原理Board Cutout为什么能正确出孔3.1 Board Cutout与板框Board Outline的关系很多人画完Board Cutout后会在3D视图里发现板子上开了一个洞这是因为它和板框Board Outline同属于“板子物理边界定义”体系。Altium Designer在3D显示和制造输出时对“板子形状”有一套完整的建模机制Base Polygon是最终的板框Board Cutout是在这个多边形基础上扣掉的子区域。你可以在Design→Board Shape→Define Board Cutout里看到这个逻辑。所以Board Cutout的正确理解应该是它是对板框的一种“减运算”。你在板子中间挖一个圆形孔相当于定义了一块带孔洞的板子外形。这和Keepout层上画个圆有本质区别——Keepout圆只是一个约束区域它不会让3D视图变出孔洞也不会进板框几何模型。也正是因为Board Cutout参与“板框定义”所以在输出制造文件时Altium Designer会把基板多边形和所有Board Cutout给你合成一份完整的板框/开槽数据不需要板厂再去猜。3.2 Board Cutout与钻孔Drill数据的协同逻辑这里要区分一个概念圆形非机械孔的“孔”在制造端通常不是钻出来的而是铣出来的。为什么这么说如果孔是金属化孔它走的是“钻孔Drill沉铜PTH”工艺钻孔层会生成NC Drill文件。如果孔是非金属化孔比如导光柱孔、定位销孔它通常是“铣削Routing/Milling”出来的靠的是板框/开槽文件不是NC Drill钻孔文件。所以当你用Board Cutout挖了一个圆孔不要指望NC Drill钻孔文件里自动多出一个相同位置的钻孔。在制造文件输出时Board Cutout是在Gerber的机械层通常是Mechanical 1或你自定义的开槽层里表现为一个闭合轮廓板厂拿到后会用铣刀沿轮廓铣掉这个圆。那有没有可能Board Cutout同时也输出钻孔数据部分版本可以配置但默认不建议这么做。因为同一个孔如果既出现在钻孔文件里又出现在铣削文件里板厂加工时容易搞混要么重复加工要么当作两种孔分别报价。保持语义单一是对制造端的尊重。所以我的做法是纯非机械孔只用Board Cutout不出钻带要出钻带的孔用Pad/Via来实现。3.3 为什么说“非机械孔”这个限定很关键“非机械孔”这个词看似多余实际上很精确。机械孔通常指螺丝孔、定位孔这类和装配结构相关的孔它们往往有金属化要求、有焊盘、有电气网络。而“非机械孔”指的是那些主要服务于光学、散热、外观、传感器功能的圆形孔它们的核心诉求是“我就是要一块没有铜也没有板材的空心区域”。如果没有这个限定直接用Pad/Via开一个孔也是可以的但那样做的问题是Pad/Via会生成焊盘会有阻焊开窗会有钢网层数据这些对于非机械孔完全多余。Pad/Via通常带有网络连接容易触发未连接网络报错。Pad/Via的孔位在生成钻带时会被自动分类到PTH/NPTH里如果没有正确设置制造端会产生歧义。Board Cutout则完全没有这些烦恼它不生成焊盘不关联网络不产生电镀语义。在3D视图里、在机械层输出里、在与板厂沟通时它就是“一个物理空洞”干干净净。4. 从设计到制造让圆形Board Cutout在输出文件里正确体现4.1 制造文件输出的关键配置很多人在Altium Designer里画好了漂亮的圆形Board Cutout但一出Gerber就发现“孔丢了”或者在CAM350里看到的是一个没有孔的完整板框。这个问题我遇到的次数太多了核心原因通常只有一个输出配置里没有把Board Cutout映射到正确的机械层上。来看一下标准操作流程以Altium Designer 24为例其他版本大同小异依次打开File→Fabrication Outputs→Gerber Files。在General选项卡里勾选Include unconnected mid-layer pads按需不是必须。切换到Layers选项卡在Plot Layers区域选择Used On或All On关键是把机械层项下的Mechanical 1或你使用的加工机械层勾上用于输出。关键步骤在Mechanical Layers to Add to All Plots里确保包含有Board Cutout的那个机械层。但更稳妥的方式是直接在File→Fabrication Outputs→Fabrication Outputs (OutJob)里新建一个OutJob然后在OutJob面板里配置Gerber输出时勾选Mechanical 1和Board Cutout两个选项。Altium Designer 24以后对Board Cutout的输出选项做了一个更明确的功能按钮叫做Include Board Cutout画在Keepout上的Cutout会自动转换到输出层的轮廓数据中。如果你找不到这个按钮最保险的手段是在输出Gerber时把Keep-Out层也勾选输出然后在CAM软件里查看Keepout层上对应位置的轮廓是否存在。4.2 钻孔文件里还需要单独处理吗如果你的圆形非机械孔只依赖Board Cutout没有单独放置螺丝孔/Pad之类的东西那么NC Drill文件理论上不需要包含这个孔。以我的实际打样经验来看大多数板厂在接收文件时会同时看Gerber里的板框/开槽层和NC Drill钻孔层如果某个孔只出现在Gerber里他们会默认这是开槽加工不会强行要求你也在钻带里重复定义。但是为了保险起见我依然建议在设计交付清单里写清楚一句话“圆形导光柱孔以Board Cutout定义不走钻孔按铣削加工。”这句话能省下至少一个工作日的沟通成本。4.3 3D视图检查如何确认孔已生效设计完成之后强烈建议用3D视图先自查一遍。按3键进入3D显示模式按V切换显示模式或者用快捷键2做2D/3D切换。如果你看到板上出现了圆形镂空区域说明Board Cutout数据进入到了板框模型。如果3D视图里没有显示孔通常有两个排查方向方向一你的Board Cutout圆可能画在了非Keepout层上比如误放在了Top Layer或者Mechanical 2上。检查方法是选中圆后看属性面板的Layer栏如果是Top Layer那它就不是一个真正的Board Cutout只是一个普通图形。你需要用Tools→Convert→Create Board Cutout from Selected Primitives重新指定或直接在属性面板里勾选Board Cutout。方向二3D视图显示的问题。在3D模式下按ShiftC打开View Configuration面板确认Board Cutout相关的可视化选项没有被隐藏。5. 常见问题与排查技巧实录5.1 Keepout圆和Board Cutout圆混用时板厂会抓狂这是最常见的问题没有之一。我见过不少设计文件里Keepout层画了一个圆机械层又画了一个圆3D视图也看不出问题但板厂在CAM软件里一看两个圆有细微的位置偏差或者半径差异于是他们就会发邮件问“以哪个为准”。避坑口诀一个物理孔只在一处定义。决定用Board Cutout就把机械层上用于表达同一孔位的图形删掉如果仍需在机械层写沉孔直径、备注文字那也仅仅是“标注文字”不要画第二个圆。5.2 Board Cutout显示正常但Gerber里位置偏移这个问题比较隐蔽通常是板框原点或者公英制设置引起的。Altium Designer里如果当前PCB使用英制单位而你输入的坐标是按公制算的会出现明显的位置漂移。比如结构图里圆心在X48.26mm你输入时忘了从mil切换成mm结果放到了1.27mm50mil的位置别提有多尴尬。解决方法是在任何输入坐标的地方先明确当前单位。快捷键Q可以在mm和mil之间快速切换双击圆时看属性面板里的单位提示输入坐标值时如果顺手带上了单位比如直接输入“48.26mm”Altium会按你指定的单位解析这样即使当前面板单位是mil也不会出错。5.3 Board Cutout无法转换为Keepout线怎么办有时候你从外部导入的DWG/DXF结构图里带了一个圆形选中后想用Tools→Convert→Create Board Cutout from Selected Primitives转换结果发现菜单是灰色的根本点不了。这个问题的原因通常是你选的图元不是一个合法的闭合圆而是一条圆弧或断开的线由多段线拼接而成。对于DXF导入的多段线圆你可以先全选这些线段用Tools→Convert→Explode拆散成单段再通过Place→Arc重新描圆或者用DCAD设置里把圆弧拟合精度调高后再重新导入。如果不想折腾最简单的方法是重新用Board Cutout功能手动画一个标准圆然后删掉导入的残留线条干净利落。5.4 快速检查Board Cutout与结构图是否一致在投板前我习惯做一个“叠加检查”将结构图和PCB放在同一个坐标系里坐标原点一致。在PCB上显示结构图的DXF层同时显示Board Cutout圆的中心十字坐标。用Reports→Board Information查看板框信息并逐一核对每个圆心的位置坐标。这个操作看起来繁琐但能提前发现90%的坐标误差问题。我吃过一次亏之后再也不敢跳过这个步骤了。5.5 常见问题速查表问题现象可能原因解决方案3D视图看不到孔Cutout画错层或者没有勾选Board Cutout属性选中圆检查Layer栏和Board Cutout属性Gerber里没有孔输出配置漏掉Keepout层或对应机械层在Gerber设置里勾选Keepout/对应机械层并映射Cutout孔位偏移单位混用或坐标粘贴错误用Q切换单位输入坐标时带单位后缀转换菜单灰色图元不是标准闭合圆/圆弧用标准ARC重画或者调整导入精度板厂不确认孔Keepout和机械层混用了两个圆只保留Board Cutout一种定义删除重复图形钻孔文件也出现该孔可能误用了Pad/Via表达非机械孔不要用Pad/Via表达非机械孔改用Board Cutout6. 从工程伦理角度聊聊为什么别把Keepout当开孔工具这个问题有点偏“理念”但恰恰是很多项目后期返工的根本原因。我必须直言用Keepout表达物理开孔是一种短期偷懒、长期埋雷的做法。Keepout在EDA工具里的核心定位是“规则约束区域”——它告诉Place和Route工具“不要在这里放东西”。当你把物理开孔也用Keepout表达时你就把两套信息混在一个图层里了。短期看只要板厂理解你的意思板子照样能做出来。但一旦设计文件需要做复用、需要走仿真、需要做DFM自动检查、需要交接给其他工程师Keepout上的“禁止区域圆”和“物理开孔圆”就无法被机器自动区分最终只能靠人工看图效率和质量全部压在人身上。Board Cutout的存在就是要把“物理形状信息”从“规则约束信息”里剥离出来。这是一种信息架构上的进步很接近我们做代码模块化时“单一职责原则”的思路——一个图层/一个对象只承担一种语义不要混装。实际项目里我见过一个射频板的设计文件里面的Keepout层上密密麻麻有四十多个圆有屏蔽罩的避让区域、有螺丝孔的禁布区、有导光柱的物理开孔。接手的新同事根本分不清哪些要铣穿、哪些只影响布线最后还是我去跟结构工程师和板厂逐个核对硬生生花了一整天。如果用Board Cutout区分这份文件至少可以节省80%的沟通时间。所以用Board Cutout承载“圆形非机械孔”的物理定义既是工具使用的正解也是让设计文件更清晰、更可交接的工程伦理问题。我建议从今天起所有新的PCB设计都强制自己使用这个功能习惯了之后你根本不会想回到“Keepout画圆交板厂”的原始时代。7. 我的实操习惯与建议最后再分享一点我个人的工作习惯。我做圆形Board Cutout的时候一定会顺手做三件事这三件事帮我省掉了后面大量跟板厂沟通的时间。第一件事在丝印层上标注孔的功能注释。比如在圆孔旁边放一个小的Text导光柱开孔, 按Board Cutout铣削, 直径6.4mm。文字不用大能看清就行。这个注释不是给Altium看的是给CAM工程师看的能减少误解。注意文字不要压在孔上否则最后丝印套不准会影响读取。第二件事在文档输出前跑一遍DRC里的Board Outline检查。Altium Designer的DRC可以检查板框相关的规则包括Board Cutout是否封闭、是否超出板框边界等。如果有不封闭的圆DRC会给你提示。跑完一遍DRC再出文件心里踏实很多。第三件事投板前用CAM350或Altium的Gerber预览功能看一遍输出结果。重点确认圆形轮廓在Gerber里的位置、半径、所在层都OK且不存在和板框重影、错位的情况。如果发现半径差了一丁点回到PCB里改完重出Gerber不要试图在CAM软件里“手动修一下”——那是自欺欺人。Board Cutout这个功能本身不复杂但把它用好、用对、用得顺手需要在实际项目中反复验证。我在多块量产板上用这套方法做圆形导光柱孔和传感器窗口孔板厂一次通过率明显提升连售后确认的邮件都少了很多。如果你也在为“如何精准创建一个圆形非机械孔”纠结希望这篇经验能让你少踩几个坑。