微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > 硬件电路设计讨论 > 写了个 Allegro 导出 bom 和坐标文件的教程, 用于JLC的SMT

写了个 Allegro 导出 bom 和坐标文件的教程, 用于JLC的SMT

时间:12-13 整理:3721RD 点击:
截图就不用贴了吧?
1. Allegro 菜单点 Tools, Reports
a) 从 Available Reports 里找 Placed Component Report, 双击让它跑到下面框里.
b) 选中 Write Report, 点 Report. 此时会在. brd 所在目录下生成一个 pcp_rep.rpt
2. Excel, 文件, 打开, 类型选” 所有文件”, 找到刚生成的 pcp_rep.rpt.
a) 出现” 文本导入向导”, 直接点下一步.
b) 分隔符号这里把” 逗号” 选上, 然后点下一步.
c) 列数据格式, 选” 文本”, 然后点完成.
3. 表格出来了, 前四行没用, 删掉. 表头要按 JLC 的格式修改, 具体如下:
a) REFDES, 改成 Designator.
b) COMP_DEVICE_TYPE, 这列可以删掉.
c) COMP_VALUE, 改成 Comment.
d) COMP_TOL, 这列可以删掉.
e) SYM_NAME, 改成 Footprint. 下面的封装如果和 JLC 的不一样也要改. 比如我用的封装名称都是公制, RESC2012, CAPC1608 之类, 要改成相应的英制 RESC0805, CAPC0603. 没有前缀也可以, 但是在 excel 可能就变成 805/603 了, 不影响下单. SOP 类的器件最好改成 SOIC-8, SOIC-14 这样, 等等, 总之以 JLC 给的参考文件为准.  选中这一列, 几次查找替换命令就解决了.
f) SYM_X, SYM_Y, 这两个改成 Mid X 和 Mid Y, 底下的单位需要是毫米, mil 不行.
g) SYM_ROTATE, 改成 Rotation.
h) SYM_MIRROR, 改成 Layer. 底下的 YES 全部替换成 B, NO 替换成 T.
4. 保存成 XLS 或 XLSX 格式, 完事! BOM 和坐标文件都用这一个就可以了.

编成脚本,一键导出

先写了个转换格式的脚本, python3的
allegro那边本来也没多少操作, 就不折腾了吧

import csv

csvfile = open('pcp_rep.rpt')
reader = csv.reader(csvfile)
csvfile2 = open('pcp_rep_jlc.csv', 'w', newline='\n')
writer = csv.writer(csvfile2, dialect='excel') 

for line in reader:
    if len(line) != 1:
        break                   # 跳过前四行

# 按JLC的格式修改表头
line = ['Designator', 'Comment', 'Footprint', 'Mid X', 'Mid Y', 'Rotation', 'Layer'] 
print(line)
writer.writerow(line)

# 查找替换表, 请按需自行修改
my_footprints = ['CAPC2012', 'CAPC1608', 'RESC2012', 'RESC1608']
jlc_footprints = ['C0805', 'C0603', 'R0805', 'R0603']

for line in reader:
    del line[1], line[2]        # 删除不需要的两列
    if line[6] == 'NO':
        line[6] = 'T'
    elif line[6] == 'YES':
        line[6] = 'B'
    if line[2] in my_footprints:
        line[2] = jlc_footprints[my_footprints.index(line[2])]
    print(line) 
    writer.writerow(line)

csvfile.close() 
csvfile2.close()

allegro要用skill脚本... 也许可以, 我没试过
只用skill写过封装

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top