EDA365电子论坛网

标题: 有padstack怎么获取到这个的PIN呢? [打印本页]

作者: lyh289114980    时间: 2019-7-18 16:14
标题: 有padstack怎么获取到这个的PIN呢?
有padstack怎么获取到这个的PIN呢?大神们怎么弄啊

作者: summer2019    时间: 2019-7-18 21:06
方法1:
打开封装   tools》padstack》modify design padstacks》
在options菜单找到焊盘双击打开就可以另存了

作者: lyh289114980    时间: 2019-7-19 13:59
summer2019 发表于 2019-7-18 21:06
方法1:
打开封装   tools》padstack》modify design padstacks》
在options菜单找到焊盘双击打开就可以 ...

SKILL 获取

作者: 听说你懂我    时间: 2019-7-21 20:53
->parent->??   
作者: lyh289114980    时间: 2019-7-22 09:08
听说你懂我 发表于 2019-7-21 20:53
->parent->??

你这好像不行获取本padstack的pin,->parent->?这个结果是design

作者: jet2001    时间: 2019-7-22 15:57
本帖最后由 jet2001 于 2019-7-22 16:17 编辑

axlCmdRegister( "get_pad" `get_pad) ; load("get_pad.il") ; get_pad C110D91 ; get_pad SMD35X157
procedure(get_pad(pad_name)

wbox=axlGetParam("paramDesign")->bBox
(axlVisibleDesign nil)
axlSetFindFilter(?enabled list("noall" "PINS"))
axlSetFindFilter(?onButtons list("all"))
axlVisibleLayer("BOARD GEOMETRY/OUTLINE" t)
axlVisibleLayer("PACKAGE GEOMETRY/PIN_NUMBER" t)
axlVisibleLayer("PIN/TOP" t)
axlVisibleLayer("PIN/BOTTOM" t)
all_pads=axlGetSelSet(axlSingleSelectBox(wbox))
axlClearSelSet()

;Skill > p1->component->package "USB31C_12X2_TP3D1-003"
;Skill > p1->component->name  "CN2"
;Skill > p1->name "O44X95D24X75"
;Skill > p1->number  "H1"
;Skill > p1->xy   (24.654 594.732)

g_pads=nil
(foreach a all_pads if(a->name==pad_name then g_pads=cons(a g_pads) ) )
printf("*** get %d padstack=%s  ***\n" length(g_pads) pad_name )
ctr=1
(foreach p g_pads printf("pin %d : %s.%s at %L\n" ctr p->component->name p->number p->xy ) ++ctr)
p_xy=nth(0 g_pads)->xy ;如果你要跑到 pin1去
p_x=nth(0 p_xy)
p_y=nth(1 p_xy)
if(nth(0 axlDBGetDesignUnits())=="millimeters" then _dxy=10 else _dxy=400) ; set display Window X /Y = 20x20CM
(axlWindowBoxSet (list (list p_x-_dxy p_y-_dxy) (list p_x+_dxy p_y+_dxy)))
;;;; 其他的 請自己寫
);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
在allegro
Command > get_pad SMD35X157
會show
*** get 2 padstack=C110D91  ***
pin 1 : USB4.H2 at (24.654 594.732)
pin 2 : USB4.H1 at (11.514 594.732)





作者: lyh289114980    时间: 2019-7-22 17:51
jet2001 发表于 2019-7-22 15:57
axlCmdRegister( "get_pad" `get_pad) ; load("get_pad.il") ; get_pad C110D91 ; get_pad SMD35X157
proc ...

好像跟我要的不一样,我要的是axlLoadPadstack(padStackName),这样能获取到这个PIN的dbid吗?

作者: jet2001    时间: 2019-7-22 18:30
本帖最后由 jet2001 于 2019-7-22 18:32 编辑

照我的方法可以找的到已place的零件 有幾個你要找的padStack
用你的方法不行
Skill > a=axlLoadPadstack("O111X44D91X24")
dbid:132720016
Skill > a->??
(prop nil bBox
    ((-1.5367 -0.6858)
        (1.5367 0.6858)
    ) readOnly
    t pads
    (pad:161227040 pad:161227016 pad:161226992 pad:161226968 pad:161226944
        pad:161226920 pad:161226896 pad:161226872 pad:161226848 pad:161226824
        pad:161226800 pad:161226776
    ) objType "padstack"
    startEnd
    ("ETCH/TOP" "ETCH/BOTTOM") parent dbid:160845304 name
    "O111X44D91X24" isThrough t drillChar "F"
    multiDrillData nil drillFigureHeight 0.6096 drillFigureWidth
    2.3114 drillFigureName "OBLONG_X" drillDiameter 0.6096
    drillOffset
    (0.0 0.0)
)
=====================
Skill > pp=a->parent
dbid:160845304
Skill > pp->??
一堆資料 但找不到有提供的欄位



作者: leilei4908    时间: 2019-7-31 14:26
lyh289114980 发表于 2019-7-22 17:51
好像跟我要的不一样,我要的是axlLoadPadstack(padStackName),这样能获取到这个PIN的dbid吗?

你的问题很奇怪
会用到这个padstack的pin并不一定唯一
怎么获取到“这个”Pin?
你的目的是获取到使用这种padstack的所有pin?
那就先axlSelect获得所有的pin,再根据pin->name去筛选

作者: lyh289114980    时间: 2019-8-14 11:32
leilei4908 发表于 2019-7-31 14:26
你的问题很奇怪
会用到这个padstack的pin并不一定唯一
怎么获取到“这个”Pin?

你想要的是用SKILL去更新我板子上的器件焊盘从而更新更是这样板子的器件封装,这个麻烦提供下思路。谢谢

作者: leilei4908    时间: 2019-8-15 11:54
本帖最后由 leilei4908 于 2019-8-19 10:01 编辑
lyh289114980 发表于 2019-8-14 11:32
你想要的是用SKILL去更新我板子上的器件焊盘从而更新更是这样板子的器件封装,这个麻烦提供下思路。谢谢
...

大概知道你的意思了
比如所有的焊盘需要修改Tolerance
如果单单只是brd上修改,虽然Export Library能导出修改后的焊盘
但是dra内部的焊盘还是未更新的
你需要的是包括brd,包括dra都能更新焊盘,对不?

brd使用的pad数据,只是Library里的
虽然dra能榨取pad,但是brd只是用了dra的pad name

在brd界面修改dra,应该是不可行的,只能读取dra的definition,不能export修改后的dra

可以先在brd修改所有的焊盘并导出,用getDirFiles获取所有的dra,axlOpenDesign打开dra
skill生成“替换焊盘”的录制文件scr,重播,axlSaveDesign保存dra

作者: lyh289114980    时间: 2019-8-19 09:59
leilei4908 发表于 2019-8-15 11:54
大概知道你的意思了
比如所有的焊盘需要修改Tolerance
如果单单只是brd上修改,虽然Export Library能导 ...

谢谢,我正在尝试着写代码看下是否可以。





欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2