View
118
Download
4
Category
Preview:
Citation preview
Conceitos Básicos de AutoCAD® .NET
Augusto GonçalvesConsultor de Desenvolvimento na Autodesk
Augusto GonçalvesConsultor de DesenvolvimentoAutodesk Brasil
Augusto é membro do time DevTech desde 2008 e trabalha escritório de São Paulo. Suporte para desenvolvedores da América Latina nas APIs AutoCAD, Civil3D e Revit.
Antes de trabalhar na Autodesk, Augusto trabalhou em projetos CAD para engenharia e comércio eletrônico. É graduado em Engenharia Civil (UFMG) e pós-graduado em Engenharia de Computação (ITA).
Sobre o apresentador
Agenda
1Plataforma .NET
Entendendo o .NET
2Plugin básico
Como começar um plugin com .NET
3Base de dados do desenho
Visão geral da representação em memória do desenho
4Desenhando
Adicinando entidades à base de dados do desenho
5Listando o desenho
Como percorrer a base de dados do desenho
Por que .NET?
Plataforma de desenvolvimento padrão da Microsoft Comunidade ativa em grupos de discussão
Grande quantidade de recursos nativos Muitos recursos adicionais, inclusive gratuitos
Curva de aprendizado
Utilizada em diversas APIs Autodesk Mesmo conhecimento pode ser aplicado em outros produtos
Benefícios da Tecnologia .NET
Orientada a Objetos Código fica bem estruturado e aumenta o reuso (sem copiar/colar)
Multi-Linguagem Pode-se programar em VB.NET, C#, C++, dentre outras
Fácil comunicação com outras tecnologias
O que é necessário para começar?
Visual Studio Express é a versão gratuita em http://www.microsoft.com/express/ Recomenda-se versão 2008 (para AutoCAD 2011) Vamos utilizar Visual Basic .NET Express
ObjectARX SDK Download em http://www.autodesk.com/objectarx Documentos de ajuda Arquivos auxiliares Exemplos
AutoCAD instalado
Como funciona um plugin para AutoCAD?
Assembly(.dll)
Compilado
Código escrito em Visual Basic .NET
Carregado no AutoCAD com NETLOAD
Referencie as DLLs do AutoCAD
Projeto VB.NET
Primeiro plugin com .NET: Projeto
Criar um novo projeto
Plugin para AutoCAD deve ser Class Library
Primeiro plugin: Referencias
Adicionar referências
AcMdgRecursos de interfaceC:\ObjectARX 2011\inc\AcMgd.dll
AcDbMgdRecursos de banco de dadosC:\ObjectARX 2011\inc\AcDbMgd.dll
IMPORTANTE:Marcar Copy Local como FALSE
Primeiro plugin: Rotina como comando
1. Rotina VB convencional
2. Imports do AutoCAD
3. Marcar a rotina como comando
4. Acessar o editor
5. Escrever uma mensagem
Agora é só compilar, carregar no AutoCAD com NETLOAD e chamar meuComando
Interação com usuário: Selecionar um ponto
Configurar as opções para selecionar um ponto na tela
Pedir ao usuário para selecionar e guardar o resultado
Criar uma variável para o ponto clicado Necessário um imports adicional para Point3d: Autodesk.AutoCAD.Geometry
Escrever as coordenadas X, Y e Z na linha de comando
Estrutura de DWG em memória: Visão Geral
Database
BlockTable LayerTable Outras tabelas
Model Space
Paper Space 0
BlockTableRecord
Outros Blocos
0
LayerTableRecord
Outros layers
TextStyleTable
DBDictionary
Paper Space 1
DimStyleTable
UcsTable
Materials
Visual Styles
Outros(Personalizados)
LineTypeTable
ViewTable
ViewportTable
RegAppTable
Estrutura de DWG em memória: Model Space
Model Space é um BlockTableRecord Este mesmo conceito se aplica a
paper spaces e blocos criados
Contém entidades
Temos um tipo de entidade paracada caso
Database
BlockTable
Model Space
BlockTableRecord
Entity
Line
Circle
MText
Polyline
Diversos outros...
Desenhando: Visão Geral
Adicionar uma entidade ao banco de dados do desenho
Precisamos de uma transação para acessar a base de dados Cada transação representa um UNDO
Todas as modificações DEVEM ser feitas em uma transação
Database Transaction
StartTransaction
Commit
GetObject ( Model Space )
Model Space . Append ( Entity )
Desenhando: Passos
Using/End Using cuida de fechar a
transação
Necessário um imports adicional para DatabaseAutodesk.AutoCAD.DatabaseServices
Percorrer a base de dados: Visão Geral
Acesso à base de dados DEVE ser feita em uma transação
Toda entidade tem um ObjectId
Não é possível acessar uma entidade diretamente Necessitamos do ObjectId e de um Transação
Database Transaction
StartTransaction
Commit
GetObject ( ObjectId )
Percorrer a base de dados: Passos
Using/End Using cuida de fechar a
transaçãoFor Each/Next
Loop de repetiçãoIf/End IfPara cada tipo
Material Adicional
Through the Interface blog http://through-the-interface.typepad.com AutoCAD.NET Developer’s Guide http://www.autodesk.com/autocad-net-developers-guide
Grupos de Discussão http://discussion.autodesk.com/forums/category.jspa?categoryID=8
Autodesk Developer Network http://www.autodesk.com/joinadn
Próximos treinamentos
Local: Autodesk São Paulo
API AutoCAD Tópicos Avançados10-11/Janeiro/11
DevLab (AutoCAD, Inventor, Revit, Civil3D)13-14/Janeiro/11
API Inventor 17-19/Janeiro/11
Inscrição em www.autodesk.com/apitraining > Schedule
Autodesk [and other] are registered trademarks or trademarks of Autodesk, Inc., and/or its subsidiaries and/or affiliates in the USA and/or other countries. All other brand names, product names, or trademarks belong to their respective holders. Autodesk reserves the right to alter product and services offerings, and specifications and pricing at any time without notice, and is not responsible for typographical or graphical errors that may appear in this document. © 2010 Autodesk, Inc. All rights reserved.
Recommended