找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 579|回复: 9
打印 上一主题 下一主题

想写个 color form 不会,求帮忙

[复制链接]

44

主题

121

帖子

228

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
228
跳转到指定楼层
1#
发表于 2014-11-10 16:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

想写个自定义的 color Form ,不会,求大神们帮忙完善一下outline那个按钮的代码
不会的有
1. 如何判断outline 层已显示?
2. 当outline 层已显示时,那个color按钮如何变成outline 层的颜色,且感觉有被按下的效果
3. 当outline 层不显示时,那个color按钮如何变成黑色,且感觉没有被按下的效果
  1. /*********************************************************/
  2. /*               Title :  pal Color                     */
  3. /*     Execute Command :  PalColor                     */
  4. /*              Author :  tatarlxw                       */
  5. /*       Creation Date :  2014-10-30                     */
  6. /*              Update :                                 */
  7. /*             Version :  1.0                            */
  8. /*            Web site :  http://hi.baidu.com/tatarlxw   */
  9. /*              E-mail :  tatarlxw@163.com               */
  10. /*********************************************************/

  11. axlCmdRegister("PalColor" 'PalColor)
  12. defun( PalColor ()
  13.   formFileName = "./PalColor.form"
  14.   PalColor_form_create()
  15.   
  16.   ;PalColor_form = axlMiniStatusLoad('form, formFileName 'PalColor_action t)
  17.   PalColor_form = axlFormCreate( (gensym) formFileName `(ne inner "msglines" 2) `PalColor_action t nil)
  18.   axlFormDisplay(PalColor_form)
  19.   deleteFile(formFileName)
  20.   axlControlRaise('options)
  21. )

  22. defun(PalColor_action (PalColor_form)
  23. case(PalColor_form->curField
  24.    ("clrOutline"
  25.            axlVisibleLayer( "BOARD GEOMETRY/OUTLINE" t )
  26.    )
  27.    ("btnVisAllOn"
  28.      axlShell( "setwindow pcb")
  29.      axlShell( "etchedit")
  30.      axlShell( "color192")
  31.      axlShell( "setwindow cvf.dialog")
  32.      axlShell( "cvf layer_mode")
  33.      axlShell( "setwindow pcb")
  34.      axlShell( "etchedit")
  35.      axlShell( "setwindow cvf.dialog")
  36.      axlShell( "cvf global_visible")
  37.      axlShell( "cvf okay")
  38.      axlShell( "setwindow pcb")
  39.      axlShell( "")
  40.    )
  41.    ("btnVisAllOff"
  42.      axlShell( "setwindow pcb")
  43.      axlShell( "etchedit")
  44.      axlShell( "color192")
  45.      axlShell( "setwindow cvf.dialog")
  46.      axlShell( "cvf layer_mode")
  47.      axlShell( "setwindow pcb")
  48.      axlShell( "etchedit")
  49.      axlShell( "setwindow cvf.dialog")
  50.      axlShell( "cvf global_invisible")
  51.      axlShell( "cvf okay")
  52.      axlShell( "setwindow pcb")
  53.      axlShell( "")
  54.    )

  55. ))

  56. procedure(PalColor_form_create()
  57.         lstForm = outfile( formFileName "w")
  58.         fprintf(lstForm "FILE_TYPE=FORM_DEFN VERSION=2\n")
  59.         fprintf(lstForm "FORM\n")
  60.         fprintf(lstForm "FIXED\n")
  61.         fprintf(lstForm "PORT 20 10\n")
  62.         fprintf(lstForm "HEADER \"Change Block\"\n")
  63.         fprintf(lstForm "TILE\n")
  64.        
  65.         fprintf(lstForm "TEXT \"Global Visibility:\"\n")
  66.         fprintf(lstForm "FLOC 2 1\n")
  67.         fprintf(lstForm "ENDTEXT\n")
  68.        
  69.         fprintf(lstForm "FIELD btnVisAllOn\n")
  70.         fprintf(lstForm "FLOC 10 1\n")
  71.         fprintf(lstForm "MENUBUTTON \"On\" 5 3\n")
  72.         fprintf(lstForm "ENDFIELD\n")

  73.         fprintf(lstForm "FIELD btnVisAllOff\n")
  74.         fprintf(lstForm "FLOC 16 1\n")
  75.         fprintf(lstForm "MENUBUTTON \"Off\" 5 3\n")
  76.         fprintf(lstForm "ENDFIELD\n")
  77.        
  78.         fprintf(lstForm "TEXT \"Outline\"\n")
  79.         fprintf(lstForm "FLOC 2 4\n")
  80.         fprintf(lstForm "ENDTEXT\n")

  81.         fprintf(lstForm "FIELD clrOutline\n")
  82.         fprintf(lstForm "FLOC 10 4\n")
  83.         fprintf(lstForm "COLOR 3 1\n")
  84.         fprintf(lstForm "ENDFIELD\n")
  85.        
  86.         fprintf(lstForm "ENDTILE\n")
  87.         fprintf(lstForm "ENDFORM\n")
  88.         close(lstForm)
  89. )

  90.        
  91.        
复制代码

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏1 支持!支持! 反对!反对!

24

主题

1796

帖子

8046

积分

六级会员(60)

Rank: 6Rank: 6

积分
8046
2#
发表于 2014-11-10 17:12 | 只看该作者
ALXISVISIABLELAYER(XXX)貌似   检查层是否打开   颜色设置貌似axlformcolorset   查下说明吧

44

主题

121

帖子

228

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
228
3#
 楼主| 发表于 2014-11-10 18:47 | 只看该作者
本帖最后由 pallayout 于 2014-11-10 23:02 编辑

颜色设置貌似axlformcolorset  ?
再请高人指点一下

44

主题

121

帖子

228

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
228
4#
 楼主| 发表于 2014-11-10 18:53 | 只看该作者
还有我需要刷屏,即allegro中的 redraw 命令
好像不是axlFlushDisplay() 这个函数,那是哪条了,

44

主题

121

帖子

228

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
228
5#
 楼主| 发表于 2014-11-10 19:20 | 只看该作者
都搞定了,axlLayerGet 是这个函数

44

主题

121

帖子

228

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
228
6#
 楼主| 发表于 2014-11-10 19:32 | 只看该作者
本帖最后由 pallayout 于 2014-11-10 23:01 编辑

新的问题,如何判断与设置color按钮是否按下
  ;当outline已显示时,在程序加载时,不知如何让color按钮达到自动按下效果。
  if(axlIsVisibleLayer("BOARD GEOMETRY/OUTLINE") then
     clrlayer=axlLayerGet("BOARD GEOMETRY/OUTLINE")
     axlFormSetField( PalColor_form "clrOutline" clrlayer->color )
         ;在这里加点啥?能让color按钮有按下效果?
  else
         axlFormSetField( PalColor_form "clrOutline" 'black)
    )
就差这一小步了,哪位大神帮帮忙

7

主题

444

帖子

4989

积分

EDA365版主(50)

Rank: 5

积分
4989
7#
发表于 2014-11-11 09:57 | 只看该作者
axlVisibleUpdate(nil)

44

主题

121

帖子

228

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
228
8#
 楼主| 发表于 2014-11-12 16:16 | 只看该作者
太感谢了,已搞定,

1

主题

209

帖子

173

积分

二级会员(20)

Rank: 2Rank: 2

积分
173
9#
发表于 2015-8-20 18:27 | 只看该作者
支持楼主原创  非常感谢!

26

主题

152

帖子

433

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
433
10#
发表于 2016-6-4 08:03 来自手机 | 只看该作者
学习一下!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-9-21 14:31 , Processed in 0.061314 second(s), 34 queries , Gzip On.

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

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

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