找回密码
 注册
关于网站域名变更的通知
查看: 2413|回复: 19
打印 上一主题 下一主题

哪位大神,能开发个当前层和全层快速切换的工具

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2015-8-26 23:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
本帖最后由 haoyingxiang 于 2015-8-27 22:08 编辑



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

该用户从未签到

推荐
发表于 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. )
复制代码


点评

你好厉害  详情 回复 发表于 2015-8-28 20:01

该用户从未签到

推荐
发表于 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一起使用,效果更佳

点评

感谢你的代码,复制试试,谢谢  详情 回复 发表于 2015-8-27 22:09

该用户从未签到

推荐
发表于 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切换层叠的话这个就用不了。
坏处是板子比较大的时候会比较慢。

点评

感谢  详情 回复 发表于 2015-8-28 20:00

该用户从未签到

2#
发表于 2015-8-27 07:30 | 只看该作者
可否請你上個圖片,這樣會比較清楚?你所謂的全層是指哪幾層?

点评

请看图片,不知你是否明白了  详情 回复 发表于 2015-8-27 22:10
全层就是指我们布线时设置的模版层的全层,单层就是只显示我当前要布线的层,全层就是显示所有布线层,谢谢  详情 回复 发表于 2015-8-27 21:35

该用户从未签到

3#
发表于 2015-8-27 08:06 | 只看该作者
本帖最后由 chrysalis 于 2015-8-27 08:15 编辑

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

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

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

点评

想要的不是你说的那样的哦,感谢回复,请看上图  详情 回复 发表于 2015-8-27 22:09

该用户从未签到

5#
 楼主| 发表于 2015-8-27 21:35 | 只看该作者
XYX365 发表于 2015-8-27 07:30
可否請你上個圖片,這樣會比較清楚?你所謂的全層是指哪幾層?

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

该用户从未签到

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

感谢你的代码,复制试试,谢谢

该用户从未签到

7#
 楼主| 发表于 2015-8-27 22:09 | 只看该作者
chrysalis 发表于 2015-8-27 08:06
只是切换层叠显示的话,用.color就可以满足基本需求了吧。
---

想要的不是你说的那样的哦,感谢回复,请看上图

点评

层叠显示的切换是可以用.color实现的。 比如说,写这样一个文件 color -globvis off ;关闭所有显示 color -vis "ETCH/TOP" ;打开TOP层 保存为“top.color” 然后在env里面添加 alias ~1 colorview load  详情 回复 发表于 2015-8-28 08:09

该用户从未签到

8#
 楼主| 发表于 2015-8-27 22:10 | 只看该作者
XYX365 发表于 2015-8-27 07:30
可否請你上個圖片,這樣會比較清楚?你所謂的全層是指哪幾層?

请看图片,不知你是否明白了

该用户从未签到

11#
 楼主| 发表于 2015-8-28 20:00 | 只看该作者
chrysalis 发表于 2015-8-28 08:09
层叠显示的切换是可以用.color实现的。
比如说,写这样一个文件

感谢

该用户从未签到

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

你好厉害

该用户从未签到

13#
发表于 2015-8-31 23:18 | 只看该作者
楼主可能需要的是鼠标手势功能:tool-utilities-stroke editor,
然后在配合楼上的几位高人见意
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-21 03:51 , Processed in 0.093750 second(s), 26 queries , Gzip On.

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

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

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