conceitos básicos de autocad®.net augusto gonçalves consultor de desenvolvimento na autodesk

20
Conceitos Básicos de AutoCAD® .NET Augusto Gonçalves Consultor de Desenvolvimento na Autodesk

Upload: internet

Post on 21-Apr-2015

118 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Conceitos Básicos de AutoCAD®.NET Augusto Gonçalves Consultor de Desenvolvimento na Autodesk

Conceitos Básicos de AutoCAD® .NET

Augusto GonçalvesConsultor de Desenvolvimento na Autodesk

Page 2: Conceitos Básicos de AutoCAD®.NET Augusto Gonçalves Consultor 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

Page 3: Conceitos Básicos de AutoCAD®.NET Augusto Gonçalves Consultor de Desenvolvimento na Autodesk

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

Page 4: Conceitos Básicos de AutoCAD®.NET Augusto Gonçalves Consultor de Desenvolvimento na Autodesk

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

Page 5: Conceitos Básicos de AutoCAD®.NET Augusto Gonçalves Consultor de Desenvolvimento na Autodesk

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

Page 6: Conceitos Básicos de AutoCAD®.NET Augusto Gonçalves Consultor de Desenvolvimento na Autodesk

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

Page 7: Conceitos Básicos de AutoCAD®.NET Augusto Gonçalves Consultor de Desenvolvimento na Autodesk

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

Page 8: Conceitos Básicos de AutoCAD®.NET Augusto Gonçalves Consultor de Desenvolvimento na Autodesk

Primeiro plugin com .NET: Projeto

Criar um novo projeto

Plugin para AutoCAD deve ser Class Library

Page 9: Conceitos Básicos de AutoCAD®.NET Augusto Gonçalves Consultor de Desenvolvimento na Autodesk

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

Page 10: Conceitos Básicos de AutoCAD®.NET Augusto Gonçalves Consultor de Desenvolvimento na Autodesk

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

Page 11: Conceitos Básicos de AutoCAD®.NET Augusto Gonçalves Consultor de Desenvolvimento na Autodesk

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

Page 12: Conceitos Básicos de AutoCAD®.NET Augusto Gonçalves Consultor de Desenvolvimento na Autodesk

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

Page 13: Conceitos Básicos de AutoCAD®.NET Augusto Gonçalves Consultor de Desenvolvimento na Autodesk

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...

Page 14: Conceitos Básicos de AutoCAD®.NET Augusto Gonçalves Consultor de Desenvolvimento na Autodesk

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 )

Page 15: Conceitos Básicos de AutoCAD®.NET Augusto Gonçalves Consultor de Desenvolvimento na Autodesk

Desenhando: Passos

Using/End Using cuida de fechar a

transação

Necessário um imports adicional para DatabaseAutodesk.AutoCAD.DatabaseServices

Page 16: Conceitos Básicos de AutoCAD®.NET Augusto Gonçalves Consultor de Desenvolvimento na Autodesk

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 )

Page 17: Conceitos Básicos de AutoCAD®.NET Augusto Gonçalves Consultor de Desenvolvimento na Autodesk

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

Page 19: Conceitos Básicos de AutoCAD®.NET Augusto Gonçalves Consultor de Desenvolvimento na Autodesk

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

Page 20: Conceitos Básicos de AutoCAD®.NET Augusto Gonçalves Consultor de Desenvolvimento na Autodesk

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.