5.应用程序¶
RoboDK允许您轻松加载脚本和可执行文件,就像它们是RoboDK软件中的插件一样。
您可以将脚本集成为RoboDK用户界面的一部分,并轻松定制RoboDK,用于定制离线编程和仿真目的。2022世界杯8强赛时间向应用程序添加脚本将自动在菜单和工具栏中添加按钮。设置文件允许您轻松地自定义一组特定按钮/操作的外观。
一旦你完成了应用程序的开发,你就可以轻松地将应用程序作为一个独立的包文件发布。
应用程序是由RoboDK处理与AppLoader插件,和roboapps提供必要的Python工具来构建您的应用程序。
- 你可以在我们的GitHub中找到更多关于applloader的信息:
- 你可以在我们的GitHub中找到示例应用程序:
5.1.应用模板¶
这个应用程序示例提供了构建RoboDK应用程序所需的示例。它可以用作构建自己的RoboDK应用程序的模板。请注意,
- 请访问我们的GitHub获取完整的应用程序:
5.1.1.行动¶
最常见的动作类型是瞬间动作(点击)。运行按需脚本很有用。
RoboDK应用程序-瞬间行动
¶
# --------------------------------------------# ---------------描述----------------##瞬间动作的例子。#关于Python的RoboDK API的更多信息:# //m.sinclairbody.com/doc/en/RoboDK-API.html# //m.sinclairbody.com/doc/en/PythonAPI/index.html#更多关于RoboDK Apps的信息:# https://github.com/RoboDK/Plug-In-Interface/tree/master/PluginAppLoader## --------------------------------------------从robodk进口robolink,roboapps从_AppUtilities进口ShowMessage进口操作系统ACTION_NAME=操作系统.路径.basename(__file__)defActionMomentary():“”“在RoboDK中点击动作时要执行的动作。”""RDK=robolink.Robolink()ShowMessage(RDK,ACTION_NAME,“点击!”,真正的)defrunmain():”“”此动作单独执行或在RoboDK中与之交互时的入口点。重要:如果要编译此操作,请使用函数名'runmain()'。一个“Checkable Action”的例子:..python代码:def runmain ():如果roboapps.Unchecked ():ActionUnchecked ()其他:roboapps.SkipKill() #可选,防止RoboDK在2秒后强制杀死动作ActionChecked ()“瞬间动作”的例子:..python代码:def runmain ():如果roboapps.Unchecked ():roboapps.Exit() #或sys.exit()其他:roboapps.SkipKill() #可选,防止RoboDK在2秒后强制杀死动作ActionChecked ()一个'Checkable Option'的例子:..python代码:def runmain ():如果roboapps.Unchecked ():ActionUnchecked ()其他:roboapps.KeepChecked() #重要,防止RoboDK在操作完成后取消检查ActionChecked ()”“”如果roboapps.无节制的():roboapps.退出()其他的:ActionMomentary()如果__name__==“__main__ ':runmain()
可检查的动作(切换)对于运行连续脚本很有用。
RoboDK应用程序-可检查的行动
¶
# --------------------------------------------# ---------------描述----------------## Checkable动作示例。##这个动作的主图标是自动加载的,因为它共享相同的名称(ActionCheckable[.py, .svg])。#检查图标加载,因为它的后缀是' checked '。#关于Python的RoboDK API的更多信息:# //m.sinclairbody.com/doc/en/RoboDK-API.html# //m.sinclairbody.com/doc/en/PythonAPI/index.html#更多关于RoboDK Apps的信息:# https://github.com/RoboDK/Plug-In-Interface/tree/master/PluginAppLoader## --------------------------------------------从robodk进口robolink,robomath,roboapps从_AppUtilities进口ShowMessage进口操作系统ACTION_NAME=操作系统.路径.basename(__file__)defActionChecked():""" RoboDK检查动作时要执行的动作。"""RDK=robolink.Robolink()应用程序=roboapps.RunApplication()ShowMessage(RDK,ACTION_NAME,“检查!等着不受检查……”,真正的)我=0而应用程序.运行():ShowMessage(RDK,ACTION_NAME,“已检查状态……”+str(我),假)robomath.暂停(0.25)我+ =1#如果SkipKill()不存在,这个函数将不会被调用robomath.暂停(3.)ShowMessage(RDK,ACTION_NAME,“不!这是一个运行后的消息(SkipKill)。关闭…”,真正的)defActionUnchecked():"""在RoboDK中未检查动作时执行的动作。"""#不建议在未检查状态下使用APP.Run() !RDK=robolink.Robolink()ShowMessage(RDK,ACTION_NAME,“不!",真正的)返回defrunmain():”“”此动作单独执行或在RoboDK中与之交互时的入口点。重要:如果要编译此操作,请使用函数名'runmain()'。一个“Checkable Action”的例子:..python代码:def runmain ():如果roboapps.Unchecked ():ActionUnchecked ()其他:roboapps.SkipKill() #可选,防止RoboDK在2秒后强制杀死动作ActionChecked ()“瞬间动作”的例子:..python代码:def runmain ():如果roboapps.Unchecked ():roboapps.Exit() #或sys.exit()其他:roboapps.SkipKill() #可选,防止RoboDK在2秒后强制杀死动作ActionChecked ()一个'Checkable Option'的例子:..python代码:def runmain ():如果roboapps.Unchecked ():ActionUnchecked ()其他:roboapps.KeepChecked() #重要,防止RoboDK在操作完成后取消检查ActionChecked ()”“”如果roboapps.无节制的():ActionUnchecked()其他的:roboapps.SkipKill()注释这行代码,让RoboDK在2秒后杀死进程(如果它还在运行)ActionChecked()如果__name__==“__main__ ':runmain()
上下文操作(右键菜单)具有与瞬时操作和可检查操作相同的功能,但与用户选择绑定。在特定项目上执行操作是很有用的。
RoboDK应用程序-上下文操作 ¶# --------------------------------------------# ---------------描述----------------##上下文操作示例(右键单击特定类型的树项)。#关于Python的RoboDK API的更多信息:# //m.sinclairbody.com/doc/en/RoboDK-API.html# //m.sinclairbody.com/doc/en/PythonAPI/index.html#更多关于RoboDK Apps的信息:# https://github.com/RoboDK/Plug-In-Interface/tree/master/PluginAppLoader## --------------------------------------------从robodk进口robolink,roboapps从_AppUtilities进口ShowMessage进口操作系统ACTION_NAME=操作系统.路径.basename(__file__)defOnContextAction():“”“在RoboDK中点击动作时要执行的动作。”""RDK=robolink.Robolink()selected_items=RDK.选择()如果不selected_items:ShowMessage(RDK,ACTION_NAME,“没有选择!”,真正的)返回的名字=[x.名字()为x在selected_items]ShowMessage(RDK,ACTION_NAME,“用户选择”+”、“.加入(的名字)+“。”,真正的)defrunmain():”“”此动作单独执行或在RoboDK中与之交互时的入口点。重要:如果要编译此操作,请使用函数名'runmain()'。一个“Checkable Action”的例子:..python代码:def runmain ():如果roboapps.Unchecked ():ActionUnchecked ()其他:roboapps.SkipKill() #可选,防止RoboDK在2秒后强制杀死动作ActionChecked ()“瞬间动作”的例子:..python代码:def runmain ():如果roboapps.Unchecked ():roboapps.Exit() #或sys.exit()其他:roboapps.SkipKill() #可选,防止RoboDK在2秒后强制杀死动作ActionChecked ()一个'Checkable Option'的例子:..python代码:def runmain ():如果roboapps.Unchecked ():ActionUnchecked ()其他:roboapps.KeepChecked() #重要,防止RoboDK在操作完成后取消检查ActionChecked ()”“”如果roboapps.无节制的():roboapps.退出()其他的:OnContextAction()如果__name__==“__main__ ':runmain()
5.1.2.选项¶
checkable选项(toggle)对于向用户提供状态很有用。您还可以对选项进行分组,使它们相互排斥。
RoboDK应用程序-可检查的选项 ¶# --------------------------------------------# ---------------描述----------------## Checkable选项示例。#关于Python的RoboDK API的更多信息:# //m.sinclairbody.com/doc/en/RoboDK-API.html# //m.sinclairbody.com/doc/en/PythonAPI/index.html#更多关于RoboDK Apps的信息:# https://github.com/RoboDK/Plug-In-Interface/tree/master/PluginAppLoader## --------------------------------------------从robodk进口robolink,roboapps从_AppUtilities进口ShowMessage从AppSettings进口设置进口操作系统ACTION_NAME=操作系统.路径.basename(__file__)defActionChecked():""" RoboDK检查动作时要执行的动作。"""RDK=robolink.Robolink()年代=设置()年代.负载(RDK)RDK.setParam(年代.APP_OPTION_KEY,1.0)ShowMessage(RDK,ACTION_NAME,str(RDK.getParam(年代.APP_OPTION_KEY)),假)defActionUnchecked():"""在RoboDK中未检查动作时执行的动作。"""RDK=robolink.Robolink()年代=设置()年代.负载(RDK)RDK.setParam(年代.APP_OPTION_KEY,0.0)ShowMessage(RDK,ACTION_NAME,str(RDK.getParam(年代.APP_OPTION_KEY)),假)defrunmain():”“”此动作单独执行或在RoboDK中与之交互时的入口点。重要:如果要编译此操作,请使用函数名'runmain()'。一个“Checkable Action”的例子:..python代码:def runmain ():如果roboapps.Unchecked ():ActionUnchecked ()其他:roboapps.SkipKill() #可选,防止RoboDK在2秒后强制杀死动作ActionChecked ()“瞬间动作”的例子:..python代码:def runmain ():如果roboapps.Unchecked ():roboapps.Exit() #或sys.exit()其他:roboapps.SkipKill() #可选,防止RoboDK在2秒后强制杀死动作ActionChecked ()一个'Checkable Option'的例子:..python代码:def runmain ():如果roboapps.Unchecked ():ActionUnchecked ()其他:roboapps.KeepChecked() #重要,防止RoboDK在操作完成后取消检查ActionChecked ()”“”如果roboapps.无节制的():ActionUnchecked()其他的:roboapps.KeepChecked()ActionChecked()如果__name__==“__main__ ':runmain()
5.1.3.配置¶
需要一个配置来确定动作类型、名称、描述等。
RoboDK Apps -应用程序配置 ¶[一般]MenuName=应用程序例子MenuParent=MenuPriority=50MenuVisible=真正的ToolbarArea=2ToolbarSizeRatio=1.5RunCommands=版本=1.0.0[ActionCheckable]DisplayName=可开支票行动描述=可开支票行动例子可见=真正的快捷方式=可开支票=真正的CheckableGroup= -1AddToToolbar=真正的优先级=10TypeOnContextMenu=TypeOnDoubleClick=DeveloperOnly=假AddToMenu=真正的[ActionMomentary]DisplayName=短暂的行动描述=短暂的行动例子可见=真正的快捷方式=可开支票=假CheckableGroup= -1AddToToolbar=真正的优先级=20.TypeOnContextMenu=TypeOnDoubleClick=DeveloperOnly=假AddToMenu=真正的[ActionOnContext]DisplayName=上下文行动描述=上下文行动例子可见=真正的快捷方式=可开支票=假CheckableGroup= -1AddToToolbar=假优先级=30.TypeOnContextMenu= -1TypeOnDoubleClick=DeveloperOnly=假AddToMenu=真正的[ActionOnDoubleClick]DisplayName=双-点击行动描述=双点击行动例子可见=真正的快捷方式=可开支票=假CheckableGroup= -1AddToToolbar=假优先级=31TypeOnContextMenu=TypeOnDoubleClick= -1DeveloperOnly=假AddToMenu=真正的[OptionCheckable]DisplayName=可开支票选项描述=可开支票选项例子可见=真正的快捷方式=可开支票=真正的CheckableGroup= -1AddToToolbar=假优先级=40TypeOnContextMenu=TypeOnDoubleClick=DeveloperOnly=假AddToMenu=真正的[OptionCheckableGroupA]DisplayName=可开支票选项(集团)一个描述=可开支票选项(集团)一个例子可见=真正的快捷方式=可开支票=真正的CheckableGroup=1AddToToolbar=假优先级=50TypeOnContextMenu=TypeOnDoubleClick=DeveloperOnly=假AddToMenu=真正的[OptionCheckableGroupB]DisplayName=可开支票选项(集团)B描述=可开支票pption(集团)B例子可见=真正的快捷方式=可开支票=真正的CheckableGroup=1AddToToolbar=假优先级=51TypeOnContextMenu=TypeOnDoubleClick=DeveloperOnly=假AddToMenu=真正的[AppSettings]DisplayName=设置描述=编辑的例子设置可见=真正的快捷方式=可开支票=假CheckableGroup=1AddToToolbar=假优先级=One hundred.TypeOnContextMenu=TypeOnDoubleClick=DeveloperOnly=假AddToMenu=真正的