将轴的坐标(绝对/机床)或表达式的值赋给宏变量或KUI自定义变量
"#500"。" X "。(a, b, c, d) 其中a/b/c/d都应该是正整形值分别表示控件的 起始行/起始列/所占行数/所占列数,其中c/d可以省略,省略时值均为1。只读。隐藏,会隐藏控件四周的线框。enable="#100",则只有当#100不等于0时才可以修改。id="page1" 或 id=1。action=运行脚本("xxx"),括号中的字符串为符合KUI脚本语法的若干语句。当操作者手动改变控件数据值时,将执行这些语句。action=运行脚本文件("xxx.prg"),括号中的字符串为KUI脚本文件名称,文件需放到当前目录下或写入绝对路径。当操作者手动改变控件数据值时,将执行此文件。action=程序段模板('''xxx'''),括号中的字符串为一个程序模板段,当操作者手动改变控件数据值时,将以其为模板生成程序段,插入当前光标之后。程序模板段可以包含任意符合KUI脚本语法的语句和一些会生成程序的模板语句,模板语句中的字符在生成程序时不变,变量则用其值来替代。例如 ’’’ G01 X#500’‘‘在生成程序时(假设#500值为100),会生成程序"G01 X100;"。password=1,此时首次修改此控件数据时,需要输入密码"xxx",否则无法修改。focus_in=表达式("#500=10")focus_out=表达式("#500=0")left="LA"或 left=1,则按系统面板上的"左"按键时,id为"LA”/1 的控件捕获光标。min=1。max=1。(如果同时设置max和mix两个参数,则需要满足条件 “max >= min”,否则报错)(min和max两个参数仅限制从控件改变值时的输入范围,如果控件绑定的是系统变量,如宏变量#500,则当#500的值超出范围时可以正确显示,这两个参数为特定需求的情况设计,无特殊需求勿用,以免造成不必要的困扰)min_length=1。max_length=1。(如果同时设置max_length和mix_length两个参数,则需要满足条件"max_length >= min_length",否则报错)(min_length和max_length两个参数仅限制从控件改变值时输入值的长度范围,如果控件绑定的是系统变量,如宏变量#500,则当#500的值超出长度范围可以正确显示,这两个参数为特定需求的情况设计,无特殊需求勿用,以免造成不必要的困扰)anyof=[12, 13, 14],此时从控件输入数值时必须是12/13/14中的一个,否则报错,操作无法完成。noneof=[12, 13, 14],此时从控件输入数值时不能是12/13/14中的一个,否则报错,操作无法完成。(anyof和noneof两个参数仅限制从控件改变值时输入值的范围,如果控件绑定的是系统变量,如宏变量#500,则当#500的值超出范围可以正确显示,这两个参数为特定需求的情况设计,无特殊需求勿用,以免造成不必要的困扰)format="%xxx" ,是C语言库函数printf的子集,目前仅支持几种简单的格式化,在下面列出。使用此参数时,必须使用data_type参数,且此时参数的格式化需要与data_type类型相对应。格式化时不会改变变量的值,但会改变其显示形式。一些情况可能会导致显示的值与变量真实值不符。(使用此参数时你需要明确知道你在做什么,并且不会给自己和用户带来困扰)。下面是目前支持的格式化形式。
textbox("{v1}", (1, 1, 30, 150), format="%.3f", data_type='float')textbox("{v1}", (1, 1, 30, 150), format="%04d", data_type='int')textbox("{v1}", (1, 1, 30, 150), format="%04d", data_type='int')soft_keyboard=系统键盘visible=0此控件用于将坐标值或表达式值一键读取到指定宏变量或KUI脚本的自定义变量中,也可用于将指定变量加上或减去控件的编辑值,类似于"测量"和"加输入"等功能。可以将同类型的示教控件置于一个示教组中实现同时示教。 例如,在对伺服台尾进行编程时,依次手动将台尾移动到合适的回退位置、快速位置、顶紧位置,在三个位置分别示教对应的teach控件,将对应的坐标值赋值给相应的变量,用于生成程序,完成伺服台尾的编程。

with page(456, 800, id="page1", text=(白色, f20x10, 左对齐), bg_color=(24, 24, 24)):
# 测量功能:当在teach控件输入一个编辑值50(不按确认按键),按下测量按键后实现赋值#500=#500-50
# 加输入功能:当在teach控件输入一个编辑值50(不按确认按键),按下加输入按键后实现赋值#500=#500+50
# 注意:测量和加输入可以同时对一个控件生效,但只针对含有$m的控件有效。
label("测量/加输入功能", (50, 30, 40, 150))
teach("#500", "#500+$m", (50, 180, 40, 150), 绿色, f24x12)
# 当光标移动到含有轴名或coor变量的teach控件时,按下示教绝对后实现赋值#510=X轴的绝对坐标
# 当光标移动到含有轴名或coor变量的teach控件时,按下示教机床后实现赋值#510=X轴的机床坐标
label("示教绝对/机床", (90, 30, 40, 150))
teach("#510", "X", (90, 180, 40, 150), 绿色, f24x12)
# 示教表达式: 当光标移动到含表达式的teach控件时,按下示教表达式后实现赋值#520=#600*100+56
label("示教表达式", (130, 30, 40, 150))
teach("#520", "#600*100+56", (130, 180, 40, 150), 绿色, f24x12, group=1)
label("示教表达式", (130, 360, 40, 150))
teach("#521", "#601*50+21", (130, 510, 40, 150), 绿色, f24x12, group=2)
# 示教部分表达式: 当在teach控件输入一个编辑值50(不按确认按键),按下部分表达式按键后实现赋值#530=(#530+50)+100
label("示教部分表达式", (170, 30, 40, 150))
teach("#530", "#530+$m", (170, 180, 40, 150), 绿色, f24x12)
menu("第一页", "page1")
menu("测量", 测量) # 测量功能
menu("测量", 测量(tip_str="这是测量弹窗显示内容")) # 可以自定义测量示教时弹窗内容
menu("加输入", 加输入) # 加输入功能
menu("加输入", 加输入(tip_str="这是加输入弹窗显示内容")) # 可以自定义加输入示教时弹窗内容
menu("示教绝对", 示教绝对) # 示教绝对功能
menu("示教绝对", 示教绝对(tip_str="这是示教绝对弹窗显示内容")) # 可以自定义示教绝对示教时弹窗内容
menu("示教机床", 示教机床) # 示教机床功能
menu("示教机床", 示教机床(tip_str="这是示教机床弹窗显示内容")) # 可以自定义示教机床示教时弹窗内容
menu("示教表达式", 示教表达式) # 示教表达式功能
menu("示教表达式", 示教表达式(tip_str="这是示教表达式弹窗显示内容")) # 可以自定义示教表达式示教时弹窗内容
menu("示教表达式", 示教表达式(group=1, tip_str="这是示教表达式弹窗显示内容")) # 可以按组同时示教,可以自定义示教表达式示教时弹窗内容
menu("部分表达式", 部分表达式("$v+100", tip_str="这是示教表达式弹窗显示内容")) # $v=(#530+$m),可以自定义示教表达式示教时弹窗内容
V7版本的teach控件可以同时支持测量、加输入、示教表达式和部分表达式功能。其中,示教表达式可以使用coor1、#5101或#5201等轴绝对机床坐标相关的变量来实现坐标示教。
实现效果:针对同一个控件,可以将轴坐标示教到宏变量里,也可以对宏变量进行测量、加输入操作。
with page(456, 800, id="page1", text=(白色, f20x10, 左对齐), bg_color=(24, 24, 24)):
# 通过select动态选择示教的源地址
label("测量/加输入功能 示教表达式可以用于示教坐标 部分表达式功能", (50, 30, 40, 600))
teach("#500", "select{F19000.0, (0, #500+$m), (1, #5101)}", (90, 30, 40, 150), 绿色, f24x12)
menu("第一页", "page1")
menu("测量", [表达式("F19000.0=0"), 测量(tip_str="这是测量弹窗显示内容")]) # 当F19000.0=0时选择#500+$m,并进行测量示教
menu("加输入", [表达式("F19000.0=0"), 加输入(tip_str="这是加输入弹窗显示内容")]) # 当F19000.0=0时选择#500+$m,并进行加输入示教
menu("示教表达式", [表达式("F19000.0=1"), 示教表达式]) # 当F19000.0=1时选择#5101,并进行机床宏变量示教
menu("部分表达式", [表达式("F19000.0=0"), 部分表达式("$v+100", tip_str="这是示教表达式弹窗显示内容")]) # 当F19000.0=0时选择#500+$m,并进行部分表达式示教