domingo, 22 de agosto de 2010

Primeiro Código

Nas duas semanas passadas aqui em São Paulo, fez um frio considerável a ponto querer de querer enfiar os pés dentro do computador para esquentar. Por outro lado foi bom, pois fui obrigado a me concentrar, deixando um pouco os afazeres externos de lado, e botar o C# para rodar. É claro enrolado em um cobertor..srsr..!!!

Uma das minhas primeira preocupações foi tentar rodar um Form dentro do Autocad.
Fiz um resumo de como iniciar um FORM. Caso não entenda me escreva ..!!

Passos

1 - Inicie um novo projeto no Visual Studio utilizando :
  • Windows Form com .NET Framework 2.0


2 - Chamando as bibliotecas do Autocad

Encontre as DLLs do Autocad : acdbmgd.dll e acmgd.dll. Eu as achei no diretório onde está o executável do Autocad (acad.exe).

Na janela Solution Explorer, dê um clique com o botão direito sobre References > Add References e logo após vá em Browse.

Após adicionado clique sobre a DLL e na janela Properties, mude a opção Copy Local para false.

Isso evita que a DLL do Autocad seja copiada para junto da aplicação que estamos criando, fazendo assim a aplicação ir buscar diretamente no diretório origem.






3 - Form(Design)

Eu aproveitei para refazer uma janela de configurações de escalas de uma antiga aplicação. Ela nada mais faz do que setar as varíaveis : Useri1, Useri2 e Useri4.

Estas variáveis são aberta para usuário e podem ser alteradas dentro do cad através do comando : (setvar "useri1" valor), ficando vinculada ao arquivo do desenho.

O processo de desenvolvimento dentro do C# pode parecer mais enrolado aos que estão acostumando somente com LISP, mas de longe fica mais enxuto e muito melhor do que programar do que tudo em LISP e DCL.

O nome do form que criei é Form1.






4 - Classe para chamar o FORM dentro do Autocad.

Dentro do Projeto criei uma novo classe em Project > Add Class...
Chamei-a de Command.cs. Segue o código abaixo :

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;

//Chamar as refêrencias de biblioteca
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.Windows;
using Autodesk.AutoCAD.EditorInput;
//A linha abaixo será usada para chamar o form dentro do CAD
using acadapp = Autodesk.AutoCAD.ApplicationServices.Application;

namespace Autocad_Form
{
public class Command
{
//AbrirForm será o comando de prompt no Autocad
[CommandMethod("AbrirForm")]
public void AbrirForm()
{
try
{
//Cria-se uma instância do form
Form1 OpenForm = new Form1();
//ShowModelessDialog se encarrega de abrir o FORM
acadapp.ShowModelessDialog(OpenForm);
}
catch (System.Exception ex)
{
MessageBox.Show("Erro encontrado em :" + ex);
}
}
}
}

5 - Compilando o Programa

Aqui tem um macete. Iniciei o projeto como um Windows Aplication, o que irá gerar um arquivo tipo EXE na saída.

No entanto o Autocad somente lê DLL em NETLOAD ( Se existe um meio de ler o EXE ainda não descobri). Teremos que mudar a propriedade para Class Library em : Project > (nome_aplicação) Properties...

Após isso vá em Build e dê um Buil Solution.
Se tudo correu bem ele irá escrever bem abaixo da tela no inferior direito, Build Suceeded.

A DLL para carregar no CAD estará no diretório criado para o projeto em BIN > DEBUG.
No meu caso o nome da DLL é Autocad_Form.dll.

Entre no CAD e carregue a DLL com Netload, e chame a aplicação com o nome que você deu em [CommandMethod("AbrirForm")].

Não sei se você achou fácil ou não. Mas de qualquer forma não desista. Empenho tem suas recompensas.
Vou tentar achar algum lugar bacana para postar o código completo.
Achei : [ Autocad_form ]

Boa Sorte.


Nenhum comentário:

Postar um comentário