@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
@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
@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
@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
@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
@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
@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
@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
@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:
@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
@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
@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
@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
@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
@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
@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
@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
@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
@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
@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