在已校准机器人和机器人程序的情况下,使用RoboDK可以通过调用FilterProgram过滤整个程序:
robot.FilterProgram(file_program)
在资源库的 "宏 "部分,有一个名为 "过滤程序"(FilterProgram)的宏示例。以下代码是使用 RoboDK API 过滤程序的 Python 脚本示例。
from robolink import * # 与 RoboDK 通信的 API
from RoboDK import * # 基本矩阵运算
导入 os # 路径操作
# 获取当前工作目录
CWD= os.path.dirname(os.path.realpath(__file__))
# 如果 RoboDK 没有运行,则启动它,并链接到 API
RDK = Robolink()
# 可选:提供以下参数,以便在幕后运行
#RDK= Robolink(args='/NOSPLASH /NOSHOW /HIDDEN')
# 获取校准后的工作站(.rdk 文件)或机器人文件(.robot):
# 提示:校准后,右键单击机器人,选择 "另存为 .机器人"。
calibration_file= CWD+ '/KUKA-KR6.rdk'
# 获取程序文件:
file_program= CWD+ '/Prog1.src'
# 载入 RDK 文件或机器人文件:
calib_item= RDK.AddFile(calibration_file)
if not calib_item.Valid():
raise Exception("Something went wrong loading "+ calibration_file)
# 检索机器人(如果只有一个机器人,则无弹出窗口):
机器人= RDK.ItemUserPick('Select a robot to filter', ITEM_TYPE_ROBOT)
if not robot.Valid():
raise Exception("未选择机器人或机器人不可用")
# 激活精度
机器人.setAccuracyActive(1)
# 筛选程序:这将自动保存一份程序副本
# 根据机器人品牌重命名文件
status, summary= robot.FilterProgram(file_program)
如果 status== 0:
print("Program filtering succeeded")
print(summary)
calib_item.Delete()
RDK.CloseRoboDK()
否则
print("Program filtering failed! Error code: %i" % status)
print(summary)
RDK.ShowRoboDK()