Pesquisa · Engenharia elétrica

Bibliotecas para diagrama unifiliar

O mapa das libs open-source e comerciais pra gerar, editar e embutir SLD — do SVG do PowSyBl ao editor React pronto pra dropar no seu app.

9 libs 6 dedicadas 3 bases genéricas links diretos pros repos 7 testadas com print
Ver a escolha rápida

01Dedicadas a unifiliar

Resolvem o SLD de ponta a ponta: modelo elétrico, layout e render.

PowSyBl Diagram

Gera SVG de SLD a partir de modelos de rede elétrica (IIDM/CGMES), com layout automático, biblioteca de símbolos customizável e wrapper Python (pypowsybl). A mais madura do nicho.

  • Java
  • MPL-2.0
  • ~128★
  • Python via pypowsybl
github.com/powsybl/powsybl-diagram

sldeditor

Componente React embutível: 47 símbolos (disjuntor, seccionadora, trafo 2W/3W, barra, TC/TP, gerador, PV, bateria), ligação terminal-a-terminal, undo/redo e export SVG/PNG/DXF.

  • React
  • TypeScript
  • npm
  • ~14★
github.com/NovaShang/sldeditor

SingleLine (AREI)

Editor open-source (React + React Flow + Konva) com símbolos AREI/RGIE, regras de validação e export PDF keuring. Boa referência de arquitetura pra copiar.

  • React 18
  • React Flow
  • TS
  • open-source
github.com/verschaevesiebe/singleline

SLD Generator

Ferramenta web em vanilla JS + SVG pra desenhar SLD — engenharia elétrica, automação industrial e monitoramento de sistemas de potência.

  • JS
  • SVG
  • vanilla
github.com/Trpz3/sld

Electrical Symbols

Só os símbolos: componentes SVG React seguindo IEC/AS 60617, pra solar, bateria e geração embarcada. Use com o canvas que você já tem.

  • React
  • IEC 60617
  • npm
github.com/powston/electrical-symbols

02Base genérica de diagramação

Canvas de propósito geral — você traz os símbolos e a semântica elétrica.

JointJS

Lib de diagramação SVG com página dedicada a SLD/energy: conexões terminal-a-terminal, estilo de linha por classe de tensão, binding CIM (IEC 61970) e culling pra redes grandes. Core open-source; plus comercial.

  • JS
  • SVG
  • comercial
jointjs.com/energy-network-diagrams

GoJS

Samples prontos de SCADA/HMI e electrical junction; ótimo pra editor com interação rica (drag, portas, context menus). Licença comercial.

  • JS
  • SCADA/HMI
  • comercial
gojs.net

mxGraph

Precursor do draw.io. Legado, sem evolução ativa — não vale a pena pra projeto novo, mas aparece em código existente.

  • JS
  • legado
github.com/jgraph/mxgraph

03Escolha rápida

Do pedido pra lib, sem rodeio.

04Teste real: baixei, rodei, printei

Cada lib foi clonada, montada com um diagrama de exemplo e capturada rodando (out/2026) — pypowsybl em venv, vite pros apps, Chrome headless pros prints. O baseline é o unifilar que o Hora Solar já exporta; e o teste achou um bug nele.

Chrome recusando o SVG do Hora Solar com erro de atributo sem valor
antes — XML inválido, o Chrome nem abre
Unifilar do Hora Solar renderizado: módulos Canadian, stringbox, inversor Growatt, proteção CA, medição UC e rede CPFL
depois — folha completa renderizando

Hora Solar (baseline)

Bug encontrado e corrigido nesta rodada: atributos booleanos sem valor no SVG (data-unifilar-hit, data-unifilar-title, data-unifilar-detail) deixavam o arquivo .svg fora do padrão XML — o export baixado nem abria no browser. Fix em internal/dossier/unifilar_symbol.go, com teste de regressão (TDD).

  • bug achado + corrigido
  • Go
  • NBR 16690
  • NBR 5410
SLD gerado pelo PowSyBl: barra VL4 do IEEE-14 com bays e chaves

PowSyBl Diagram

SLD da barra VL4 do IEEE-14 gerado offline com pypowsybl em duas linhas de Python. Layout automático de bays, SVG limpo. Visual de rede de transmissão — sólido, mas distante do unifiliar residencial.

  • rodou de primeira
  • Java/Python
  • IEEE-14
Editor do sldeditor: barra de 10 kV, disjuntor D1 e saídas 101 e 102 com seccionadoras

sldeditor

React embutível, rodou de primeira com npm ci + vite. Barra 10 kV com disjuntor e duas saídas etiquetadas, paleta com 47 símbolos, wire mode, outline e zoom. O candidato mais direto pra embutir num app.

  • rodou de primeira
  • React
  • 47 símbolos
Editor do Trpz3/sld: canvas com barra, disjuntor, transformador e cargas, com paleta lateral

Trpz3/sld

Vanilla JS + SVG. O vite quebra (plugin dts desatualizado), mas servindo estático o editor completo aparece: paleta, modo wire, outline, zoom e símbolos de trafo/carga. Zero framework, fácil de entender.

  • servir estático
  • JS vanilla
Diagrama do Acelerex SLD: três barras com trafo, geradores solar e eólico, storage e carga

Acelerex SLD

Beta sem package pronta — montei um demo com o JSON do README. Desenhou 3 barras, trafo, geradores (solar/eólica/hidro), storage, mercado e carga. Funciona, mas o visual é cru e não tem legenda.

  • esforço extra
  • Vue
  • beta
SLD solar completo da powston: rede, medidor, main switch, inversor híbrido, PV array e bateria

powston/electrical-symbols

Só símbolos? O README traz um SLD solar inteiro de exemplo — composei em React (720×540): rede → medidor → switchboard → inversor → PV + bateria + cargas, com notas e compliance. O visual mais próximo de um unifiliar solar de verdade.

  • rodou de primeira
  • React
  • IEC/AS 60617
Sample Electrical Junction do GoJS: nós coloridos com junção clicável no link e modelo JSON

GoJS

Sample oficial electrical junction ao vivo: junção clicável em qualquer ponto do link, edição de rota, modelo JSON atualizado em tempo real. Base forte pra um editor interativo — mas sem biblioteca de símbolos elétricos.

  • sample ao vivo
  • comercial
  • SCADA/HMI
Página do JointJS para energy network diagrams com rede de transmissão interativa

JointJS

Demo da página oficial de energy networks: rede de transmissão com valores por linha e conexões terminal-a-terminal. Poderoso (classes de tensão, CIM, culling), mas o coração útil pro SLD mora no plus comercial.

  • demo ao vivo
  • comercial
  • CIM
404 — repositório fora do ar

SingleLine (AREI)

O repo saiu do ar entre a pesquisa e o teste — não deu pra clonar nem rodar. Fica na lista só como referência do que existia (React Flow + Konva + símbolos AREI).

  • não testada
  • 404 no GitHub