EDA365电子工程师网

标题: 哪位大神,能开发个当前层和全层快速切换的工具 [打印本页]

作者: haoyingxiang    时间: 2015-8-26 23:56
标题: 哪位大神,能开发个当前层和全层快速切换的工具
本帖最后由 haoyingxiang 于 2015-8-27 22:08 编辑



哪位大神,能开发个当前层和全层快速切换的工具。就像mentor里面那种用笔画执行单层和全层切换一样,这样比现在点选高效N倍,各位skill高手都大显神通吧 有朋友不明白,补上图片(图片以此是当前激活层单层显示,全层显示,和笔画命令,这个是mentor的软件自带的),请各位大神大显神通吧,谢谢

作者: XYX365    时间: 2015-8-27 07:30
可否請你上個圖片,這樣會比較清楚?你所謂的全層是指哪幾層?


作者: chrysalis    时间: 2015-8-27 08:06
本帖最后由 chrysalis 于 2015-8-27 08:15 编辑

只是切换层叠显示的话,用.color就可以满足基本需求了吧。
---

全层是指显示所有层吗?
colorview load Last View是返回上一个视图,可以在env里面给它定义一个快捷键;
显示所有层只需要创建一个.color,写上
color -globvis on

这一句就可以了,然后一样在env里面给它定义。


作者: betamelody    时间: 2015-8-27 09:40
本帖最后由 betamelody 于 2015-8-27 09:44 编辑
  1. axlSetAlias("~A" "EDA365_SwitchLayerAllETCH")

  2. axlCmdRegister( "EDA365_SwitchLayerAllETCH" 'EDA365_SwitchLayerAllETCH ?cmdType "interactive")
  3. EDA365_SwitchLayerAllETCH_PrevLayer = nil
  4. procedure( EDA365_SwitchLayerAllETCH()
  5.   prog(()
  6.     if(!EDA365_SwitchLayerAllETCH_PrevLayer then
  7.       EDA365_SwitchLayerAllETCH_PrevLayer = axlVisibleGet()
  8.       axlVisibleDesign(nil)
  9.       axlVisibleLayer("ETCH" t)
  10.       axlMsgPut("Current Layer:ALL ETCH")
  11.       axlUIWRedraw(nil)
  12.     else
  13.       axlVisibleDesign(nil)
  14.       axlVisibleSet(EDA365_SwitchLayerAllETCH_PrevLayer)
  15.       EDA365_SwitchLayerAllETCH_PrevLayer = nil
  16.       axlMsgPut("Current Layer:USER SET")
  17.       axlUIWRedraw(nil)
  18.     )
  19.   )
  20. )
复制代码

快捷键为CTRL+A
建议配合@deargds版主的EDA365_SwitchLayer一起使用,效果更佳
作者: haoyingxiang    时间: 2015-8-27 21:35
XYX365 发表于 2015-8-27 07:30
可否請你上個圖片,這樣會比較清楚?你所謂的全層是指哪幾層?

全层就是指我们布线时设置的模版层的全层,单层就是只显示我当前要布线的层,全层就是显示所有布线层,谢谢

作者: haoyingxiang    时间: 2015-8-27 22:09
betamelody 发表于 2015-8-27 09:40
快捷键为CTRL+A
建议配合@deargds版主的EDA365_SwitchLayer一起使用,效果更佳

感谢你的代码,复制试试,谢谢
作者: haoyingxiang    时间: 2015-8-27 22:09
chrysalis 发表于 2015-8-27 08:06
只是切换层叠显示的话,用.color就可以满足基本需求了吧。
---

想要的不是你说的那样的哦,感谢回复,请看上图
作者: haoyingxiang    时间: 2015-8-27 22:10
XYX365 发表于 2015-8-27 07:30
可否請你上個圖片,這樣會比較清楚?你所謂的全層是指哪幾層?

请看图片,不知你是否明白了
作者: chrysalis    时间: 2015-8-28 08:09
haoyingxiang 发表于 2015-8-27 22:09
想要的不是你说的那样的哦,感谢回复,请看上图

层叠显示的切换是可以用.color实现的。
比如说,写这样一个文件

color -globvis off ;关闭所有显示
color -vis "ETCH/TOP" ;打开TOP层

保存为“top.color”

然后在env里面添加
alias ~1 colorview load top
这样在allegro里面按ctrl+1就可以只显示TOP层走线。
类似的可以定义其它层。

显示所有走线层就写一个

color -globvis off
color -vis "ETCH"

用.color有一个好处是可以colorview load Last View,用skill切换层叠的话这个就用不了。
坏处是板子比较大的时候会比较慢。

作者: betamelody    时间: 2015-8-28 09:20
本帖最后由 betamelody 于 2015-8-28 09:46 编辑

代码中把所有的ETCH都显示了,看图片好像仅需显示正片层,修改如下
  1. axlSetAlias("~A" "EDA365_SwitchLayerAllETCH")
  2. axlCmdRegister( "EDA365_SwitchLayerAllETCH" 'EDA365_SwitchLayerAllETCH ?cmdType "interactive")
  3. EDA365_SwitchLayerAllETCH_PrevLayer = nil
  4. procedure( EDA365_SwitchLayerAllETCH()
  5.   let((layerdbid layerlist)
  6.     if(!EDA365_SwitchLayerAllETCH_PrevLayer then
  7.       foreach(ea axlSubclasses("ETCH")
  8.         layerdbid = axlLayerGet(strcat("ETCH/" ea))
  9.         if(layerdbid->drcPhotoType == "positive" then
  10.           layerlist = append1(layerlist ea)
  11.         )
  12.       )
  13.       EDA365_SwitchLayerAllETCH_PrevLayer = axlVisibleGet()
  14.       axlVisibleDesign(nil)
  15.       foreach(ea layerlist
  16.         axlVisibleLayer(strcat("ETCH/" ea) t)
  17.         axlVisibleLayer(strcat("PIN/" ea) t)
  18.         axlVisibleLayer(strcat("VIA CLASS/" ea) t)
  19.       )
  20.       axlMsgPut("Current Layer:ALL ETCH")
  21.       axlUIWRedraw(nil)
  22.     else
  23.       axlVisibleDesign(nil)
  24.       axlVisibleSet(EDA365_SwitchLayerAllETCH_PrevLayer)
  25.       EDA365_SwitchLayerAllETCH_PrevLayer = nil
  26.       axlMsgPut("Current Layer:USER SET")
  27.       axlUIWRedraw(nil)
  28.     )
  29.   )
  30. )
复制代码



作者: haoyingxiang    时间: 2015-8-28 20:00
chrysalis 发表于 2015-8-28 08:09
层叠显示的切换是可以用.color实现的。
比如说,写这样一个文件

感谢

作者: haoyingxiang    时间: 2015-8-28 20:01
betamelody 发表于 2015-8-28 09:20
代码中把所有的ETCH都显示了,看图片好像仅需显示正片层,修改如下

你好厉害

作者: pallayout    时间: 2015-8-31 23:18
楼主可能需要的是鼠标手势功能:tool-utilities-stroke editor,
然后在配合楼上的几位高人见意
作者: tim207    时间: 2015-9-2 11:23
不错,不错
作者: ben71431    时间: 2015-12-30 15:51
不錯!
作者: mentorkk    时间: 2016-11-15 06:25
不錯!
作者: zhu_ally    时间: 2016-11-15 06:43
好强大的功能
作者: frankly2000    时间: 2016-11-19 10:23
直接通过view -> color view save 保存视图切换就好了
作者: wcjcn    时间: 2017-6-8 16:04
学习一下。。。。。
作者: 渐行渐远渐无书    时间: 2017-6-8 17:59
应该可以的




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