Filtrar programas usando a API

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