Simtronics — Editor Esquemático

Componentes, pinos, conectividade, modelos BJT/MOS, transformador e interface do editor de esquemas do Simtronics.

Editor Esquemático

O editor permite desenhar circuitos num canvas com grid snapping. O desenho gera automaticamente a netlist SPICE que alimenta o motor de simulação.

Componentes (11)

SímboloKindPinosPrefixo SPICEExemplo
Resistorresistor2RR1 1 2 1k
Capacitorcapacitor2CC1 2 0 100n
Indutorinductor2LL1 1 2 1m
Fonte Vvsource2VV1 1 0 DC 12
Fonte Iisource2II1 1 0 DC 1m
Groundground1(nó 0)
NPNnpn3QQ1 nC nB nE QNPN
PNPpnp3QQ1 nC nB nE QPNP
NMOSnmos3MM1 nD nG nS nS MNMOS
PMOSpmos3MM1 nD nG nS nS MPMOS
Transformadortransformer4T (expande)LT1P/LT1S/KT1

Geometria dos pinos

Coordenadas SVG: +x direita, +y baixo. Rotação horária a partir do centro (x, y) do componente. Fórmulas de rotação: 90° cw: (-dy, dx), 180°: (-dx, -dy), 270° cw: (dy, -dx).

Dois terminais (R, C, L, V, I) — rotação 0°

PinoOffsetPapel
0(-3, 0)n+ (fontes)
1(+3, 0)n- (fontes)

Corpo: passivos 4×2, fontes círculo r=2. Leads até ±3.

BJT (NPN, PNP) — rotação 0°

PinoOffsetPapel
0(+3, -2)Coletor
1(-3, 0)Base
2(+3, +2)Emissor

MOSFET (NMOS, PMOS) — rotação 0°

PinoOffsetPapel
0(+3, -2)Dreno
1(-3, 0)Gate
2(+3, +2)Source

Bulk amarrado ao source (componente discreto de 3 terminais na v0).

Transformador — rotação 0°

PinoOffsetPapel
0(-3, -2)Primário + (dot)
1(-3, +2)Primário −
2(+3, -2)Secundário + (dot)
3(+3, +2)Secundário −

Ground

(x, y) é o próprio pino. O glifo se estende em +y. Rotação gira apenas o glifo ao redor do pino. Na interface atual, o ground permanece com rotação fixa. Todos os grounds compartilham o nó 0.

Conectividade (point-on-segment)

  • Pontos elétricos: todos os pinos + vértices/endpoints de fios.
  • T-junction: pino ou vértice sobre o meio de um segmento conecta.
  • Coincidência: dois pinos na mesma coordenada conectam.
  • Cruzamento: dois segmentos que se cruzam interior×interior sem vértice no ponto de encontro não conectam.
  • Junção explícita: a UI insere vértice + junction dot.
  • Wire inválido: < 2 pontos, diagonal ou comprimento zero → erro.

Modelos

BJT e MOSFET

  • Valor vazio: modelo padrão compartilhado, emitido uma vez por tipo.
    • .model QNPN NPN() / .model QPNP PNP()
    • .model MNMOS NMOS(level=1) / .model MPMOS PMOS(level=1)
  • Valor não vazio: corpo de parâmetros NAME=SCALAR (ex.: BF=100 IS=1e-15). Gera .model Q1M NPN(BF=100 IS=1e-15).

Transformador

  • Valor vazio: 1m 1m 0.999 (indutância de 1 mH em cada lado, k=0.999).
  • Valor não vazio: 3 tokens Lp Ls k. k entre −1 e 1 (exclusive 0), sinal visível ao usuário. Exemplo: 10u 20u 0.95.

Emite três linhas:

LT1P nP+ nP- 1m
LT1S nS+ nS- 1m
KT1 LT1P LT1S 0.999

Validação (7 etapas determinísticas)

EtapaCódigoExemplo de mensagem
1. IDsINVALID_IDDuplicate component id: R1
2. GeometriaINVALID_GEOMETRYWire w2 segment 1 is diagonal
3. Value/análiseINVALID_VALUEComponent Q1 has invalid param "BF="
4. GroundNO_GROUNDNo ground component in schematic
5. Pino penduradoDANGLING_PINR2 pin 1 is not connected
6. Ilha isoladaUNGROUNDED_ISLANDComponent R1 is not connected to ground
7. Wire órfãoORPHAN_WIREWire w1 has no component connections

Interface atual

  • Canvas SVG com grid de pontos e snap.
  • Paleta lateral recolhível com os 11 componentes: selecionar uma ferramenta e clicar no canvas para adicionar.
  • Interação: arrastar componentes, rotacionar (tecla R), deletar (Del), duplo-clique para abrir as propriedades.
  • Fiação: clique em pino → preview ortogonal → clique no destino.
  • Propriedades: dock lateral para editar ID, valor e rotação.
  • Código: modo de visualização com syntax highlight SPICE leve, sem libs externas.
  • Layout: quase full-bleed para maximizar canvas.
  • Zoom e pan: botões, roda do mouse, arraste com botão do meio ou espaço e reset para o enquadramento inicial.
  • Tela cheia: botão dedicado, com fallback dentro da página.

Anterior: 02 — Arquitetura e fluxo · Índice: 00 — Introdução · Próximo: 04 — Testes e limitações