É 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(__file__))
# 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 /NOEXIBIR /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(file_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.ExibirRoboDK()