
做 PCB 设计时很多人对“根据坐标放置器件”这件事的理解就是选中器件输入两个数字完事。但在实际产品中这个操作远没有表面上那么简单。板边连接器的位置要对准结构外壳的开口按键要顶住面板的孔位LED 要对准导光柱这些器件少放 0.5mm装配时就可能压歪、卡壳甚至导致一版结构件直接报废。更关键的是PCB 设计文件是 SMT 贴片机的坐标来源器件在板上的实际坐标会被直接导出给产线。设计阶段坐标不准到了贴片环节才会暴露问题那时候返工代价就大了。这篇文章要写的是 Cadence Allegro X 24.1 中文界面下如何根据坐标精确放置器件。我会从坐标系、原点设置、手动输入坐标、批量导入坐标文件、导出生产坐标这几个方面展开把“放器件”这件事讲透。先说结论在 Allegro 中根据坐标放置器件核心不是“会输入数字”而是理解坐标体系、原点、器件参考点和坐标文件格式这四个要素。这四个要素理清了无论是单独放一个连接器还是给几百个器件批量定位都能快速、准确地完成。1. 为什么要精确放置坐标在 PCB 设计中的真实地位很多刚接触 Allegro 的工程师会问拖拽放置不是更快吗为什么一定要输入坐标这个问题的答案要从三个真实场景去看。第一个场景是结构限位。板边连接器、USB 座、按键、LED、光模块、天线弹片、螺丝孔这些器件在 PCB 上的位置不是工程师随手定的而是由结构外壳的开孔位置决定的。结构工程师给出的图纸上每个关键器件的坐标、角度都有明确标注。你在 Allegro 里用鼠标拖可能视觉上“差不多对齐了”但实际偏差可能已经超过 0.5mm。装配时连接器外壳对不上结构开孔板子就装不进机壳。这类器件必须依靠坐标精确放置不能靠目测。第二个场景是 SMT 贴片。贴片机工作时需要知道每个器件在 PCB 上的 XY 坐标、旋转角度和所在层。这些数据的来源就是 PCB 设计文件。Allegro 可以把器件的放置坐标导出为文本文件SMT 工程师再把它输入贴片机程序。你只要有一个器件坐标是随手放的产线上的贴装位置就会跟着错。尤其对于小封装阻容坐标偏差导致的立碑、偏位问题很常见。第三个场景是设计更替与复用。产品改版时结构没变PCB 要重新布局。如果关键器件的坐标是精确记录的新板子可以直接按旧坐标把结构件放到位省去反复对齐的时间。反过来如果旧板子是通过“手动拖拽”放的改版时没有任何数据可以参考一切从头来。当然不是所有器件都必须精确坐标放置。大量普通电阻、电容、去耦电容走线顺畅和电源回路才是主要约束坐标差几 mil 根本无所谓。但即便在这种场景下设计规范里通常也要求器件按照栅格或指定位置摆放本质仍然是在用坐标体系约束设计。所以更准确的说法是坐标放置是 PCB 设计中连接结构设计、原理图设计、生产制造三个环节的桥梁。它在整个流程中承担的是数据对齐的职责。2. 理解 Allegro 的坐标系与原点先别急着输入坐标打开 Allegro 就开始放器件是新手最常见的错误。在放置第一个坐标之前必须先搞清楚这个设计里的坐标系是怎么定义的。否则你输入一个“正确”的坐标器件却出现在你完全没想到的地方。2.1 绝对坐标与相对坐标Allegro 的放置操作同时支持绝对坐标和相对坐标。绝对坐标是相对设计原点的 XY 值。比如你输入 X100mm、Y50mm器件就会被放到距原点 X 方向 100mm、Y 方向 50mm 的位置。结构工程师给坐标时基本都使用绝对坐标所以手动放置关键器件时用到的主要是绝对坐标。相对坐标是相对当前器件的移动增量。比如输入 ix 10 0意思是在当前 X 坐标基础上增加 10 个单位Y 不变。相对坐标适合做局部微调比如把一个器件向右移动 5mm 看看是否避让不需要先算出目标绝对坐标。2.2 单位与精度Allegro 设计单位支持 Mils 和 MM 两种两者相差很大1mm 约等于 39.37mil。再有一个常见坑是Allegro 的 Mils 单位下整数坐标直接输入即可而在 MM 单位下坐标精度通常要设置到 4 位小数比如 100.0000mm否则容易出现微小偏差。实际操作中绝大多数消费电子产品的结结构图使用毫米所以设计参数里建议统一使用 MM并把精度设为 4 位。单位混乱是坐标放置后位置异常的第一大原因。2.3 设计原点与用户原点Allegro 中有两类原点概念需要注意。一是设计原点Drawing Origin也就是整个设计文件的坐标零点。在 Allegro 中可以通过“设置 更改绘图原点”Setup Change Drawing Origin来指定。原点位置决定了所有坐标的基准因此必须在布局前和结构工程师确认。最常用的约定是把原点放在板框左下角或者放在某一个定位孔中心。二是用户原点User Origin主要用于临时测量和局部坐标参考不会改变所有器件最终的绝对坐标。有些工程师习惯把用户原点设置在局部位置方便测量我建议尽量少用因为容易混淆。下面用一个表格把两个常用概念再对比一下概念含义使用场景常见误区绝对坐标相对设计原点的 XY 值结构件定位、SMT 坐标未确认原点就输入坐标相对坐标相对当前位置的增量局部微调、避让与绝对坐标混用设计原点整个板卡的坐标零点所有数据交换不同工具间传递时原点不一致用户原点临时参考点局部测量被误认为全局原点3. 环境准备Allegro X 24.1 的中文界面与基础配置在开始放置坐标之前先把环境准备到位。Allegro X 24.1 对应 Cadence SPB 24.1是 Allegro X 产品线的新版本界面相比传统 Allegro 做了重构并且提供了中文界面支持。3.1 中文界面切换Allegro X 24.1 的中文界面在不同安装环境的开启方式略有差异本文以下操作默认已经在中文界面下进行。需要提醒的是中文界面刚推出时很多老工程师反而会找不到菜单——因为习惯了英文版突然切换成中文菜单名对不上。我建议在查询网上资料时优先直接搜索英文路径例如 File Import Placement这样更容易在英文界面下找到对应功能。文章后面涉及菜单的部分我会同时标注中文和英文方便你对照。3.2 单位与精度设置打开设计文件后第一步是检查单位。操作路径在 Allegro X 中文界面下一般为“设置 设计参数编辑器”Setup Design Parameter Editor打开后切换到“设计”Design标签页查看单位是 Mils 还是 MM。如果需要修改单位在这里切换。切换单位后所有已放置器件的坐标数值会按换算关系变化但物理位置不变这一点要有数。建议把精度设置为 4 位小数这样在输入 mm 坐标时可以得到足够的精度导出的坐标文件也符合 SMT 设备读取要求。3.3 设置设计原点在布局前先把设计原点设置好。Allegro X 中路径一般是“设置 更改绘图原点”Setup Change Drawing Origin。设置时点击板框左下角即可把原点吸附到该点。这里有一个非常重要的工程约定设计原点务必与结构工程师图纸的原点一致。如果结构图纸以板卡左下角为原点Allegro 也要用左下角如果结构图纸以定位孔为原点Allegro 就用定位孔中心。原点不一致后面所有坐标数据全部错位而且这种错误在 Allegro 界面里往往是看不出来的因为板框还在原地器件按照错误的原点计算后整体偏移。3.4 栅格与捕捉设置Allegro 中放置器件时会受栅格影响。如果你输入坐标后发现器件并没有落在输入值的精确位置上很可能是捕捉栅格吸附导致的。建议在精确坐标放置前先关闭栅格捕捉或者在“设置 栅格”Setup Grids中把非结构栅格调小。不同设计的栅格策略不同。对于高密度 BGA 区域栅格可能非常细密对于普通连接器结构件栅格应该让位于精确坐标输入。我的习惯是在放关键器件时开启“无捕捉”或“使用当前坐标输入”确保输入什么坐标就落在哪里。3.5 高分屏显示问题从不少工程师反馈来看Allegro 在 4K 高分屏下存在界面截断、输入框显示不全的问题这可能是显示缩放兼容性导致的。如果你也遇到坐标输入框显示不完整最简单的办法是改用命令窗口输入坐标具体方法在下一章说明这样就能绕开界面显示问题不影响精确放置。4. 三种常用的坐标精确放置方法在 Allegro X 24.1 中根据坐标放置器件有三种主流方式使用 Move 命令在 Options 面板输入坐标、使用命令窗口输入、通过 Place 文件批量导入。三种方式适用于不同场景下面拆开讲。4.1 方式一使用 Move 命令输入绝对坐标这是最常用的方式适合单独放一个或少数几个关键器件。操作流程如下执行“编辑 移动”Edit Move。在右侧 Find 面板中只勾选 Symbols避免误选其它对象。在画布上点击要移动的器件此时器件会粘在鼠标光标上。在 Options 面板中找到 Point 下拉框也就是抓取点选项。把抓取点设置为“Symbol Origin”器件原点或者“Body Center”器件中心取决于你希望坐标系中的哪个点对齐到目标坐标。在 Options 面板的 X 和 Y 输入框中输入目标绝对坐标按回车。点击画布空白处完成放置或者右键选择“Done”。关键点在于理解第 4 步中 Point 下拉框的含义。Allegro 在 Move 状态下你输入的 X/Y 坐标定位的是鼠标光标的位置而器件被放置时你选择的抓取点会落到这个光标位置上。因此如果你希望连接器的 Pin 1 正好落在 X100mm、Y50mm 处抓取点就应该选择这个 Pin而不是 Symbol 原点或 Body Center。如何选择抓取点Allegro 的 Point 下拉框通常提供 Symbol Origin、Body Center、User Pick 等选项。如果结构图纸明确要求“Pin 1 坐标为100,50”正确做法是选择 Pin 作为抓取点然后再去点击器件的 Pin 1。如果图纸要求“封装原点坐标为100,50”那就直接选择 Symbol Origin。这个细节是新手最容易出错的地方。很多人只管输入坐标不看抓取点结果每次放置后位置都差一段距离其实就是参考点不对。4.2 方式二使用命令窗口输入坐标命令窗口输入适合出现界面显示问题或者你希望快速操作时使用。Allegro 的命令窗口支持 x、ix、iy 三类坐标指令。在选中器件进入 Move 状态后直接在当前命令窗口输入# 将鼠标光标移动到绝对坐标 X100mm, Y50mm x 100 50 # 相对现位置X 方向增加 10mmY 不变 ix 10 0 # 相对现位置Y 方向减少 20mmX 不变 iy 0 -20输入 x 100 50 后鼠标光标会跳到绝对坐标100,50此时点击器件抓取点完成放置。这种情况最直接的作用是绕开 Options 面板的输入框——如果你在 4K 高分屏上遇到界面截断坐标输入框看不到直接在命令窗口输入反而最快。相对坐标 ix、iy 更适合做局部微调器件先临时放到大概位置然后输入相对位移把它精确移动到最终位置无需心算绝对坐标。4.3 方式三通过 Place 文件批量导入当器件数量多、坐标数据来自结构工程师或者 Excel 表格时手动一个一个输入坐标就太慢了。正确的做法是准备一个 Place 坐标文件然后用 Allegro 的导入功能批量放置或更新器件坐标。Place 文件本质是一个纯文本文件记录了每个器件的位号、封装、X 坐标、Y 坐标、旋转角度、所在层常见格式如下# RefDes, Device, X, Y, Rotation, Side R1, RES_0402, 12.7000, 25.4000, 0, Top R2, RES_0402, 13.7000, 25.4000, 90, Top C1, CAP_0603, 12.7000, 35.4000, 0, Top U1, LQFP48, 50.8000, 50.8000, 90, Top J1, USB_C_CONN, 100.0000, 50.0000, 90, Top字段含义依次是位号RefDes、封装Device、X 坐标、Y 坐标、旋转角度Rotation、所在层Side。这里要注意不同版本的 Allegro 对 Place 文件格式的宽容度不同有的版本接受逗号分隔有的需要制表符分隔。稳妥做法是先手工放置一个器件导出一次 Place 文件再照着它的格式修改。导入操作的路径在 Allegro X 中文界面下一般是“文件 导入 坐标文件”File Import Placement。导入时系统会按位号匹配 PCB 上已有的器件并更新其坐标。如果位号对不上导入会报错。Place 文件导入特别适合以下场景结构工程师给出了关键器件的坐标清单从原理图工具或其它 EDA 工具迁移设计时附带坐标数据板卡改版时希望把旧版关键器件坐标一键同步到新版。5. 完整示例把连接器放到指定坐标并验证下面用一个具体场景演示完整流程。假设当前设计中有个 USB Type-C 连接器 J1结构工程师给出要求J1 的 Pin 1 坐标必须为 X100.0000mm、Y50.0000mm器件相对于正常角度旋转 90 度。设计原点已经设置在板框左下角Allegro 单位当前是 MM精度 4 位。5.1 确认器件的参考点在放置之前先确认 J1 在 Allegro 中的参考点。操作方法比较多其中一个快速方法是选中 J1用“显示 元素”Display Element查看封装信息看 Symbol Origin 是位于 Pin 1 还是封装中心。对于连接器类器件封装的原点定义在哪个引脚或者定位柱上每家公司习惯不同。如果结构图纸要求的是 Pin 1 位置而封装原点正好是 Pin 1直接使用 Symbol Origin 即可如果封装原点在器件中心就要把抓取点改成 Pin 1。在这个示例场景里我们假设封装原点不在 Pin 1因此手动放置的抓取点必须指定为 Pin 1。5.2 手动精确放置执行步骤执行“编辑 移动”Edit Move。点击选中 J1。在 Options 面板中抓取点选择“Pin”。回到画布点击 J1 的 Pin 1。在 Options 面板的 X 输入框中输入 100Y 输入框中输入 50。按回车完成放置。如果需要旋转在 Options 面板的“角度”Angle输入框中输入 90。最终效果J1 的 Pin 1 位于绝对坐标100.0000,50.0000器件整体旋转 90 度方向满足结构要求。5.3 验证坐标完成放置后必须验证坐标而不只是“目测”。验证步骤如下选择“显示 元素”Display Element。在 Find 面板中勾选 Symbols。点击 J1。在弹出的信息窗口中查看“放置”Placement段落重点看 X、Y 和 Rotation 三项。预期输出类似REFDES: J1 DEVICE: USB_C_CONN X: 100.0000 Y: 50.0000 ROTATION: 90 SIDE: TOP如果 X、Y 跟预期不一致首先检查原点是否设置正确其次检查抓取点是否选对。5.4 批量场景Excel 坐标转 Place 文件如果结构工程师给出的是 Excel 表格字段包含位号、X、Y、角度、层我们可以用一个小脚本来转换成 Allegro 可识别的 Place 文件。下面这段 Python 脚本可以帮你快速完成转换# 文件路径convert_coords.py # 依赖无第三方库Python3 可直接运行 import csv with open(coords.csv, r, encodingutf-8-sig) as f: reader csv.DictReader(f) lines [] for row in reader: ref row[RefDes].strip() x float(row[X_mm]) y float(row[Y_mm]) rot int(row[Rotation]) side row[Side].strip() # Device 字段可以从封装名称映射这里先用占位符 lines.append(f{ref}, PLACE_HOLDER, {x:.4f}, {y:.4f}, {rot}, {side}) with open(output.place, w, encodingutf-8) as f: f.write(# RefDes, Device, X, Y, Rotation, Side\n) f.write(\n.join(lines)) print(Generated output.place with, len(lines), components)运行方式python convert_coords.py运行前请确保 coords.csv 文件存在且格式如下RefDes,X_mm,Y_mm,Rotation,Side R1,12.7000,25.4000,0,Top C1,12.7000,35.4000,180,Top J1,100.0000,50.0000,90,Top脚本运行后在当前目录生成 output.place接着在 Allegro 中导入这个文件即可。5.5 导入 Place 文件并检查结果在 Allegro X 24.1 中文界面中执行“文件 导入 坐标文件”File Import Placement选择刚才生成的 output.place。如果 PCB 上已经存在这些位号坐标会全部更新如果位号不存在会提示未匹配。导入完成后建议做一次全板坐标抽查随机打开“显示 元素”点几个器件查看坐标是否与源文件一致。批量导入最大的风险不是导入过程而是数据源本身的问题比如 Excel 里角度方向理解不一致或者 Bottom 层坐标是否已经做镜像。这些只能靠抽查验证。6. 坐标文件导出给 SMT 产线的生产数据放置器件只是第一步更重要的环节是把最终的坐标数据导出给 SMT 产线。Allegro 的坐标文件导出功能在菜单里对应“文件 导出 坐标文件”File Export Placement或者“输出 坐标文件”Output Placement在 Allegro X 中文界面中具体名称可能略有差异可以按“坐标”或“Placement”在菜单里搜索。导出时需要注意几个选项。第一是单位。如果设计单位是 MM导出时保持 MM如果设计单位是 Mils导出 Mils。SMT 设备一般支持两种单位但整个流程必须一致。产线拿到坐标文件后如果单位不对所有坐标都会偏得离谱。第二是精度。导出精度建议保持设计精度通常是 4 位小数避免坐标被四舍五入产生微小偏差。第三是 Bottom 层器件处理。Allegro 里 Bottom 器件的坐标记录的是板卡坐标系中的 XY 位置Side 字段标明 Bottom。SMT 编程时设备会根据镜像规则换算 Bottom 器件的实际贴装角度。如果你的客户或产线要求直接提供“已镜像”的坐标就需要在导出选项里选择对应格式。这个规则不同厂家有不同定义最稳妥的做法是导出一份文件后和产线工程师当场确认格式而不是自己猜测。导出后的 Place 文件可以直接用文本编辑器打开。检查内容是否包含完整位号、坐标、角度、层信息如果设计师在布局时漏掉了某个器件位号导出结果里就会出现缺少行SMT 程序里也会缺料这是需要特别留意的地方。另外有不少工程师是从 AD 或 PADS 转过来的会问之前的坐标文件能不能直接用。答案是可以但要注意两点一是工具之间坐标原点约定可能不同导入前必须确认原点位置二是 Place 文件字段顺序和分隔符可能不同建议先做一两个器件的导入测试确认坐标正确后再全量导入。7. 常见问题与排查思路在这一节里我整理了按坐标放置器件最常见的几类问题直接按表格对照处理。问题现象可能原因排查方式解决方案输入 X/Y 后器件位置不对设计原点与预期不一致打开“设置 更改绘图原点”查看当前原点位置将原点重新设置到结构图纸约定的基准点器件落在板外或坐标非常大单位混淆mm 和 mil 混用查看设计参数编辑器的单位设置统一单位确认导入数据使用同一单位放置后器件中心与目标点偏 一定距离抓取点选错没指定 Pin 或 Symbol Origin检查 Options 面板的 Point 下拉框按结构图纸要求选择正确的抓取点导入 Place 文件报错 RefDes 不匹配PCB 上位号与文件位号不一致查看报错列出的位号在原理图中确认重新生成网表或更新 PCB 位号Bottom 层器件坐标方向不对导出或导入时镜像规则理解不一致导出前与 SMT 确认镜像坐标要求调整导出选项或按产线要求预处理坐标器件旋转角度与预期不符Allegro 角度方向约定与结构图不一致先放一个器件输入 90 度验证方向确认 Allegro 中角度方向定义再批量更新4K 高分屏下坐标输入框显示不全显示缩放兼容问题确认是否只有界面显示异常改用命令窗口 x/ix/iy 输入坐标放置若干器件后坐标数据混乱位号重排后未更新坐标文件检查位号重排时序位号重排后重新执行坐标导出这里重点提一下角度问题。Allegro 中旋转角度的正方向以逆时针为正。如果结构工程师给的角度按顺时针计算导入前需要换算成逆时针值或者先在板上放一个器件验证角度方向再决定是否全局调整。这是坐标数据交换中最容易出错的环节没有之一。8. 最佳实践与工程建议坐标放置这件事看着简单但在工程协作中非常依赖规范。以下是几条可以立即用起来的建议。第一原点约定落到图纸上。设计原点的位置不应该只存在于 Allegro 文件里应该标注在结构图或设计规范里。我见过太多项目Layout 工程师和结构工程师各用一个原点最终在装配或 SMT 时才发现坐标整体偏移。正确的做法是在项目启动时就把原点共识写下来通常推荐板框左下角如果板卡有定位孔也可以选定位孔中心。第二全流程统一单位。Allegro 内部用 MM 还是 Mils取决于团队习惯但更重要的是和结构图纸、SMT 产线统一。结构图纸给 mmAllegro 就设 mm产线需要 mil导出时再转换。不要在设计中途频繁切换单位否则坐标数值会让人混淆。第三关键器件抓取点必须明确。连接器、按键、光模块这类结构件放置时要明确参考点。结构图纸写“Pin 1 坐标”那就以 Pin 1 为抓取点写“封装中心坐标”就以 Symbol Origin 为抓取点。同一块板子上不同器件可能使用不同参考点不要默认所有器件都用 Body Center。第四位号与坐标文件同步。Allegro 有位号重排功能位号重排后坐标文件里记录的 RefDes 会变化。如果先导出坐标再做位号重排最后交付的坐标文件和 BOM 就对不上了。因此正确顺序是完成布局和位号调整后再统一导出坐标文件。第五批量导入前先做小范围验证。用 Place 文件批量导入坐标时建议先准备一个包含 3 到 5 个器件的测试文件导入后验证坐标、角度、层都正确再生成全量文件。否则一份 500 个器件的坐标文件导入后发现角度方向错了调整一遍非常耗时。第六重视数据备份。在导入 Place 文件、修改坐标之前保存当前设计的备份文件。虽然 Allegro 的撤销功能能处理大部分误操作但导入文件涉及大量器件坐标更新一旦误操作撤销可能不够用手工恢复反而更麻烦。第七跨版本协作时注意菜单差异。Allegro X 24.1 的中文界面和旧版 Allegro 17.4 的菜单路径不完全一样网上很多旧教程的菜单位置已经失效。对比新旧版本时建议同时搜索英文命令名例如 Import Placement、Change Drawing Origin这样能更快定位功能位置。9. 总结与后续学习方向这篇文章的价值一句话概括把“根据坐标精确放置器件”从鼠标拖拽变成了数据驱动。Allegro X 24.1 中文界面下的坐标放置本质上没有太多高深技术核心还是原点、单位、参考点和坐标文件格式这四个要素。如果你只记住一件事那就是放关键器件时永远先确认原点再看抓取点最后输入坐标。这个流程固化下来绝大多数坐标放置问题都能避免。下一步可以继续深入的方向有三个。第一个是学习更多 Allegenro X 中与坐标相关的自动化能力比如通过命令窗口批量执行坐标更新减少手动点击。第二个是研究 Place 文件与其它 EDA 工具、PDM 系统之间的数据流转。很多公司已经实现了结构坐标表自动化转 Allegro 坐标文件理解这套数据链路对团队效率提升很有帮助。第三个是把坐标检查和 DFC、DFM 检查结合起来。关键器件坐标是否正确不仅影响贴装也影响结构干涉和后续返修。先把“放准一个器件”做到位再考虑“一键放一百个器件”。坐标放置这项基本功值得你花时间彻底搞清楚。如果你在实际操作中遇到了文中没提到的问题建议先把原点、单位、参考点这三项重新查一遍多数问题都藏在这三个地方。