1. 项目概述
作为一名硬件工程师,我经常需要处理PCB设计中的物料清单(BOM)管理问题。传统BOM表格枯燥乏味,缺乏直观性,直到我发现了InteractiveHtmlBomForAD这个神器。这是一个为Altium Designer(AD)开发的交互式BOM生成脚本,能够将静态的BOM表转换为可在浏览器中操作的动态HTML页面。
这个工具最吸引我的地方在于它生成的BOM不仅包含所有元件信息,还能与PCB布局图联动显示。点击网页上的元件,PCB图中对应元件会高亮;反过来,在PCB图中选择元件,网页上的对应条目也会突出显示。这种双向交互极大提升了设计审查和团队协作的效率。
2. 环境准备与脚本安装
2.1 获取脚本文件
首先需要从GitHub下载InteractiveHtmlBomForAD-master项目包。建议直接下载ZIP压缩包而非克隆仓库,因为AD对脚本文件的存放位置有特定要求。下载后解压到一个不含中文和特殊字符的路径下,比如D:\AD_Scripts\。
重要提示:路径中不要包含空格和特殊字符,否则AD可能无法正确识别脚本文件。我曾在路径中使用"我的文档"导致脚本加载失败,后来改为纯英文路径才解决。
2.2 初始化脚本环境
解压后的文件夹中包含一个关键文件Initialize.bat。这个批处理文件会完成以下工作:
- 检查系统是否安装了Python(要求3.6+版本)
- 自动安装必要的Python依赖包(如numpy, pandas等)
- 设置AD脚本运行所需的环境变量
双击运行Initialize.bat时,建议以管理员身份执行。如果看到命令行窗口快速闪过,可以手动打开CMD,导航到脚本目录后直接运行,这样就能看到详细的执行过程。
3. 在Altium Designer中安装脚本
3.1 添加脚本到AD
打开Altium Designer,进入DXP » Preferences菜单。在左侧导航中找到System » Scripting System,点击右侧的Install按钮。在弹出的文件选择对话框中,导航到脚本目录,选择InteractiveHtmlBomForAD.PrjScr文件。
安装成功后,建议重启AD使设置生效。有些情况下,脚本可能不会立即出现在可用脚本列表中,这时可以尝试以下步骤:
- 关闭AD
- 删除
%APPDATA%\Altium\AD{版本号}\ScriptingSystem下的缓存文件 - 重新启动AD并再次安装
3.2 验证脚本安装
为了确认脚本已正确安装,可以在AD中执行以下检查:
- 打开任意PCB文档
- 点击菜单
File » Run Script - 在弹出的对话框中,应该能看到
InteractiveHtmlBomForAD条目
如果看不到,可能是脚本路径设置有问题。可以尝试手动将脚本文件夹复制到AD的默认脚本目录(通常位于C:\Users\Public\Documents\Altium\AD{版本号}\Scripts)。
4. 生成交互式BOM
4.1 基本生成流程
在确认脚本安装成功后,生成交互式BOM的步骤如下:
- 打开目标PCB文件
- 点击
File » Run Script - 选择
InteractiveHtmlBomForAD - 在弹出的配置对话框中设置输出选项
- 点击"Generate"按钮
脚本运行完成后,会自动在PCB文件所在目录下生成一个HTML文件和一个包含资源文件的子目录。用浏览器打开HTML文件即可查看交互式BOM。
4.2 高级配置选项
这个脚本提供了丰富的配置选项,可以满足不同场景的需求:
显示选项:
- 元件分组方式(按值、封装、或两者组合)
- 是否显示PCB预览图
- 是否显示元件参数(值、封装、描述等)
交互功能:
- 启用/禁用点击高亮
- 设置高亮颜色和透明度
- 是否启用双向选择(PCB与BOM联动)
输出控制:
- HTML文件命名规则
- 资源文件存放位置
- 是否压缩输出文件
我个人的经验是,首次使用时可以先采用默认设置生成一次,了解基本功能后再根据实际需求调整配置。比如在团队协作时,我会启用所有交互功能;而在生成归档文档时,则会选择更简洁的显示方式。
5. 使用技巧与问题排查
5.1 提高生成效率的技巧
-
元件命名规范:确保原理图中的元件标识符(Designator)清晰规范。混乱的标识符会导致生成的BOM难以阅读。
-
参数完整性:在元件属性中填写完整的参数(如Value、Description、Manufacturer等),这些信息会自动出现在交互式BOM中。
-
层设置优化:在生成前隐藏不必要的PCB层(如机械层、注释层),可以减少生成的HTML文件大小。
-
批量处理:对于多板项目,可以编写简单的脚本批量生成所有PCB的交互式BOM。
5.2 常见问题与解决方案
问题1:脚本运行时报错"Python not found"
- 原因:系统未安装Python或环境变量设置不正确
- 解决:
- 确认已安装Python 3.6+
- 将Python添加到系统PATH
- 重新运行Initialize.bat
问题2:生成的HTML中PCB图像显示不全
- 原因:PCB尺寸过大或包含复杂图形
- 解决:
- 在生成配置中增加图像DPI设置
- 简化PCB中的图形元素
- 尝试不同的图像格式(SVG通常比PNG更适合大尺寸PCB)
问题3:交互功能在浏览器中不起作用
- 原因:浏览器安全限制或文件路径问题
- 解决:
- 确保在本地文件系统打开HTML(而非通过网页服务器)
- 检查浏览器是否允许本地JavaScript执行
- 保持HTML文件与资源文件夹的相对路径不变
6. 实际应用案例
在我最近负责的一个四层板项目中,这个工具发挥了巨大价值。项目包含200多个元件,传统BOM表长达8页,设计审查时很难快速定位特定元件。使用交互式BOM后,审查效率提升了至少50%。
具体应用场景包括:
- 设计验证:快速检查元件布局是否合理,特别是相同封装元件的分布情况
- 生产准备:直观查看需要特殊处理的元件(如极性元件、BGA等)
- 团队协作:在远程会议中共享交互式BOM,所有人都能实时看到讨论的元件
- 文档归档:生成的HTML包含完整元件信息,比PDF更便于后续查询
一个特别有用的功能是"按值筛选"。当需要检查所有10kΩ电阻的布局时,只需在网页筛选框中输入"10k",所有符合条件的元件会立即高亮显示,同时在PCB预览图中也会突出显示这些元件的位置。
