自定义界面菜单,用于切换页面,执行页面内特殊动作
|表示换行提示,当一行显示不下时,在此换行enable="#100",则只有当#100不等于0时才可以操作。当action为 页面跳转或页面选择时,enable表达式为0此菜单不显示。visible="#100",则只有当#100不等于0时才可以显示。 menu("页面跳转", 页面跳转("page1")) # 跳转到id为"page1"的页面
menu("示教绝对", 示教绝对) # 示教绝对坐标
menu("生成程序", 生成程序('''G00 X100''', is_file=False, number="10")) # 生成一个程序名为10.PRG的程序
menu("位置界面", 进入NC("pos")) # 进入nc位置界面
menu("信号脉冲", 信号脉冲("F19000.0")) # 发送F19000.0信号脉冲
menu("工艺保存", 工艺保存) # 将工艺数据保存至系统内部
menu的一个特殊用法是定义一个根菜单。每一个自定义界面都由一个根菜单进入,需要定义一个根菜单。根菜单动作支持"页面跳转"和"页面选择"两种,不支持enable参数,且支持只写菜单名称一个参数,此时根菜单会自动捕捉第一个页面的id,按下根菜单 页面跳转到该页面。
定义在 with page():作用域之外的menu是根菜单。
V7软件推荐使用set_default_page(“xxxx”)函数取代根菜单
建议将根菜单定义在所有页面定义之前
根菜单支持“运行脚本” (v3.3新增)
根菜单等效于set_default_page(“xxxx”) (v5.3新增)
为了排版方便,加入一种"占位符菜单",这种菜单没有名称,不响应按键,表现为一个空菜单。
写作 place_holder(n),n为正整数,定义n个连续的占位符菜单,n可以省略,默认值为1。 (V2.5新增)
将此函数和menu菜单函数放在一起使用,调用的先后顺序,决定了菜单的位置。
with page(9, 4, id="holder", text=(绿色, f32x16, 居中)):
msg_label((1, 1, 2, 4), 左对齐, 紫色, count=3)
place_holder(2) #定义两个连续的占位符菜单
menu("led", "led")
place_holder(3) #定义三个连续的占位符菜单
menu("AA", "AA")
为了排版方便,加入一种"弹簧菜单",这种菜单没有名称,不响应按键,表现为若干个空菜单。
写作 spring() (V2.5新增)
将此函数和menu菜单函数放在一起使用,调用的先后顺序,决定了菜单的位置。使用弹簧菜单的页面,菜单个数(包括占位符菜单、弹簧菜单)不能超过8个 。1个弹簧菜单表示1个空菜单
个数原理: 弹簧在所有菜单之前,则所有菜单右对齐;菜单两边各有一个弹簧,则菜单居中对齐;一页中有多个弹簧菜单,则弹簧菜单均分页面中的空菜单,如果有余数,则将余数分给第一个弹簧菜单。
例:以8+2系统为例,系统共有8个菜单,其中有3个menu,8-3=5,5/3=1,5%3=2;所以第一个spring菜单表现为3个空菜单,后面两个spring菜单表现为1个空菜单。
with page(9, 4, id="holder", text=(绿色, f32x16, 居中)):
msg_label((1, 1, 2, 4), 左对齐, 紫色, count=3)
spring()
menu("led", "led")
spring()
menu("AA", "AA")
menu("BB", "BB")
spring()
| 占位菜单效果显示 | 弹簧菜单效果展示 |
|---|---|
![]() |
![]() |
为了排版方便,加入一种菜单翻页,这种菜单没有名称,输入此函数后,该函数后的第一个菜单为下一页的第一项。当需要菜单翻页可以写作pagebreak()。(V3.1新增)
当没有制定pagebreak时弹簧菜单仅在最后一页伸缩,否则依次绘制实际菜单。若想在特定处伸缩请使用pagebreak指定该菜单为页结尾
menu("设置PA5", action=运行脚本('''#["PA5-4"]=50'''))
menu("信号翻转", action=信号翻转("k1.1"), enable='#500+2')
menu("加输入", action=加输入, enable='#500+2')
pagebreak() #若为8+2补足5个,若为10+2补足7个
menu("赋值", 表达式("D207=2+D20*2+1"), enable="#100") #第二行的第一个
menu("设置PA5", action=运行脚本('''#["PA5-4"]=50'''))
menu("信号翻转", action=信号翻转("k1.1"), enable='#500+2')
spring()
menu("加输入", action=加输入, enable='#500+2') #若为8+2位于第8个,若为10+2位于第10个
pagebreak()
menu("赋值", 表达式("D207=2+D20*2+1"), enable="#100") #第二行的第一个