共计 2375 个字符,预计需要花费 6 分钟才能阅读完成。
手工绘制 3D 体的效率痛点
每次在 PCB 封装设计中手动绘制 3D 体时,最头疼的就是需要反复调整尺寸和位置来匹配焊盘坐标。传统方法通过鼠标拖拽不仅精度难以保证,当遇到复杂结构时更会消耗大量时间。特别是在设计带散热片的 IC 封装或异形连接器时,这种低效操作直接影响整个项目的进度。

坐标驱动的基础几何体创建
1. 精确创建基本 3D 体
Altium Designer 的 3D Body 工具(Place->3D Body)其实支持直接输入坐标和尺寸参数,但很多工程师都忽略了这一高效功能。以下是具体操作流程:
- 激活 PCB 库编辑器,切换到 3D 布局模式(快捷键 3)
- 执行 Place->3D Body 命令,在属性面板选择 ”Extruded” 类型
- 关键步骤:在 ”Properties” 面板直接输入以下参数
- X/ Y 坐标:与焊盘中心对齐的绝对位置
- 长 / 宽 / 高:根据器件手册的机械尺寸填写
- Standoff Height:处理器件底部间隙
对于圆柱体等特殊形状,需注意:
– 半径值 = 直径 / 2 需换算
– 旋转轴心默认在几何中心,必要时用 ”Rotation” 参数调整
2. 参数计算公式实例
以某 QFN 封装为例:
– 主体尺寸 5x5mm,高度 1mm
– 中心坐标 (10,10)
则应输入:
X=10mm, Y=10mm
Size X=5mm, Size Y=5mm, Size Z=1mm
STEP 模型的高级应用
1. 模型导入规范
当基础几何体无法满足需求时,可导入专业机械建模软件生成的 STEP 文件:
- 准备 STEP 模型时需确保:
- 文件版本建议 AP214 或 AP203
- 单位必须与 PCB 库一致(毫米 / 英寸)
-
原点对齐器件几何中心
-
导入步骤:
- 执行 Place->3D Body
- 选择 ”Generic STEP Model”
- 指定文件路径后,检查 ”Scale” 参数(通常 1.0)
2. 单位校准技巧
曾遇到某次导入的模型显示尺寸异常,原因是:
– 建模软件使用英寸单位
– PCB 库设置为毫米
解决方案:
– 在 CAD 软件导出时转换单位
– 或导入 AD 时设置 Scale=25.4
模型关联的黄金法则
1. 2D/3D 匹配校验
完成 3D 体放置后必须执行:
- 切换至 3D 视图(快捷键 3)
- 开启 ”View Configurations” 中的透明模式
- 逐层检查:
- 焊盘与 3D 体引脚是否对齐
- 丝印轮廓是否包裹 3D 主体
- 禁止布线区是否匹配实体尺寸
2. 常见问题处理
遇到 3D 体不显示时,检查:
– 是否启用 ”View->3D Bodies” 显示选项
– 模型法线方向是否正确(翻转面用 ”Invert 3D Body”)
– 机械层是否与 3D 体所在层冲突
自动化脚本解决方案
1. Delphi 脚本实例
以下脚本可批量生成立方体 3D 体:
procedure Create3DBody;
var
PCB3DBody : IPCB_3DBody;
X,Y,SizeX,SizeY,SizeZ : Float;
begin
// 参数设置区域
X := 10.0; // 中心 X 坐标 (mm)
Y := 10.0; // 中心 Y 坐标 (mm)
SizeX := 5.0; // 长度 (mm)
SizeY := 5.0; // 宽度 (mm)
SizeZ := 1.0; // 高度 (mm)
// 创建 3D 体
PCB3DBody := PCBServer.PCBObjectFactory(e3DBodyObject, eNoDimension, eCreate_Default);
PCB3DBody.BodyProjection := e3DBodyProjection_Extended; // 拉伸类型
PCB3DBody.SetState_XLocation(X);
PCB3DBody.SetState_YLocation(Y);
PCB3DBody.SetState_Size_X(SizeX);
PCB3DBody.SetState_Size_Y(SizeY);
PCB3DBody.SetState_Size_Z(SizeZ);
// 添加到当前封装
PCBServer.SendMessageToRobots(PCBLibBoard.I_ObjectAddress, c_Broadcast, PCBM_BeginModify, nil);
PCBLibBoard.AddPCBObject(PCB3DBody);
PCBServer.SendMessageToRobots(PCBLibBoard.I_ObjectAddress, c_Broadcast, PCBM_EndModify, nil);
end;
2. 脚本使用技巧
- 通过 Excel 生成坐标 CSV 文件,用脚本批量读取
- 添加边界检查逻辑,避免模型超出板框
- 版本适配代码:
// AD21+ 版本 API 兼容 if (ADVersion >= 21.0) then PCB3DBody.SetState_Layer(eTopLayer) else PCB3DBody.Layer := LayerStack.FirstLayer;
必知的避坑指南
1. 模型缩放异常处理
当导入模型显示尺寸不对时:
1. 检查 STEP 文件单位
2. 测量模型中已知特征尺寸
3. 按公式计算正确比例:
实际比例 = 预期尺寸 / 当前显示尺寸
2. 机械层冲突解决
3D 体与机械层重叠导致 DRC 报错时:
1. 优先保持 3D 体在 ”Multi-Layer”
2. 机械层仅保留 2D 轮廓信息
3. 使用 ”3D Body Manager” 统一管理显示优先级
3. 版本兼容性
注意不同 AD 版本差异:
– AD20 以下不支持嵌套 STEP 装配体
– AD22 开始增强圆柱体平滑度
– 保存时选择 ”STEP AP214″ 格式兼容性最佳
进阶思考方向
当前方案虽然解决了单封装建模问题,但对于系列化封装(如不同 pin 数的连接器)仍需要重复劳动。能否通过以下方式实现自动化:
1. 建立参数化 Excel 表格定义尺寸关系
2. 开发脚本自动读取参数并生成 3D 模型
3. 与公司元件库系统集成,实现模型自动更新
下次将探讨如何结合 Altium Designer 的封装向导和脚本 API,构建智能化的 3D 模型生成系统。
