It is possible to filter a complete program using RoboDK given a calibrated robot and the robot program using theFilterProgramcall:
robot.FilterProgram(file_program)
A macro example called FilterProgram is available in the Macros section of the library. The following code is an example Python script that uses the RoboDK API to filter a program.
fromrobolinkimport*# API to communicate with RoboDK
fromrobodkimport*# basic matrix operations
importos# Path operations
# Get the current working directory
CWD=os.path.dirname(os.path.realpath(__file__))
# Start RoboDK if it is not running and link to the API
RDK = Robolink()
# optional: provide the following arguments to run behind the scenes
#RDK=Robolink(args='/NOSPLASH /NOSHOW /HIDDEN')
# Get the calibrated station (.rdk file) or robot file (.robot):
# Tip: after calibration, right click a robot and select "Save as .robot"
calibration_file=CWD+'/KUKA-KR6.rdk'
# Get the program file:
file_program=CWD+'/Prog1.src'
# Load the RDK file or the robot file:
calib_item=RDK.AddFile(calibration_file)
ifnotcalib_item.Valid():
raiseException("Something went wrong loading "+calibration_file)
# Retrieve the robot (no popup if there is only one robot):
robot=RDK.ItemUserPick('Select a robot to filter',ITEM_TYPE_ROBOT)
ifnotrobot.Valid():
raiseException("Robot not selected or not available")
# Activate accuracy
robot.setAccuracyActive(1)
# Filter program: this will automatically save a program copy
# with a renamed file depending on the robot brand
status,summary=robot.FilterProgram(file_program)
ifstatus==0:
print("Program filtering succeeded")
print(summary)
calib_item.删除()
RDK.CloseRoboDK()
else:
print("Program filtering failed! Error code: %i"%status)
print(summary)
RDK.ShowRoboDK()