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
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.
Boa Sorte.
Nenhum comentário:
Postar um comentário