EDA365电子工程师网

标题: allegro输出BOM的skill-感谢XYX365 [打印本页]

作者: lam007    时间: 2012-5-7 22:13
标题: allegro输出BOM的skill-感谢XYX365
本帖最后由 lam007 于 2012-5-9 15:08 编辑

Hi,各位,我这段时间查了好多资料,都找不到allegro方便出BOM得工具或资料.我在tools的report里编辑了一个文本,可以输出序号,P/N和其他信息,但是,不能与相同的元件参数排列.导致全都是散得.需一个个整理,费时,且也不能计数.
有没有这样的skill.可以分上下层,然后依照BOM基本要的信息输出就可以了.谢谢!
以下是一段本论坛的一位大侠的杰作,但不能以sym_name或part_number排序.只能以refdes才行.请解.谢谢!

#Allegro自定义Report

#COMPONENT表示以下属性为COMPONENT的属性
COMPONENT

#_SORT表示以该属性排序

REFDES_SORT

#以下为将要Report的属性

PART_NUMBER
COMP_VALUE
REFDES
SYM_NAME
SYM_MIRROR
#end
作者: szc1983    时间: 2012-5-7 22:40
最近同样在思考这个问题
作者: XYX365    时间: 2012-5-8 07:59
本帖最后由 XYX365 于 2012-5-8 09:06 编辑

以下的source code和附件的skill 應該可以參考一下,改成你需要的格式
[attach]52412[/attach]

axlCmdRegister("eb" `export_bom)

defun( export_bom ()
(prog
  (
    symDefs       ; Symbol Definitions list
    totCount      ; total Symbol count
  )

  ; Get definitions from database
  (setq symDefs (axlDBGetDesign)->symdefs )
  (setq totCount 0)
  (setq BOM (axlDMOpenFile "ALLEGRO_TEXT" "bom_test" "w"))

  ; Go through them and print the info
  (fprintf BOM "+--------------------------------------------------+\n")
  (fprintf BOM "|             Silly little BOM Report              |\n")
  (fprintf BOM "+--------------------------+---------------+-------+\n")
  (fprintf BOM "| NAME                     | TYPE          | COUNT |\n")
  (fprintf BOM "+--------------------------+---------------+-------+\n")
  (foreach device symDefs
    (when (or (equal device->type "MECHANICAL" )
              (equal device->type "PACKAGE"))
      (fprintf BOM "| %24s | %13s | %5d |\n"
               device->name device->type (length device->instances))
      (fprintf BOM "+--------------------------+---------------+-------+\n")
      (setq totCount (plus totCount (length device->instances)))
    );  end-when
  );  end-foreach
  (fprintf BOM "| %40s | %5d |\n" "TOTAL" totCount )
  (fprintf BOM "+------------------------------------------+-------+\n")
  (axlDMClose BOM)
);  end-prog
)

作者: lam007    时间: 2012-5-8 08:59
XYX365,非常感谢你的信息,让我感到兴奋!ncrpt.il也很实用,谢谢!另外你给的这段代码,我也在cadence网站上找到有,但不知如何修改并执行.我没看到defun语句并执行它.我对skill是不懂,只有参考别人的来看.谢谢!
作者: XYX365    时间: 2012-5-8 09:07
lam007 发表于 2012-5-8 08:59
XYX365,非常感谢你的信息,让我感到兴奋!ncrpt.il也很实用,谢谢!另外你给的这段代码,我也在cadence网站上找到 ...

已加入defun and axlCmdRegister ,你再試試看
作者: lam007    时间: 2012-5-8 09:19
谢谢!我执行可以输出了.请问一下可否输出xls格式呢?我看看能否修改一下.挺好!谢谢,这样在excel里就最好了.
作者: XYX365    时间: 2012-5-8 09:40
lam007 发表于 2012-5-8 09:19
谢谢!我执行可以输出了.请问一下可否输出xls格式呢?我看看能否修改一下.挺好!谢谢,这样在excel里就最好了.

只要將輸出的檔名改為*.csv,這樣就可以用excel 打開
以下是修改過的

axlCmdRegister("eb" `export_bom)

defun( export_bom ()
(prog
  (
    symDefs       ; Symbol Definitions list
    totCount      ; total Symbol count
  )

  ; Get definitions from database
  (setq symDefs (axlDBGetDesign)->symdefs )
  (setq totCount 0)
  (setq BOM (axlDMOpenFile "ALLEGRO_TEXT" "bom_test.csv" "w"))

  ; Go through them and print the info
  (fprintf BOM "Silly little BOM Report\n")
  (fprintf BOM "NAME,TYPE,COUNT\n")
  (foreach device symDefs
    (when (or (equal device->type "MECHANICAL" )
              (equal device->type "PACKAGE"))
      (fprintf BOM "%s,%s,%d\n" device->name device->type (length device->instances))
      (setq totCount (plus totCount (length device->instances)))
    );  end-when
  );  end-foreach
  (fprintf BOM ",%s,%d\n" "TOTAL" totCount )
  (axlDMClose BOM)
);  end-prog

)

作者: lam007    时间: 2012-5-8 09:57
谢谢,是真的很方便了.我尝试修改增加part number和Refdes但打开后提示格式不对nil.该如何修改!这个必定成为大家所爱.
作者: XYX365    时间: 2012-5-8 10:05
lam007 发表于 2012-5-8 09:57
谢谢,是真的很方便了.我尝试修改增加part number和Refdes但打开后提示格式不对nil.该如何修改!这个必定成为 ...

你是加了那些程序,還有你要輸出那一些資料及排列的方式
作者: lam007    时间: 2012-5-8 10:08
(fprintf BOM "%s,%s,%s,%d\n" device->part_number device->name device->type (length device->instances))
我修改这一行增加PART NUMBER.我依照格式修改了一下,提示这个.

Error* fprintf/sprintf: format spec. incompatible with data - "Format is '%s,%s,%s,%d\n', argument #1 is nil"
w
作者: lam007    时间: 2012-5-8 10:20
该修改那几行?谢谢!
作者: XYX365    时间: 2012-5-8 10:22
本帖最后由 XYX365 于 2012-5-8 10:28 编辑
lam007 发表于 2012-5-8 10:08
(fprintf BOM "%s,%s,%s,%d\n" device->part_number device->name device->type (length device->instances ...


device 有下列幾種:
Attribute Name,   Type,          Description
children,               l_dbid/nil,    List of figures other than pins making up shape
instances,             l_dbid,        Symbol instances
name,                  string,         Name of symbol definition
objType,              string,        Type of object, in this case "symdef"
parent,                 dbid,          Design
pins,                     l_dbid/nil,   List of pins
type,                    string,        Symbol type is one of the following: PACKAGE,
                                              MECHANICAL, FORMAT, SHAPE, or DRAFTING


如果要取REFDES 和part_number 的話,就要另外判斷及讀取其它資料
你的part_number 是指Board file 裡面的那一層?

作者: lam007    时间: 2012-5-8 10:29
恩,我的part number是在user part number一栏,

作者: lam007    时间: 2012-5-8 10:32
#COMPONENT表示以下属性为COMPONENT的属性
请读取COMPONENT一下的属性list


作者: XYX365    时间: 2012-5-9 08:13
本帖最后由 XYX365 于 2012-5-9 14:18 编辑
szc1983 发表于 2012-5-7 22:40
最近同样在思考这个问题


試試看附件的skill看有沒有用,也希望能提供意見,已更新

作者: szc1983    时间: 2012-5-9 10:08
XYX365 发表于 2012-5-9 08:13
試試看附件的skill看有沒有用,也希望能提供意見

E- *Error* alphalessp: argument #2 should be either a string or a symbol (type template = "SS") - nil
作者: XYX365    时间: 2012-5-9 11:52
szc1983 发表于 2012-5-9 10:08
E- *Error* alphalessp: argument #2 should be either a string or a symbol (type template = "SS") -  ...

請你確認一下Part Number是不是都是數字,可否給我你的Part Number
作者: szc1983    时间: 2012-5-9 12:10
XYX365 发表于 2012-5-9 11:52
請你確認一下Part Number是不是都是數字,可否給我你的Part Number

没有part number

作者: XYX365    时间: 2012-5-9 13:19
szc1983 发表于 2012-5-9 12:10
没有part number

請教一下你的symbol裡面的這一層("USER PART NUMBER/ASSEMBLY_TOP" or ASSEMBLY_BOTTOM)是不是有認何字體
作者: szc1983    时间: 2012-5-9 13:23
XYX365 发表于 2012-5-9 13:19
請教一下你的symbol裡面的這一層("USER PART NUMBER/ASSEMBLY_TOP" or ASSEMBLY_BOTTOM)是不是有認何字體

都是*号
作者: XYX365    时间: 2012-5-9 13:46
本帖最后由 XYX365 于 2012-5-9 13:53 编辑
szc1983 发表于 2012-5-9 13:23
都是*号


我知道問題,skill 也更新,請重新下載
作者: szc1983    时间: 2012-5-9 14:00
XYX365 发表于 2012-5-9 13:46
我知道問題,skill 也更新,請重新下載

E- *Error* nth: argument #2 should be a list (type template = "xl") - dbid:145137632
作者: XYX365    时间: 2012-5-9 14:17
szc1983 发表于 2012-5-9 14:00
E- *Error* nth: argument #2 should be a list (type template = "xl") - dbid:145137632

試試看附件
[attach]52494[/attach]
作者: szc1983    时间: 2012-5-9 14:46
XYX365 发表于 2012-5-9 14:17
試試看附件

bom出来是出来了
但是这个bom和实际的器件有很大的出入
这个程序还是有些问题的不敢用
作者: szc1983    时间: 2012-5-9 14:48
其实系统自带的那个
bom of materical report(condensed)已经很完善了
只需要修改些字段就可以了

作者: XYX365    时间: 2012-5-9 14:50
szc1983 发表于 2012-5-9 14:46
bom出来是出来了
但是这个bom和实际的器件有很大的出入
这个程序还是有些问题的不敢用

可以自行修改成你所需要的,這個是幫lam007 他所提的需求所寫的skill
作者: lam007    时间: 2012-5-9 15:04
在这里感谢XYX365!目前这个skill,如果你是按照标准的元件做法,基本是没问题的,你用allegro 当中的BOM输出是可以,但没有part number 等信息.目前这个skill完成了一份标准所需用的信息输出.只要你做元件设置了信息就有.感谢!
作者: lam007    时间: 2012-5-9 15:07
szc1983 发表于 2012-5-9 14:48
其实系统自带的那个
bom of materical report(condensed)已经很完善了
只需要修改些字段就可以了

对于这个BOM你可以修改字段吗?我找过,没找到,
作者: lam007    时间: 2012-5-9 15:10
szc1983 :你的BOM出来了,但你的元件信息是否在相应的层呢?如果是,就没问题,如果不是,当然出入是很大了!
作者: wolf343105    时间: 2012-5-10 11:07
E- *Error* alphalessp: argument #1 should be either a string or a symbol (type template = "SS") - nil
作者: XYX365    时间: 2012-5-10 14:35
wolf343105 发表于 2012-5-10 11:07
E- *Error* alphalessp: argument #1 should be either a string or a symbol (type template = "SS") - ni ...

你確認一下Board file裡面的這幾層,有那些資料
"USER PART NUMBER/ASSEMBLY_TOP"
"USER PART NUMBER/ASSEMBLY_BOTTOM"
作者: menghunabc    时间: 2012-7-26 16:24
看一下正需要呢!
作者: xieh_17    时间: 2012-7-29 12:11
高手啊
作者: weisty919    时间: 2012-11-5 12:47
没看明白,郁闷!!!

作者: marco_ma    时间: 2012-11-5 20:27
你好,在ALLEGRO PCB 中输出BOM的SKILL你弄出来了吗,能不能发个给我啊,我很需要这个的,非常感谢啊
作者: wolf343105    时间: 2012-11-6 08:54
ding.
作者: yang-2200    时间: 2013-3-27 10:53
XYX365 发表于 2012-5-8 07:59
以下的source code和附件的skill 應該可以參考一下,改成你需要的格式

Hi
我去試了你給的skill,但它確要有使用碼才能用,
是否可以給我可以使用的碼{:soso_e103:}
作者: yang-2200    时间: 2013-3-27 15:01
E- *Error* fprintf/sprintf: format spec. incompatible with data - "Format is '|  %-76s|\n', argument #1 is nil"

好像大家的問題都是相同的.
請樓主把修正後的重新發一次出來可以嗎?
作者: yaoshasha    时间: 2013-12-30 18:48
ncrpt.il测试了一下,出现下图!skill无法使用,如何解决XYX365
作者: bingshuihuo    时间: 2014-5-3 03:45
该修改那几行?谢谢!
作者: JIMDENG    时间: 2014-5-4 21:06
16.5工具软件,tools/report下拉菜单有很标准的出bom命令操作!

作者: yucking    时间: 2014-5-23 18:31
XYX365 发表于 2012-5-8 07:59
以下的source code和附件的skill 應該可以參考一下,改成你需要的格式

我想下载啊
作者: uestcxiaoxin    时间: 2015-2-27 16:27
看不到啊 附件没法下载

作者: vivienluo    时间: 2015-3-2 23:01
帮顶,不懂的人飘过。
作者: yangruofei52    时间: 2015-3-6 14:29
要如何升级会员啊?
作者: XYX365    时间: 2015-3-6 16:28
yangruofei52 发表于 2015-3-6 14:29
要如何升级会员啊?

Allegro Skill開發的版塊必須是三級會員以上才可以下載資料,
你可以每天去簽到,就會提升等級.

作者: weman    时间: 2015-6-18 09:24
XYX365 发表于 2012-5-8 07:59
以下的source code和附件的skill 應該可以參考一下,改成你需要的格式

看不了

作者: weman    时间: 2015-6-18 09:28
XYX365 发表于 2012-5-9 14:17
試試看附件

根据SKill出的BOM,不知道怎么修改

作者: motofatfat    时间: 2015-6-18 09:49
學習了
作者: vivianwu0317    时间: 2015-6-26 09:07
赞一个!
作者: wolf343105    时间: 2015-7-27 19:58
能倒出完整bom吗?
作者: XYX365    时间: 2015-7-31 07:23
wolf343105 发表于 2015-7-27 19:58
能倒出完整bom吗?

原則上是可以的,
只要原理圖裡面有的資料,並可以導到PCB裡面,
就可以使用skill轉出來.

作者: wolf343105    时间: 2015-7-31 08:57
XYX365 发表于 2015-7-31 07:23
原則上是可以的,
只要原理圖裡面有的資料,並可以導到PCB裡面,
就可以使用skill轉出來.

太好了,我试试看看.

作者: caroid    时间: 2015-10-21 18:29
weman 发表于 2015-6-18 09:24
看不了

为什么下载不了?
作者: motofatfat    时间: 2015-10-22 11:29
學習了
作者: hy20060614    时间: 2016-7-28 17:21
谢谢分享
作者: happyliangkeshu    时间: 2016-7-28 21:05
来看下,啊啊
作者: wcjcn    时间: 2017-6-9 12:33
谢谢分享。。。。。。




欢迎光临 EDA365电子工程师网 (http://bbs.elecnest.cn/) Powered by Discuz! X3.2