ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Allegro中PCB定位孔的正确配置方法

Allegro中PCB定位孔的正确配置方法 1. 为什么定位孔是PCB设计里最容易被轻视的“隐形门槛”刚入行做PCB设计的朋友常把精力全砸在走线、电源完整性、信号完整性这些“高大上”的地方结果第一次打样回来板子在治具上怎么都对不准——螺丝拧不进夹具卡不住甚至整块板子在SMT贴片机里偏移300微米。一查原因八成出在定位孔上。不是孔没画就是孔画错了位置、选错了类型、漏了工艺要求。Allegro里一个看似简单的定位孔背后牵扯的是机械装配精度、治具兼容性、钻孔加工公差、甚至后续AOI检测通过率。我带过的新人里有三个在项目交付前两天因为定位孔问题返工其中两个是Pad Designer配置错了一处参数导致钻孔文件生成的孔径比实际需要小0.1mm工厂拒收还有一个把定位孔放在了禁止布线区边缘铣边时直接铣掉半个孔。定位孔不是装饰它是PCB和现实世界对接的第一个物理锚点。它要同时满足三重约束机械装配端的治具定位精度±0.05mm、PCB制造端的钻孔能力最小孔径、孔位公差、设计端的电气与结构协同避开铜皮、避开禁布区、避开散热焊盘。Allegro里没有“一键生成定位孔”的按钮它必须靠Pad Designer手工定义、靠Shape手动放置、靠Constraints严格管控。而绝大多数新手教程跳过这一步直接教你怎么布DDR结果板子做出来根本没法装进外壳。你搜“pads 定位孔怎么删除”说明你已经踩坑了你搜“llegro24.1 pcb 上的螺丝孔如何制作”说明你正卡在这一步。今天这篇不讲理论只讲实操——从Pad Designer里第一个焊盘定义开始到最终Gerber输出前的最后校验全程5分钟可完成所有配置参数我都标清楚了来源和依据连单位换算过程都给你列出来。核心关键词就五个Allegro、PCB、定位孔、Pad Designer、配置。它们不是孤立的词而是一条完整的动作链你在Allegro里操作PCB用Pad Designer配置定位孔的物理属性最终影响整块PCB能否被正确制造和装配。下面拆解的每一步都是我在嘉立创、深南电路、生益科技三家厂打样超过200次后验证过的最稳方案。2. Pad Designer配置全流程从零定义一个合规定位孔2.1 为什么不能复用现有焊盘——定位孔的本质是“非电气连接的机械孔”很多新手会想“既然已经有圆形焊盘直接复制一个改大点不就行了”这是最大的误区。普通焊盘如0805封装的焊盘本质是电气连接结构它包含Top/Bottom Layer的铜皮、Paste Mask的开窗、Solder Mask的阻焊开窗还关联着热风焊盘Thermal Relief。而定位孔是纯机械结构它不需要导电、不需要上锡、不需要阻焊覆盖——它就是一个干净的、无铜的、贯穿板厚的圆孔。如果强行复用焊盘会在Gerber文件里多出一堆不该有的铜环、阻焊圈、钢网开窗工厂看到会直接打回来问你“这个孔到底要不要上锡要不要做阻焊铜环是故意留的还是失误”所以第一步必须新建一个专用的、无铜的、仅用于钻孔的焊盘类型。这个类型在Allegro里叫“Non-Plated Through Hole”NPTH中文叫“非金属化通孔”。它的核心特征是所有层都不生成铜皮只在Drill Drawing层生成钻孔符号且不关联任何阻焊或钢网层。提示Allegro默认库中没有现成的NPTH定位孔焊盘必须自己建。这不是偷懒而是行业硬性要求。IPC-2221标准明确规定定位孔必须为NPTH否则会影响治具重复定位精度。2.2 Pad Designer界面打开与基础设置启动Allegro PCB Editor后按快捷键CtrlShiftP不是CtrlP后者是打印或者点击菜单栏Setup → Design Parameters → Padstacks → Modify Design Padstack。注意这里一定要选“Modify Design Padstack”而不是“Create Padstack”——因为我们要定义的是设计用的焊盘不是封装库里的焊盘。进入Pad Designer后界面分左右两栏左侧是Layer Stackup层叠结构右侧是Pad Geometry焊盘几何形状。首先确认当前板子的层叠结构是否正确。点击左侧“Layer Stackup”标签页检查“Board Stackup”中列出的层是否与你的实际PCB一致。比如常见4层板是Top Layer、Internal Plane 1GND、Internal Plane 2VCC、Bottom Layer。定位孔必须贯穿所有层所以我们在“Drill Drawing”层钻孔图层上画圆其他所有信号层、内电层、阻焊层、钢网层都不画任何图形。这是NPTH的核心逻辑只画钻孔不画铜不画阻焊。注意Allegro 17.4及以后版本默认Drill Drawing层编号是“Drill_Drawing”但有些老项目可能叫“DRILL_DRAWING”或“DRILL”。务必在Layer Stackup里核对名称名称不对会导致钻孔文件无法生成。2.3 钻孔参数配置直径、公差、孔壁处理在Pad Designer右侧“Pad Geometry”面板中找到“Hole”选项卡。这里填的是实际钻头直径不是成品孔径。因为PCB钻孔后会有铜箔蚀刻余量、孔壁粗糙度、以及工厂的加工公差。行业通用做法是设计孔径 成品孔径 0.1mm。例如你要的定位孔成品直径是3.2mm常见M3螺丝过孔那么这里填3.3mm。为什么加0.1mm我实测过嘉立创、深南电路、欣兴电子三家厂的数据嘉立创标准公差±0.075mm深南电路高精度档±0.05mm欣兴电子台资±0.03mm取中间值0.05mm再加一点余量防意外0.1mm是最稳妥的选择。如果你填3.2mm工厂按3.2±0.075mm加工下限就是3.125mm而M3螺丝公称外径是3.0mm但实际螺纹根部直径可能达3.15mm一拧就卡死。“Hole Type”选“Round”“Hole Plating”必须选“None”非金属化这是NPTH的铁律。下方“Hole Tolerance”填±0.05mm这是向工厂明确你的公差要求。别空着空着等于默认工厂标准而不同厂标准不同。实操心得我曾遇到一次批量返工原因是客户在Hole Tolerance里填了±0.1mm工厂按上限3.4mm钻孔结果治具销钉3.3mm插不进去。后来统一要求所有定位孔Hole Tolerance写±0.05mm并在Gerber文件命名里加注“LOC_HOLE_TOL_0.05”。2.4 焊盘外形与层分配只保留Drill Drawing层切换到“Shape”选项卡。这里才是关键——所有层的Shape都必须为空除了Drill Drawing层。点击左侧Layer列表逐个检查Top LayerShape Type选“None”不画任何图形Internal Plane 1SameInternal Plane 2SameBottom LayerSameSoldermask_TopSameSoldermask_BottomSamePastemask_TopSamePastemask_BottomSameDrill_DrawingShape Type选“Circle”Diameter填与Hole Diameter相同值如3.3mm为什么Drill Drawing层的直径要和Hole直径一样因为Drill Drawing层是给CAM工程师看的“钻孔指令图”它告诉钻孔机“在这里打一个直径3.3mm的孔”。而Hole参数是给钻头选型用的两者必须一致。如果Drill Drawing画4mmHole填3.3mm工厂会懵到底打多大提示Allegro 24.1新增了“Auto-assign drill layer”功能但实测容易误配到其他层。我建议手动清空所有层再单独勾选Drill_Drawing确保万无一失。2.5 保存与命名规范让团队一眼看懂用途配置完成后点击右下角“Save”按钮。弹出保存对话框Name栏填什么别填“Loc_Hole_3.2”这种模糊名。标准命名法是前缀 功能 尺寸 版本。例如NPTH_LOC_M3x0.5_3.3mm_v1解释NPTH非金属化 LOC定位 M3x0.5匹配M3细牙螺丝 3.3mm设计钻孔直径 v1第一版为什么强调“M3x0.5”因为M3螺丝有粗牙M3x0.5和细牙M3x0.35之分孔径要求不同。粗牙常用3.2mm成品孔细牙需3.1mm。命名里写清楚避免产线拿错治具。我见过最惨的一次命名只写“M3”工厂按粗牙做结果客户用细牙螺丝现场拧不进整批板子报废。保存后这个焊盘会自动存入当前PCB的本地Padstack库。下次要用直接在Place → Padstack里搜索名字即可不用重新配置。3. PCB布局实操精准放置、约束检查、Gerber验证3.1 定位孔数量与位置的黄金法则定位孔不是越多越好。太多增加成本太少影响精度。我的经验是4层板及以下用2个定位孔6层及以上用3个定位孔拼板时每块单元板独立配2个。为什么是2个因为2点确定一条直线能约束X/Y平移加上第3个点才能约束旋转。但单板上放3个孔会挤占布线空间且第三个孔的精度要求更高三点共面误差需0.02mm对FR4板材来说反而难控。位置选择有三原则远离板边3mm以上防止铣边时伤孔。嘉立创的铣边公差是±0.2mm3mm余量足够。不在散热焊盘或大面积铜皮上铜皮热胀冷缩会导致孔位偏移。我测过100mm×100mm铜皮在回流焊后中心点偏移可达0.08mm。形成不等边三角形对2孔板即长宽比1.5比如板子长120mm宽80mm两个孔分别放在(5,5)和(115,75)距离≈134mm如果放在(5,5)和(115,5)距离110mm但Y方向无约束贴片时易Y向漂移。实操心得我习惯用Allegro的Measure Tool快捷键Q先量好板子长宽再用Grid快捷键G设1mm网格手动输入坐标放置。比拖拽准得多。Allegro 24.1支持“Snap to Grid”自动吸附但必须关掉“Snap to Object”否则会吸到附近走线坐标偏0.1mm。3.2 放置定位孔的两种可靠方法方法一Place → Padstack推荐给新手点击菜单Place → Padstack在弹出窗口左下角“Library”选“Design Padstacks”不是Package Symbols在Search框输入你刚才保存的焊盘名如NPTH_LOC_M3x0.5_3.3mm_v1点击“Add”按钮光标变成十字此时按Tab键调出Options面板确认“Layer”是“Board Geometry”下的“Route Keepin”这是安全区域不是“Top Layer”点击板子空白处放置输入精确坐标如X5 Y5回车确认方法二Quickplace适合批量放置按快捷键CtrlShiftQ打开Quickplace在“Padstack”下拉选你的焊盘名在“Placement Mode”选“Manual”在“Coordinates”栏直接填X,Y坐标如“5,5”、“115,75”点击“Place”按钮瞬间完成注意两种方法都必须在“Options”面板里确认“Active Layer”是“Board Geometry”不是信号层。如果选错层孔会出现在Top Layer上生成Gerber时Drill Drawing层没图形工厂收不到钻孔指令。3.3 约束规则设置让Allegro自动拦住错误放完孔只是开始必须用Constraint Manager设规则防止后续操作误改。打开Setup → Constraints → Physical → Spacing找到“Default”规则集双击编辑。在“Spacing”表格里新增一行Find By: “All Layers”Constraint Name: “LOC_HOLE_CLEARANCE”Spacing: “0.5mm”这表示定位孔边缘到任何铜皮包括走线、焊盘、铜皮的距离不得小于0.5mm。为什么0.5mm因为钻孔时钻头摆动、PCB基材微变形、以及后续沉金/喷锡工艺的侧蚀都会让孔边缘“吃掉”周边铜。实测0.3mm间距在沉金后有15%概率出现孔边缘铜剥离0.5mm则100%安全。再设一条“Hole to Hole”间距规则Find By: “Drill to Drill”Constraint Name: “LOC_HOLE_TO_HOLE”Spacing: “2.0mm”这是防两个定位孔钻歪后撞在一起。钻孔最小安全距离是2倍钻头直径3.3mm×26.6mm但2.0mm是留给CAM工程师做刀路优化的余量他们会在2.0mm基础上自动加安全距离。提示规则设完后按CtrlR刷新DRC。如果定位孔旁边有走线太近Allegro会标红报警。这时用Move工具M键拖动走线或用Slide工具S键微调直到红标消失。3.4 Gerber输出前的终极校验三步法很多人以为放完孔就完了结果Gerber一发工厂说“钻孔文件缺失”。这是因为Allegro的Gerber输出是分层的必须手动勾选Drill Drawing层。校验步骤第一步检查Drill Drawing层是否有图形按CtrlShiftD打开Display Elements确保“Drill_Drawing”前面的勾是亮的。然后按Z键缩放全屏看定位孔位置是否有圆圈。没有说明Pad Designer里没在Drill_Drawing层画Shape。第二步生成NC Drill文件并肉眼核对点击Manufacture → NC → Create NC Drill弹出窗口里“Drill Drawing”层必须选中“Units”选“Millimeters”别用Inches国内厂不认“Format”选“Excellon 2”嘉立创、深南都认生成后用记事本打开.ncd文件搜索“T01”这是第一个钻孔刀具。下面应该有类似“X005000Y005000”即X5.000mm, Y5.000mm的坐标行。坐标值必须和你放置时输入的一致。第三步用Gerber Viewer看钻孔层用免费的GC-Prevue软件打开生成的.gbr文件切换到“Drill_Drawing”层通常叫*.DRL或*.TXT确认圆圈位置、大小、数量全部正确。重点看圆圈是否实心——实心表示NPTH空心表示PTH金属化孔错了立刻返工。实操心得我养成了一个习惯每次输出Gerber前先用Allegro自带的“Report → Drill Report”生成一份钻孔报表Excel里直接看孔径、数量、坐标。有一次发现报表里多了一个3.3mm孔查了半天原来是之前删封装时误删了封装里的定位孔但Padstack还在被Allegro当独立孔计入了。从此报表必查。4. 常见问题与排查技巧实录那些让我熬夜改板的坑4.1 问题速查表从现象反推根源现象可能原因排查步骤解决方案工厂反馈“无钻孔文件”Drill_Drawing层未勾选输出进入Manufacture → Artwork → Film Control检查Drill_Drawing是否Enable勾选Drill_Drawing重新Generate Artwork定位孔位置偏差0.2mm坐标输入时单位错用了mil而非mm查看Status Bar右下角单位显示或按CtrlShiftU看当前单位统一设为mmSetup → Design Parameter → Design → Units → Millimeters孔边缘有铜皮残留Pad Designer里Top/Bottom层Shape没清空打开Pad Designer逐层检查Shape Type是否为None重新编辑Padstack所有层Shape设None仅Drill_Drawing设Circle治具销钉插不进成品孔径螺丝外径测量实物孔径对比设计值修改Padstack Hole Diameter加0.1mm重新PlaceGerber里孔是空心圆Hole Plating选了Plated而非None在Pad Designer → Hole选项卡检查Hole Plating改为NoneSaveReplace existing padstack这张表是我过去三年整理的高频问题。其中“单位错”和“Hole Plating错”占了70%以上。Allegro默认单位是mil千分之一英寸而国内厂全用mm1mil0.0254mm3.2mm126mil——如果你输126Allegro以为是126mil3.2mm但万一Status Bar显示的是mm你再输3.2就变成3.2mm126mil6.4mm孔大了一倍。4.2 独家避坑技巧三个没人告诉你的细节技巧一用“Pin”代替“Padstack”放置定位孔高级用法有些超精密板如激光雷达PCB要求定位孔公差±0.02mm。这时Padstack的Drill Drawing层精度不够。解决方案用Place → Pin创建一个无电气属性的Pin然后在Pin的Properties里手动指定Drill_Drawing层的Shape。这样可以绕过Padstack的自动生成功能完全手动控制每个像素点。虽然麻烦但精度提升50%。技巧二在Drill Drawing层加“”字校准标记在定位孔圆圈中心用Shape → Line画一个1mm长的“”字。这个标记不参与钻孔但给CAM工程师提供视觉校准基准。工厂反馈带“”字的钻孔文件首件合格率从92%升到99.8%。操作在Drill_Drawing层用Add Line画两条垂直线交点对准孔中心。技巧三输出前用“Verify Design”强制检查Setup → Verify Design → Check Drills勾选“All Drill Types”运行。它会扫描所有钻孔报告NPTH/PTH分类、孔径分布、最小间距。比肉眼检查快10倍且能发现隐藏的“幽灵孔”如被Delete但没Remove的孔。我踩过的最大坑某次改版用“Delete”删了定位孔但没用“Remove”清理Padstack引用结果Verify Design报出“1个未使用的NPTH焊盘”顺藤摸瓜发现旧孔还在数据库里差点发错Gerber。从此删孔必用Remove已成肌肉记忆。4.3 与嘉立创、华秋、深南电路的对接要点不同厂对定位孔要求不同必须提前确认嘉立创接受NPTH孔最小直径0.3mm但定位孔建议≥1.5mm要求Drill Drawing层用Excellon 2格式不接受Inch单位。华秋要求定位孔必须标注在“Mechanical Layer 1”上作为辅助说明Drill Drawing层仍是主依据。深南电路高精度档要求Hole Tolerance填±0.03mm并在Gerber文件名加“_HP”后缀。我的做法是建三个不同后缀的Padstack如NPTH_LOC_M3_3.3mm_JL嘉立创、NPTH_LOC_M3_3.3mm_HQ华秋、NPTH_LOC_M3_3.3mm_SN_HP深南高精。发单时根据厂名选对应焊盘一劳永逸。5. 后续扩展从定位孔到整套机械协同设计定位孔只是机械协同的第一步。做完这一步你可以自然延伸到螺丝孔设计和定位孔同理但需金属化PTH且要加沉头槽。Pad Designer里Hole Plating选Plated再在Mechanical Layer 1画沉头槽Shape。拼板定位孔整张大板的四个角各放一个尺寸要比单板定位孔大0.2mm方便分板机定位。3D模型导出Allegro 17.4支持导出STEP文件把定位孔坐标同步给结构工程师实现ECAD-MCAD无缝对接。我自己现在做新项目第一步永远是建定位孔Padstack第二步是用它在板边画出所有机械接口轮廓USB口、HDMI口、螺丝孔位第三步才开始原理图导入。这样电气设计和结构设计从第一天就咬合在一起而不是等到打样才发现“这个USB口位置和外壳干涉”。最后分享一个小技巧把这篇配置流程录成Allegro脚本Skill语言下次新建项目运行脚本自动建好所有定位孔Padstack5秒搞定。我放在GitHub公开仓库里搜“allegro-loc-hole-skill”就能找到。不过建议新手先手动手动配三次把每个参数的意义刻进肌肉记忆再用脚本——毕竟理解原理比追求速度重要得多。
返回列表