Pular para o conteúdo principal

AutoCAD .NET #003: Tutorial - Instalando a API AutoCAD .NET

Bom já foram dois artigos sobre a filosofia da API AutoCAD .NET agora vamos a instalação de fato do AutoCAD .NET.

De antemão aviso que esses link’s a Autodesk mudam o tempo todo por isso a ideia aqui antes de tudo é mostrar como funciona hierarquicamente a instalação.

A Instalação

Primeiramente você deve ter em mente qual a versão do AutoCAD sua aplicação se destina, isso é importante para definir a versão do ObjectARX consequentemente a versão do .NET Framework que deverá ser instalada e por fim a versão do Visual Studio.

Geralmente o site onde você pode encontrar toda essa informação é o site: https://www.autodesk.com/developer-network/platform-technologies/autocad

Baixe o ObjectARX na versão que se deseja trabalhar. Como na maior parte das vezes nossas aplicações são de baixa complexidade e não utilizam recursos das versões mais novas do AutoCAD sugiro sempre usar algumas versões anteriores ao invés da versão corrente, eu uso a versão 2018 atualmente mesmo depurando minhas aplicações numa versão mais nova do AutoCAD.

É importante ser em mente a compatibilidade por isso abaixo tem um resumo da correlação entre a versão do Visual Studio e a Versão do AutoCAD preferencial, guarde essa informação:

AutoCAD 2021 - Suportado pelo Microsoft Visual Studio 2019
AutoCAD 2020 - Suportado pelo Microsoft Visual Studio 2017
AutoCAD 2019 - Suportado pelo Microsoft Visual Studio 2017
AutoCAD 2018 - Suportado pelo Microsoft Visual Studio 2015
AutoCAD 2017 - Suportado pelo Microsoft Visual Studio 2015
AutoCAD 2016 - Suportado pelo Microsoft Visual Studio 2012 and 2013

No meu caso eu tenho o AutoCAD 2021 e uso o Microsoft Visual Studio 2019 mas como eu tenho a licença do Visual Studio 2010 no trabalho e acabo usando lá uma versão mais antiga compatível com o AutoCAD2013 que nem aparece nessa lista mais. 


O que você precisa baixar (nas versões correntes) e instalar:

Visual Studio 2019 IDE

ObjectARX para AutoCAD 2021

AutoCAD 2021 DotNet Wizard


Depois de baixar e instalar podemos abrir a IDE do Visual Studio 2019.


Com a IDE aberta temos a interface do Visual Studio de inicialização de projetos. Vamos criar um projeto novo usando o Wizard que instalamos anteriormente sendo assim, clique em “Criar um novo projeto”

Você pode usar a caixa de busca para filtrar os tipos de projetos disponíveis, digite AutoCAD e todos os modelos de projetos para AutoCAD parecerão. Vamos usar nesse primeiro tutorial o modelo “AutoCAD 2021 CSharp plug-in”.

Na janela seguinte você pode atribuir um nome para solução e um diretório onde a solução será armazenada bem como a versão do .NET Framework. Recomendo não mexer na versão do .NET porque como já mencionei no início a versão do .NET está ligada a versão do AutoCAD.

Vou chamar o aplicativo de “myAutoCAD Tutorial Plug-In”, vamos usar esse mesmo projeto para maior parte dos exemplos nesse tutorial de AutCAD .NET API.

Nota: Não é mais necessário deixar o nome do projeto sem espaços e caracteres especiais como acentuação, antigamente isso dava algum tipo de problema mas hoje em dia não é mais um problema grave, tanto o Visual Studio como o AutoCAD trabalham bem com isso.

Assim que você clicar em criar uma janela de configuração será aberta como apresentado a seguir. Essa janela é possível configurar onde a biblioteca ObjectARX que você baixou está, esta é logo a primeira opção da janela. A primeira vez você terá que fazer esse caminho manualmente. Essa pasta deve ser a pasta que consta a biblioteca AcMgd.dll que geralmente quando você baixar e descompacta naquela sequência “skip all erros, next next next….” ela vai para pasta “C:\Autodesk\Autodesk_ObjectARX_20121_Win_64_and_32_Bit\inc”.


A segunda opção você deve selecionar onde está o "acad.exe" que é exatamente o executável do AutoCAD. Isso é configurado para que a depuração permita chamar o AutoCAD através do Visual Studio e você consiga carregar e depurar a seu código pelo Visual Studio com todos os recursos de depuração disponíveis como se fosse um aplicativo nativo do Windows.

Por fim, você pode selecionar as bibliotecas de controle disponíveis para manipulação do AutoCAD. As três bibliotecas básicas de manipulação já vêm pré-selecionadas que é o AcMgd.dll, AcDbMgd.dll e AcCoreMgd.dll. Como nós, a princípio não vamos fazer grandes coisas nesse tutorial de AutoCAD .NET API vamos manter apenas essas opções marcadas (até porque se precisar adicionar a posteriori podemos ensinar no tutorial).

O projeto demora apenas alguns instantes para ser criado.

Com essa etapa vencida se abre a interface do Visual Studio completa, para quem já está mais ou menos acostumado com as IDE’s de desenvolvimento de software nada muda muito mas farei um pequeno adendo agora sobre a interface.


Pode ser que a sua janela não seja bem igual a minha, essa janela já uma janela de trabalho que eu gosto de operar com as barras de ferramentas disponíveis em todos os lados. Caso você queira explorar as barras de ferramentas, janelas e menus do Visual Studio estão todas disponíveis na barra de ferramentas EXIBIR na parte superior esquerda.

Vamos a mais um destaque da interface antes de abrir o código mesmo, o Gerenciador de Soluções.

No gerenciador de soluções se encontra o projeto propriamente dito criado pelo Wizard. O VS entende como uma "solução" um conjunto de projetos compiláveis, espero mais a frente poder mostrar isso mais claramente mas é necessário entender por agora que uma Solução é um conjunto de projetos cada um criando um objeto compilado final que podem ser utilizados juntos ou separadamente.

Como no nosso caso a Solução terá apenas um projeto que têm o mesmo nome da solução “myAutoCAD Tutorial Plug-In”. Tanto o projeto como a solução tem propriedades próprias que podem ser acessados clicando sobre com o botão direito do mouse.

Nas propriedades do projeto que se encontram a versão do .NET Framework que o projeto será compilado e uma série de informações que usaremos no futuro por enquanto vamos saber que existe.

As Referências reúnem todas as bibliotecas básicas para interagir com o AutoCAD e o Windows. Quando você precisar de novos recursos é através das Referências que esses recursos quando prontos, compilados, podem ser adicionados a solução. 

Note que as bibliotecas AcMgd.dll, AcDbMgd.dll e AcCoreMgd.dll adicionadas pelo Wizard estão indicadas.

Por fim temos finalmente o código! Quando o Wizard é executado ele cria automaticamente dois arquivos de código um chamado myCommands.cs e outro chamado myPluguin.cs.

Para entender precisamos ter em mente um conceito: quando um aplicativo sob um sistema operacional ou aplicativo host como o AutoCAD o “pai” precisa saber o que deve ser feito para iniciar, o que deve ser passado para o “filho” de informação.

myPluguin.cs

Assim o myPluguin.cs contém duas instruções padronizadas de inicialização do seu aplicativo, ou seja, toda vez que você carregar a sua DLL no AutoCAD através do comando NETLOAD imediatamente essa função do código vai iniciar. Isso é útil quando se desenha que o aplicativo busque uma informação externa, mostre uma barra de menu etc…

Também existe uma função Terminate() que tem a finalidade análoga a do Initialize porém ao seu aplicativo ser fechado. Particularmente, como uma DLL carregada não pode ser descarregada, não existe um comando chamado NETUNLOAD então essa função Terminate() roda sempre que a seção do AutoCAD é terminada.

myCommands.cs

O myCommands.cs  é o local de fato onde você poderá escrever suas funções, dentro há uma classe chamada myCommands. Pelo Wizard já vem algum código desenhado para testes com algumas funções públicas já implementadas para testes iniciais.

Esse código já é plenamente compilável. Sendo assim vamos a compilação de fato.

Para compilar a solução basta clicar em “Compilar Solução”. Se tudo correr bem no canto inferior direito aparecerá uma mensagem dizendo “Compilação bem-sucedida” como indicado a seguir.

Se tudo correr realmente corretamente, na pasta do seu projeto surgirá uma subpasta chamada ...\myAutoCAD Tutorial Plug-In\bin\Debug e nela terá dois arquivos:

A myAutoCAD Tutorial Plug-In.dll é o seu aplicativo propriamente dito o outro arquivo é um arquivo auxiliar de objetos para o Intellitrace poder compreender seu código e incorpora-lo para depuração mesmo quando chamado pelo AutoCAD, é mais complexo que isso mas por agora basta entender isso, ou seja, se você for distribuir sua dll para terceiros não precisa mandar esse arquivo junto.

 A depuração

Bom até agora o que nós já fizemos: 1. Instalamos tudo que era necessário; 2. Montamos a solução no Visual Studio e Compilamos o projeto.

Agora falta executar a aplicação, para executar, se você configurou corretamente a pasta onde está o AutoCAD no wizard basta clicar no botão de depuração, “Iniciar”.

Automaticamente o AutoCAD será chamado e iniciará a abertura do programa com o Drawing1.dwg Note que o AutoCAD aparece com uma pequena caixa de diálogo de depuração na parte superior em roxo, isso acontece porque o autoCAD foi lançado através do modo depuração do VS de modo que quando a sua DLL também for lançada ela também possa ser manipulada pelo VS.

Agora será necessário carregar manualmente a solução para isso utilize o comando NETLOAD e selecione a sua DLL para ser carregada.

Durante a carga da DLL uma mensagem de separação aparecerá informando que trata-se de um aplicativo de terceiros, nesse caso o terceiro é você mesmo que está fazendo o aplicado. Recomendo você sempre clicar em “Load Once” até o aplicativo ficar finalizado.

Uma vez carregada todos os comandos que foram criados (já estavam lá) estão disponíveis no AutoCAD então vamos a um teste, digite MYCOMMAND, lembrando que o Autocad não é case sensitive, não faz distinção de letras de maiúsculas e minúsculas na linha de comando.

E finalmente o resultado, o comando foi executado e escreveu uma mensagem no prompt. 

Nos próximos casos do tutorial apresentarei com mais alguns detalhes da interface e funcionalidades, até breve!

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 () {...