
1. 尺寸标注在PCB设计流程中的真实定位很多人把尺寸标注当成出图前顺手补的一道工序觉得板子画完了、DRC过了标注随便拉几根线就行。我在带新人的时候发现十个人里有八个是这么想的结果到了结构工程师那边对不上孔位或者产线反馈拼板间距不够回头再改标注、再出图一来一回半天就没了。尺寸标注这件事本质上不是画完板子之后的装饰而是设计意图向下游传递的接口。你标的每一个尺寸结构要拿去核对装配、工艺要拿去排拼板、采购要拿去确认器件占位任何一处含糊都会在后续环节被放大。Allegro在这块的能力其实相当完整只是入口藏得比较深默认界面里不会把尺寸标注工具摆在你面前。它把标注体系拆成了几个独立的维度线性尺寸、角度尺寸、半径/直径、引线标注分别对应不同的对象类型和精度要求。更关键的是这些标注不是画在某个注释层上就完事了它们需要挂到正确的Board Geometry子类下否则出光绘的时候要么不显示要么和丝印混在一起分不开。我见过最典型的事故就是标注画在了Silkscreen层结果光绘出来和器件位号叠在一起产线根本看不清。所以这篇内容我打算按实际工作流来拆先搞清楚Allegro的标注体系到底怎么组织的再讲具体怎么标、标在哪一层然后是精度和单位这些容易翻车的细节最后聊几个用Skill脚本批量处理标注的思路。适合已经能画板子、但对出图规范性还没什么概念的工程师也适合想把手动标注流程自动化的人。看完你至少能做到标注画得对、层放得准、出图不返工。2. Allegro标注体系的三个关键维度2.1 标注对象与标注类型的对应关系Allegro里的尺寸标注不是一种通用工具它按你标注的对象类型分成了几套逻辑。你标一条板边、标两个孔的中心距、标一段圆弧的半径用的命令和参数都不一样。这个设计逻辑其实很合理——不同类型的尺寸精度要求、显示方式、关联对象都不同硬塞进一个工具反而容易出错。具体来说常用的标注类型有这么几类Linear Dimension线性标注最常用的一类标两点之间的水平、垂直或对齐距离。板框尺寸、孔间距、器件占位宽度都用它。Angular Dimension角度标注标两条线或三个点构成的角度异形板框、斜边连接处会用到。Radial/Diameter Dimension半径/直径标注圆弧、圆孔的半径或直径安装孔、定位柱经常需要。Leader Line引线标注不直接标尺寸而是拉一条引线指向某个特征旁边写文字说明。比如标注某个区域的特殊工艺要求。这四类里线性标注占了日常工作的八成以上。但恰恰是它参数最多、最容易标错。后面我会重点拆它的设置逻辑。2.2 Board Geometry下的标注层规划这是很多人忽略的一步。Allegro的标注默认会放到你当前激活的层如果你没提前规划好标完才发现全堆在Silkscreen上那就得一个个改层非常痛苦。正确的做法是在动手标注之前先在Board Geometry下建好专用的标注子类。我的习惯是至少建三个子类名称用途出光绘时的处理DIMENSION常规尺寸标注单独出一层供结构核对DIMENSION_DRILL孔位、钻孔相关标注和钻孔图一起出DIMENSION_ASSY装配相关标注给装配图用建子类的方法很简单在Allegro的Class/Subclass面板里选中Board Geometry右键新建Subclass输入名称即可。关键是在标注之前就把当前层切到对应的子类这样标出来的东西直接就在正确的层上。提示不要图省事把所有标注都放一个层。后期如果结构要单独看孔位标注你还得手动筛选工作量翻倍。2.3 单位与精度的全局设定Allegro的标注精度不是标注时临时设的它跟着设计文件的全局单位走。你的板子如果是Mils单位标注默认就是Mils精度如果是Millimeter标注就是毫米精度。这个逻辑本身没问题但问题出在混用单位的场景。比如你的板子用Mils设计但结构工程师要的是毫米标注。这时候你有两个选择一是标注时手动换算二是改全局单位。手动换算容易出错改全局单位又会影响其他设计数据。我的建议是在标注层用单独的单位设置——Allegro允许你在标注命令的参数里覆盖全局单位标完的数值会按你指定的单位显示不影响设计本身。精度方面Mils单位下一般保留一位小数就够了毫米单位下保留两位。太高的精度没有实际意义反而让图纸显得杂乱。这个在标注命令的Text选项卡里可以设。3. 线性标注的完整操作链路3.1 从板框到孔位标注顺序为什么重要标注这件事顺序错了会做很多无用功。我踩过的坑是这样的先标了一堆器件间距后来板框微调了两毫米所有标注全部失效得重新标。后来我固定了一个顺序先标板框和安装孔再标关键器件定位最后标一般间距。原因很简单。板框和安装孔是整块板子的基准其他所有尺寸都是相对它们来的。基准一变上面的标注全废。所以先把基准标死确认结构那边没问题了再往下标。关键器件连接器、大芯片、散热器的定位尺寸是第二优先级因为它们和结构件直接相关。一般器件间距放最后就算变了影响也小。具体操作上标板框用Linear Dimension的对齐模式依次点板框的各个角点。Allegro会自动捕捉线段端点不用手动输坐标。标安装孔的时候用孔的中心点作为标注基准不要用孔的边缘——边缘会随孔径变化中心点才是稳定的。3.2 标注参数的逐项拆解Linear Dimension命令打开之后右边控制面板里有一堆参数很多人直接默认往下点结果标出来的东西不符合规范。我逐个说下关键项Accuracy精度前面提过Mils一位小数、毫米两位小数。这个值决定了标注文字显示到小数点后几位。Text Size文字大小默认值往往偏大或偏小。我的经验是标注文字高度设成板框线宽的3到5倍比较合适既能看清又不会喧宾夺主。具体数值看你的板子尺寸小板子用0.8mm左右大板子可以到1.5mm。Arrow箭头样式Allegro提供了实心箭头、空心箭头、斜线等多种样式。常规尺寸用实心箭头空间紧张的地方用斜线。这个没有硬性规定但同一块板子上最好统一别混着用。Extension Line延伸线标注线两端延伸到标注点的那些细线。可以设置延伸线超出标注线的长度以及和标注点之间的间隙。间隙太小会显得挤太大又显得散一般设成文字高度的0.5倍左右。Witness Line见证线有些标准里要求标注点处画一条短横线表示标注的起止位置。这个看你们公司的制图规范不是必须的。3.3 标注文字的编辑与避让标完之后文字位置不合适这是常态。Allegro允许你直接拖动标注文字到任意位置但拖的时候要注意保持标注的关联性。如果你只是移动文字标注线和箭头不动那没问题如果你把整个标注组都拖走了标注点就变了尺寸也就错了。编辑文字内容也是常见需求。比如自动标注出来的数值你想加个前缀REF表示参考尺寸或者加个公差范围。双击标注文字进入编辑模式可以直接改内容。但要注意手动改过的数值不会随设计更新。如果你改了板框标注线会跟着动但文字还是你手输的那个值。所以改文字之前想清楚这个尺寸后面还会不会变。避让方面Allegro没有自动避让功能得手动调。我的做法是标注完成后整体看一遍把叠在一起的文字错开把压在走线或器件上的标注线挪到空白区域。这一步花的时间不多但不做的话出图很难看。4. 那些让标注返工的细节陷阱4.1 标注层与光绘层的对应关系标注画完了出光绘的时候发现标注没显示出来或者显示在了错误的层上这是最常见的问题。根源在于光绘文件的层配置和标注所在的层没有对上。Allegro出光绘是在Artwork面板里配置的每个光绘文件对应一组层。如果你把标注放在了Board Geometry/DIMENSION下那光绘配置里就必须包含这个子类。很多人配置光绘的时候只选了Silkscreen、Soldermask这些常用层忘了加DIMENSION结果标注就丢了。我的做法是在Artwork里单独建一个DIMENSION光绘文件只包含Board Geometry下的标注子类。这样标注图可以单独出不和别的层混在一起。结构工程师要核对尺寸的时候直接给这个文件就行。注意如果你的标注需要和钻孔图一起看那就把标注子类和钻孔层放在同一个光绘文件里。具体怎么组合取决于你们下游怎么用这张图。4.2 单位换算引发的数值偏差前面提过单位混用的问题这里展开说下具体的坑。Allegro内部存储设计数据用的是固定单位但显示和标注可以切换单位。切换的时候会有舍入误差。举个例子你的板子用Mils设计某个尺寸是100Mils换算成毫米是2.54mm。这没问题。但如果尺寸是101Mils换算成毫米是2.5654mm标注显示两位小数就是2.57mm。结构那边按2.57mm去核对发现和他们的模型对不上差了一点点。这种误差在单个性尺寸上不明显但累积起来或者用在精密配合处就会出问题。解决办法是标注时统一用设计单位需要毫米的话在图纸上注明换算关系或者单独出一份毫米单位的标注图。不要在同一张图上混用两种单位。4.3 标注更新与设计变更的同步设计变更之后标注没更新这是另一个高频问题。Allegro的标注和设计对象之间是有关联的你移动了一个孔标注线会跟着动数值也会自动更新。但有两种情况例外一是你手动改过标注文字那这个标注就断开了自动关联设计变了它也不变。二是你删除并重新放置了被标注的对象比如删了一个孔又重新画了一个虽然位置一样但Allegro认为这是新对象旧标注找不到关联对象就会失效或显示错误。所以设计变更之后一定要检查一遍标注。我的习惯是改完板子之后把标注层单独打开看一遍确认所有数值都还对得上。这个检查花不了几分钟但能避免很多返工。5. 用Skill脚本批量处理标注的思路5.1 什么场景下值得写脚本不是所有标注工作都值得写脚本。如果你只是标几个板框尺寸手动点几下就完了写脚本的时间比手动还长。但以下几种场景脚本能省大量时间批量标注孔位一块板子上几十个安装孔每个都要标中心距和孔径手动标到手酸。标准化标注格式公司有统一的标注规范文字大小、箭头样式、精度都有要求每次手动设一遍很烦。标注检查和清理检查有没有标注画错层、有没有失效的标注、有没有重复标注。Skill脚本的优势在于它能直接访问Allegro的数据库读取对象属性、批量修改、自动判断。比如你可以写一个脚本遍历所有安装孔自动在孔中心之间生成线性标注并设置好统一的文字大小和精度。5.2 一个批量标注孔位的脚本框架下面这个框架展示了基本的思路实际使用时需要根据你的板子结构和命名规则调整; 批量标注安装孔中心距的脚本框架 ; 遍历所有安装孔按顺序标注相邻孔的中心距 procedure(batchDimensionHoles() let((holeList holeCount i dimObj) ; 获取所有安装孔对象 holeList axlDBGetDesign()-holes holeCount length(holeList) ; 切换到标注层 axlSetActiveLayer(BOARD GEOMETRY/DIMENSION) ; 设置标注参数 axlSetDimensionParams( ?textSize 1.0 ?accuracy 1 ?arrowStyle solid ) ; 遍历孔位标注相邻孔中心距 for(i 0 holeCount - 2 dimObj axlDimensionLinear( nth(i holeList)-xy nth(i1 holeList)-xy center ) ; 设置标注文字位置避免重叠 axlDimensionTextPosition(dimObj, list( (nth(i holeList)-x nth(i1 holeList)-x) / 2 (nth(i holeList)-y nth(i1 holeList)-y) / 2 2.0 ) ) ) axlMsgPut(批量标注完成共标注 %d 个尺寸 (holeCount - 1)) ) )这个脚本的核心逻辑是获取所有孔对象按位置排序然后依次标注相邻孔的中心距。实际使用中你可能需要按孔的X坐标或Y坐标排序或者只标注特定类型的孔。axlDimensionLinear是Allegro提供的标注创建函数参数分别是起点、终点和标注类型。5.3 脚本调试与常见报错处理Skill脚本调试最头疼的是报错信息不直观。常见的几个问题对象获取为空axlDBGetDesign()-holes返回空列表说明你的设计里没有孔对象或者孔的类型不对。Allegro里孔分好几种安装孔、过孔、定位孔属性不一样。你需要确认获取的是哪种。标注创建失败axlDimensionLinear返回nil通常是坐标点无效或者当前层不对。检查一下坐标是不是在板框范围内当前激活层是不是Board Geometry下的子类。文字位置重叠脚本自动算的文字位置可能和已有标注重叠。解决办法是在脚本里加一个简单的碰撞检测或者标注完之后手动调一遍。完全自动化的避让算法比较复杂一般不值得为标注这件事去写。调试的时候建议先用小批量数据测试比如只选前三个孔跑一遍确认没问题了再全量跑。Skill脚本一旦跑飞了可能会生成大量垃圾对象清理起来很麻烦。6. 标注完成后的自检清单标注做完之后别急着出图花五分钟过一遍下面这几项能省掉后面很多来回。层检查所有标注是不是都在Board Geometry的标注子类下有没有混在Silkscreen里的打开Color面板只显示标注层看有没有遗漏。数值检查随机抽几个标注用Measure工具量一下实际距离和标注值对一下。特别是手动改过文字的标注重点检查。单位检查整张图的标注单位是不是统一的有没有Mils和毫米混着显示的避让检查标注文字有没有压在走线、器件或板框上标注线有没有穿过焊盘光绘检查出光绘的时候标注层有没有包含进去单独出一张标注图打开看看显示是否正常。这几项检查加起来花不了几分钟但能避免90%的标注返工。我见过太多人标注画完直接出图结果被结构打回来重做浪费的时间远超这几分钟。7. 一些个人习惯和踩坑记录说几个我这些年养成的习惯不一定对所有人适用但至少在我这边没出过问题。标注之前先存盘。Skill脚本跑飞了或者手动操作失误还能退回去。Allegro的撤销步数有限大操作之前存盘是最稳妥的。标注层用醒目的颜色。默认的标注颜色和丝印太接近容易看混。我一般把标注层设成紫色或橙色和常用的丝印白色、走线绿色区分开。标注文字不要用默认字体。Allegro默认的矢量字体在某些光绘设置下会显示异常换成系统字体或者公司规范字体更稳。定期清理失效标注。设计改多了之后总有一些标注找不到关联对象变成孤立的文字。这些标注不会自动消失但会一直留在图上。我一般每周清理一次用Skill脚本批量删除没有关联对象的标注。最后说个真实的坑。有一次板子改版我移动了几个安装孔的位置标注线跟着动了数值也自动更新了看起来一切正常。出图之后结构那边反馈说孔位对不上。查了半天才发现有一个孔的标注是我手动改过文字的孔移动了但文字没变还是旧数值。从那以后我定了个规矩手动改过文字的标注在文字旁边加个星号标记改版的时候重点检查这些标注。这个习惯帮我避免了好几次类似的问题。标注这件事技术含量不算高但细节特别多。把层规划好、参数设对、改版后检查一遍基本就不会出问题。真正花时间的不是标注本身而是返工。