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ímbolo | Kind | Pinos | Prefixo SPICE | Exemplo |
|---|---|---|---|---|
| Resistor | resistor | 2 | R | R1 1 2 1k |
| Capacitor | capacitor | 2 | C | C1 2 0 100n |
| Indutor | inductor | 2 | L | L1 1 2 1m |
| Fonte V | vsource | 2 | V | V1 1 0 DC 12 |
| Fonte I | isource | 2 | I | I1 1 0 DC 1m |
| Ground | ground | 1 | (nó 0) | — |
| NPN | npn | 3 | Q | Q1 nC nB nE QNPN |
| PNP | pnp | 3 | Q | Q1 nC nB nE QPNP |
| NMOS | nmos | 3 | M | M1 nD nG nS nS MNMOS |
| PMOS | pmos | 3 | M | M1 nD nG nS nS MPMOS |
| Transformador | transformer | 4 | T (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°
| Pino | Offset | Papel |
|---|---|---|
| 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°
| Pino | Offset | Papel |
|---|---|---|
| 0 | (+3, -2) | Coletor |
| 1 | (-3, 0) | Base |
| 2 | (+3, +2) | Emissor |
MOSFET (NMOS, PMOS) — rotação 0°
| Pino | Offset | Papel |
|---|---|---|
| 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°
| Pino | Offset | Papel |
|---|---|---|
| 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.kentre −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)
| Etapa | Código | Exemplo de mensagem |
|---|---|---|
| 1. IDs | INVALID_ID | Duplicate component id: R1 |
| 2. Geometria | INVALID_GEOMETRY | Wire w2 segment 1 is diagonal |
| 3. Value/análise | INVALID_VALUE | Component Q1 has invalid param "BF=" |
| 4. Ground | NO_GROUND | No ground component in schematic |
| 5. Pino pendurado | DANGLING_PIN | R2 pin 1 is not connected |
| 6. Ilha isolada | UNGROUNDED_ISLAND | Component R1 is not connected to ground |
| 7. Wire órfão | ORPHAN_WIRE | Wire 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