线程评级:
  • 0票(s) - 0平均
  • 1
  • 2
  • 3.
  • 4
  • 5
将子程序代码合并到主程序中
# 1
你好,

我为扫描工具做了点跟踪项目。在程序事件中,我调用python程序来获得工具在每个点上的不同方向。
在模拟中一切都运行良好。我有我需要的所有方向和动作。在生成tp程序时出现了问题。我得到的不是粗糙的代码,而是“call srm1”(srm1是python程序的名称)。我不需要调用子程序。我需要在主程序中输出srm1的真实内容。

21:J P [2]20% cnt1;
22:L P [3]1000毫米/秒CNT1;
23:L P [4]10毫米/秒
24:调用srm1;
25:L P [5]10毫米/秒CNT1;
26日:L P [6]1000毫米/秒CNT1;
27:L P [7]10毫米/秒
28日:调用srm1;
29日:L P [8]10毫米/秒CNT1;
30:L P [9]1000毫米/秒CNT1;
31日:L P [10]10毫米/秒
32:调用srm1;


是否有可能避免程序调用并将srm1的代码合并到主程序代码中?

(内联子程序被选中)
# 2
确保将子程序重命名为srm1。另一方面,此特性不适用于Python子程序。

如果你想嵌入Python子程序,一个解决方法是遵循以下步骤:
  1. 使用Quine后置处理器并生成Python程序(srm1)。这将输出一个Python程序。
  2. 执行生成的Python程序。这将在您的RoboDK项目中创建一个新程序。
  3. 一旦项目中有了srm1程序,就生成父程序。
如果你能提供给我们RoboDK项目,我们可以更好的帮助你。
# 3
用Quine post创建的程序不适合我,因为它包含固定的位置。

........
# MoveL姿势(222.853, 195.145, 199.228, -11.892, -5.093, -135.023
AutoTarget0 = RDK。AddTarget (“AutoTarget 0”、robotFrame机器人)
AutoTarget0.setPose(构成(222.853195.145199.228,11.892,5.093,135.023))
srm1。MoveL (AutoTarget0真正的
SbSRCH1
# MoveL姿势(222.853, 195.145, 199.228, 5.204, 11.844, -136.048
AutoTarget1 = RDK。AddTarget (“AutoTarget 1”、robotFrame机器人)
AutoTarget1.setPose(构成(222.853195.145199.2285.20411.844,136.048))
srm1。MoveL (AutoTarget1真正的
........

这个想法是根据点跟随项目的每个点进行增量运动。


附加文件
.rdk PS13srch_test_v3.rdk(大小:7.18 MB /下载:12022世界杯国家队名单53)
# 4
有一种方法可以做到这一点,但它需要更多的Python代码。
您需要创建一个Python程序,该程序在每次到达srm1程序调用时修改Point Follow Project程序的内容。实际上,您需要将srm1替换为它的实际内容(这可以直接在srm1 python脚本中完成)。
下面是一个如何使用Python修改程序指令的基本示例://m.sinclairbody.com/doc/en/PythonAPI/exam...structions

看一看,让我知道你的想法。
我没有打开你的电台。我只是根据你的解释来回答,因为我有点赶时间。

杰里米
有关RoboDK及其功能的有用信息,请访问我们的在线文档通过观看我们的Youtube频道






浏览此主题的用户:
1客人(年代)