EDA365电子工程师网

标题: [已解决]不知能不能求到这么一个skill? [打印本页]

作者: longzhiming99    时间: 2016-1-10 20:01
标题: [已解决]不知能不能求到这么一个skill?
本帖最后由 longzhiming99 于 2016-1-12 16:07 编辑

1.先来看看下图已完成的一块小板,它的特点就是shape代替了cline, 这是有网络属性的shape,想想画起来是不是有点麻烦呢?也许没画过单面板的人会问为什么这样画,呵,单面普通纸板必须这样画。否则轻轻一碰就坏了。
[attach]107063[/attach]
2.目前这块板是这样完成的,(1)先走完cline(将整板线路连完),然后用skill将cline一次性都变成shape, 如下图
[attach]107064[/attach][attach]107065[/attach]

  (2)然后再圈shape,如下图,这时shape没有网络。
[attach]107066[/attach]
  (3)利用Merge shapes命令将它们合并,这是给shape指派网络的最快方法吧。如下图
[attach]107067[/attach]

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




作者: longzhiming99    时间: 2016-1-11 09:19
或是先手工用另一skill一次将整板cline先变成shape............
作者: GSO_library    时间: 2016-1-11 11:15
cline先变成shape的skill多的是,搜一下就有了
作者: longzhiming99    时间: 2016-1-11 11:39
GSO_library 发表于 2016-1-11 11:15
cline先变成shape的skill多的是,搜一下就有了

我要的不是这个,谢谢

作者: longzhiming99    时间: 2016-1-11 11:40
GSO_library 发表于 2016-1-11 11:15
cline先变成shape的skill多的是,搜一下就有了

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

作者: JIMDENG    时间: 2016-1-11 13:12
这么智能,估计有难度啊,
作者: XYX365    时间: 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線
這樣應該就完成




作者: longzhiming99    时间: 2016-1-11 13:45
XYX365 发表于 2016-1-11 13:20
應該是可以實現的
1.cline線和shape都必須先畫好
2.執行skill,將cline和shape合併成shape,再將cline的 ...

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


作者: chrysalis    时间: 2016-1-11 14:07
考虑了一下,先设置选择cline和shape,然后人工框选shape以及shape内部的cline,将cline的网络分配给shape,删掉cline。
这样做的坏处是容错率低,比如框选到无关shape或者cline就会误操作,不过这个样子(看起来)很容易实现。
作者: deargds    时间: 2016-1-11 21:20
楼主把你的样板BRD传上来吧,方便大伙开发调试。

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

刚才上传了,谢谢。

作者: longzhiming99    时间: 2016-1-12 09:12
[attach]107113[/attach]

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


作者: longzhiming99    时间: 2016-1-12 09:20
[attach]107115[/attach]

作者: chrysalis    时间: 2016-1-12 09:24
有一点不是很明白,为什么要先画cline再画shape?不能直接画shape赋网络连接吗?
作者: penny190    时间: 2016-1-12 10:55
期待喔
感覺很實用
作者: deargds    时间: 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
复制代码




作者: longzhiming99    时间: 2016-1-12 13:44
deargds 发表于 2016-1-12 13:23
代码如下:

谢谢老大,我下下来试试,我没写过skill,先看看是咋用的。

作者: longzhiming99    时间: 2016-1-12 14:02
deargds 发表于 2016-1-12 13:23
代码如下:

已成功用上,正是所需要的,比我要求的、想像的更好,一次性整板就各自assign上了,我原先还以为只能一块一块shape去assign呢,还是老大考虑周到,太好用了。非常感谢。经常画单面板的人有福了。

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

这样你试试就知道了,很长的弯来弯去的,没有cline先走个样,很难圈正确,这不是主要的,主要还是赋网络名很困难,你只圈一个块不难,圈几十上百块,你试了就知道

作者: penny190    时间: 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"

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

謝謝

作者: longzhiming99    时间: 2016-1-12 16:01
penny190 发表于 2016-1-12 15:49
不好意思 ~~  想請問一下
是否將代碼另存成 ~~  EDA365_Assign_Shape_Net.il
再到 allegro.ilinit 中 ...

load("AsignShapeNet.il" "www.eda365.com")

作者: penny190    时间: 2016-1-12 16:19
本帖最后由 penny190 于 2016-1-12 16:50 编辑
longzhiming99 发表于 2016-1-12 16:01
load("AsignShapeNet.il" "www.eda365.com")

謝謝大大說明
已經可以正常載入
剛剛試了一下 ~~ 真的方便又實用

非常謝謝分享


作者: JIMDENG    时间: 2016-1-17 13:24
年华版主是牛人啊!点个赞!
作者: wcjcn    时间: 2017-6-9 17:25
学习一下。。。




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