Padronize croquis de rede de esgoto no Anália Franco com macros VBA e ganhe agilidade
Aprenda a criar macros VBA no CorelDRAW para padronizar croquis de rede de esgoto no Anália Franco. Automação prática para equipes técnicas e projetistas.
O engenheiro civil responsável pelo loteamento no Anália Franco recebeu o prazo de 48 horas para entregar os croquis de rede de esgoto à concessionária. A equipe de desenho, acostumada a configurar camadas, estilos e blocos manualmente a cada nova prancha, estimava dois dias só na formatação. Foi aí que a automação entrou: uma macro VBA no CorelDRAW reduziu o setup de 4 horas para 3 minutos por prancha, liberando o time para validar a hidráulica em vez de desenhar linhas tracejadas.
Essa realidade não é exceção. Projetos de saneamento na zona leste de São Paulo exigem rigor na representação gráfica — declividades, cotas de fundo, identificação de poços de visita, materiais e trechos de responsabilidade pública versus particular. Cada desvio da norma da Sabesp gera devolução, retrabalho e multas contratuais. A padronização via VBA não é luxo; é condição de competitividade para escritórios que atendem a região.
O diferencial está em tratar o croqui como estrutura de dados, não como desenho livre. Quando a macro cria a camada “REDE_COLETORA_150_PVC” com espessura 0,35 mm, cor azul e tipo de linha “DASH_DOT”, ela garante que nenhum estagiário use linha contínua por engano. Quando insere o bloco “PV_PADRAO_SABESP” com atributos editáveis para número, cota de fundo e tampa, ela elimina a digitação repetida de 15 poços por quilômetro. O ganho escala exponencialmente.
Cenário prático: do levantamento topográfico ao croqui aprovado
Imagine a rotina: o topógrafo entrega planilha CSV com 247 pontos — coordenadas X/Y/Z, tipo de ponto (PV, mudança de direção, mudança de declividade), diâmetro nominal e material. No fluxo manual, alguém digita cada coordenada, desenha polilinhas, insere blocos, coteja, legenda. Com a macro, o CSV é lido, a geometria é gerada, os blocos são instanciados com atributos preenchidos, as cotas são colocadas nos pontos de quebra e a legenda é montada com contagem automática de metros por diâmetro.
O segredo está na separação de responsabilidades: uma função ImportarTopografia(caminhoCSV) retorna uma coleção de objetos PontoRede tipados. Outra, GerarGeometria(pontos), cria as shapes no CorelDRAW usando ActiveLayer.CreateCurveSegment. A terceira, AplicarPadronizacao(), percorre todas as shapes e aplica estilos baseados em metadados armazenados em UserData. Cada camada é isolada, testável e reutilizável.
Para validar o conceito, pegue um projeto antigo do Anália Franco — preferencialmente um com 30+ poços de visita e trechos em PVC 150, 200 e 250 mm. Rode a macro sobre o CSV original e compare o tempo: setup manual médio de 3h40min versus 2min15s de execução completa. A diferença paga o desenvolvimento na primeira semana.
Estrutura do template mestre (.cdt) para o Anália Franco
O template é a fundação. Não comece a macro sem ele. Crie um arquivo Croqui_Esgoto_AnaliaFranco.cdt contendo:
| Camada | Cor | Espessura | Tipo Linha | Finalidade |
|---|---|---|---|---|
| REDE_COLETORA_150_PVC | Azul (RGB 0,0,255) | 0,35 mm | DASH_DOT | Coletor principal Ø150 |
| REDE_COLETORA_200_PVC | Azul | 0,50 mm | DASH_DOT | Coletor principal Ø200 |
| REDE_COLETORA_250_PVC | Azul | 0,70 mm | DASH_DOT | Coletor principal Ø250 |
| RAMAL_DOMICILIAR_100_PVC | Verde (0,128,0) | 0,25 mm | CONTINUOUS | Ramais Ø100 |
| POCOS_VISITA | Vermelho (255,0,0) | 0,50 mm | CONTINUOUS | Blocos de PV |
| COTAS_FUNDO | Preto | 0,18 mm | CONTINUOUS | Textos de cota |
| LEGENDA_E_TITULO | Preto | 0,35 mm | CONTINUOUS | Carimbo e legenda |
Além das camadas, o template deve conter blocos mestres na página “Mestres” (fora da área de impressão): PV_PADRAO_SABESP, PV_PROFUNDO_SABESP, CAIXA_INSPECAO, MUDANCA_DIRECAO, MUDANCA_DECLIVIDADE. Cada bloco com atributos NumeroPV, CotaFundo, DiametroEntrada, DiametroSaida, Material, TrechoPublico (Sim/Não).
A macro de inicialização InicializarCroqui() abre o template, define ActiveDocument como variável global, cria as camadas se não existirem (verificação LayerExists), e configura Unit = cdrMillimeter. Isso garante que qualquer máquina da equipe parta do mesmo estado — seja no escritório da Vila Formosa ou no notebook de campo no Anália Franco.
Lendo dados de topografia e gerando geometria
O coração da automação é a transformação de dados tabulares em vetores precisos. Use ADO para ler o CSV sem abrir o Excel:
Function LerCSVTopografia(caminho As String) As Collection
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim pontos As New Collection
Dim pt As PontoRede
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & _
Left(caminho, InStrRev(caminho, "\")) & _
";Extended Properties='text;HDR=YES;FMT=Delimited'"
rs.Open "SELECT * FROM " & Mid(caminho, InStrRev(caminho, "\") + 1), conn
Do Until rs.EOF
Set pt = New PontoRede
pt.X = CDbl(rs("X"))
pt.Y = CDbl(rs("Y"))
pt.Z = CDbl(rs("Z"))
pt.Tipo = rs("Tipo")
pt.Diametro = CLng(rs("Diametro"))
pt.Material = rs("Material")
pt.NumeroPV = rs("NumeroPV")
pontos.Add pt
rs.MoveNext
Loop
rs.Close: conn.Close
Set LerCSVTopografia = pontos
End Function
A classe PontoRede encapsula os dados e validações: Property Get CamadaAlvo() As String retorna a camada correta baseada em diâmetro e material. Property Get BlocoMestre() As String define qual bloco inserir. A geração de geometria itera a coleção: para pontos consecutivos do mesmo trecho, cria Curve com AddNode; para pontos de PV, usa ActiveLayer.ImportEx do bloco mestre e define Shape.UserData("NumeroPV") = pt.NumeroPV.
Declividade é calculada no momento da criação: (Z_anterior - Z_atual) / Distancia3D * 100. Se fora da faixa NBR 8160 (mínimo 0,5% para Ø150, 0,35% para Ø200), a macro marca a shape com Outline.Color = RGB(255,165,0) (laranja) e adiciona UserData("AlertaDeclividade") = True para revisão posterior.
Padronização visual e anotações técnicas automáticas
Com a geometria no lugar, a macro aplica a identidade visual do projeto. A rotina AplicarEstilos() percorre ActivePage.Shapes e, lendo UserData("Diametro") e UserData("Material"), define Outline.Width, Outline.Style, Fill (se houver) e Layer.Name. Nada de Select/Activate — use For Each shp In ActivePage.Shapes direto.
Cotas de fundo são inseridas via ActiveLayer.CreateArtisticText posicionadas no BoundingBox.BottomCenter de cada bloco de PV, com formatação Font = "Arial Narrow", Size = 2.5mm, Alignment = cdrCenterAlignment. O texto vem de shp.UserData("CotaFundo") formatado com Format(cota, "0.00").
Numeração sequencial de poços: a macro ordena a coleção por NumeroPV (chave natural do projeto) e atualiza o atributo do bloco via shp.OLEObject.SetAttribute "NumeroPV", novoNumero. Se o projeto usa numeração da concessionária (ex: PV-ANF-001), a macro aplica máscara "PV-ANF-" & Format(indice, "000").
Legenda técnica é construída agregando dados: Dictionary com chave "Ø" & diametro & "_" & material e valor ComprimentoTotal. No final, CreateTable ou CreateParagraphText monta a tabela com colunas: Diâmetro, Material, Extensão (m), Qtd PVs, Trecho Público (m). O carimbo de responsável técnico puxa Environ("USERNAME") e Now para "Proj. " & usuario & " - " & Format(Date, "dd/mm/yyyy").
Validação, exportação e integração com fluxo de aprovação
Antes de entregar, a macro roda ValidarCroqui() — checklist automatizado:
- Todos os PVs têm
CotaFundopreenchida? - Declividades dentro da NBR 8160? (alerta laranja já aplicado)
- Camadas não utilizadas foram removidas?
- Limite da área de impressão contém todas as shapes?
- Carimbo de RT preenchido com CREA válido?
Falhas geram relatório TXT na pasta do projeto: Validacao_Croqui_ANF_20241115_143022.txt. Aprovações seguem para PDF/X-1a via PublishToPDF com preset "Sabesp_Aprovacao" (300 DPI, fontes embutidas, marcas de corte).
Para equipes que trabalham com DESENTUPIDORA NO ANÁLIA FRANCO em manutenção corretiva, a mesma base de dados do croqui alimenta ordens de serviço georreferenciadas — a macro exporta GeoJSON simplificado com centroides dos PVs e atributos de profundidade, material e último serviço.
Integração com versionamento: a macro salva Backup_ + timestamp na pasta \Servidor\Projetos\AnaliaFranco\Versoes\ antes de qualquer alteração em massa. FileCopy ActiveDocument.FullName, destino. Histórico de quem rodou a macro, quando e qual CSV foi importado fica em Log_Macros.csv com Application.UserName, Now, caminhoCSV, QtdPontos.
Distribuição, manutenção e evolução da solução
Empacote como extensão .ccx via Tools > Macros > Export as Extension. Inclua manifest.xml com Version="1.2.0", MinCorelVersion="2021", Description="Croqui Esgoto Anália Franco - Padronização Sabesp". Instalação: duplo clique no .ccx ou Gerenciador de Extensões > Instalar.
Atualizações seguem semântica: 1.2.1 corrige bug na leitura de CSV com vírgula decimal; 1.3.0 adiciona exportação para DXF compatível com AutoCAD Civil 3D. Comunicação via Changelog.md no repositório Git interno (sim, versionamento de macro em Git — git init na pasta GlobalMacros\CroquiEsgoto\).
Treinamento da equipe: sessão de 30 minutos cobrindo atalhos Ctrl+Shift+E (importar CSV), Ctrl+Shift+V (validar), Ctrl+Shift+P (publicar PDF). Guia rápido de uma página em \Servidor\Manuais\Croqui_Esgoto_Atalhos.pdf. Suporte: canal #automacao-coreldraw no Teams com rotação de plantão semanal.
Métricas de adoção: Application.Events.OnMacroRun incrementa contador em Estatisticas_Uso.csv. Após 90 dias, meta é 95% dos croquis da região gerados via macro, tempo médio de setup < 5 min, zero devoluções por não conformidade gráfica.
Conclusão prática
A padronização de croquis de rede de esgoto no Anália Franco via VBA no CorelDRAW transforma um gargalo de formatação em fluxo de dados controlado. O template mestre garante identidade visual, a importação de CSV elimina digitação, a validação automática previne devoluções e a extensão .ccx democratiza o uso na equipe. Comece pelo template, automatize a leitura de um CSV real, meça o ganho e evolua em ciclos curtos. O próximo projeto da região sai com a macro — não com o mouse.
Para aprofundar a base técnica, veja como criar macros VBA para CorelDRAW do zero, aplique boas práticas de desempenho em macros para produção e entenda como publicar suas macros no gerenciador de extensões.
Checklist prático
Perguntas frequentes
Por que padronizar croquis de rede de esgoto com VBA no CorelDRAW?
A padronização via VBA elimina retrabalho manual, garante conformidade com normas técnicas e acelera a entrega de projetos. Macros aplicam estilos, camadas e simbologias de forma consistente em segundos.
Quais elementos do croqui podem ser automatizados?
É possível automatizar a criação de camadas padronizadas, aplicação de estilos de linha para tubulações, inserção de blocos de poços de visita, cotas automáticas, legendas técnicas e carimbos de aprovação.
Preciso saber programação avançada para criar essas macros?
Não. Conhecimentos básicos de VBA e do modelo de objetos do CorelDRAW são suficientes. O gravador de macros ajuda a capturar ações repetitivas, que depois podem ser refinadas com lógica condicional.
Como garantir que a macro funcione em diferentes versões do CorelDRAW?
Use late binding para objetos, evite referências a versões específicas e teste em ambientes homologados. Prefira métodos nativos da API e trate erros com On Error Resume Next em blocos críticos.
A macro pode importar dados de planilhas ou CAD?
Sim. VBA acessa arquivos CSV, Excel via ADO ou ODBC, e DXF/DWG via importação nativa do CorelDRAW. Dados de coordenadas, diâmetros e materiais podem preencher o croqui automaticamente.
Como distribuir a macro para a equipe de campo no Anália Franco?
Exporte como .gms ou instale via Gerenciador de Extensões. Crie um instalador simples que copia o arquivo para a pasta GlobalMacros de cada usuário e registra atalhos de teclado personalizados.