EDA365电子论坛网

标题: 如何在ALLEGRO中使用SKILL语言统计过孔数量 [打印本页]

作者: xieh_17    时间: 2012-7-29 11:56
标题: 如何在ALLEGRO中使用SKILL语言统计过孔数量
如何在ALLEGRO中使用SKILL语言统计过孔数量

请大虾指教,小弟不胜感激!

如有代码,请发到我邮箱:xieh_17@163.com
作者: betamelody    时间: 2012-8-2 10:03
这位兄弟问问题最好能详细一点,比如:只要是PLATED就算过孔吗,还是不论pth nonpth 还是bbvia都算过孔?
作者: xieh_17    时间: 2012-8-7 23:23
呵呵,先搞简单一点,统计通孔板上所有的通孔,望大虾指点
作者: deargds    时间: 2012-8-8 09:54
参考以下代码:
  1. ;https://www.eda365.com
  2. defun( GetThroughViaCount ()
  3. prog((lVia)
  4.         axlClearSelSet()
  5.         axlSetFindFilter(?enabled '("noall", "VIAS", "invisible"), ?onButtons '("noall", "VIAS"))
  6.         lVia = setof(v axlGetSelSet(axlAddSelectAll()) v->isThrough)
  7.         axlClearSelSet()
  8.         ;Via Count
  9.         return(length(lVia))
  10. ))
复制代码

作者: xieh_17    时间: 2012-8-8 23:23
感谢版主,我先看看这代码
作者: zm0202    时间: 2012-8-9 23:45
经典的 invisible 选项, 呵呵
axlSetFindFilter(?enabled '("noall"), ?onButtons '("noall"))
习惯设置完毕后还原下。
有的时候不用  invisible  选项给程序无限潜力,把层留给用户去切换也好玩。
有的时候可以灵活使用axlVisibleLayer产生多种不同应用。
作者: xieh_17    时间: 2012-8-13 23:11
deargds版主提供的统计通孔数量代码很好用.

再请教一下,如何统计HDI板上,激光孔和机械孔数量呢?

说明,激光孔径一般为4mil,机械孔径8mil,激光孔可能会因为HDI板阶数孔名称不一样,这样给我统计激光孔数量带来一些难度.

请大神指教!
作者: chouqiu    时间: 2012-10-13 11:09
我急要  统计 板子 的钻孔数 希望楼主做出来 后发出来
  能发到我邮箱 不胜感激  306597060@qq.com
作者: yang-2200    时间: 2012-10-26 14:01
我也需要. 感謝!!!
請發到的信箱:yang.peggy@iac.com.tw
作者: XYX365    时间: 2012-10-26 14:07
chouqiu 发表于 2012-10-13 11:09
我急要  统计 板子 的钻孔数 希望楼主做出来 后发出来
  能发到我邮箱 不胜感激

這個不需要用到Skill,只要出NC Legend就能統計
如下圖是不是你所須要的

作者: wolf343105    时间: 2012-10-26 16:46
正确.
作者: chouqiu    时间: 2012-10-29 10:04
XYX365 发表于 2012-10-26 14:07
這個不需要用到Skill,只要出NC Legend就能統計
如下圖是不是你所須要的

这个我知道  我想问的是 能不能直接把所有孔 都一次性统计 出来
   钻孔图  好的自己一个一个加 才知道
作者: xieh_17    时间: 2012-11-21 18:06
以下是获得通孔板上所有属性为via的过孔数量,就是版主提供的代码,自己加了一个显示窗口。
axlCmdRegister("test",'test)

defun( test ()
prog((lVia)
        axlClearSelSet()
        axlSetFindFilter(?enabled '("noall", "VIAS", "invisible"), ?onButtons '("noall", "VIAS"))
        lVia = setof(v axlGetSelSet(axlAddSelectAll()) v->isThrough)
        axlClearSelSet()
        ;Via Count
        str = sprintf(nil "%d" length(lVia))
        axlUIConfirm(strcat("Through via : " str))
))

作者: xieh_17    时间: 2012-12-14 16:41
本帖最后由 xieh_17 于 2012-12-14 16:44 编辑


以下是获得通孔板上所有属性为via的过孔数量,就是版主提供的代码,自己加了一个显示窗口。
  1. axlCmdRegister("test",'test)

  2. defun( test ()
  3. prog((lVia)
  4.         axlClearSelSet()
  5.         axlSetFindFilter(?enabled '("noall", "VIAS", "invisible"), ?onButtons '("noall", "VIAS"))
  6.         lVia = setof(v axlGetSelSet(axlAddSelectAll()) v->isThrough)
  7.         axlClearSelSet()
  8.         ;Via Count
  9.         str = sprintf(nil "%d" length(lVia))
  10.         axlUIConfirm(strcat("Through via : " str))
  11. ))
复制代码

作者: deargds    时间: 2012-12-14 16:45
xieh_17 发表于 2012-12-14 16:41
以下是获得通孔板上所有属性为via的过孔数量,就是版主提供的代码,自己加了一个显示窗口。

strcat可以省掉了
作者: xieh_17    时间: 2012-12-14 17:01
deargds 发表于 2012-12-14 16:45
strcat可以省掉了

axlUIConfirm("Through via : " str)---这样我运行后没有反应。
axlUIConfirm(str)---这样才可以,但是输出孔数。
请问版主怎么去掉strcat后,保证能够输出"Through via "提示。
作者: deargds    时间: 2012-12-14 17:04
xieh_17 发表于 2012-12-14 17:01
axlUIConfirm("Through via : " str)---这样我运行后没有反应。
axlUIConfirm(str)---这样才可以,但是输 ...
  1. axlUIConfirm(sprintf(nil "Through via :%d" length(lVia)))
复制代码

作者: soul_winds    时间: 2013-4-12 13:16
deargds 发表于 2012-12-14 17:04

哥,你啥时候有时间把十天学会Skill教程写完呀,不胜感激涕零!
作者: xieh_17    时间: 2017-9-19 16:16
mark:axlDBDeleteProp(axlDBGetDesign()->symbols "FIXED_PRIVATE")
作者: jonzhao    时间: 2017-9-20 11:11
这个不错。
作者: qinhappy    时间: 2017-9-20 14:03
这个不错。




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