You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Python BOM生成脚本读取KiCad页面设置值

解决KiCad V6 BOM脚本自动提取标题、版本并生成自定义文件名的方案

1. 利用KiCad Python API直接提取原理图页面信息

在你修改的bom_csv_grouped_by_value.py脚本中,KiCad会自动传入原理图的sch对象,直接通过API访问页面设置的Title和Revision字段:

# 在脚本的generate_bom函数内添加以下代码
# 获取页面设置的标题块信息
page_settings = sch.GetPageSettings()
title_block = page_settings.GetTitleBlock()

# 提取Title和Revision,为空时设置默认值
project_title = title_block.GetTitle() or "Untitled Project"
project_rev = title_block.GetRevision() or "A"

2. 自动生成当前日期

使用Python的datetime模块生成符合格式的日期字符串:

from datetime import datetime

# 生成dd-mm-yy格式的日期
current_date = datetime.now().strftime("%d-%m-%y")

3. 构建自定义BOM文件名

将提取的信息组合成目标文件名,替换原来的项目名命名逻辑:

# 构建最终文件名
bom_filename = f"BOM for {project_title} rev{project_rev} {current_date}.xlsx"

# 后续保存Excel文件时使用这个文件名
# 例如,如果你用pandas保存:
# df.to_excel(bom_filename, index=False)

4. 备用方案:直接解析原理图XML文件

如果KiCad API访问出现问题,可直接解析.kicad_sch文件(XML格式)获取字段:

import xml.etree.ElementTree as ET
import sys

# 获取KiCad传入的原理图路径参数
sch_path = sys.argv[1]

tree = ET.parse(sch_path)
root = tree.getroot()

# 定位title_block节点并提取字段
title_block = root.find(".//title_block")
if title_block is not None:
    project_title = title_block.findtext("title", default="Untitled Project")
    project_rev = title_block.findtext("rev", default="A")
else:
    project_title = "Untitled Project"
    project_rev = "A"

注意事项

  • 确保原理图的页面设置中已正确填写Title和Revision字段,否则会使用默认值
  • 日期格式可根据需求调整,比如%Y-%m-%d生成2022-11-17格式
  • 如果脚本中原本依赖项目名生成文件名,替换为上述自定义文件名即可

内容的提问来源于stack exchange,提问作者AngusE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 20:55:21