EDA365电子工程师网
标题:
想写个 color form 不会,求帮忙
[打印本页]
作者:
pallayout
时间:
2014-11-10 16:24
标题:
想写个 color form 不会,求帮忙
想写个自定义的 color Form ,不会,求大神们帮忙完善一下outline那个按钮的代码
不会的有
1. 如何判断outline 层已显示?
2. 当outline 层已显示时,那个color按钮如何变成outline 层的颜色,且感觉有被按下的效果
3. 当outline 层不显示时,那个color按钮如何变成黑色,且感觉没有被按下的效果
/*********************************************************/
/* Title : pal Color */
/* Execute Command : PalColor */
/* Author : tatarlxw */
/* Creation Date : 2014-10-30 */
/* Update : */
/* Version : 1.0 */
/* Web site : http://hi.baidu.com/tatarlxw */
/* E-mail : tatarlxw@163.com */
/*********************************************************/
axlCmdRegister("PalColor" 'PalColor)
defun( PalColor ()
formFileName = "./PalColor.form"
PalColor_form_create()
;PalColor_form = axlMiniStatusLoad('form, formFileName 'PalColor_action t)
PalColor_form = axlFormCreate( (gensym) formFileName `(ne inner "msglines" 2) `PalColor_action t nil)
axlFormDisplay(PalColor_form)
deleteFile(formFileName)
axlControlRaise('options)
)
defun(PalColor_action (PalColor_form)
case(PalColor_form->curField
("clrOutline"
axlVisibleLayer( "BOARD GEOMETRY/OUTLINE" t )
)
("btnVisAllOn"
axlShell( "setwindow pcb")
axlShell( "etchedit")
axlShell( "color192")
axlShell( "setwindow cvf.dialog")
axlShell( "cvf layer_mode")
axlShell( "setwindow pcb")
axlShell( "etchedit")
axlShell( "setwindow cvf.dialog")
axlShell( "cvf global_visible")
axlShell( "cvf okay")
axlShell( "setwindow pcb")
axlShell( "")
)
("btnVisAllOff"
axlShell( "setwindow pcb")
axlShell( "etchedit")
axlShell( "color192")
axlShell( "setwindow cvf.dialog")
axlShell( "cvf layer_mode")
axlShell( "setwindow pcb")
axlShell( "etchedit")
axlShell( "setwindow cvf.dialog")
axlShell( "cvf global_invisible")
axlShell( "cvf okay")
axlShell( "setwindow pcb")
axlShell( "")
)
))
procedure(PalColor_form_create()
lstForm = outfile( formFileName "w")
fprintf(lstForm "FILE_TYPE=FORM_DEFN VERSION=2\n")
fprintf(lstForm "FORM\n")
fprintf(lstForm "FIXED\n")
fprintf(lstForm "PORT 20 10\n")
fprintf(lstForm "HEADER \"Change Block\"\n")
fprintf(lstForm "TILE\n")
fprintf(lstForm "TEXT \"Global Visibility:\"\n")
fprintf(lstForm "FLOC 2 1\n")
fprintf(lstForm "ENDTEXT\n")
fprintf(lstForm "FIELD btnVisAllOn\n")
fprintf(lstForm "FLOC 10 1\n")
fprintf(lstForm "MENUBUTTON \"On\" 5 3\n")
fprintf(lstForm "ENDFIELD\n")
fprintf(lstForm "FIELD btnVisAllOff\n")
fprintf(lstForm "FLOC 16 1\n")
fprintf(lstForm "MENUBUTTON \"Off\" 5 3\n")
fprintf(lstForm "ENDFIELD\n")
fprintf(lstForm "TEXT \"Outline\"\n")
fprintf(lstForm "FLOC 2 4\n")
fprintf(lstForm "ENDTEXT\n")
fprintf(lstForm "FIELD clrOutline\n")
fprintf(lstForm "FLOC 10 4\n")
fprintf(lstForm "COLOR 3 1\n")
fprintf(lstForm "ENDFIELD\n")
fprintf(lstForm "ENDTILE\n")
fprintf(lstForm "ENDFORM\n")
close(lstForm)
)
复制代码
作者:
kevin890505
时间:
2014-11-10 17:12
ALXISVISIABLELAYER(XXX)貌似 检查层是否打开 颜色设置貌似axlformcolorset 查下说明吧
作者:
pallayout
时间:
2014-11-10 18:47
本帖最后由 pallayout 于 2014-11-10 23:02 编辑
颜色设置貌似axlformcolorset ?
再请高人指点一下
作者:
pallayout
时间:
2014-11-10 18:53
还有我需要刷屏,即allegro中的 redraw 命令
好像不是axlFlushDisplay() 这个函数,那是哪条了,
作者:
pallayout
时间:
2014-11-10 19:20
都搞定了,axlLayerGet 是这个函数
作者:
pallayout
时间:
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)
)
就差这一小步了,哪位大神帮帮忙
作者:
betamelody
时间:
2014-11-11 09:57
axlVisibleUpdate(nil)
作者:
pallayout
时间:
2014-11-12 16:16
太感谢了,已搞定,
作者:
kkman2000
时间:
2015-8-20 18:27
支持楼主原创 非常感谢!
作者:
liuanty
时间:
2016-6-4 08:03
学习一下!
欢迎光临 EDA365电子工程师网 (https://bbs.elecnest.cn/)
Powered by Discuz! X3.2