Allegro利用Skill语言实现根据NET获取同网络下所有过孔的坐标信息

代码如下:

defun(GetViaCoordinate (NetName)
axlClearSelSet()
axlSetFindFilter( ?enabled (list "nets" ) ?onButtons (list "nets"))
;p = axlSelectByName("NET" "DDR_B4420_MDQ0" t)
p = axlSelectByName("NET" NetName t)
parentGroups = car(p)->parentGroups
branches = car(p)->branches
branches_length = length(branches)
name = car(p)->name;网络名
nBranches = car(p)->nBranches;分支数
objType = car(p)->objType;NET
readOnly = car(p)->readOnly;t或nil
prop = car(p)->prop;逻辑路径
pinpair = car(p)->pinpair
ratT = car(p)->ratT
ratsnest= car(p)->ratsnest
ratsnestOn = car(p)->ratsnestOn;t或nil
bus = car(p)->bus
diffpair = car(p)->diffpair
xnet = car(p)->xnet
scheduleLocked= car(p)->scheduleLocked
isBundled = car(p)->isBundled
rpd = car(p)->rpd
unconnected = car(p)->unconnected
unplaced= car(p)->unplaced
;defvar(via_list)
let((my_via_table)
via_table = makeTable("table")
for(i 0 nBranches-1
children = nth(i branches)->children
children_len = length(children)
axlUIWPrint(nil "children_len=%d" children_len)
for(j 0 children_len-1
length_via_table=length(via_table) 
axlUIWPrint(nil "length_via_table=%d" length_via_table) 
if(nth(j children)->name=="VIA8D16"
via_table[length_via_table] = nth(j children)->xy
)

)
)
my_via_table = via_table
)

)

使用用法:

1. 新建*.il,复制上述代码进去。

2. Allegro界面执行skill load("*.il的完整名")

3. Allegro命令界面输入skill,并输入:ViaCoord = GetViaCoordinate("DDR_B4420_MDQ0"),其中DDR_B4420_MDQ0就是网络名,那么ViaCoord[0],ViaCoord[1]...就包含了这些过孔的坐标。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力不期待

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值