introdução ao vba em autocad - paginas.fe.up.pttavares/ensino/cfac/downloads... · material...

20
@2007 João Manuel R. S. Tavares FEUP/DEMEGI/SDI CFAC: Introdução ao VBA em AutoCAD 1 João Manuel R. S. Tavares CFAC – Concepção e Fabrico Assistidos por Computador Bibliografia Bibliografia Material disponível no AfraLisp.net em http://www.afralisp.net Programação em AutoCAD, Curso Completo Fernando Luís Ferreira, João Santos FCA Sistema de ajuda do AutoCAD @2007 João Manuel R. S. Tavares CFAC: Introdução ao VBA em AutoCAD 2

Upload: truongkhuong

Post on 28-Jul-2018

232 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introdução ao VBA em AUTOCAD - paginas.fe.up.pttavares/ensino/CFAC/Downloads... · Material disponível no AfraLisp.net em ... Mais rápido do que as aplicações em AutoLISP

@2007 ‐ João Manuel R. S. Tavares FEUP/DEMEGI/SDI

CFAC: Introdução ao VBA em AutoCAD 1

João Manuel R. S. Tavares

CFAC – Concepção e Fabrico Assistidos por Computador

BibliografiaBibliografia

Material disponível no AfraLisp.net em http://www.afralisp.netProgramação em AutoCAD, Curso CompletoFernando Luís Ferreira, João SantosFCASistema de ajuda do AutoCAD

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 2

Page 2: Introdução ao VBA em AUTOCAD - paginas.fe.up.pttavares/ensino/CFAC/Downloads... · Material disponível no AfraLisp.net em ... Mais rápido do que as aplicações em AutoLISP

@2007 ‐ João Manuel R. S. Tavares FEUP/DEMEGI/SDI

CFAC: Introdução ao VBA em AutoCAD 2

IntroduçãoIntrodução

A programação por objectos VBA –Visual Basic for Applications utiliza fundamentos da programação através do VB Visual Basic mas programação através do VB –Visual Basic mas em que o ambiente de desenvolvimento está incluído no próprio AutoCADMais rápido do que as aplicações em AutoLISPComunicação facilitada com outras aplicações Windows (Word, Excel, Access, etc.)Interface de desenvolvimento muito intuita e com grande capacidade de ajuda

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 3

IntroduçãoIntrodução

As aplicações desenvolvidas são geridas por eventos (devidos a acções do utilizador e do sistema)sistema)A criação de caixas de diálogo para a execução das aplicações é muito simplesOs projectos VBA podem ficar embebidos nos desenhos ou serem independentes (globais)

Projectos embebidos são projectos que ficam Projectos embebidos são projectos que ficam gravados com o desenhoProjectos globais são projectos que ficam gravados em ficheiros separados

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 4

Page 3: Introdução ao VBA em AUTOCAD - paginas.fe.up.pttavares/ensino/CFAC/Downloads... · Material disponível no AfraLisp.net em ... Mais rápido do que as aplicações em AutoLISP

@2007 ‐ João Manuel R. S. Tavares FEUP/DEMEGI/SDI

CFAC: Introdução ao VBA em AutoCAD 3

IntroduçãoIntrodução

Cada objecto do VBA é definido por uma classeCada objecto tem propriedades e métodos

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 5

Carregamento e Execução de Carregamento e Execução de proj.proj.VBAVBA

O carregamento de projectos VBA globais é feito através dos comandos VBALOAD, APPLOAD ouVBAMAN (disponiveis em Tools  APPLOAD ouVBAMAN (disponiveis em Tools, subopções Macro e Load Application)Comando VBALOAD:

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 6

Page 4: Introdução ao VBA em AUTOCAD - paginas.fe.up.pttavares/ensino/CFAC/Downloads... · Material disponível no AfraLisp.net em ... Mais rápido do que as aplicações em AutoLISP

@2007 ‐ João Manuel R. S. Tavares FEUP/DEMEGI/SDI

CFAC: Introdução ao VBA em AutoCAD 4

Carregamento e Execução de Carregamento e Execução de proj.proj.VBAVBA

Comando APPLOAD:

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 7

Carregamento e Execução de Carregamento e Execução de proj.proj.VBAVBA

Comando VBARUN:

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 8

Page 5: Introdução ao VBA em AUTOCAD - paginas.fe.up.pttavares/ensino/CFAC/Downloads... · Material disponível no AfraLisp.net em ... Mais rápido do que as aplicações em AutoLISP

@2007 ‐ João Manuel R. S. Tavares FEUP/DEMEGI/SDI

CFAC: Introdução ao VBA em AutoCAD 5

Editor  Editor  VBAVBA––Comando  Comando  VBAIDEVBAIDE

Barra de f

Barra de menus

Área de gestão de projectos

ferramentas

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 9

Área das propriedades do objecto activo

Editor  Editor  VBAVBA––Comando  Comando  VBAIDEVBAIDE

Projecto aberto:

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 10

Janela de código

Page 6: Introdução ao VBA em AUTOCAD - paginas.fe.up.pttavares/ensino/CFAC/Downloads... · Material disponível no AfraLisp.net em ... Mais rápido do que as aplicações em AutoLISP

@2007 ‐ João Manuel R. S. Tavares FEUP/DEMEGI/SDI

CFAC: Introdução ao VBA em AutoCAD 6

Editor  Editor  VBAVBA––Comando  Comando  VBAIDEVBAIDEExecutar um projecto aberto:

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 11

(executar)

AutoCADAutoCAD

No AutoCADsão consideradosconsiderados:

ObjectosClassesColecções

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 12

Page 7: Introdução ao VBA em AUTOCAD - paginas.fe.up.pttavares/ensino/CFAC/Downloads... · Material disponível no AfraLisp.net em ... Mais rápido do que as aplicações em AutoLISP

@2007 ‐ João Manuel R. S. Tavares FEUP/DEMEGI/SDI

CFAC: Introdução ao VBA em AutoCAD 7

AutoCADAutoCAD

Objecto Document é o desenho activo, a referência para um desenho activo é feita com ThisDrawingThisDrawing

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 13

Constantes  Especificas  Constantes  Especificas  VBAVBA / / AutoCADAutoCAD

Para verificar, seleccionar  Object Browser do Editor VBA

Do AutoCAD

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 14

Do AutoCAD

Page 8: Introdução ao VBA em AUTOCAD - paginas.fe.up.pttavares/ensino/CFAC/Downloads... · Material disponível no AfraLisp.net em ... Mais rápido do que as aplicações em AutoLISP

@2007 ‐ João Manuel R. S. Tavares FEUP/DEMEGI/SDI

CFAC: Introdução ao VBA em AutoCAD 8

Constantes  Especificas  Constantes  Especificas  VBAVBA / / AutoCADAutoCAD

Do VBA

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 15

FormsForms

Mostrar forms: UserFormName.ShowCarregar forms em memória (por questões de rapidez):LoadUserFormNameEsconder forms: UserFormName.HideDescarregar forms da memória:UnloadUserFormName ou Unload MeEventos:

UserFormName_Click()UserFormName Initiali e()UserFormName_Initialize()UserFormName_QueryClose(Cancel As Integer, CloseMode As Integer)UserFormName_Resize()UserFormName_Terminate()

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 16

Page 9: Introdução ao VBA em AUTOCAD - paginas.fe.up.pttavares/ensino/CFAC/Downloads... · Material disponível no AfraLisp.net em ... Mais rápido do que as aplicações em AutoLISP

@2007 ‐ João Manuel R. S. Tavares FEUP/DEMEGI/SDI

CFAC: Introdução ao VBA em AutoCAD 9

Exemplo IExemplo IDesenhar 10 círculos alinhados:

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 17

ThisDrawing.ModelSpace.AddCircle centerPoint, 5

Output:

Exemplo Exemplo IIIIDesenhar 5 círculos concêntricos:

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 18

Output:

Page 10: Introdução ao VBA em AUTOCAD - paginas.fe.up.pttavares/ensino/CFAC/Downloads... · Material disponível no AfraLisp.net em ... Mais rápido do que as aplicações em AutoLISP

@2007 ‐ João Manuel R. S. Tavares FEUP/DEMEGI/SDI

CFAC: Introdução ao VBA em AutoCAD 10

Exemplo Exemplo IIIIII

Perguntar nome e idade e apresentar mensagem:

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 19

Output:

Exemplo Exemplo IVIVDesenhar um trapézio dados comprimentos, altura, ângulo e um ponto:

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 20

Page 11: Introdução ao VBA em AUTOCAD - paginas.fe.up.pttavares/ensino/CFAC/Downloads... · Material disponível no AfraLisp.net em ... Mais rápido do que as aplicações em AutoLISP

@2007 ‐ João Manuel R. S. Tavares FEUP/DEMEGI/SDI

CFAC: Introdução ao VBA em AutoCAD 11

Exemplo Exemplo IVIV ((contcont.).)

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 21

Exemplo Exemplo IVIV (cont.)(cont.)

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 22

Page 12: Introdução ao VBA em AUTOCAD - paginas.fe.up.pttavares/ensino/CFAC/Downloads... · Material disponível no AfraLisp.net em ... Mais rápido do que as aplicações em AutoLISP

@2007 ‐ João Manuel R. S. Tavares FEUP/DEMEGI/SDI

CFAC: Introdução ao VBA em AutoCAD 12

Exemplo Exemplo IV IV (cont.)(cont.)

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 23

Exemplo IExemplo IV V (cont.)(cont.)

Funcionamento:

Output:

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 24

Page 13: Introdução ao VBA em AUTOCAD - paginas.fe.up.pttavares/ensino/CFAC/Downloads... · Material disponível no AfraLisp.net em ... Mais rápido do que as aplicações em AutoLISP

@2007 ‐ João Manuel R. S. Tavares FEUP/DEMEGI/SDI

CFAC: Introdução ao VBA em AutoCAD 13

Exemplo VExemplo V

Alterar a escala dos objectos seleccionados relativamente ao seu cento geométrico:

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 25

Exemplo VIExemplo VI

Destacar objectos numa determinada Layer:

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 26

Page 14: Introdução ao VBA em AUTOCAD - paginas.fe.up.pttavares/ensino/CFAC/Downloads... · Material disponível no AfraLisp.net em ... Mais rápido do que as aplicações em AutoLISP

@2007 ‐ João Manuel R. S. Tavares FEUP/DEMEGI/SDI

CFAC: Introdução ao VBA em AutoCAD 14

Exemplo VI Exemplo VI ((contcont.).)

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 27

Exemplo Exemplo VIIVII

Identificar layers existentes num desenho e alterar a layer de objectos seleccionados:

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 28

Page 15: Introdução ao VBA em AUTOCAD - paginas.fe.up.pttavares/ensino/CFAC/Downloads... · Material disponível no AfraLisp.net em ... Mais rápido do que as aplicações em AutoLISP

@2007 ‐ João Manuel R. S. Tavares FEUP/DEMEGI/SDI

CFAC: Introdução ao VBA em AutoCAD 15

Exemplo Exemplo VIIVII ((contcont.).)

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 29

Exemplo Exemplo VIIVII ((contcont.).) Em funcionamento:

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 30

Page 16: Introdução ao VBA em AUTOCAD - paginas.fe.up.pttavares/ensino/CFAC/Downloads... · Material disponível no AfraLisp.net em ... Mais rápido do que as aplicações em AutoLISP

@2007 ‐ João Manuel R. S. Tavares FEUP/DEMEGI/SDI

CFAC: Introdução ao VBA em AutoCAD 16

Exemplo Exemplo VIIIVIII

Desenhar caixa arredondada dados um ponto central, largura e comprimento:

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 31

Exemplo Exemplo VIIIVIII ((contcont.).)

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 32

Page 17: Introdução ao VBA em AUTOCAD - paginas.fe.up.pttavares/ensino/CFAC/Downloads... · Material disponível no AfraLisp.net em ... Mais rápido do que as aplicações em AutoLISP

@2007 ‐ João Manuel R. S. Tavares FEUP/DEMEGI/SDI

CFAC: Introdução ao VBA em AutoCAD 17

Exemplo Exemplo VIIIVIII ((contcont.).)

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 33

Exemplo Exemplo VIIIVIII ((contcont.).)

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 34

Page 18: Introdução ao VBA em AUTOCAD - paginas.fe.up.pttavares/ensino/CFAC/Downloads... · Material disponível no AfraLisp.net em ... Mais rápido do que as aplicações em AutoLISP

@2007 ‐ João Manuel R. S. Tavares FEUP/DEMEGI/SDI

CFAC: Introdução ao VBA em AutoCAD 18

Exemplo Exemplo VIIIVIII ((contcont.).) Em funcionamento:

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 35

Exemplo Exemplo IXIX

Desenhar figura dados um ponto central, largura e altura:

Output:

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 36

Page 19: Introdução ao VBA em AUTOCAD - paginas.fe.up.pttavares/ensino/CFAC/Downloads... · Material disponível no AfraLisp.net em ... Mais rápido do que as aplicações em AutoLISP

@2007 ‐ João Manuel R. S. Tavares FEUP/DEMEGI/SDI

CFAC: Introdução ao VBA em AutoCAD 19

Exemplo Exemplo IXIX (cont.)(cont.)

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 37

Exemplo Exemplo IXIX (cont.)(cont.)

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 38

Page 20: Introdução ao VBA em AUTOCAD - paginas.fe.up.pttavares/ensino/CFAC/Downloads... · Material disponível no AfraLisp.net em ... Mais rápido do que as aplicações em AutoLISP

@2007 ‐ João Manuel R. S. Tavares FEUP/DEMEGI/SDI

CFAC: Introdução ao VBA em AutoCAD 20

Exemplo Exemplo IXIX (cont.)(cont.)Output:

@2007 ‐ João Manuel R. S. TavaresCFAC: Introdução ao VBA em AutoCAD 39