Registro fotográfico automatizado de limpeza de tubulação em chamados com VBA
Automatize o registro fotográfico de limpeza de tubulações em chamados usando VBA no CorelDRAW. Reduza erros manuais e ganhe rastreabilidade completa.
Empresas de desentupimento e manutenção hidráulica na Grande São Paulo processam, em média, 400 a 600 chamados por mês. Cada atendimento exige registro fotográfico de antes e depois — evidência obrigatória para contratos com condomínios, indústrias e órgãos públicos. O gargalo não está na captura das imagens, mas na transformação desse acervo bruto em relatórios técnicos padronizados, rastreáveis e juridicamente válidos.
O CorelDRAW, amplamente adotado em departamentos de arte e documentação técnica, torna-se o motor ideal para essa automação. Sua object model VBA expõe controle total sobre importação de bitmaps, gerenciamento de layers, formatação de texto variável e exportação multipropósito. A solução não substitui o sistema de chamados; ela consome os dados dele e devolve o ativo visual finalizado, pronto para anexo ao processo ou envio ao cliente.
Arquitetura da solução: do arquivo bruto ao relatório assinado
O fluxo começa na convenção de pastas. Cada chamado gera um diretório único no servidor de arquivos — padrão \\SRV-FOTOS\Chamados\{ANO}\{MES}\{ID_CHAMADO}\ — com subpastas antes e depois. A macro VBA, ao ser disparada, recebe o ID do chamado (via parâmetro de linha de comando, leitura de planilha de controle ou consulta ao banco do ERP). Ela valida a existência das pastas, enumera arquivos de imagem (JPG, PNG, HEIC convertidos), ordena por data de criação e aplica filtro de qualidade mínima.
A importação no CorelDRAW usa ActiveDocument.Import com cdrPlaceAsBitmap. Cada foto é colocada em um ShapeRange nomeado (foto_antes_01, foto_depois_01, etc.), permitendo reposicionamento programático posterior. O template .cdr mantém layers travados: HEADER (logo, razão social, CNPJ, endereço), GRID_FOTOS (placeholders com powerclips), METADADOS (tabela técnica: equipamento, pressão, vazão, tempo, técnico responsável), RODAPE (assinatura digital, QR code com hash do relatório, data/hora de geração).
Integração com dados do chamado: eliminando digitação manual
A mágica acontece no preenchimento dos campos variáveis. A macro lê um arquivo dados_chamado_{ID}.json gerado pelo sistema de gestão — ou consulta direta via ADO/ODBC se houver permissão. Exemplo de estrutura:
{
"id_chamado": "CH-2024-087421",
"data_atendimento": "2024-11-15",
"cliente": {
"razao_social": "Condomínio Residencial Vale Verde",
"cnpj": "12.345.678/0001-90",
"endereco": "Rua das Acácias, 450 - Jardim Paulista, São Paulo/SP"
},
"tecnico": "Roberto S. Almeida",
"equipamento": "Hidrojato 400 bar - Unidade Móvel 03",
"pressao_bar": 350,
"vazao_l_min": 45,
"tempo_execucao_min": 28,
"observacoes": "Remoção de incrustação calcária em coluna principal 100mm. Teste de estanqueidade OK."
}
O VBA itera sobre as chaves e preenche TextFrame nomeados no template (txt_razao_social, txt_cnpj, txt_endereco, txt_tecnico, txt_equipamento, txt_pressao, txt_vazao, txt_tempo, txt_obs). Campos numéricos recebem formatação localizada (separador decimal vírgula, unidade ao lado). O QR code é gerado via biblioteca QRCode.dll (registrada no sistema) codificando https://auditoria.empresa.com.br/validar/{HASH_SHA256}, onde o hash combina ID do chamado, timestamp de geração e checksum dos arquivos de imagem — garantindo imutabilidade.
Tratamento de exceções e qualidade de imagem
Nem toda foto chega perfeita. A macro implementa pipeline de validação:
- Existência: pasta
antesedepoisdevem conter pelo menos 1 arquivo cada. - Integridade:
GetFileAttributes+ tentativa deLoadPicture— arquivos corrompidos são movidos para\erros\e logados. - Resolução: largura e altura ≥ 1600px (≈2 MP). Imagens menores geram alerta visual no relatório (borda vermelha no powerclip) mas não interrompem o processo.
- Orientação: leitura de EXIF
Orientationtag; rotação automática se necessário. - Padronização visual: brilho/contraste auto (
Shape.AdjustBrightness,AdjustContrast), conversão para sRGB, embedding de perfil ICC.
Para correção avançada, a macro invoca ImageMagick via Shell:
Dim cmd As String
cmd = "magick " & Chr(34) & srcPath & Chr(34) & " -auto-level -colorspace sRGB -profile " & Chr(34) & iccPath & Chr(34) & " " & Chr(34) & dstPath & Chr(34)
Shell cmd, vbHide
O arquivo corrigido substitui o original na importação. O log de processamento (logs\processamento_{YYYYMMDD}.txt) registra: ID, timestamp, qtd fotos antes/depois, arquivos rejeitados, correções aplicadas, tempo total de execução.
Exportação multipropósito: PDF/A para arquivo, JPG leve para campo
O relatório final precisa servir a dois mestres: o jurídico/contratual (arquivamento de longo prazo, assinatura digital, não repúdio) e o operacional (envio rápido por WhatsApp para o síndico, gestor de facilities ou cliente final). A macro gera duas saídas a partir do mesmo documento:
- PDF/A-1b:
ActiveDocument.PublishToPDFcomPDFPreset = cdrPDFPreset_PDFA1b, fonts embedded, metadata XMP preenchido (Title: “Relatório Fotográfico - CH-2024-087421”, Author: “Empresa X - Automação VBA”, Keywords: “hidrojateamento, limpeza tubulação, evidência fotográfica”). Salvo em\\SRV-ARQUIVO\Relatorios\{ANO}\{MES}\CH-2024-087421.pdf. - JPG 150 DPI, qualidade 82%:
ActiveDocument.ExportBitmapcomResolution = 150,JPEGQuality = 82,ColorMode = cdrRGBColor. Salvo em\\SRV-COMPARTILHADO\EnvioCampo\CH-2024-087421.jpg— tamanho médio 350 KB, ideal para transmissão em redes móveis.
Ambas as rotinas rodam em Application.Automation = True (modo silencioso, sem interface), permitindo execução em lote noturno via Task Scheduler: "C:\Program Files\Corel\CorelDRAW Graphics Suite X8\Programs64\CorelDRW.exe" /automation /macro "GeraRelatorioFotografico.bas" /param "CH-2024-087421".
Implantação, governança e evolução contínua
A entrega inclui instalador Inno Setup que registra a macro no GlobalMacros.gms, cria atalho na barra de ferramentas personalizada (ícone de câmera com badge “Relatório”), instala QRCode.dll e ImageMagick (versão portable, sem admin), e copia template .cdr para %APPDATA%\Empresa\Templates\RelatorioFotografico.cdr. O painel de configuração (UserForm frmConfig) permite ao usuário avançado alterar:
- Caminhos de rede (origem fotos, destino PDF, destino JPG)
- Padrão de nomenclatura de pastas/arquivos (expressão regular)
- Layout do template (seleção entre 3 modelos: padrão, compacto, detalhado)
- Campos obrigatórios vs opcionais
- Agendamento de execução automática (horário, dias úteis only)
Versionamento segue SemVer no CHANGELOG.md incluso. Atualizações são push via script PowerShell que substitui o .gms e reinicia o CorelDRAW se aberto. Treinamento de 2 horas cobre: como disparar manualmente (botão + digitar ID), como interpretar logs, como regenerar relatório de chamado antigo, como ajustar template sem quebrar names de shapes.
Já ajudamos equipes de saneamento a padronizar evidências visuais em escala municipal. Veja como a automação no CorelDRAW melhora fluxo de atendimento no Bom Retiro e entenda o impacto direto na rastreabilidade de cada chamado.
Conclusão prática
Automatizar o registro fotográfico no CorelDRAW transforma um processo artesanal, propenso a erros e lento, em uma esteira confiável: foto chega na pasta → relatório sai assinado e arquivado. O investimento em VBA retorna-se no primeiro mês de operação plena. Comece mapeando sua convenção de pastas e o template de relatório atual; o código se adapta à sua realidade, não o contrário. limpeza de tubulação no município de São Paulo
Pronto para eliminar a montagem manual de relatórios? A estrutura está validada, o template é seu, a macro roda na versão do CorelDRAW que você já tem. O próximo chamado processado automaticamente pode ser ainda esta semana.
Checklist prático
Perguntas frequentes
Como o VBA no CorelDRAW captura e organiza fotos de antes e depois da limpeza?
A macro acessa a pasta de imagens do chamado, importa os arquivos na ordem correta, renomeia com padrão padronizado (data, número do chamado, etapa) e posiciona em layout pré-definido no CorelDRAW. O código valida extensões, redimensiona mantendo proporção e aplica marca d'água automática com metadados do serviço.
É possível integrar essa automação com sistemas de gestão de chamados existentes?
Sim. O VBA pode ler arquivos CSV, JSON ou conectar via ODBC a bancos de dados do ERP/CRM. A macro busca o ID do chamado, localiza a pasta correspondente no servidor de arquivos e gera o relatório visual sem intervenção manual. Já implementamos integrações com sistemas como Totvs, Senior e planilhas SharePoint.
Qual o ganho real de tempo comparado ao processo manual de montar relatórios no CorelDRAW?
Equipes relatam redução de 85% no tempo de montagem: um relatório que levava 25 minutos passa a levar 3-4 minutos. O ganho escala com volume — centenas de chamados/mês economizam dezenas de horas. Além disso, elimina retrabalho por fotos trocadas, legendas erradas ou formatação inconsistente.
A macro funciona em versões antigas do CorelDRAW (X7, X8, 2017)?
O código base usa objetos da API estável desde o CorelDRAW X6. Testamos em X7, X8, 2017, 2018, 2019, 2020, 2021, 2022 e 2023. Apenas recursos avançados como marca d'água vetorial dinâmica exigem 2018+. Fornecemos versão compatível X7+ e versão otimizada para 2018+.
Como lidar com fotos de qualidade variável (celulares diferentes, iluminação ruim)?
A macro aplica correção automática de brilho/contraste via ImageMagick (chamado via Shell) ou filtros nativos do CorelDRAW. Também valida resolução mínima (2 MP) e rejeita arquivos corrompidos. O relatório final padroniza todas as imagens para 300 DPI, tamanho fixo no layout e perfil de cor sRGB.
Preciso de conhecimento avançado de programação para manter essa automação?
Não. A macro é entregue com instalador, documentação comentada e painel de configuração gráfico (UserForm) para ajustar caminhos, padrões de nomeação, layout e integrações sem tocar no código. Oferecemos treinamento de 2 horas para a equipe interna assumir manutenções simples.