
1. 异形板框调整的核心痛点与解决思路搞过异形板框的人都知道这事儿在Altium Designer里说简单也简单说头疼也是真头疼。标准矩形板框随便画但一旦遇到圆弧过渡、多段折线、带内嵌槽孔的异形结构尤其是结构工程师丢过来一个CAD文件让你整体内缩0.5mm或者外扩1mm的时候如果还在用选中线条→拖动这种原始操作那基本就是在给自己找罪受。我见过太多人在这上面翻车——要么线条断了要么圆弧变形要么内缩之后尺寸对不上最后只能重新从CAD导一遍白白浪费大半天。这篇文章要聊的就是Altium Designer中异形PCB板框快速内缩与外扩的实战方法。核心解决三个问题第一如何在不破坏原有异形轮廓的前提下实现整体等距偏移第二内缩和外扩分别适用于什么场景参数怎么定第三操作过程中有哪些坑是文档里不会写的。适合已经能画基本板框、但对异形处理还不够熟练的PCB设计人员也适合想提升板框编辑效率的老手参考。先说清楚一个基本概念。PCB板框在Altium Designer里本质上就是闭合的Polyline折线或Arc圆弧组合它定义在Keep-Out Layer或者Mechanical Layer上。所谓内缩就是让整条轮廓线向板子内部等距偏移一个距离外扩则相反向外部等距偏移。听起来像是CAD里的Offset命令对吧Altium Designer确实有类似功能但入口藏得比较深而且对异形轮廓的处理有一些限制条件不搞清楚这些条件操作就会失败。为什么板框内缩和外扩这么重要实际项目中至少有三类场景会频繁用到。第一类是结构配合外壳卡槽要求PCB边缘与壳体之间留0.3~0.5mm间隙结构工程师给的初始轮廓是理论值实际投板时需要内缩。第二类是拼板需求多块小板拼在一起时V-Cut或者邮票孔的位置需要板框外扩来预留工艺边。第三类是安规间距高压区域要求板边到走线有最小距离板框需要内缩来保证爬电距离。这三类场景对精度的要求不同操作方式也有差异后面会逐一展开。我个人的习惯是拿到异形板框后先不急着改而是先做三件事确认轮廓是否闭合、确认线宽是否统一、确认图层归属是否正确。这三步看起来简单但90%的偏移失败都跟这三件事有关。轮廓不闭合偏移命令直接报错线宽不统一偏移后的间距会不均匀图层归属混乱偏移出来的线条可能跑到错误的层上。所以别嫌麻烦前期检查五分钟后面省心两小时。2. 板框内缩的完整操作流程与参数计算2.1 内缩前的轮廓预处理内缩操作能不能成功预处理占七成。Altium Designer的板框偏移功能对轮廓的干净程度要求很高什么叫干净就是首尾闭合、无重复线段、无零长度线段、圆弧与直线相切处无断点。我一般用以下步骤来检查选中板框所有线条按快捷键CtrlH或者菜单Edit → Select → All on Layer确保只选中了板框所在的层。打开Panels → PCB List面板查看选中对象的类型和数量。正常的异形板框应该是若干条Polyline和Arc的组合如果出现了Region或者Fill说明轮廓里混入了填充对象需要先清理。用Tools → Design Rule Check跑一遍重点看是否有Open-ended track或者Short-circuit的报错。板框不闭合的话这里会明确提示。注意很多人习惯在Keep-Out Layer上画板框但实际上从AD 18版本之后官方推荐用Mechanical Layer来定义板框Keep-Out Layer更多用于定义禁布区。如果你用的是老版本或者公司有统一规范按规范来就行但偏移操作本身跟图层关系不大关键是轮廓要闭合。预处理还有一个容易被忽略的点线宽。板框线的线宽本身不影响板子外形因为板厂是按照线条的中心线来切割的。但在做偏移计算时Altium Designer默认是按照线条中心线来偏移的所以如果你希望内缩后的实际板边距离原始板边是0.5mm那偏移距离就填0.5mm不需要加减线宽。这一点跟CAD的Offset逻辑一致但跟某些EDA工具不同别搞混了。2.2 使用Convert功能实现等距内缩Altium Designer没有直接的Offset命令但有一个等效的功能藏在Tools → Convert菜单里。具体操作路径是选中板框的所有线条确保是闭合轮廓。菜单栏Tools → Convert → Create Board Outline from Selected Primitives。这个命令原本是用来从选中的线条生成板框的但它有一个隐藏特性如果选中的轮廓已经是一个板框执行后会生成一个向内偏移的副本。不过这个特性在不同版本里表现不一致AD 20之后的版本更稳定。更可靠的方法是使用Outline Selected Objects功能。操作如下选中板框轮廓。按CtrlC复制然后CtrlV粘贴到同一位置或者用Edit → Duplicate。选中复制出来的轮廓在Properties面板中找到Outline选项设置Outline Width为你想要的内缩距离。然后使用Tools → Convert → Create Region from Selected Primitives将轮廓转换为Region。最后再Tools → Convert → Create Board Outline from Selected Region这样就得到了一个内缩后的板框。这个方法听起来绕但实测下来最稳定尤其是对复杂异形轮廓。原理是先把线框转成面域面域再转回线框时Altium Designer会自动按照面域的边界生成新的轮廓线而面域的边界就是你设置的Outline Width的内边缘。2.3 内缩距离的计算与验证内缩距离怎么定这不是拍脑袋决定的要根据具体场景算。以结构配合为例假设外壳内壁尺寸是100mm×80mmPCB外形要求单边留0.4mm间隙那么板框内缩距离就是0.4mm。但这里有个细节外壳内壁的尺寸公差。如果外壳是注塑件公差通常在±0.2mm左右那你的间隙就不能只留0.4mm至少要留0.6mm才能保证装配不干涉。所以内缩距离 理论间隙 公差余量。验证内缩结果是否正确我一般用两种方法。第一种是测量法在Reports → Measure Distance里测量原始板框和内缩后板框之间的垂直距离抽查几个关键位置看是否等于设定的内缩值。第二种是叠图法把内缩后的板框导出为DXF跟原始板框的DXF在CAD里叠在一起一眼就能看出偏移是否均匀。第二种方法更直观尤其是对圆弧段和斜线段测量法可能因为取点位置不同而有误差。实操心得内缩操作完成后建议把原始板框保留在一个单独的Mechanical Layer上作为参考不要直接删除。后续如果结构有变更你还能对比原始轮廓快速调整。我通常会把原始轮廓放在Mechanical 2层内缩后的板框放在Mechanical 1层Keep-Out Layer单独用来画禁布区这样层次清晰后期改板不容易乱。3. 板框外扩的实战方法与工艺边预留3.1 外扩与内缩的本质区别外扩和内缩在操作逻辑上是对称的但实际处理时有几个关键差异。第一外扩后的轮廓可能超出原始设计区域如果原始板框已经靠近图纸边缘外扩后可能会跟其他对象重叠需要提前检查。第二外扩通常用于拼板工艺边工艺边的宽度有行业标准一般是5mm或10mm不是随便定的。第三外扩后的板框需要重新定义原点否则后续拼板时坐标会对不上。Altium Designer里做外扩最直接的方法是先内缩一个负值。没错偏移距离填负数就是外扩。但前提是你的操作方法是基于Region转换的那种如果是直接拖动线条填负值是不生效的。所以我还是推荐用前面说的Region转换法把Outline Width设为负值比如-1mm生成的就是外扩后的轮廓。不过外扩有一个特殊情况如果原始板框有内嵌的槽孔比如异形板中间的镂空区域外扩时槽孔应该缩小而不是扩大。这时候就不能整体偏移了需要单独处理。我的做法是先把外轮廓和内槽孔分开外轮廓做外扩内槽孔做内缩然后再合并成一个完整的板框。这个过程在AD里操作起来比较繁琐如果槽孔形状复杂建议直接在CAD里处理完再导入。3.2 拼板工艺边的外扩参数拼板是外扩最常见的应用场景。假设你有一块50mm×30mm的小板要做成2×2拼板每块板之间留2mm间距四周加5mm工艺边。那么外扩的计算如下单块板尺寸50mm×30mm拼板后阵列尺寸2×50 2 102mm横向2×30 2 62mm纵向加工艺边后总尺寸102 5×2 112mm横向62 5×2 72mm纵向所以在Altium Designer里你需要先复制出4块板框按间距排列好然后选中所有板框的外轮廓整体外扩5mm。注意这里外扩的是拼板后的整体外轮廓不是单块板。如果搞错了对象工艺边就会加到每块小板之间那就乱套了。注意拼板外扩后V-Cut的位置需要单独标注。V-Cut线通常放在Mechanical Layer上宽度设为0板厂会根据这条线来切割。邮票孔的位置也要在外扩后的板框上重新标记孔间距一般是0.5mm~1mm孔径0.3mm~0.5mm具体看板厂工艺能力。3.3 外扩后的DRC检查要点外扩完成后必须重新跑DRC。重点检查三项第一板框是否仍然闭合外扩操作有时会在圆弧段产生微小断点肉眼看不出来但DRC会报错。第二外扩后的板框是否与禁止布线区冲突如果Keep-Out Layer上有禁布区外扩后板框可能侵入禁布区导致DRC报Board outline violation。第三工艺边上的mark点、定位孔是否被覆盖这些辅助对象通常放在板框外侧外扩时要确保它们没有被新板框吞掉。我踩过的一个坑是外扩后忘记更新板子的原点结果导出Gerber时坐标偏移了一大截板厂反馈说文件对不上。后来养成的习惯是每次板框调整后都用Edit → Origin → Set重新设定原点一般设在板框的左下角或者拼板后的左下角这样后续所有坐标都以此为基准不会乱。4. 异形板框调整中的常见问题与排查技巧4.1 偏移后圆弧变形或断裂这是异形板框调整中最常见的问题。原因通常有三个圆弧的圆心角太小、圆弧与直线的连接处没有真正相切、偏移距离大于圆弧半径。前两个是几何问题第三个是参数问题。如果圆弧的圆心角小于5度偏移后Altium Designer可能会把它当成直线处理导致形状失真。解决办法是先把小圆弧合并成一条Polyline或者手动调整圆弧的端点。如果圆弧与直线不相切偏移后连接处会出现尖角或者断点这时候需要用Tools → Convert → Create Arc from Selected Primitives重新拟合。偏移距离大于圆弧半径的情况比较少见但一旦发生圆弧会直接消失或者翻转。比如一个R0.5mm的圆角你内缩0.6mm这个圆角就没了。所以内缩距离一定要小于最小圆弧半径这是硬性约束。如果结构要求内缩距离必须大于最小圆角半径那就只能先把圆角改大或者接受圆角消失后重新倒角。4.2 偏移后线条不闭合线条不闭合的根源通常是原始轮廓就有问题只是偏移操作把它放大了。排查步骤在PCB List面板中筛选出所有Polyline和Arc按端点坐标排序检查相邻线条的端点是否重合。如果端点不重合用Edit → Move → Drag手动把端点拖到一起或者用Tools → Interactive Routing重新连一段线。检查是否有零长度线段起点和终点坐标相同这种线段在偏移时会变成点导致轮廓断开。用PCB List按长度排序把长度为0的线段删掉。实操心得我一般会在偏移之前先用Tools → Design Rule Check跑一遍把Open-ended track的报错全部解决掉。这个检查比肉眼靠谱得多尤其是对复杂的异形轮廓肉眼根本看不出哪里断了。4.3 偏移距离不均匀偏移距离不均匀的表现是有些地方偏移了0.5mm有些地方偏移了0.3mm。这通常是因为原始轮廓的线宽不统一。Altium Designer在偏移时如果线条的线宽不同偏移的基准线会发生变化。解决办法很简单在偏移之前把所有板框线条的线宽统一设置为同一个值比如0.1mm。线宽本身不影响板子外形但会影响偏移的基准所以统一线宽是必须的。另一个可能的原因是轮廓中混入了不同图层的对象。比如有些线条在Mechanical 1层有些在Mechanical 2层偏移时Altium Designer会分别处理导致偏移距离不一致。解决办法是先把所有板框线条移到同一层再执行偏移。4.4 常见问题速查表问题现象可能原因排查方法解决方案偏移命令报错轮廓不闭合DRC检查Open-ended track手动闭合或重新连线圆弧变形圆心角过小或不相切测量圆弧角度和切点合并圆弧或重新拟合偏移距离不均匀线宽不统一或图层混乱PCB List查看线宽和图层统一线宽和图层偏移后轮廓消失偏移距离大于圆弧半径检查最小圆弧半径减小偏移距离或改大圆角外扩后DRC报错板框侵入禁布区检查Keep-Out Layer调整禁布区或板框导出Gerber坐标偏移原点未更新对比原始坐标重新设定原点5. 高效操作的习惯与版本差异提醒5.1 我常用的快捷键与操作习惯在Altium Designer里做板框调整有几个快捷键能大幅提升效率。CtrlH选中同层所有对象ShiftClick加选E→S→A全选E→O→S设置原点。偏移操作本身没有默认快捷键我一般会在Preferences → Shortcuts里自定义一个比如CtrlShiftO绑定到Tools → Convert → Create Region from Selected Primitives这样操作起来快很多。另一个习惯是分层管理。原始板框放Mechanical 2层内缩/外扩后的板框放Mechanical 1层Keep-Out Layer只画禁布区尺寸标注放Mechanical 3层。这样任何时候打开PCB文件一眼就能看出哪层是哪层不会搞混。尤其是多人协作的项目分层清晰能省掉很多沟通成本。5.2 不同版本的行为差异Altium Designer的板框偏移功能在不同版本里差异挺大的。AD 17及之前的版本Tools → Convert菜单里的选项比较少偏移操作主要靠手动拖动或者脚本。AD 18到AD 20Create Board Outline from Selected Primitives功能逐渐稳定但Region转换法还是最可靠的。AD 21之后的版本官方加入了更智能的轮廓识别偏移操作的成功率明显提高但偶尔还是会有圆弧处理不完美的情况。如果你用的是AD 24或更新版本可以试试Design → Board Shape → Define from selected objects这个路径它比老版本的Convert菜单更直观。不过核心逻辑没变先确保轮廓闭合且线宽统一再执行偏移最后验证结果。版本只是操作入口不同底层原理是一样的。注意如果你在团队里协作建议统一Altium Designer的版本。我遇到过因为版本差异导致板框偏移结果不一致的情况AD 19里偏移0.5mm没问题AD 22里同样的操作偏移出来是0.48mm虽然差别很小但对高精度板子来说就是不合格。统一版本能避免这类问题。5.3 脚本自动化批量处理多个板框如果一个项目里有多个异形板框需要调整手动操作就太慢了。Altium Designer支持脚本自动化用DelphiScript或者VBScript可以批量执行偏移操作。我写过一个简单的脚本逻辑是遍历当前PCB文档中所有Mechanical Layer上的闭合轮廓对每个轮廓执行Region转换和偏移最后输出偏移后的板框到指定层。脚本的核心代码大概是这样// DelphiScript 示例批量内缩板框 Procedure OffsetBoardOutlines(OffsetValue : Double); Var Board : IPCB_Board; Iterator : IPCB_BoardIterator; Track : IPCB_Track; Begin Board : PCBServer.GetCurrentPCBBoard; Iterator : Board.BoardIterator_Create; Iterator.AddFilter_ObjectSet(MkSet(eTrackObject)); Iterator.AddFilter_LayerSet(MkSet(eMechanicalLayer1)); Track : Iterator.FirstPCBObject; While Track Nil Do Begin // 对每条Track执行偏移逻辑 // 实际代码需要处理闭合轮廓的识别和Region转换 Track : Iterator.NextPCBObject; End; Board.BoardIterator_Destroy(Iterator); End;这个脚本只是框架实际使用需要补充轮廓闭合判断和Region转换的代码。但思路是通用的批量操作的核心是识别闭合轮廓然后对每个轮廓独立执行偏移。如果脚本写起来太复杂也可以考虑用Python配合Altium的API不过那就需要额外的环境配置了。5.4 与CAD协同的工作流建议很多异形板框最初是在CAD里画的导入Altium Designer后需要调整。我的建议是如果偏移操作比较简单比如整体内缩一个固定值直接在Altium Designer里做如果偏移涉及复杂的局部调整回CAD里做更高效。CAD的Offset命令对异形轮廓的处理比Altium Designer成熟得多尤其是带样条曲线的轮廓CAD里偏移几乎不会出问题。导入CAD板框时注意单位要统一。CAD默认可能是毫米Altium Designer导入时如果单位设成了mil尺寸会差25.4倍。导入后先用Reports → Measure Distance量一下关键尺寸确认无误后再做偏移。另外CAD里的样条曲线导入Altium Designer后会变成Polyline精度可能会损失如果对轮廓精度要求高建议在CAD里先把样条曲线转换成圆弧和直线的组合再导入。6. 个人实操体会与后续扩展方向板框内缩和外扩这件事说到底是个熟练工种。我第一次做异形板框内缩的时候折腾了两个小时才搞定中间还因为轮廓不闭合反复报错。后来做多了发现核心就三步检查闭合、统一线宽、Region转换偏移。这三步做到位95%的异形板框都能顺利处理。剩下的5%是极端情况比如自相交轮廓或者带孔洞的复杂形状那就需要单独处理没有万能方法。我个人的经验是不要迷信工具的一键操作。Altium Designer的板框功能虽然一直在改进但对异形轮廓的支持还是不如CAD。如果时间充裕回CAD里做偏移再导入反而更快更准。如果时间紧就用Region转换法在Altium Designer里硬做但一定要留出验证的时间别偏移完就直接投板。后续如果大家对这个话题感兴趣可以进一步聊聊拼板时的板框处理技巧比如V-Cut和邮票孔的混合拼板怎么画板框或者刚柔结合板的板框定义那个比普通异形板框复杂得多涉及软板区域的轮廓处理和弯折线的标注。这些内容展开又是一大篇有机会再单独写。