Ferramenta para otimizar rotas de hidrojateamento em colunas de São Paulo com VBA
Automatize o planejamento de rotas de hidrojateamento em colunas prediais de SP usando macros VBA no CorelDRAW. Reduza deslocamentos e aumente a eficiência …
Você já perdeu horas reorganizando a ordem de atendimento das colunas no papel, só para descobrir no trânsito que a sequência escolhida fez o caminhão cruzar a Marginal Tietê três vezes no mesmo dia? Esse cenário é comum em equipes de hidrojateamento que atendem a capital paulista, onde a malha viária e as restrições de horário transformam o roteirismo manual em um jogo de adivinhação caro.
A boa notícia é que o CorelDRAW, já presente no fluxo de arte e sinalização de muitas prestadoras, pode virar o motor de roteirização com uma macro VBA bem desenhada. Ao unir a manipulação de vetores do CorelDRAW com algoritmos de caminho mínimo e leitura de planilhas de agendamento, você transforma uma lista caótica de endereços em um mapa vetorial ordenado, colorido por prioridade e pronto para impressão em A3 ou exportação para o tablet do operador.
Por que o CorelDRAW vira central de roteirização
O CorelDRAW não é apenas editor de layout: seu modelo de objetos (Shapes, Layers, Pages) permite desenhar programaticamente cada ponto de parada como um marcador georreferenciado, traçar linhas de deslocamento entre eles e aplicar estilos visuais conforme status (vermelho = emergência, amarelo = preventivo, verde = concluído). Como o VBA roda dentro do próprio aplicativo, não há necessidade de instalar Python, Node.js ou bancos de dados extras — o arquivo .cdr vira o “arquivo de rota” do dia, versionável e auditável.
Além disso, a equipe de design já conhece atalhos, paletas e exportação para PDF/PNG. A curva de adoção cai drasticamente quando a ferramenta aparece como um novo botão “Gerar Rota Hidrojateamento” na aba “Produção” da ribbon, lado a lado com os botões de “Imprimir Etiquetas” e “Exportar Sinalização”.
Estrutura de dados: o que a macro precisa ler
Antes de escrever uma linha de código, defina o contrato de dados. A planilha-mestre (Excel ou CSV) deve conter, no mínimo:
- ID_Chamado — chave única para rastreabilidade
- Endereco_Completo — rua, número, bairro, CEP
- Lat, Long — coordenadas decimais (se não tiver, a macro geocoda via API na primeira execução e cacheia)
- Prioridade — 1=Emergência, 2=Urgente, 3=Programado
- Janela_Inicio, Janela_Fim — horários permitidos (formato HH:MM)
- Tempo_Estimado_Min — duração média do hidrojateamento na coluna
- Caminhao_ID — se a frota for fixa por região
A macro lê essa planilha, valida campos obrigatórios, geocoda endereços faltantes e monta uma matriz de distâncias/tempos usando a API do OpenStreetMap (OSRM) ou Google Distance Matrix. Com a matriz em memória, roda um algoritmo de Vehicle Routing Problem with Time Windows (VRPTW) simplificado — nearest neighbor com 2-opt costuma resolver bem para até 30 pontos por veículo.
Fluxo da macro: do clique ao mapa pronto
Sub GerarRotaHidrojateamento()
Dim ws As Worksheet ' referência via Early Binding ao Excel
Dim rotas As Collection
Dim shpMarcador As Shape
Dim lyrRota As Layer
Dim i As Long
Set ws = GetPlanilhaAgendamento() ' abre workbook oculto
If ws Is Nothing Then Exit Sub
' 1. Carrega dados e geocoda pendentes
Call CarregarECachearCoordenadas(ws)
' 2. Calcula matriz de distâncias (OSRM local ou API)
Dim matrizDist() As Double
matrizDist = CalcularMatrizOSRM(ws)
' 3. Resolve VRPTW por caminhão
Set rotas = ResolverRoteirizacao(matrizDist, ws)
' 4. Desenha no CorelDRAW
Set lyrRota = ActiveDocument.Layers.Add("Rota_HJ_" & Format(Date, "yyyymmdd"))
For Each rota In rotas
For i = 1 To rota.Pontos.Count
Set shpMarcador = ActiveDocument.ActiveLayer.CreateEllipse2(...)
shpMarcador.Fill.UniformColor.RGBAssign RGB(255, 0, 0) ' cor por prioridade
shpMarcador.Layer = lyrRota
' adiciona texto com sequência
Next i
' desenha linhas conectando a sequência
Next rota
' 5. Exporta PDF para a equipe de campo
ActiveDocument.ExportPDF "\\servidor\rotas\Rota_HJ_" & Format(Now, "yyyymmdd_HHnn") & ".pdf"
End Sub
O bloco acima resume o esqueleto: leitura, geocodificação, roteirização, desenho vetorial e exportação. Cada função auxiliar (CarregarECachearCoordenadas, CalcularMatrizOSRM, ResolverRoteirizacao) fica em módulos separados para facilitar testes unitários e manutenção.
Tratando as particularidades de São Paulo
São Paulo impõe restrições que quebram roteirizadores genéricos: rodízio municipal, Zonas de Máxima Restrição de Circulação (ZMRC), faixas exclusivas de ônibus com horários variáveis e ruas sem saída em áreas de favelas onde o caminhão de hidrojateamento não entra. A macro deve:
- Carregar um shapefile ou GeoJSON das ZMRC e consultar se o ponto cai dentro (point-in-polygon).
- Ter tabela de rodízio por final de placa e data, impedindo que veículo impedido receba rota naquela data.
- Permitir “pontos de transferência”: o caminhão deixa o equipamento em base avançada e uma van leve faz o último quilômetro.
- Incluir tempo de setup/desmobilização (mangueiras, compressor, sinalização) no Tempo_Estimado_Min, não só o jateamento em si.
Essas regras viram constraints no algoritmo de roteirização e camadas visuais no mapa (hachura vermelha sobre ZMRC, ícone de rodízio no canto da página).
Integração com o fluxo de atendimento existente
A maioria das empresas já usa WhatsApp Business, planilha compartilhada no OneDrive/Google Sheets ou um ERP simples. A macro não precisa substituir tudo: ela vira o motor de roteirização acionado por um botão “Atualizar Rota” na planilha (via Office Scripts/Apps Script chamando a macro via COM) ou por um atalho de teclado no CorelDRAW aberto no servidor de arquivos.
Exemplo prático: o despachante recebe chamados até 16h, preenche a planilha mestra, abre o CorelDRAW no terminal de produção, clica “Gerar Rota Hidrojateamento” e, em 15 segundos, tem o PDF do dia seguinte na pasta da equipe de campo. O mesmo PDF sobe para o grupo de WhatsApp com a legenda “Rota HJ 2024-01-15 v1”.
Para aprofundar a automação de relatórios visuais que acompanham essas rotas, veja como Analista de SEO em Pelotas agiliza relatórios visuais com VBA e como Automação VBA aplicada à criação de ativos visuais para projetos estruturam pipelines semelhantes.
Boas práticas de manutenção e evolução
- Versionamento do código: guarde os módulos .bas/.cls em repositório Git (GitHub/GitLab) e use export/import do VBE para sincronizar.
- Logs estruturados: cada execução grava JSONL em
\servidor\logs\rota_hj_yyyymmdd.logcom timestamp, qtd_pontos, tempo_calculo_ms, api_status, usuário. - Testes de regressão: mantenha uma planilha “casos_teste.xlsx” com 5 cenários fixos (rodízio, ZMRC, endereço inválido, API offline, 30 pontos) e rode mensalmente.
- Documentação viva: um arquivo
README.mdna pasta da macro explica parâmetros, como adicionar nova restrição e como compilar para 64-bit. - Treinamento rápido: grave um vídeo de 3 minutos mostrando o fluxo “planilha → botão → PDF” e deixe no canal interno da empresa.
Conclusão prática
Transformar o CorelDRAW em ferramenta de roteirização de hidrojateamento elimina a planilha de “achismo” e entrega à equipe de campo um mapa vetorial confiável, colorido por prioridade e respeitando as regras viárias de São Paulo. Comece com um piloto de 10 endereços, valide o tempo real gasto versus o estimado e expanda para a frota toda. Dez Jato pronto atendimento mostra como a operação de campo se beneficia quando o planejamento chega organizado. Para escalar a automação de artes e relatórios que acompanham esse fluxo, confira também Automação no CorelDRAW melhora fluxo de atendimento no Bom Retiro e Automação VBA cria páginas otimizadas em escala para o Google.
Checklist prático
Perguntas frequentes
Como o VBA no CorelDRAW consegue otimizar rotas de hidrojateamento?
O VBA acessa dados de endereços e ordens de serviço, calcula a melhor sequência de atendimento usando algoritmos de roteirização e gera mapas vetoriais no CorelDRAW com a rota otimizada pronta para impressão ou envio à equipe de campo.
Preciso de conhecimento avançado em programação para usar essa ferramenta?
Não necessariamente. A ferramenta pode ser entregue como um botão na barra de ferramentas do CorelDRAW, com interface simples de formulário onde o operador apenas cola a lista de endereços e clica em 'Gerar Rota'.
A solução funciona offline ou precisa de internet constante?
O cálculo de rotas puro pode ser feito offline com bibliotecas de grafos, mas para considerar trânsito em tempo real na capital paulista, a integração com APIs de mapas (Google Maps, OpenStreetMap) requer conexão ativa no momento do planejamento.
É possível integrar com planilhas Excel usadas pela equipe de agendamento?
Sim. O VBA lê arquivos .xlsx/.csv diretamente, extrai colunas de endereço, prioridade e janela de atendimento, e escreve de volta a rota ordenada, horários estimados e distância total por veículo/equipe.
Qual o ganho real de tempo comparado ao planejamento manual?
Equipes que adotaram roteirização automatizada relatam redução de 15 a 30% no quilometragem rodada e economia de 1 a 2 horas diárias só no deslocamento entre colunas, além de melhor distribuição de carga entre os caminhões.
A ferramenta gera relatórios visuais para o cliente final ou gestão?
Sim. O CorelDRAW exporta PDFs com mapa da rota, sequência numerada, legendas de prioridade e tempo estimado por ponto, podendo incluir logotipo da empresa e QR code para rastreamento do atendimento.