É possível filtrar um programa completo usando o RoboDK com um robô calibrado e o programa do robô usando a chamada FilterProgram:
robot.FilterProgram(Arquivo _program)
Um exemplo de macro chamado FilterProgram está disponível na seção Macros da biblioteca. O código a seguir é um exemplo de script Python que usa a API do RoboDK para filtrar um programa.
from robolink import * # API para se comunicar com o RoboDK
from robodk import * # operações básicas de matriz
import os # Operações de caminho
# Obter o diretório de trabalho atual
CWD= os.path.dirname(os.path.realpath(__Arquivo __))
# Inicie o RoboDK se ele não estiver em execução e vincule-o à API
RDK = Robolink()
# Opcional: forneça os seguintes argumentos para execução nos bastidores
#RDK= Robolink(args='/NOSPLASH /NOSHOW /HIDDEN')
# Obtenha a estação calibrada (arquivo .rdk) ou o arquivo do robô (.robot):
# Dica: após a calibração, clique com o botão direito do mouse em um robô e selecione "Save as .robot" (Salvar como .robô)
calibration_Arquivo = CWD+ '/KUKA-KR6.rdk'
# Obter o arquivo do programa:
Arquivo _program= CWD+ '/Prog1.src'
# Carregue o arquivo RDK ou o arquivo do robô:
calib_item= RDK.AddArquivo (calibration_Arquivo )
se não for calib_item.Valid():
raise Exception("Something went wrong loading "+ calibration_Arquivo )
# Recupere o robô (não haverá pop-up se houver apenas um robô):
robot= RDK.ItemUserPick('Select a robot to filter', ITEM_TYPE_ROBOT)
se não for robot.Valid():
raise Exception("Robot not selected or not available")
# Ativar a precisão
robot.setAccuracyActive(1)
# Filtrar programa: isso salvará automaticamente uma cópia do programa
# com um arquivo renomeado, dependendo da marca do robô
status, summary= robot.FilterProgram(Arquivo _program)
se o status== 0:
print("Program filtering succeeded")
print(summary)
calib_item.Delete()
RDK.CloseRoboDK()
E mais:
print("A filtragem do programa falhou! Código de erro: %i" % status)
print(summary)
RDK.ShowRoboDK()