找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 2304|回复: 21
打印 上一主题 下一主题

『原创』公开源码——丝印压焊盘的SKILL源码

[复制链接]

13

主题

44

帖子

1057

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1057
跳转到指定楼层
1#
发表于 2013-10-20 12:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

您需要 登录 才可以下载或查看,没有帐号?注册

x
下面是丝印压焊盘的检查源码。
说明确一点就是 Soldermast开窗上有silkscreen的东西。
源码不做注释,大家自己去理解吧。

  1. /*
  2. ------------------------------------------------------
  3. 函数:SilkOnSold()
  4. 输入:无
  5. 说明:白油压开窗
  6. 规范:焊盘Soldermast中不能有Silkscreen
  7. ------------------------------------------------------
  8. */
  9. defun(SilkOnSold ()
  10. let((SilkID VisList Silk_Vis PinID SymID)
  11.         Silk_Vis = '(       
  12.                 (nil class "PLAN" visible nil subclassinfo nil)
  13.                 (nil class "CONSTRAINT REGION" visible nil subclassinfo nil)
  14.                 (nil class "BOUNDARY" visible nil subclassinfo nil)
  15.                 (nil class "ANTI ETCH" visible nil subclassinfo nil)
  16.                 (nil class "VIA KEEPOUT" visible nil subclassinfo nil)
  17.                 (nil class "VIA CLASS" visible nil subclassinfo nil)
  18.                 (nil class "USER PART NUMBER" visible nil subclassinfo nil)
  19.                 (nil class "TOLERANCE" visible nil subclassinfo nil)
  20.                 (nil class "ROUTE KEEPOUT" visible nil subclassinfo nil)
  21.                 (nil class "ROUTE KEEPIN" visible nil subclassinfo nil)
  22.                 (nil class "REF DES" visible -1 subclassinfo (("ASSEMBLY_TOP" nil) ("ASSEMBLY_BOTTOM" nil) ("SILKSCREEN_TOP" t) ("SILKSCREEN_BOTTOM" t) ("DISPLAY_TOP" nil) ("DISPLAY_BOTTOM" nil)))
  23.                 (nil class "PIN" visible nil subclassinfo nil)
  24.                 (nil class "PACKAGE KEEPOUT" visible nil subclassinfo nil)
  25.                 (nil class "PACKAGE KEEPIN" visible nil subclassinfo nil)
  26.                 (nil class "PACKAGE GEOMETRY" visible -1 subclassinfo (("ASSEMBLY_TOP" nil) ("ASSEMBLY_BOTTOM" nil) ("PLACE_BOUND_TOP" nil) ("PLACE_BOUND_BOTTOM" nil) ("PIN_NUMBER" nil) ("PAD_STACK_NAME" nil) ("SILKSCREEN_TOP" t) ("SILKSCREEN_BOTTOM" t) ("BODY_CENTER" nil) ("SOLDERMASK_TOP" nil) ("SOLDERMASK_BOTTOM" nil) ("DISPLAY_TOP" nil) ("DISPLAY_BOTTOM" nil) ("MODULES" nil) ("DFA_BOUND_TOP" nil) ("DFA_BOUND_BOTTOM" nil) ("PASTEMASK_TOP" nil) ("PASTEMASK_BOTTOM" nil)))
  27.                 (nil class "ANALYSIS" visible nil subclassinfo nil)
  28.                 (nil class "MANUFACTURING" visible nil subclassinfo nil)
  29.                 (nil class "ETCH" visible nil subclassinfo nil)
  30.                 (nil class "DRC ERROR CLASS" visible nil subclassinfo nil)
  31.                 (nil class "DRAWING FORMAT" visible nil subclassinfo nil)
  32.                 (nil class "DEVICE TYPE" visible nil subclassinfo nil)
  33.                 (nil class "COMPONENT VALUE" visible nil subclassinfo nil)
  34.                 (nil class "BOARD GEOMETRY" visible -1 subclassinfo (("OUTLINE" nil) ("PLATING_BAR" nil) ("ASSEMBLY_NOTES" nil) ("TOOLING_CORNERS" nil) ("DIMENSION" nil) ("PLACE_GRID_TOP" nil) ("PLACE_GRID_BOTTOM" nil) ("TOP_ROOM" nil) ("BOTTOM_ROOM" nil) ("BOTH_ROOMS" nil) ("SWITCH_AREA_TOP" nil) ("SWITCH_AREA_BOTTOM" nil) ("SILKSCREEN_TOP" t) ("SILKSCREEN_BOTTOM" t) ("ASSEMBLY_DETAIL" nil) ("SOLDERMASK_TOP" nil) ("SOLDERMASK_BOTTOM" nil) ("OFF_GRID_AREA" nil) ("WB_GUIDE_LINE" nil) ("PANEL" nil) ("BOTTOM_DXF" nil) ("TOP_DXF" nil) ("NCROUTE_PATH" nil)))
  35.         )
  36.         List_Error = '()
  37.         VisList = axlVisibleGet()
  38.         axlVisibleSet(Silk_Vis)
  39.         axlSetFindFilter(?enabled '("lines" "shapes") ?onButtons '("lines" "shapes"))
  40.         axlAddSelectAll()
  41.         SilkID = axlGetSelSet()
  42.         axlClearSelSet()
  43.         axlVisibleSet(VisList)
  44.         SymID = axlDBGetDesign()->symbols
  45.         PinID = '()
  46.         foreach(n2 SymID
  47.                 when(n2->pins
  48.                         PinID = append(PinID n2->pins)
  49.                 )
  50.         )
  51.         foreach(n0 SilkID
  52.                 foreach(n1 PinID
  53.                         if(axlAirGap(n0 n1 "PIN/SOLDERMASK_TOP") then
  54.                                 List_Error = append1(List_Error n1->parent->refdes)
  55.                         )
  56.                 )
  57.         )

  58. )
  59. )
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏4 支持!支持! 反对!反对!

73

主题

688

帖子

2499

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2499
推荐
发表于 2017-7-25 17:34 | 只看该作者
chuchiwolong 发表于 2014-11-12 14:08
楼主这方法有点低端啊,先把所有丝印全选,然后挨个跟每个pin对比检查丝印与pin之间的airGap。效率很低,就 ...

我是把所有pin取出bbox,在一个个bbox判断是否有丝印,这样的结果发现20s左右,时间太长了。我猜测对每个pin进行bbox时间不短呀。这里的时间能压缩?或者整体的时间怎样压缩。

70

主题

197

帖子

1171

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1171
推荐
发表于 2014-11-12 14:08 | 只看该作者
楼主这方法有点低端啊,先把所有丝印全选,然后挨个跟每个pin对比检查丝印与pin之间的airGap。效率很低,就像冒泡排序似的。目测速度得几秒到十几秒才能出结果吧。

点评

我是把所有pin取出bbox,在一个个bbox判断是否有丝印,这样的结果发现20s左右,时间太长了。我猜测对每个pin进行bbox时间不短呀。这里的时间能压缩?或者整体的时间怎样压缩。  详情 回复 发表于 2017-7-25 17:34

73

主题

688

帖子

2499

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2499
推荐
发表于 2017-5-28 10:40 | 只看该作者

你有这个方法的skill,发一份谢谢@1151615095@qq.com

13

主题

44

帖子

1057

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1057
2#
 楼主| 发表于 2013-10-20 12:20 | 只看该作者
List_Error 为问题器件的位号。

4

主题

65

帖子

1018

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1018
3#
发表于 2014-1-3 14:24 | 只看该作者
谢谢分享

5

主题

205

帖子

509

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
509
4#
发表于 2014-1-4 08:43 | 只看该作者
请问没命令输入??加载进去没什么反应呢?该怎么用?

10

主题

108

帖子

2056

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2056
5#
发表于 2014-1-6 11:01 | 只看该作者
請問怎麼使用??

29

主题

2646

帖子

2805

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2805
6#
发表于 2014-5-3 03:45 | 只看该作者

請問怎麼使用??

1

主题

29

帖子

860

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
860
7#
发表于 2014-5-14 09:59 | 只看该作者
tks a lot

12

主题

219

帖子

659

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
659
8#
发表于 2014-5-16 15:48 | 只看该作者
那位能吧它封装成一个il文件使用呀。

0

主题

4

帖子

-1万

积分

未知游客(0)

积分
-12281
9#
发表于 2014-10-27 23:45 | 只看该作者
很好,已阅

13

主题

648

帖子

3955

积分

五级会员(50)

Rank: 5

积分
3955
11#
发表于 2015-1-22 13:47 | 只看该作者
学习一下

17

主题

320

帖子

897

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
897
12#
发表于 2015-4-9 15:21 | 只看该作者

2

主题

113

帖子

321

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
321
13#
发表于 2015-7-15 18:32 来自手机 | 只看该作者
用Box方式选择

点评

box方法不准,会放大焊盘  详情 回复 发表于 2017-9-27 09:12
你有这个方法的skill,发一份谢谢@  详情 回复 发表于 2017-5-28 10:40

10

主题

138

帖子

250

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
250
14#
发表于 2015-7-19 13:43 | 只看该作者
试试,谢谢啦

3

主题

230

帖子

477

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
477
15#
发表于 2015-8-2 23:36 | 只看该作者
太好啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-11-26 04:03 , Processed in 0.071438 second(s), 38 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表