EDA365电子工程师网

标题: 求检查VIA on PAD的skill [打印本页]

作者: zhangjunxuan21    时间: 2016-1-13 17:29
标题: 求检查VIA on PAD的skill
该skill能将VIA on PAD的器件高亮起来。不是用报表的形式。多少个过孔打在器件上,一目了然。跪求大侠们开源分享。
作者: Chiucp    时间: 2016-1-13 17:29
大概寫了一下,試試看
command> cvop
作者: chrysalis    时间: 2016-1-13 17:43
allegro自带吧……
setup >> constraints >> modes >>SMD pin modes
作者: zhangjunxuan21    时间: 2016-1-14 10:57
chrysalis 发表于 2016-1-13 17:43
allegro自带吧……
setup >> constraints >> modes >>SMD pin modes

用也能用就是了,不过那些电源芯片肚子底下的焊盘本来就要打过孔,这个DRC开起来会多出很多drc。我只想要一个出图前检查的工具。高亮之后,检查一下,不是误打在焊盘的直接取消高亮就好了。
作者: chrysalis    时间: 2016-1-14 11:04
zhangjunxuan21 发表于 2016-1-14 10:57
用也能用就是了,不过那些电源芯片肚子底下的焊盘本来就要打过孔,这个DRC开起来会多出很多drc。我只想要 ...

那样的话需要判断一个焊盘是否是热焊盘。

作者: zhangjunxuan21    时间: 2016-1-14 13:45
chrysalis 发表于 2016-1-14 11:04
那样的话需要判断一个焊盘是否是热焊盘。

恩 全部高亮之后  我自己就看得懂了,分分钟判定了。想要的SKILL功能,就是把过孔打在焊盘上的器件高亮起来。
作者: 361553894    时间: 2016-1-15 09:04
提供给你关键函数
pinPoly = car(axlPolyFromDB(pin ?layer padlayer))
axlSetFindFilter(?enabled "noall" "vias" ?onButtons "noall" "vias")
axlSingleSelectBox(pinPoly->box)
vias = axlGetSelSet()
剩下的自己琢磨吧

作者: zhangjunxuan21    时间: 2016-1-18 14:50
361553894 发表于 2016-1-15 09:04
提供给你关键函数
pinPoly = car(axlPolyFromDB(pin ?layer padlayer))
axlSetFindFilter(?enabled "noal ...

还是感谢大神原因分享关键思路,虽然我还不会写skill程序。

作者: zhangjunxuan21    时间: 2016-1-18 17:04
Chiucp 发表于 2016-1-18 16:45
大概寫了一下,試試看
command> cvop

很接近了,不过现在这个skill有个缺陷 就是高亮的时候是调用临时高亮的pin,无法取消高亮!我想要达到的效果是,实现高亮相应的器件,可以手动取消高亮。
作者: zhangjunxuan21    时间: 2016-1-18 17:06
Chiucp 发表于 2016-1-18 16:45
大概寫了一下,試試看
command> cvop

能高亮相应的器件,也能取消高亮的器件,这样子就能方便判断过孔打在焊盘上是否是设计需求,还是工程师误操作。
作者: 361553894    时间: 2016-1-18 17:44
zhangjunxuan21 发表于 2016-1-18 17:04
很接近了,不过现在这个skill有个缺陷 就是高亮的时候是调用临时高亮的pin,无法取消高亮!我想要达到的 ...

临时高亮的可以通过Show Element指令取消高亮

作者: zhangjunxuan21    时间: 2016-1-19 12:51
361553894 发表于 2016-1-18 17:44
临时高亮的可以通过Show Element指令取消高亮

没试出效果,另外这个SKILL会出现误判,过孔打的比较靠近焊盘的也会高亮起来,应该是判断的逻辑不一样吧。 哎,自己不会写程序,是该学学
作者: zhangjunxuan21    时间: 2016-1-19 12:55
361553894 发表于 2016-1-18 17:44
临时高亮的可以通过Show Element指令取消高亮

这个skill的思路是把过孔和打上过孔的焊盘,临时高亮起来,show---Element是不是也要把过孔和焊盘都勾起来才会取消高亮。我比较期望的是可以高亮起相关的器件。不过还是很感谢两位大神的热心解答
作者: zhangjunxuan21    时间: 2016-1-19 12:57
Chiucp 发表于 2016-1-13 17:29
大概寫了一下,試試看
command> cvop

支持原创和分享,希望能完善做的更好。

作者: Chiucp    时间: 2016-1-19 17:55
zhangjunxuan21 发表于 2016-1-19 12:57
支持原创和分享,希望能完善做的更好。

再試一下看看,這是今天改寫的
不知道符不符您的胃口

目前會重複選到相同的pin
這部分我再想想如何解決
先給你看看目前的狀態~~~

指令一樣是
command > cvop

作者: zhangjunxuan21    时间: 2016-1-20 08:55
Chiucp 发表于 2016-1-19 17:55
再試一下看看,這是今天改寫的
不知道符不符您的胃口

没试出想要的效果来,感觉比之前那一版本的更不好用。如附图,消除误判效应,高亮焊盘改成高亮器件。就比较完美了。
作者: Chiucp    时间: 2016-1-20 08:57
zhangjunxuan21 发表于 2016-1-20 08:55
没试出想要的效果来,感觉比之前那一版本的更不好用。如附图,消除误判效应,高亮焊盘改成高亮器件。就比 ...

帳號等級太低,沒有辦法看到您的圖片 但是可以從您的敘述,改成高量器件
我先修改下,晚點再發上來



作者: Chiucp    时间: 2016-1-20 09:56
zhangjunxuan21 发表于 2016-1-20 08:55
没试出想要的效果来,感觉比之前那一版本的更不好用。如附图,消除误判效应,高亮焊盘改成高亮器件。就比 ...

試試
這版改為高亮器件
並修正了重複選取 & via Clearance誤判的問題


作者: zhangjunxuan21    时间: 2016-1-20 10:25
Chiucp 发表于 2016-1-20 09:56
試試
這版改為高亮器件
並修正了重複選取 & via Clearance誤判的問題

不知道是我的测试方法不对  还是你的逻辑不对  完全没检查和高亮的效果,还是很感谢你的热心支持。追求完善的态度,我给满分
作者: Chiucp    时间: 2016-1-20 15:02
zhangjunxuan21 发表于 2016-1-20 10:25
不知道是我的测试方法不对  还是你的逻辑不对  完全没检查和高亮的效果,还是很感谢你的热心支持。追求 ...

[attach]107658[/attach]

command > cvop
跳出視窗
在via clearance 輸入間距後按下check
<</>> 可以快速跳至上/下一個VOP位置
Dehighlight 會將目前這個器件高亮解除

作者: zhangjunxuan21    时间: 2016-1-21 08:48
Chiucp 发表于 2016-1-20 15:02
command > cvop
跳出視窗
在via clearance 輸入間距後按下check

你用哪个版本测试的啊,测试方法跟你一样  我就测不出你说的这个效果来  完全没反应
作者: 361553894    时间: 2016-1-21 11:24
zhangjunxuan21 发表于 2016-1-20 10:25
不知道是我的测试方法不对  还是你的逻辑不对  完全没检查和高亮的效果,还是很感谢你的热心支持。追求 ...

Via完全包含在Pad内时,高亮Pad所在的Symbol
需要的是这个么?

作者: zhangjunxuan21    时间: 2016-1-21 13:43
361553894 发表于 2016-1-21 11:24
Via完全包含在Pad内时,高亮Pad所在的Symbol
需要的是这个么?

对,就是这思路,当VIA和PAD相交的时候就高亮PAD所在的SYmbol,不用管是多少个via打在PAD上
作者: zhangjunxuan21    时间: 2016-1-21 13:48
361553894 发表于 2016-1-21 11:24
Via完全包含在Pad内时,高亮Pad所在的Symbol
需要的是这个么?

大体思路是检测symbol的焊盘上是否有VIA,而不是检测单个via是否在单个焊盘上。
作者: 361553894    时间: 2016-1-22 10:05
本帖最后由 361553894 于 2016-1-22 15:21 编辑
zhangjunxuan21 发表于 2016-1-21 13:48
大体思路是检测symbol的焊盘上是否有VIA,而不是检测单个via是否在单个焊盘上。


加载方式
Command > skill load("ViaInPadCheck.il" "WL")
调用方式
Command > vp

作者: penny190    时间: 2016-1-22 14:47
下載試試
謝謝大大喔
作者: penny190    时间: 2016-1-22 14:54
361553894 发表于 2016-1-22 10:05
加载方式
Command > skill load("ViaInPadCheck.il" "WL")
调用方式

不好意思
想請問  ~~  對話框可否變成英文介面呢?
謝謝

作者: 361553894    时间: 2016-1-22 14:57
penny190 发表于 2016-1-22 14:54
不好意思
想請問  ~~  對話框可否變成英文介面呢?
謝謝

繁体都可以的,看你的需求了

作者: penny190    时间: 2016-1-22 15:05
361553894 发表于 2016-1-22 14:57
繁体都可以的,看你的需求了

不好意思 ~~  加載使用之後是

[attach]107750[/attach]

作者: 361553894    时间: 2016-1-22 15:14
penny190 发表于 2016-1-22 15:05
不好意思 ~~  加載使用之後是

哦这样啊,这个是因为系统没有装简体的语言包
我改成英文的发一份吧

作者: 361553894    时间: 2016-1-22 15:18
本帖最后由 361553894 于 2016-1-22 15:27 编辑
penny190 发表于 2016-1-22 15:05
不好意思 ~~  加載使用之後是


這個是英文版的
作者: penny190    时间: 2016-1-22 16:07
361553894 发表于 2016-1-22 15:18
這個是英文版的

謝謝大大喔 ~~
已經可以使用了


作者: longzhiming99    时间: 2016-1-24 13:35
via为什么会到pad上去啦?难道是乱撒的吗?
作者: zhangjunxuan21    时间: 2016-1-27 08:39
361553894 发表于 2016-1-22 10:05
加载方式
Command > skill load("ViaInPadCheck.il" "WL")
调用方式

首先感谢大侠的热心解答和帮忙,测试之后发现还是不兼容,软件用的16.6,测试提示错误,找不到对应的subclass,如图
作者: yang-2200    时间: 2016-1-27 10:49
361553894 发表于 2016-1-22 10:05
加载方式
Command > skill load("ViaInPadCheck.il" "WL")
调用方式

你好:
測試後發現後面所check的有誤



作者: yang-2200    时间: 2016-1-27 10:51
361553894 发表于 2016-1-22 15:18
這個是英文版的

你好:
測試後發現後面所check的有誤


作者: 361553894    时间: 2016-1-27 13:30
本帖最后由 361553894 于 2016-1-27 16:17 编辑
zhangjunxuan21 发表于 2016-1-27 08:39
首先感谢大侠的热心解答和帮忙,测试之后发现还是不兼容,软件用的16.6,测试提示错误,找不到对应的subc ...


axlSubclassRoute()
你执行这个看下所有的层面,你是不是把TOP层和BOTTOM层名字改了?
我默认的是,如果零件的pin isMirrored 为nil,那么获取TOP层的pad;如果零件的pin isMirrored 为t,那么获取BOTTOM层的pad
如果不是固定的,我可以改为默认值

是我层面设置错误,已经修复

作者: 361553894    时间: 2016-1-27 13:33
yang-2200 发表于 2016-1-27 10:51
你好:
測試後發現後面所check的有誤

你的问题,是不是用了盲埋孔?
我的判断是pad所在的范围内如果有完全包含在内的via才高亮零件
并没有考虑盲埋孔的情况


作者: 361553894    时间: 2016-1-27 14:31
yang-2200 发表于 2016-1-27 10:51
你好:
測試後發現後面所check的有誤

①修复padlayer获取错误的问题
padlayer = pin->isMirrored && "PIN/BOTTOM" || "PIN/TOP"
pinPoly = car(axlPolyFromDB(pin ?layer padlayer))
②新增vialayer避免盲埋孔误报
vialayer = pin->isMirrored && "VIA CLASS/BOTTOM" || "VIA CLASS/TOP"
viaPoly = car(axlPolyFromDB(via ?layer vialayer))


作者: yang-2200    时间: 2016-1-28 11:23
361553894 发表于 2016-1-27 13:33
你的问题,是不是用了盲埋孔?
我的判断是pad所在的范围内如果有完全包含在内的via才高亮零件
并没有考 ...

我的板子內都是全貫孔,沒有盲埋孔和雷射孔.

作者: zhangjunxuan21    时间: 2016-1-28 14:26
361553894 发表于 2016-1-27 14:31
①修复padlayer获取错误的问题
padlayer = pin->isMirrored && "PIN/BOTTOM" || "PIN/TOP"
pinPoly = c ...

很给力 想要的功能实现了  能不能实现一次性全部高亮过孔打在焊盘上的器件,不要这样子临时高亮的一个一个的点过去。我检查别人的板子的时候,我只要扫一眼高亮的20个器件,把打过孔在焊盘上却不是散热焊盘的器件截图出来,让他修改就可以了。
作者: zhangjunxuan21    时间: 2016-1-28 14:44
361553894 发表于 2016-1-27 14:31
①修复padlayer获取错误的问题
padlayer = pin->isMirrored && "PIN/BOTTOM" || "PIN/TOP"
pinPoly = c ...

做这个skill的主要用途是:评审的时候检查不按布线规则布线,把过孔打在焊盘上。存在的风险是,过孔打在焊盘上没有进行树脂塞孔或者电镀填平,会导致SMT的时候过孔藏锡珠,容易引起虚焊、空洞、假焊等问题。如果进行树脂塞孔或电镀填平,PCB制造会增加一道工序,成本增加20%左右。所以主要是评审的时候希望跑一下SKILL,器件焊盘上有通孔的全部高亮起来,一步到位,一目了然。
作者: 361553894    时间: 2016-1-28 16:12
本帖最后由 361553894 于 2016-1-28 16:16 编辑
zhangjunxuan21 发表于 2016-1-28 14:26
很给力 想要的功能实现了  能不能实现一次性全部高亮过孔打在焊盘上的器件,不要这样子临时高亮的一个一 ...


零件在Top层和bottom层的要分两次检查么?
按钮位置调整了下
Check放在了第一排
All用来点亮所有零件
Clear用来清除高亮


作者: zhangjunxuan21    时间: 2016-1-28 17:01
361553894 发表于 2016-1-28 16:12
零件在Top层和bottom层的要分两次检查么?
按钮位置调整了下
Check放在了第一排

感谢大侠,不厌其烦的满足我的要求,SKILL完善的挺完美的,再次谢谢
作者: zhangjunxuan21    时间: 2016-1-28 17:15
361553894 发表于 2016-1-28 16:12
零件在Top层和bottom层的要分两次检查么?
按钮位置调整了下
Check放在了第一排

功能方面已经能满足我的要求了。很感谢大侠的努力和分享,当然从用户体验角度看,它还可以被优化,其实显示界面只要  TOP bot面的选择(这个甚至都不需要,因为我们高亮之后我们可以再软件界面选择正面或者背面),高亮的方式采用控制面板选择高亮颜色,然后直接高亮全部,而不是用现在采用临时高亮的方式。
作者: zhangjunxuan21    时间: 2016-1-28 17:17
zhangjunxuan21 发表于 2016-1-28 17:15
功能方面已经能满足我的要求了。很感谢大侠的努力和分享,当然从用户体验角度看,它还可以被优化,其实显 ...

最简单的方式就是:我在allegro软件选择高亮颜色,然后输入VP,skill运行之后,器件焊盘上有过孔的全部高亮起来。
作者: 361553894    时间: 2016-1-28 17:36
zhangjunxuan21 发表于 2016-1-28 17:15
功能方面已经能满足我的要求了。很感谢大侠的努力和分享,当然从用户体验角度看,它还可以被优化,其实显 ...

不用临时高亮当然可以,使用Assign Coler染色
但是取消染色就不好处理,如果全部取消染色,会把检查前染色的也清除
看你对Clear功能有什么需求了

作者: zhangjunxuan21    时间: 2016-1-28 19:26
361553894 发表于 2016-1-28 17:36
不用临时高亮当然可以,使用Assign Coler染色
但是取消染色就不好处理,如果全部取消染色,会把检查前染 ...

skill实现检查器件有过孔并高亮的功能就可以了,其它的ALLEGro软件本身自带了,比如层面,比如取消高亮,我检查一个就取消高亮一个。也可以拖动鼠标取消高亮多个。关键看应用场合。

作者: 361553894    时间: 2016-1-29 08:50
zhangjunxuan21 发表于 2016-1-28 19:26
skill实现检查器件有过孔并高亮的功能就可以了,其它的ALLEGro软件本身自带了,比如层面,比如取消高亮, ...

那我All改成全部染色,Clear清除临时高亮
被染色的自己解决吧

作者: zhangjunxuan21    时间: 2016-1-29 10:28
361553894 发表于 2016-1-29 08:50
那我All改成全部染色,Clear清除临时高亮
被染色的自己解决吧

谢谢大侠的耐心解答和技术支持,测试体验,效果感觉不错,很满意,32个赞
作者: tnancy    时间: 2016-2-4 13:55
command key  cvopFCommand not found cvopN}??x
作者: mingx    时间: 2016-3-24 21:45
谢谢分享
作者: muluoairle    时间: 2016-4-11 00:31
感谢分享
作者: wang66jin    时间: 2016-6-12 16:17
361553894 发表于 2016-1-29 08:50
那我All改成全部染色,Clear清除临时高亮
被染色的自己解决吧

对于那些没有标准封装库、布局布线不按照规则来的朋友们而言,这个很有用。

作者: wang66jin    时间: 2016-6-12 16:44
361553894 发表于 2016-1-29 08:50
那我All改成全部染色,Clear清除临时高亮
被染色的自己解决吧

Command > vp
E- *Error* axlFormDisplay: argument #1 should be any user-defined (other) type (type template = "o") - nil


FORM需要改一下吧


作者: skill_rc    时间: 2016-6-20 10:50
是 坑么 ?报错:
Command > vp
E- *Error* axlFormDisplay: argument #1 should be any user-defined (other) type (type template = "o") - nil
作者: mingx    时间: 2016-6-21 09:50
谢谢版主
作者: bingshuihuo    时间: 2016-6-22 11:54
看起来效果不错啊
作者: wu55    时间: 2016-7-7 15:33
謝謝樓主分享
作者: 6688hyc    时间: 2016-7-9 07:58
给力啊 就是下载不了
作者: 6688hyc    时间: 2016-7-11 20:58
我能下吗?
作者: spadeliao    时间: 2016-7-13 12:06
好棒的東西哦
作者: huzf    时间: 2016-8-15 10:48
看下
作者: bingshuihuo    时间: 2016-8-26 08:35
确实是个好东西
作者: LX0105    时间: 2016-10-14 15:17
感谢分享!!
作者: mentorkk    时间: 2016-11-13 14:39
给力啊 就是下载不了
作者: mentorkk    时间: 2016-11-16 14:42
If we setup design rule correctly, should standard DRC check show them ?




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