![Page 1: Introdução ao VBA em AUTOCAD - web.fe.up.pttavares/ensino/CFAC/Downloads/Apontamentos... · CFAC: Introdução ao VBA em AutoCAD 1 João Manuel R. S. Tavares CFAC–Concepção](https://reader034.vdocuments.net/reader034/viewer/2022050903/5bffd95209d3f2ad078b7408/html5/thumbnails/1.jpg)
@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 - web.fe.up.pttavares/ensino/CFAC/Downloads/Apontamentos... · CFAC: Introdução ao VBA em AutoCAD 1 João Manuel R. S. Tavares CFAC–Concepção](https://reader034.vdocuments.net/reader034/viewer/2022050903/5bffd95209d3f2ad078b7408/html5/thumbnails/2.jpg)
@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 - web.fe.up.pttavares/ensino/CFAC/Downloads/Apontamentos... · CFAC: Introdução ao VBA em AutoCAD 1 João Manuel R. S. Tavares CFAC–Concepção](https://reader034.vdocuments.net/reader034/viewer/2022050903/5bffd95209d3f2ad078b7408/html5/thumbnails/3.jpg)
@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 - web.fe.up.pttavares/ensino/CFAC/Downloads/Apontamentos... · CFAC: Introdução ao VBA em AutoCAD 1 João Manuel R. S. Tavares CFAC–Concepção](https://reader034.vdocuments.net/reader034/viewer/2022050903/5bffd95209d3f2ad078b7408/html5/thumbnails/4.jpg)
@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 - web.fe.up.pttavares/ensino/CFAC/Downloads/Apontamentos... · CFAC: Introdução ao VBA em AutoCAD 1 João Manuel R. S. Tavares CFAC–Concepção](https://reader034.vdocuments.net/reader034/viewer/2022050903/5bffd95209d3f2ad078b7408/html5/thumbnails/5.jpg)
@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 - web.fe.up.pttavares/ensino/CFAC/Downloads/Apontamentos... · CFAC: Introdução ao VBA em AutoCAD 1 João Manuel R. S. Tavares CFAC–Concepção](https://reader034.vdocuments.net/reader034/viewer/2022050903/5bffd95209d3f2ad078b7408/html5/thumbnails/6.jpg)
@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 - web.fe.up.pttavares/ensino/CFAC/Downloads/Apontamentos... · CFAC: Introdução ao VBA em AutoCAD 1 João Manuel R. S. Tavares CFAC–Concepção](https://reader034.vdocuments.net/reader034/viewer/2022050903/5bffd95209d3f2ad078b7408/html5/thumbnails/7.jpg)
@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 - web.fe.up.pttavares/ensino/CFAC/Downloads/Apontamentos... · CFAC: Introdução ao VBA em AutoCAD 1 João Manuel R. S. Tavares CFAC–Concepção](https://reader034.vdocuments.net/reader034/viewer/2022050903/5bffd95209d3f2ad078b7408/html5/thumbnails/8.jpg)
@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 - web.fe.up.pttavares/ensino/CFAC/Downloads/Apontamentos... · CFAC: Introdução ao VBA em AutoCAD 1 João Manuel R. S. Tavares CFAC–Concepção](https://reader034.vdocuments.net/reader034/viewer/2022050903/5bffd95209d3f2ad078b7408/html5/thumbnails/9.jpg)
@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 - web.fe.up.pttavares/ensino/CFAC/Downloads/Apontamentos... · CFAC: Introdução ao VBA em AutoCAD 1 João Manuel R. S. Tavares CFAC–Concepção](https://reader034.vdocuments.net/reader034/viewer/2022050903/5bffd95209d3f2ad078b7408/html5/thumbnails/10.jpg)
@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 - web.fe.up.pttavares/ensino/CFAC/Downloads/Apontamentos... · CFAC: Introdução ao VBA em AutoCAD 1 João Manuel R. S. Tavares CFAC–Concepção](https://reader034.vdocuments.net/reader034/viewer/2022050903/5bffd95209d3f2ad078b7408/html5/thumbnails/11.jpg)
@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 - web.fe.up.pttavares/ensino/CFAC/Downloads/Apontamentos... · CFAC: Introdução ao VBA em AutoCAD 1 João Manuel R. S. Tavares CFAC–Concepção](https://reader034.vdocuments.net/reader034/viewer/2022050903/5bffd95209d3f2ad078b7408/html5/thumbnails/12.jpg)
@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 - web.fe.up.pttavares/ensino/CFAC/Downloads/Apontamentos... · CFAC: Introdução ao VBA em AutoCAD 1 João Manuel R. S. Tavares CFAC–Concepção](https://reader034.vdocuments.net/reader034/viewer/2022050903/5bffd95209d3f2ad078b7408/html5/thumbnails/13.jpg)
@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 - web.fe.up.pttavares/ensino/CFAC/Downloads/Apontamentos... · CFAC: Introdução ao VBA em AutoCAD 1 João Manuel R. S. Tavares CFAC–Concepção](https://reader034.vdocuments.net/reader034/viewer/2022050903/5bffd95209d3f2ad078b7408/html5/thumbnails/14.jpg)
@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 - web.fe.up.pttavares/ensino/CFAC/Downloads/Apontamentos... · CFAC: Introdução ao VBA em AutoCAD 1 João Manuel R. S. Tavares CFAC–Concepção](https://reader034.vdocuments.net/reader034/viewer/2022050903/5bffd95209d3f2ad078b7408/html5/thumbnails/15.jpg)
@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 - web.fe.up.pttavares/ensino/CFAC/Downloads/Apontamentos... · CFAC: Introdução ao VBA em AutoCAD 1 João Manuel R. S. Tavares CFAC–Concepção](https://reader034.vdocuments.net/reader034/viewer/2022050903/5bffd95209d3f2ad078b7408/html5/thumbnails/16.jpg)
@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 - web.fe.up.pttavares/ensino/CFAC/Downloads/Apontamentos... · CFAC: Introdução ao VBA em AutoCAD 1 João Manuel R. S. Tavares CFAC–Concepção](https://reader034.vdocuments.net/reader034/viewer/2022050903/5bffd95209d3f2ad078b7408/html5/thumbnails/17.jpg)
@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 - web.fe.up.pttavares/ensino/CFAC/Downloads/Apontamentos... · CFAC: Introdução ao VBA em AutoCAD 1 João Manuel R. S. Tavares CFAC–Concepção](https://reader034.vdocuments.net/reader034/viewer/2022050903/5bffd95209d3f2ad078b7408/html5/thumbnails/18.jpg)
@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 - web.fe.up.pttavares/ensino/CFAC/Downloads/Apontamentos... · CFAC: Introdução ao VBA em AutoCAD 1 João Manuel R. S. Tavares CFAC–Concepção](https://reader034.vdocuments.net/reader034/viewer/2022050903/5bffd95209d3f2ad078b7408/html5/thumbnails/19.jpg)
@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 - web.fe.up.pttavares/ensino/CFAC/Downloads/Apontamentos... · CFAC: Introdução ao VBA em AutoCAD 1 João Manuel R. S. Tavares CFAC–Concepção](https://reader034.vdocuments.net/reader034/viewer/2022050903/5bffd95209d3f2ad078b7408/html5/thumbnails/20.jpg)
@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