Pular para o conteúdo principal

AutoCAD .NET #004: Tutorial – Depurando uma Aplicação

No último artigo nós começamos pelo básico que foi executar uma simples aplicação, agora nós vamos ver um recurso muito útil que é utilizar o recurso básico de depuração do Visual Studio para analisar um código ao mesmo tempo que ele é executado no AutoCAD.

Para isso vamos a nosso código da semana anterior e realizar algumas modificações no código. Primeiro vamos incluir uma variável inteira global para contabilizar o número de execuções de código.

...
int numero_de_exec = 0;
...

Feito isso vamos criar dentro do comando de teste um incrementador e adicionar alterar o texto a ser escrito na linha de comando para incluir o valor dessa variável criada.

int numero_de_exec = 0;

// Modal Command with localized name
[CommandMethod("MyGroup", "MyCommand", "MyCommandLocal", CommandFlags.Modal)]
public void MyCommand() // This method can have any name
{
    // Put your command code here
    Document doc = Application.DocumentManager.MdiActiveDocument;
    Editor ed;
    if (doc != null)
    {
        ed = doc.Editor;

        numero_de_exec++;

        ed.WriteMessage("Olá, esse código já foi executado " + numero_de_exec.ToString("####") + ".");

    }
}

Break Point

Agora, antes de executar esse código vamos adicionar sob o incrementador o breakpoint. Note que na interface de edição do visual Studio, antes do número da linha existe uma faixa cinza clara, clicando sobre ela na direção da linha é possível incluir um breakpoint sob a linha.


A finalidade do breakpoint é permitir uma pausa para visualizar o estado parcial do seu código. Quando executarmos o código será possível “ver” um retrato do código quando aquela linha for executada mesmo antes do código ser terminado. 

Vamos a prática da coisa. Compile o código depois execute.


Se tudo der certo o AutoCAD vai se abrir como ocorreu da última vez.

Com o AutoCAD aberto vamos executar o mesmo procedimento, vamos utilizar o comando NETLOAD e carregar manualmente a nossa aplicação.

Finalmente vamos chamar o comando criado digitando no prompt do AutoCAD o comando MYCOMMAD.

Como o breakpoint foi criado sob a linha de incrementação o Visual Studio será chamado em primeiro plano automaticamente com a interface modificada e com foco na linha do incrementador como mostrado a seguir.

Vamos a alguns comentários:

  • A seta amarela indica onde a execução do código está. 

  • Note que surgiram algumas novas opções de ferramentas ao lado do Continuar. Estas ferramentas são os acessórios de controle de depuração, com elas você pode avançar ou retroceder a execução do seu código.


  • Passando o mouse sobre as variáveis é possível ver o valor da variável. Note que a variável “numero_de_exec” ainda está em zero. Porque a linha ainda não foi executada.

  • Para executar a linha aperte F10 ou F11, note que a seta andou para a linha de baixo. Note também que valor da variável passou de 0 para 1, isso acontece porque a linha do incrementador foi executada.


  • Clique com o botão direito sobre a variável “numero_de_exec” e depois selecione a opção “Adicionar a Inspeção”. Note que a variável foi para a janela de Inspeção 1, através a inspeção é possível ver um grupo de variáveis a evolução dos seus valores no decorrer das execuções.
    Também é possível alterar o valor da variável manualmente na coluna valor quando o código está em depuração.


Finalmente note que esse tempo todo não é possível ver o que está acontecendo na Janela do AutoCAD isso é porque o AutoCAD está esperando sua depuração terminar para que ele continue, para continuar clique em “Continuar”.


O comando terminará de ser executado e a janela do AutoCAD será recolocada em primeiro plano e finalmente poderemos ler a frase.


Removendo o breakpoint.

Uma vez inserido o breakpoint ele pode ser removido a qualquer tempo durante a depuração antes de executar uma segunda vez remova o break point simplesmente clicando uma vez com o botão direito sobre a bola vermelha. Executando novamente o comando ele corre normalmente.



A depuração é uma ferramenta muito importante que facilita muito o processo de desenvolvimento e aprendizado em novas plataformas, saber utiliza-la da maneira correta e plena fará com que você consiga rapidamente solucionar problemas e encontrar erros no seu próprio código. Esse artigo é apenas uma introdução existem muitos recursos muito mais poderosos de depuração no Visual Studio que merecem estudos mais aprofundados.

No próximo artigo continuaremos fazendo os exemplos da Autodesk para os treinamentos de AutoCAD .NET API.

Comentários

Postagens mais visitadas deste blog

Numeração Automática no AutoCAD

Sem dúvida esse é uma ferramenta única que fazia falta a tempos e foi introduzida recentemente no AutoCAD, na última década… Em 2013 tinha feito um programa para criar uma bolinhas de numeração automática usando o conceito de Leader eu fazia um controle dos números dos itens na mão mesmo, depois de um tempo resolvi fazer um menuzinho para controlar o conteúdo do número dos bullets, hoje isso não é mais necessário, existe um comando no próprio AutoCAD para isso e faz parte das Ferramentas Expressas do AutoCAD. Gosto de compartilhar ferramentas e dicas que tendem a ser menos conhecidas ou subutilizadas, mas ainda podem fornecer um impulso para sua produtividade e fluxo de trabalho e que eu mesmo me surpreendi quando as encontrei Hoje, quero apresentar outra ferramenta, a numeração automática. Como o nome indica, o comando Numeração automática permite que você adicione automaticamente um número às etiquetas ou texto em um desenho. Vou mostrar como a numeração automática pode ser usada par...

Alterar a cor de fundo do AutoCAD

Eu sou um adepto do fundo preto, tudo que eu posso mudo a cor do fundo para preto. Nas ultimas versões do AutoCAD tenho notado que não é mais o padrão o fundo preto absoluto, é um cinza escuro. As vezes gosto também de mudar a cor do Layout de branco para preto afinal de contas quando trabalhamos com penas e contraste no model space preto, ver um desenho no layout é impossível.  Você pode mudar sua cor de fundo do AutoCAD para a cor que quiser. Definindo cores personalizadas Primeiro, vá para o menu Opções (botão Aplicativo> Opções), selecione a guia Exibição e clique no botão Cores. Agora você deve ver a caixa de diálogo Cores da janela de desenho: Agora você pode atualizar as cores de qualquer elemento da interface. Isso incluí o plano de fundo em qualquer contexto (selecione Model e Layout). Você pode escolher qualquer uma das predefinições, ou você pode escolher a partir de todo o espectro (basta escolher a opção Selecionar Cor ...). Se você não gost...

Unindo blocos em AutoCAD utilizando .NET

Hoje me deparai com uma necessidade de unir blocos com propriedades então resolvi fazer um comando para realizar esses procedimento. A principio esse procedimento não é tão complexo de ser executado individualmente mas por outro lado gostaria também de analisar um pouco melhor as possibilidades de se manipular blocos utilizando o AutoCAD. Abaixo o código que utilizei: using Autodesk.AutoCAD.ApplicationServices ; using Autodesk.AutoCAD.DatabaseServices ; using Autodesk.AutoCAD.EditorInput ; using Autodesk.AutoCAD.Runtime ; using System.Linq ; // This line is not mandatory, but improves loading performances [assembly: CommandClass(typeof(Merging_AutoCAD_blocks.Comandos))] namespace Merging_AutoCAD_blocks { public class Comandos { /// <summary> /// Uni dois ou mais blocos em um unico bloco. /// </summary> [CommandMethod("MERGBLKS")] public static void UnindoBlocos () {...