找回密码
 注册
查看: 51282|回复: 338
打印 上一主题 下一主题

检查走线跨平面Skill源码共享,附中文详细讲解每个步骤。

    [复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-12-28 16:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
本帖最后由 紫菁 于 2017-9-25 17:32 编辑

源程序见附件。
load("etch_cross_plane.il")
命令:ecp
使用方法:首先在程序里面选择某一电器层,然后选择某一平面层,点击“Check”按钮就可以进行跨平面的检查,检查结果会高亮显示跨平面的走线
程序中几乎每段都用了中文进行详细讲解,对不会skill编程或初学Skill编程的相信能给您带来一些帮助。望您早日成为Skill编程一员。通过程序的源码,您可以进行试改、修改,对成功的可以进行分享,本人绝对不说您抄袭思路。
程序会涉及到的函数或命令大致有以下:
axlFormCreate()
axlFormColorize()
axlUIWPrint()
axlFormSetField()
axlVisibleDesign()
axlVisibleUpdate()
axlDBGetLayerType()
axlFormClose()
axlGetParam()
axlSetFindFilter()
axlAddSelectAll()
axlGetSelSet()
axlClearSelSet()
axlHighlightObject()
axlDehighlightObject()
axlGeoPointInShape()
deleteFile()
defun()
prog()
case()
foreach()
when()
strcat()
cons()
reverse()
car()
cadr()
由于某些函数或命令在程序不能进行太多详细讲解
如果您觉得我的努力能给您带来一点点的兴趣,哪怕就那么一点,请别忘记帮忙顶下,多谢!
游客,如果您要查看本帖隐藏内容请回复

cross.jpg (77.86 KB, 下载次数: 23)

cross.jpg

Skill.jpg (78.84 KB, 下载次数: 77)

Skill.jpg

评分

参与人数 3贡献 +14 收起 理由
numbdemon + 6 感谢分享
deargds + 6
y175813652 + 2 感谢分享

查看全部评分

该用户从未签到

推荐
发表于 2017-6-21 14:35 | 只看该作者
;可实现走线跨分割有两种方法,其一:判断线段某点是否在铜皮上。其二:判断线段的box内铜皮个数是否不等于1。走线如在平面上,他的box内铜皮个数应该是1,利用这个进行判断。
这个检查方法思路有问题,1.两个点都在同一个铜皮上但中间有一部份被切割了,这种情况下查不出来。2.用铜皮个数判定有没有跨切割也有问题,因为bBOX是方的,有可能会多选到其它的铜皮。

该用户从未签到

推荐
发表于 2016-12-22 10:49 来自手机 | 只看该作者
只检查了起点和终点,会有很大可能漏判的,但是如果增加点的话,跑的时间又可能增长。楼主能否介绍下第二种方法呢?
  • TA的每日心情
    擦汗
    2024-6-28 15:49
  • 签到天数: 82 天

    [LV.6]常住居民II

    推荐
    发表于 2015-8-18 18:13 | 只看该作者
    个人试用的意见如下:
    优点:界面简单好用,功能也不错;
    缺点:布线开头和结尾的误报大大影响效果。

    该用户从未签到

    5#
    发表于 2009-12-30 08:46 | 只看该作者
    顶上去

    该用户从未签到

    6#
     楼主| 发表于 2009-12-30 13:06 | 只看该作者
    呵呵!

    该用户从未签到

    7#
    发表于 2009-12-30 14:20 | 只看该作者
    这个太实在了,正需要这种东西来学习学习,一定要顶

    该用户从未签到

    8#
    发表于 2009-12-30 14:39 | 只看该作者
    谢谢 wg2005 !
    正需要!!呵呵...

    该用户从未签到

    9#
     楼主| 发表于 2009-12-30 17:20 | 只看该作者
    哈哈没什么

    该用户从未签到

    10#
    发表于 2009-12-30 21:32 | 只看该作者

    该用户从未签到

    11#
    发表于 2009-12-31 09:04 | 只看该作者
    楼主用的什么编辑器,有skill语法高亮的配置文件吗?

    该用户从未签到

    12#
     楼主| 发表于 2009-12-31 09:38 | 只看该作者
    Skill二次开发网有Skill语法高亮配置文件

    该用户从未签到

    13#
    发表于 2009-12-31 10:48 | 只看该作者
    好~~~~~~~~~~~~~~

    该用户从未签到

    14#
    发表于 2009-12-31 10:56 | 只看该作者

    该用户从未签到

    15#
    发表于 2009-12-31 13:10 | 只看该作者
    wg2005
    我给你发了一个消息,关于这个skill我加了一个unselect的功能,但是没有成功,那段代码麻烦帮我看看,谢谢楼!

    该用户从未签到

    16#
    发表于 2009-12-31 13:37 | 只看该作者
    正在验证,先顶后下

    该用户从未签到

    17#
     楼主| 发表于 2009-12-31 15:43 | 只看该作者
    wg2005
    我给你发了一个消息,关于这个skill我加了一个unselect的功能,但是没有成功,那段代码麻烦帮我看看 ...
    meterfalls 发表于 2009-12-31 13:10



    我未收到你的消息哦!
    你是说unselect还是unless?
    下面是unless简单举例
    unless(
               layer == "ETCH/TOP"
             ....


    该用户从未签到

    18#
    发表于 2009-12-31 17:09 | 只看该作者
    我想加一个unselect的功能,因为你的程序检查完后不能去高亮,你帮我看看下面的代码。
    (defun unselect_object ()
    (let (allsel)
        axlSetFindFilter(?enabled '(noall clinesegs clines) ?onButtons '(noall clinesegs clines))
       ; axlSetFindFilter(?enabled '(all) ?onButtons '(all))
        allsel = axlGetSelSet(axlAddSelectAll())
        axlClearSelSet()
        axlSetFindFilter(?enabled '(noall symbols) ?onButtons '(noall symbols))
        allsel = axlGetSelSet(axlAddSelectAll())
        axlClearSelSet()
    ))
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-2-5 12:12 , Processed in 0.109375 second(s), 29 queries , Gzip On.

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

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

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