写了个 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 和坐标文件都用这一个就可以了.
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写过封装