Programme mit der API filtern

Es ist möglich, ein komplettes Programm mit RoboDK zu filtern, wenn ein kalibrierter Roboter und das RoboterprogrammFilterProgrammverwenden:

robot.FilterProgram(file_program)

Ein Makrobeispiel namens FilterProgram ist im Abschnitt Makros der Bibliothek verfügbar. Der folgende Code ist ein Python-Beispielskript, das die RoboDK-API zum Filtern eines Programms verwendet.

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()