通过

在给机器人和机器人程序校准过的情况下,使用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()