Aplicações - VBA Programação Interna
Criando arquivos.vbi VCAD VBA (Source) - Extensão.vbi Elaborando o Código Todo suporte necessário à elaboração de um código MS-VBA pode ser obtido Internamente ao VCAD, acionando a Ajuda do VCAD - HELP (F1). A figura abaixo exibe a abertura do Help, selecionado para Aplicação VBA. Um Projecto VCAD VBA (Source Code) é gravado num ficheiro de extensão tipo.vbi. Um simples ficheiro.vbi, por sua vez, é composto por 3 tipos de "Modulos": 1- User Forms, 2- Code Modules e 3- Class Modules. Para iniciar um projeto.vbi é preciso abrir o VBA (Visual Basic for Application) dentro do VCAD, digitando VBA na barra de comandos do VCAD, ou pelo Menu Tools > Visual Basic > Visual Basic Editor.
Nesse artigo apresentam-se todos os passos necessários à criação de um código, ou aplicativo VBA o qual calcula e exibe, em uma caixa de diálogo, a AREA e PERIMETRO de entidades fechadas (Pline e LWPline), uma vez selecionadas pelo usuário. Nesse aplicativo é utilizado um formulário contendo dois Labels (que mostrarão a AREA e o PERIMETRO), um CommandButton (Para avançar para a próxima entidade a ser selecionada) e uma ListBox (para guardar os valores referentes a todas as entidades). Para criar o formulário, clique no Menu Insert > UserForm. Após inserir o formulário, use o Toolbox para inserir o Label, o CommandButton e a ListBox. O formulário deve ficar conforme a figura abaixo. Visualizando o código fonte //Iniciando o Formulário ( Box de Diálogo )[ Private Sub UserForm_Initialize() On Error Resume Next i = 0 j = 2 x = 0 //Inicio Método de seleção[ Set stpolygon = ActiveDocument.SelectionSets.Add("selecao") stpolygon.selectonscreen ActiveDocument.Utility.Prompt "Entities in set:" & " " & stpolygon.count //Final Método de seleção] Me.Hide //Fazendo Highlight nas Entidades selecionadas[ For Each entpolygon In stpolygon If x = 0 Then entpolygon.highlight True //Fazendo Highlight nas Entidades selecionadas] //Verificando se a entidade é Polyline e capturando as informações de AREA e PERIMETRO[ If entpolygon.entityname = "Polyline" Then Set polilinha = entpolygon ListBox1.AddItem (Round(polilinha.Area, 2)) ListBox1.AddItem (Round(polilinha.Length, 2)) ListBox1.AddItem (polilinha.handle) //Verificando se a entidade é Polyline e capturando as informações de AREA e PERIMETRO]
//Verificando se a entidade é LWPolyline e capturando as informações de AREA e PERIMETRO[ If entpolygon.entityname = "LightWeightPolyline" Then Set lwpolilinha = entpolygon ListBox1.AddItem (Round(lwpolilinha.Area, 2)) ListBox1.AddItem (Round(lwpolilinha.Length, 2)) ListBox1.AddItem (lwpolilinha.handle) //Verificando se a entidade é LWPolyline e capturando as informações de AREA e PERIMETRO] x = x + 1 Next //Label recebe o valor da AREA lblarea.caption = "Area:" & " " & ListBox1.List(i) & " " & "m2" //Label recebe o valor do PERIMETRO lblperimeter.caption = "Perimeter:" & " " & ListBox1.List(i + 1) & " " & "m" i = 3 End Sub //Final do Initialize Formulário ( Box de diálogo)] //Início Função para mostrar o Highlight da próxima entidade[ Private Function Highlight() j = j + 3 For Each entpolygon In stpolygon If entpolygon.handle = ListBox1.List(j) Then entpolygon.highlight True Next End Function //Final Função para mostrar o Highlight da próxima entidade] //Início Função do botão Next[ Private Sub cmdnext_click() If i = ListBox1.ListCount Then Unload Me If i <> ListBox1.ListCount Then Highlight //chama a função para fazer o Highlight da entidade selecionada //Capturando os valores de AREA e PERIMETRO[ lblarea.caption = "Area:" & " " & ListBox1.List(i) & " " & "m2" lblperimeter.caption = "Perimeter:" & " " & ListBox1.List(i + 1) & " " & "m" i = i + 3 //Capturando os valores de AREA e PERIMETRO] End Sub //Final Função do botão Next] Executando e Salvando o Código Fonte Após criar o código fonte, desejando executá-lo, clique: No Menu Run > Run Sub/UserForm ou Pressione a tecla F5. Para salvar o arquivo.vbi clique no Menu File > Save ou clique no ícone
Imagem da aplicação em execução Quando a aplicação estiver concluída, é possível criar uma macro no VCAD que pode ser executada através de um único clique. Na próxima edição mostraremos como criar macros. ooo