在给机器人和机器人程序校准过的情况下,使用RoboDK可以通过调用FilterProgram过滤整个程序:
robot.FilterProgram(file_program)
在资源库的"宏"部分,有一个名为"过滤程序"(FilterProgram)的宏示例。以下代码是使用RoboDKAPI过滤程序的Python脚本示例。
fromrobolinkimport*#APItocommunicatewithRoboDK
fromrobodkimport*#basicmatrixoperations
importos#Pathoperations
#Getthecurrentworkingdirectory
CWD=os.path.dirname(os.path.realpath(__file__))
#StartRoboDKifitisnotrunningandlinktotheAPI
RDK=Robolink()
#optional:providethefollowingargumentstorunbehindthescenes
#RDK=Robolink(args='/NOSPLASH/NOSHOW/HIDDEN')
#Getthecalibratedstation(.rdkfile)orrobotfile(.robot):
#Tip:aftercalibration,rightclickarobotandselect"Saveas.robot"
calibration_file=CWD+'/KUKA-KR6.rdk'
#Gettheprogramfile:
file_program=CWD+'/Prog1.src'
#LoadtheRDKfileortherobotfile:
calib_item=RDK.AddFile(calibration_file)
ifnotcalib_item.Valid():
raiseException("Somethingwentwrongloading"+calibration_file)
#Retrievetherobot(nopopupifthereisonlyonerobot):
robot=RDK.ItemUserPick('Selectarobottofilter',ITEM_TYPE_ROBOT)
ifnotrobot.Valid():
raiseException("Robotnotselectedornotavailable")
#Activateaccuracy
robot.setAccuracyActive(1)
#Filterprogram:thiswillautomaticallysaveaprogramcopy
#witharenamedfiledependingontherobotbrand
status,summary=robot.FilterProgram(file_program)
ifstatus==0:
print("Programfilteringsucceeded")
print(summary)
calib_item.Delete()
RDK.CloseRoboDK()
else:
print("Programfilteringfailed!Errorcode:%i"%status)
print(summary)
RDK.ShowRoboDK()