pyautocad: ‘Call was rejected by callee’

Nesta postagem do blog, discutirei um erro que ocorre ao automatizar tarefas no AutoCAD usando o módulo pythoncom. O módulo pythoncom é um módulo de automação do AutoCAD em Python. Além disso, vou fornecer uma solução para o mesmo. O erro que vou tratar é o erro “Call was rejected by callee”.

Causa do erro “Call was rejected by callee”

A principal razão para obter esse erro ao trabalhar com a automação do AutoCAD usando pythoncom é a velocidade de realização de chamadas. Ou seja, a velocidade de fazer chamadas.

As chamadas subsequentes que fazemos para executar determinadas tarefas no AutoCAD são mais rápidas do que o aplicativo pode manipular.

Isso eventualmente gera um erro ‘Call was rejected by callee’.

Solução para o erro “Call was rejected by callee”

Para resolver esse problema, podemos usar o método ‘sleep’ importando o módulo ‘time’ para o Python.

time.sleep(5)

Este método deve ser executado após a execução de certas funções pesadas que consomem uma quantidade considerável de recursos do computador durante a execução de tarefas. Temos que passar parâmetros como segundos para suspender um processo da thread atual por um tempo especificado.

Conforme mencionado no código acima, estou suspendendo a execução por 5 segundos.

Aplicação exemplar para resolver o erro

O código mencionado abaixo representa um subprocesso de um código. Eu preciso ativar a viewport para executar determinadas tarefas na viewport. Mas ao trabalhar com várias janelas de visualização, acabo recebendo o erro “Call was rejected by callee”.

Para mitigar o mesmo, estou forçando o processo a aguardar 0,5 segundos e depois continuar.

def turn_on_viewport(viewport):
    viewport.ViewportOn = True
    print("Viewport On: " + str(viewport.ViewportOn))
    time.sleep(0.5)

Para mais postagens de blog sobre a automatização do AutoCAD, verifique nossas outras postagens de blog relacionadas ao pyautocad e ao pywin32.

Por favor, deixe qualquer dúvida que você possa ter como um comentário abaixo. Sinta-se à vontade para entrar em contato conosco para qualquer assistência técnica. Pode fazê-lo através do nosso formulário de contato.

You May Also Like

Leave a Reply

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.