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进口robolinkroboapps_AppUtilities进口ShowMessage进口操作系统ACTION_NAME操作系统路径basename__file__defActionMomentary():“”“在RoboDK中点击动作时要执行的动作。”""RDKrobolinkRobolink()ShowMessageRDKACTION_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进口robolinkrobomathroboapps_AppUtilities进口ShowMessage进口操作系统ACTION_NAME操作系统路径basename__file__defActionChecked():""" RoboDK检查动作时要执行的动作。"""RDKrobolinkRobolink()应用程序roboappsRunApplication()ShowMessageRDKACTION_NAME“检查!等着不受检查……”真正的0应用程序运行():ShowMessageRDKACTION_NAME“已检查状态……”+str),robomath暂停0.25+ =1#如果SkipKill()不存在,这个函数将不会被调用robomath暂停3.ShowMessageRDKACTION_NAME“不!这是一个运行后的消息(SkipKill)。关闭…”真正的defActionUnchecked():"""在RoboDK中未检查动作时执行的动作。"""#不建议在未检查状态下使用APP.Run() !RDKrobolinkRobolink()ShowMessageRDKACTION_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()其他的roboappsSkipKill()注释这行代码,让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进口robolinkroboapps_AppUtilities进口ShowMessage进口操作系统ACTION_NAME操作系统路径basename__file__defOnContextAction():“”“在RoboDK中点击动作时要执行的动作。”""RDKrobolinkRobolink()selected_itemsRDK选择()如果selected_itemsShowMessageRDKACTION_NAME“没有选择!”真正的返回的名字x名字()xselected_itemsShowMessageRDKACTION_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进口robolinkroboapps_AppUtilities进口ShowMessageAppSettings进口设置进口操作系统ACTION_NAME操作系统路径basename__file__defActionChecked():""" RoboDK检查动作时要执行的动作。"""RDKrobolinkRobolink()年代设置()年代负载RDKRDKsetParam年代APP_OPTION_KEY1.0ShowMessageRDKACTION_NAMEstrRDKgetParam年代APP_OPTION_KEY)),defActionUnchecked():"""在RoboDK中未检查动作时执行的动作。"""RDKrobolinkRobolink()年代设置()年代负载RDKRDKsetParam年代APP_OPTION_KEY0.0ShowMessageRDKACTION_NAMEstrRDKgetParam年代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()其他的roboappsKeepChecked()ActionChecked()如果__name__==“__main__ 'runmain()

5.1.3.配置

需要一个配置来确定动作类型、名称、描述等。

RoboDK Apps -应用程序配置
一般MenuName应用程序例子MenuParentMenuPriority50MenuVisible真正的ToolbarArea2ToolbarSizeRatio1.5RunCommands版本1.0.0ActionCheckableDisplayName可开支票行动描述可开支票行动例子可见真正的快捷方式可开支票真正的CheckableGroup= -1AddToToolbar真正的优先级10TypeOnContextMenuTypeOnDoubleClickDeveloperOnlyAddToMenu真正的ActionMomentaryDisplayName短暂的行动描述短暂的行动例子可见真正的快捷方式可开支票CheckableGroup= -1AddToToolbar真正的优先级20.TypeOnContextMenuTypeOnDoubleClickDeveloperOnlyAddToMenu真正的ActionOnContextDisplayName上下文行动描述上下文行动例子可见真正的快捷方式可开支票CheckableGroup= -1AddToToolbar优先级30.TypeOnContextMenu= -1TypeOnDoubleClickDeveloperOnlyAddToMenu真正的ActionOnDoubleClickDisplayName-点击行动描述点击行动例子可见真正的快捷方式可开支票CheckableGroup= -1AddToToolbar优先级31TypeOnContextMenuTypeOnDoubleClick= -1DeveloperOnlyAddToMenu真正的OptionCheckableDisplayName可开支票选项描述可开支票选项例子可见真正的快捷方式可开支票真正的CheckableGroup= -1AddToToolbar优先级40TypeOnContextMenuTypeOnDoubleClickDeveloperOnlyAddToMenu真正的OptionCheckableGroupADisplayName可开支票选项集团一个描述可开支票选项集团一个例子可见真正的快捷方式可开支票真正的CheckableGroup1AddToToolbar优先级50TypeOnContextMenuTypeOnDoubleClickDeveloperOnlyAddToMenu真正的OptionCheckableGroupBDisplayName可开支票选项集团B描述可开支票pption集团B例子可见真正的快捷方式可开支票真正的CheckableGroup1AddToToolbar优先级51TypeOnContextMenuTypeOnDoubleClickDeveloperOnlyAddToMenu真正的AppSettingsDisplayName设置描述编辑例子设置可见真正的快捷方式可开支票CheckableGroup1AddToToolbar优先级One hundred.TypeOnContextMenuTypeOnDoubleClickDeveloperOnlyAddToMenu真正的