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

[已解决]不知能不能求到这么一个skill?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2016-1-10 20:01 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
本帖最后由 longzhiming99 于 2016-1-12 16:07 编辑

1.先来看看下图已完成的一块小板,它的特点就是shape代替了cline, 这是有网络属性的shape,想想画起来是不是有点麻烦呢?也许没画过单面板的人会问为什么这样画,呵,单面普通纸板必须这样画。否则轻轻一碰就坏了。

2.目前这块板是这样完成的,(1)先走完cline(将整板线路连完),然后用skill将cline一次性都变成shape, 如下图


  (2)然后再圈shape,如下图,这时shape没有网络。

  (3)利用Merge shapes命令将它们合并,这是给shape指派网络的最快方法吧。如下图


好了,现在就是觉得指派网络属性依然不够爽快,如果一个shape圈住了很多段cline,这就要么圈之前删掉只留一根,要么得一根一根去merge.
想求一个 skill,功能是这样:当一块静态shape圈住了cline(一段或多段但都是同一网络名),则自动完成上述的网络属性指派,完毕。我再手工删除cline这样就方便多了,如果可以不要我再手动删除,那更求之不得,也就cline自动变成shape并meger了,或是指派完网络名自动删掉了该cline那就顺眼多了。最好能用在allegro17.0版本上。
谢谢!谢谢,静候佳音。



板子——16.6画.zip

64.7 KB, 下载次数: 4, 下载积分: 贡献 -30 , 威望 -10

该用户从未签到

推荐
发表于 2016-1-12 13:23 | 只看该作者
代码如下:
  1. axlCmdRegister("EDA365_Assign_Shape_Net" 'EDA365_Assign_Shape_Net ?cmdType "interactive")
  2. defun( EDA365_Assign_Shape_Net ()
  3. let((lEtchLayer lShape s i)
  4.     lEtchLayer = mapcan(lambda((p) list(strcat("ETCH/" p))) axlGetParam("paramLayerGroup:ETCH")-> groupMembers)
  5.     lShape = EDA365_Get_Object(list("SHAPES") lEtchLayer)
  6.     lClineSeg = EDA365_Get_Object(list("CLINESEGS") lEtchLayer)
  7.     i = 0
  8.     foreach(s lShape
  9.         lFind = setof(c lClineSeg and(axlGeoPointInShape(xCoord(c->startEnd) s) axlGeoPointInShape(yCoord(c->startEnd) s) s->layer==c->layer))
  10.         when(lFind
  11.             axlDBAssignNet(s car(lFind)->net)
  12.             i++
  13.         )
  14.     )
  15.     axlMsgPut("Process %L Shapes." i)
  16. )
  17. )

  18. defun( EDA365_Get_Object (lFilter lLayer)
  19. prog((lVis lSel)
  20.     lSel = nil
  21.     lVis = axlVisibleGet()
  22.     axlVisibleDesign(nil)  
  23.     foreach(p lLayer
  24.         axlVisibleLayer(p t)
  25.     )
  26.     axlClearSelSet()
  27.     axlSetFindFilter( ?enabled cons("noall" lFilter) ?onButtons cons("noall" lFilter))
  28.     lSel = axlGetSelSet(axlAddSelectAll())
  29.     axlClearSelSet()
  30.     axlVisibleSet(lVis)
  31.     return(lSel)
  32. ))
  33. ;deargds
  34. ;www.eda365.com
复制代码



点评

已成功用上,正是所需要的,比我要求的、想像的更好,一次性整板就各自assign上了,我原先还以为只能一块一块shape去assign呢,还是老大考虑周到,太好用了。非常感谢。经常画单面板的人有福了。  详情 回复 发表于 2016-1-12 14:02
谢谢老大,我下下来试试,我没写过skill,先看看是咋用的。  详情 回复 发表于 2016-1-12 13:44
  • TA的每日心情
    奋斗
    2024-1-17 15:52
  • 签到天数: 237 天

    [LV.7]常住居民III

    推荐
    发表于 2016-1-12 15:49 | 只看该作者
    本帖最后由 penny190 于 2016-1-12 16:13 编辑

    不好意思 ~~  想請問一下 ~~
    是否將代碼另存成 ~~  EDA365_Assign_Shape_Net.il
    再到 allegro.ilinit 中寫入load("EDA365_Assign_Shape_Net") 嗎?

    好像不是這樣,因為我開啟ALLEGRO時,出現
    E- *Error* load: can't access file - "EDA365_Assign_Shape_Net"

    那要如何才能載入使用呢?

    謝謝

    点评

    load("AsignShapeNet.il" "www.eda365.com")  详情 回复 发表于 2016-1-12 16:01

    该用户从未签到

    推荐
    发表于 2016-1-11 13:20 | 只看该作者
    本帖最后由 XYX365 于 2016-1-11 13:34 编辑
    JIMDENG 发表于 2016-1-11 13:12
    这么智能,估计有难度啊,

    應該是可以實現的
    1.cline線和shape都必須先畫好
    2.執行skill,將cline和shape合併成shape,再將cline的網路名稱指定給shape.
    3.剛剛又想到另一方法,執行skill,將cline的網路名稱指定給shape,之後再刪除cline線
    這樣應該就完成



    点评

    是的就是“執行skill,將cline的網路名稱指定給shape,之後再刪除cline線“ 请大侠帮写个,这个虽然不常用,但一旦用到,就是帮大忙了  详情 回复 发表于 2016-1-11 13:45

    该用户从未签到

    2#
     楼主| 发表于 2016-1-11 09:19 | 只看该作者
    或是先手工用另一skill一次将整板cline先变成shape............

    该用户从未签到

    3#
    发表于 2016-1-11 11:15 | 只看该作者
    cline先变成shape的skill多的是,搜一下就有了

    点评

    我要的是自动给shape指派网络属性  详情 回复 发表于 2016-1-11 11:40
    我要的不是这个,谢谢  详情 回复 发表于 2016-1-11 11:39

    该用户从未签到

    4#
     楼主| 发表于 2016-1-11 11:39 | 只看该作者
    GSO_library 发表于 2016-1-11 11:15
    cline先变成shape的skill多的是,搜一下就有了

    我要的不是这个,谢谢

    该用户从未签到

    5#
     楼主| 发表于 2016-1-11 11:40 | 只看该作者
    GSO_library 发表于 2016-1-11 11:15
    cline先变成shape的skill多的是,搜一下就有了

    我要的是自动给shape指派网络属性

    该用户从未签到

    6#
    发表于 2016-1-11 13:12 | 只看该作者
    这么智能,估计有难度啊,

    点评

    應該是可以實現的 1.cline線和shape都必須先畫好 2.執行skill,將cline和shape合併成shape,再將cline的網路名稱指定給shape. 這樣應該就完成  详情 回复 发表于 2016-1-11 13:20

    该用户从未签到

    8#
     楼主| 发表于 2016-1-11 13:45 | 只看该作者
    XYX365 发表于 2016-1-11 13:20
    應該是可以實現的
    1.cline線和shape都必須先畫好
    2.執行skill,將cline和shape合併成shape,再將cline的 ...

    是的就是“執行skill,將cline的網路名稱指定給shape,之後再刪除cline線“ 请大侠帮写个,这个虽然不常用,但一旦用到,就是帮大忙了

    该用户从未签到

    9#
    发表于 2016-1-11 14:07 | 只看该作者
    考虑了一下,先设置选择cline和shape,然后人工框选shape以及shape内部的cline,将cline的网络分配给shape,删掉cline。
    这样做的坏处是容错率低,比如框选到无关shape或者cline就会误操作,不过这个样子(看起来)很容易实现。

    该用户从未签到

    10#
    发表于 2016-1-11 21:20 | 只看该作者
    楼主把你的样板BRD传上来吧,方便大伙开发调试。

    点评

    刚才上传了,谢谢。  详情 回复 发表于 2016-1-11 22:12

    该用户从未签到

    11#
     楼主| 发表于 2016-1-11 22:12 | 只看该作者
    deargds 发表于 2016-1-11 21:20
    楼主把你的样板BRD传上来吧,方便大伙开发调试。

    刚才上传了,谢谢。

    该用户从未签到

    12#
     楼主| 发表于 2016-1-12 09:12 | 只看该作者


    这是以前画的一块电源板,没网络属性,后期调试,查找只能靠大脑。
    如果有人用allegro画电源板,那这样skill还是方便得多。

    该用户从未签到

    13#
     楼主| 发表于 2016-1-12 09:20 | 只看该作者

    该用户从未签到

    14#
    发表于 2016-1-12 09:24 | 只看该作者
    有一点不是很明白,为什么要先画cline再画shape?不能直接画shape赋网络连接吗?

    点评

    这样你试试就知道了,很长的弯来弯去的,没有cline先走个样,很难圈正确,这不是主要的,主要还是赋网络名很困难,你试了就知道  详情 回复 发表于 2016-1-12 14:05
  • TA的每日心情
    奋斗
    2024-1-17 15:52
  • 签到天数: 237 天

    [LV.7]常住居民III

    15#
    发表于 2016-1-12 10:55 | 只看该作者
    期待喔
    感覺很實用
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-5-23 15:25 , Processed in 0.109375 second(s), 39 queries , Gzip On.

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

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

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