Olá Galera,
Faz tempo que não escrevo. Sei que estou em falta e peço desculpa a quem têm visitado este blog.
Eu fiz o segundo módulo do curso de C# e apesar de eu ter boiado muitas vezes, digo que no geral valeu a pena. Foi a parte do C# usando ADO.NET com ligação da Banco SQL e XML.
Vamos ao que interessa.
Nesses ultimos tempo tenho ficado muito P$%o com esse lance de ter que ficar abrindo e fechando o CAD para conseguir "debugar" as DLLs. Descobri que existem bibliotecas que podem ser usadas tanto para ler como escrever DWGs sem o uso do Autocad (ou motor gráfico).
Umas é disponibilizada pela própria Autodesk e se chama RealDWG, opção interessante para desenvolvimento de softwares e aplicações. Cheguei até a conversar com firma coligada a Autodesk que guarda os codigos do formato DWG mas não teve como eles me disponibilizarem, apesar das minhas súplicas.
A segunda se chama Teigha.NET e faz parte de uma comunidade (antes aberta) chamada Open Design Aliance. Também me parece ser uma ótima alternativa é pena que não é mais aberto. Se não me engano eles desenvolviam, ou desenvolvem o Intelicad. Não sei a que pé está, faz muito tempo que não vejo.
O único problema é que essas bibliotecas são pagas, então quem realmente quiser afundar no desenvolvimento de softwares quem lêem e escrevem DWG, que dêem um passo a frente...!!!
Abraços a todos e se alguém já estiver usando estas bibliotecas dê um toque... Gostaria muito de conhecê-las...!!
Autocad e C#
Programação no Autocad usando C#, LISP e conexões de dados,
terça-feira, 5 de outubro de 2010
domingo, 29 de agosto de 2010
Sites "DorFlex"
Aprender uma nova linguagem pra mim, está sendo quase como aprender a falar de novo entre comentário engraçados de um amigo: Ele me falou que no começo do aprendizado eu iria sentir "dores"..???!!! Acho que ele se referia a dores de cabeça, ou dores no ego de você ver que não sabe absolutamente nada...srsrs
Mas fuçando na internet e conversando com outros profissionais, você acaba achando ótimas referências que ajudam a aliviar as dores como no caso do site Macoratti.net em :
http://www.macoratti.net/Default.aspx
http://www.macoratti.net/Default.aspx
Este site aborda o uso de várias linguagem como no nosso caso o C#. Os tutoriais são bem didáticos, fáceis de serem compreendidos. Eu vi alguns tópicos que achei bem interessante como :
C# - Criando uma aplicação 3 camadas com MySQL
Tem vários outros tópicos que valem a pena dar uma estudados, mas me fixei mais nos conceito de camadas de aplicação. Achei bem interessante pois creio que este deva ser o conceito que irá ajudar em muito no planejamento e desenvolvimento de aplicações mais robustas.
Outra dica que vou deixar aqui são os cursos oferecidos pela Autodesk em :
http://www.adskconsulting.com/adn/cs/api_course_sched.php
Existe o curso de Autocad.NET e tem duração de 3 dias e o melhor de tudo.. É em português (tupiniquim) e é FREEE..!!! Deve ter bastante gente com dores participando por lá.. De repente dá pra ver que a sua não é tão doída assim..srsrs
Eu não sei exatamente se atendeu a expectativa dos participantes, porque ainda estou na fila de espera.. Se alguém participou nos conte como foi..!!!
Outra dica que vou deixar aqui são os cursos oferecidos pela Autodesk em :
http://www.adskconsulting.com/adn/cs/api_course_sched.php
Existe o curso de Autocad.NET e tem duração de 3 dias e o melhor de tudo.. É em português (tupiniquim) e é FREEE..!!! Deve ter bastante gente com dores participando por lá.. De repente dá pra ver que a sua não é tão doída assim..srsrs
Eu não sei exatamente se atendeu a expectativa dos participantes, porque ainda estou na fila de espera.. Se alguém participou nos conte como foi..!!!
Bom..Ainda estou sentindo as tais dores, mas espero sempre encontrar mais sites "dorflex" e valiosos comentários...!!!
Abraços a todos.
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..!!!
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.
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)

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.
quarta-feira, 11 de agosto de 2010
Cadê o NETUNLOAD ?
Ainda não consegui escrever um código próprio, apesar das idéias borbulharem na minha cabeça.
Por enquanto estou me atendo mais aos conceitos, estrutura envolvida e na integração do Visual Studio ao Autocad.
Uma coisa que vejo que é um verdadeiro tormento para os programadores, é o fato de não existir um NETUNLOAD ou algo parecido. Voltando um pouco a história.
Após escrevermos e compilarmos nossa DLL, precisaremos debugá-lo dentro do Autocad. Para carregarmos esta aplicação usamos o comando NETLOAD, acionamos o comando e até aqui tudo bonito.
O problema é que se continuarmos escrevendo o programa e dermos um Build Solution, ele simplesmente não sobrescreve a DLL, por estar presa ao Autocad. O que precisaríamos fazer é sair do CAD, construir e chamar novamente a DLL. Já deu pra ter idéia do tamanho da Pent#%$ação..!!
Outra maneira que está parecendo interessante é o uso do .NET Reflector, pela capacidade que ela dá de pular linha a linha no debug quando se usa bibliotecas externas.
Até o momento não encontrei uma solução satisfatória para facilitar o DEBUG das aplicações dentro do Autocad. Se alguém encontrar por favor me avise.
quinta-feira, 5 de agosto de 2010
Blog com exemplos de Códigos C# e Autocad

Depois de rodar muito encontrei o Blog de Keam Walmsley. Este Blog está sendo praticamente minha base de como programar em C# para o Autocad.
Link : http://through-the-interface.typepad.com/
Entendendo os conceitos de como programar e vendo os códigos fica bem mais claro entender a estrutura da linguagem. Para um leigo como eu, já é complicado entender o C# e mais ainda saber onde começa uma coisa ou outra e como se mesclam.
O Keam pelo que entendi gerencia uma equipe de desenvolvimento da Autodesk e no Blog você encontrará códigos muito bem explicados, simples e possíveis de serem descidos. Você só precisará chamar as bibliotecas e compilar os arquivos.
Outro local que vale a pena passar um tempo é o Forum de Discussão da Autodesk a respeito de Customização do Autocad utilizando tecnologia DotNet.
C# e Manuais DotNet

Até aqui estou programando em PHP com MYSQL e LISP. O conceito de programação em C é bastante distinto, apesar de no PHP também ser possível programar orientado a objeto.
O curso ajudou em muito a tirar os nós que o livro produziu na minha cabeça e tornar a coisa mais legível. Mas mesmo assim este que vos escreve ainda está apanhando bastante. Mas caminhando aos poucos.
Um manual sobre as bibliotecas Autocad pode ser conseguido em :
O link acima possui o manual "on-line" e foi a primeira referência que utilizei para subir as bibliotecas dentro do Visual Studio e dar um primeiro OLÁ MUNDO..!!
Softwares - o que utlizar
Comecei baixando a versão do Visual Studio 2010 Express da própria Microsoft. A utilização, mediante a um breve cadastro, é gratuita. Esta versão funciona no Windows 7(x64) sem problemas.
Comecei a utilizá-lo com as Dlls do Autocad 2010 mas acabei desistindo por algumas incompatibilidades e voltei pra versão do Autocad 2008 no XP, já que esta não se instala em 64 bits. Lembrando que o Visual 2010 necessitará do XP SP3 instalado.
Se você conseguir achar a versão do Visual Studio 2010 PRO melhor ainda.
Você pode usar : Visual Studio Pro 2010 e Autocad 2008 (32bits).
Você necessitará do Autocad para Debuggar os programas e chamar as DLLs : acdbmgd.dll e acmgd.dll. Estas estão no diretório junto com o executável do Autocad(acad.exe). Na falta do Autocad você pode baixar esta duas bibliotecas no Autodesk Developer Center ObjectArx em : http://usa.autodesk.com/adsk/servlet/index?siteID=123112&id=773204
Neste download estão disponíveis as bibliotecas para linguagens suportadas pelo Autocad para 32 ou 64 bits.
Comecei a utilizá-lo com as Dlls do Autocad 2010 mas acabei desistindo por algumas incompatibilidades e voltei pra versão do Autocad 2008 no XP, já que esta não se instala em 64 bits. Lembrando que o Visual 2010 necessitará do XP SP3 instalado.
Se você conseguir achar a versão do Visual Studio 2010 PRO melhor ainda.
Você pode usar : Visual Studio Pro 2010 e Autocad 2008 (32bits).
Você necessitará do Autocad para Debuggar os programas e chamar as DLLs : acdbmgd.dll e acmgd.dll. Estas estão no diretório junto com o executável do Autocad(acad.exe). Na falta do Autocad você pode baixar esta duas bibliotecas no Autodesk Developer Center ObjectArx em : http://usa.autodesk.com/adsk/servlet/index?siteID=123112&id=773204
Neste download estão disponíveis as bibliotecas para linguagens suportadas pelo Autocad para 32 ou 64 bits.
Assinar:
Postagens (Atom)