public static void LayoutSymbol(SymbolLayout Sym, BjtType Type, Terminal C, Terminal B, Terminal E, Func <string> Name, Func <string> Part) { int bx = -5; Sym.AddTerminal(B, new Coord(-20, 0), new Coord(bx, 0)); switch (Type) { case BjtType.NPN: Sym.AddTerminal(C, new Coord(10, 20), new Coord(10, 17)); Sym.AddTerminal(E, new Coord(10, -20), new Coord(10, -17)); Sym.DrawLine(EdgeType.Black, new Coord(10, 17), new Coord(bx, 8)); Sym.DrawArrow(EdgeType.Black, new Coord(bx, -8), new Coord(10, -17), 0.2, 0.3); break; case BjtType.PNP: Sym.AddTerminal(E, new Coord(10, 20), new Coord(10, 17)); Sym.AddTerminal(C, new Coord(10, -20), new Coord(10, -17)); Sym.DrawArrow(EdgeType.Black, new Coord(10, 17), new Coord(bx, 8), 0.2, 0.3); Sym.DrawLine(EdgeType.Black, new Coord(bx, -8), new Coord(10, -17)); break; default: throw new NotSupportedException("Unknown BJT type."); } Sym.DrawLine(EdgeType.Black, new Coord(bx, 12), new Coord(bx, -12)); if (Part != null) { Sym.DrawText(Part, new Coord(8, 20), Alignment.Far, Alignment.Near); } Sym.DrawText(Name, new Point(8, -20), Alignment.Far, Alignment.Far); Sym.AddCircle(EdgeType.Black, new Coord(0, 0), 20); }
public override void LayoutSymbol(SymbolLayout Sym) { int h = 20; Sym.AddTerminal(pa, new Coord(-10, h)); Sym.AddTerminal(pc, new Coord(-10, -h)); Sym.AddTerminal(sa, new Coord(10, h)); Sym.AddTerminal(st, new Coord(10, 0)); Sym.AddTerminal(sc, new Coord(10, -h)); Sym.DrawText(() => Name, new Coord(-16, -h / 2), Alignment.Far, Alignment.Center); Sym.DrawText(() => Turns.ToString(), new Coord(-16, h / 2), Alignment.Far, Alignment.Center); h -= 4; Sym.AddWire(pa, new Coord(-10, h)); Sym.AddWire(pc, new Coord(-10, -h)); Sym.AddWire(sa, new Coord(10, h)); Sym.AddWire(sc, new Coord(10, -h)); Sym.InBounds(new Coord(-20, 0), new Coord(20, 0)); Inductor.Draw(Sym, -10, -h, h, 4, 4.0); Sym.DrawLine(EdgeType.Black, new Coord(-2, h), new Coord(-2, -h)); Sym.DrawLine(EdgeType.Black, new Coord(2, h), new Coord(2, -h)); Inductor.Draw(Sym, 10, -h, 0.0, 2, -4.0); Inductor.Draw(Sym, 10, h, 0.0, 2, -4.0); }
public override void LayoutSymbol(SymbolLayout Sym) { Sym.DrawLine(EdgeType.Gray, new Point(-20, -10), new Point(20, -10)); Sym.DrawLine(EdgeType.Gray, new Point(-20, -10), new Point(-20, 10)); Sym.InBounds(new Coord(-20, -10), new Coord(20, 10)); Sym.DrawText(() => text, new Point(-18, 0), Alignment.Near, Alignment.Center, Size.Large); Sym.DrawText(() => subtext, new Point(-18, -10), Alignment.Near, Alignment.Far, Size.Normal); }
public override void LayoutSymbol(SymbolLayout Sym) { Sym.DrawLine(EdgeType.Gray, new Point(-20, -10), new Point(20, -10)); Sym.DrawLine(EdgeType.Gray, new Point(-20, -10), new Point(-20, 10)); Sym.InBounds(new Coord(-20, -10), new Coord(20, 10)); Sym.DrawText(() => text, new Point(-18, 0), Alignment.Near, Alignment.Center, Size.Large); Sym.DrawText(() => subtext, new Point(-18, -10), Alignment.Near, Alignment.Far, Size.Normal); }
public static void LayoutSymbol(SymbolLayout Sym, JfetType Type, Terminal S, Terminal G, Terminal D, Func <string> Name, Func <string> Part) { int bx = 0; Sym.AddTerminal(S, new Coord(10, -20), new Coord(10, -10), new Coord(0, -10)); Sym.AddTerminal(G, new Coord(-20, 0), new Coord(-10, 0)); Sym.AddTerminal(D, new Coord(10, 20), new Coord(10, 10), new Coord(0, 10)); Sym.DrawLine(EdgeType.Black, new Coord(bx, 12), new Coord(bx, -12)); switch (Type) { case JfetType.N: Sym.DrawArrow(EdgeType.Black, new Coord(-10, 0), new Coord(0, 0), 0.2, 0.3); break; case JfetType.P: Sym.DrawArrow(EdgeType.Black, new Coord(0, 0), new Coord(-10, 0), 0.2, 0.3); break; default: throw new NotSupportedException("Unknown JFET type."); } if (Part != null) { Sym.DrawText(Part, new Coord(8, 20), Alignment.Far, Alignment.Near); } Sym.DrawText(Name, new Point(8, -20), Alignment.Far, Alignment.Far); Sym.AddCircle(EdgeType.Black, new Coord(0, 0), 20); }
public override void LayoutSymbol(SymbolLayout Sym) { Sym.AddTerminal(pa, new Coord(-10, 20)); Sym.AddTerminal(pc, new Coord(-10, -20)); Sym.AddTerminal(sa, new Coord(10, 20)); Sym.AddTerminal(sc, new Coord(10, -20)); Sym.AddWire(pa, new Coord(-10, 16)); Sym.AddWire(pc, new Coord(-10, -16)); Sym.AddWire(sa, new Coord(10, 16)); Sym.AddWire(sc, new Coord(10, -16)); Sym.InBounds(new Coord(-20, 0), new Coord(20, 0)); Inductor.Draw(Sym, -10, -16.0, 16.0, 4, 4.0); Sym.DrawLine(EdgeType.Black, new Coord(-2, 16), new Coord(-2, -16)); Sym.DrawLine(EdgeType.Black, new Coord(2, 16), new Coord(2, -16)); Inductor.Draw(Sym, 10, -16.0, 16.0, 4, -4.0); Sym.DrawText(() => Name, new Coord(-16, 0), Alignment.Far, Alignment.Center); Sym.DrawText(() => Turns.ToString(), new Coord(16, 0), Alignment.Near, Alignment.Center); }
public static void LayoutSymbol(SymbolLayout Sym, JfetType Type, Terminal S, Terminal G, Terminal D, Func<string> Name, Func<string> Part) { int bx = 0; Sym.AddTerminal(S, new Coord(10, -20), new Coord(10, -10), new Coord(0, -10)); Sym.AddTerminal(G, new Coord(-20, 0), new Coord(-10, 0)); Sym.AddTerminal(D, new Coord(10, 20), new Coord(10, 10), new Coord(0, 10)); Sym.DrawLine(EdgeType.Black, new Coord(bx, 12), new Coord(bx, -12)); switch (Type) { case JfetType.N: Sym.DrawArrow(EdgeType.Black, new Coord(-10, 0), new Coord(0, 0), 0.2, 0.3); break; case JfetType.P: Sym.DrawArrow(EdgeType.Black, new Coord(0, 0), new Coord(-10, 0), 0.2, 0.3); break; default: throw new NotSupportedException("Unknown JFET type."); } if (Part != null) Sym.DrawText(Part, new Coord(8, 20), Alignment.Far, Alignment.Near); Sym.DrawText(Name, new Point(8, -20), Alignment.Far, Alignment.Far); Sym.AddCircle(EdgeType.Black, new Coord(0, 0), 20); }
public override void LayoutSymbol(SymbolLayout Sym) { int h = 20; Sym.AddTerminal(pa, new Coord(-10, h)); Sym.AddTerminal(pc, new Coord(-10, -h)); Sym.AddTerminal(sa, new Coord(10, h)); Sym.AddTerminal(st, new Coord(10, 0)); Sym.AddTerminal(sc, new Coord(10, -h)); Sym.DrawText(() => Name, new Coord(-16, -h / 2), Alignment.Far, Alignment.Center); Sym.DrawText(() => Turns.ToString(), new Coord(-16, h / 2), Alignment.Far, Alignment.Center); h -= 4; Sym.AddWire(pa, new Coord(-10, h)); Sym.AddWire(pc, new Coord(-10, -h)); Sym.AddWire(sa, new Coord(10, h)); Sym.AddWire(sc, new Coord(10, -h)); Sym.InBounds(new Coord(-20, 0), new Coord(20, 0)); Inductor.Draw(Sym, -10, -h, h, 4, 4.0); Sym.DrawLine(EdgeType.Black, new Coord(-2, h), new Coord(-2, -h)); Sym.DrawLine(EdgeType.Black, new Coord(2, h), new Coord(2, -h)); Inductor.Draw(Sym, 10, -h, 0.0, 2, -4.0); Inductor.Draw(Sym, 10, h, 0.0, 2, -4.0); }
public override void LayoutSymbol(SymbolLayout Sym) { Sym.AddTerminal(pa, new Coord(-10, 20)); Sym.AddTerminal(pc, new Coord(-10, -20)); Sym.AddTerminal(sa, new Coord(10, 20)); Sym.AddTerminal(sc, new Coord(10, -20)); Sym.AddWire(pa, new Coord(-10, 16)); Sym.AddWire(pc, new Coord(-10, -16)); Sym.AddWire(sa, new Coord(10, 16)); Sym.AddWire(sc, new Coord(10, -16)); Sym.InBounds(new Coord(-20, 0), new Coord(20, 0)); Inductor.Draw(Sym, -10, -16.0, 16.0, 4, 4.0); Sym.DrawLine(EdgeType.Black, new Coord(-2, 16), new Coord(-2, -16)); Sym.DrawLine(EdgeType.Black, new Coord(2, 16), new Coord(2, -16)); Inductor.Draw(Sym, 10, -16.0, 16.0, 4, -4.0); Sym.DrawText(() => Name, new Coord(-16, 0), Alignment.Far, Alignment.Center); Sym.DrawText(() => Turns.ToString(), new Coord(16, 0), Alignment.Near, Alignment.Center); }
public static void LayoutSymbol(SymbolLayout Sym, BjtType Type, Terminal C, Terminal B, Terminal E, Func<string> Name, Func<string> Part) { int bx = -5; Sym.AddTerminal(B, new Coord(-20, 0), new Coord(bx, 0)); switch (Type) { case BjtType.NPN: Sym.AddTerminal(C, new Coord(10, 20), new Coord(10, 17)); Sym.AddTerminal(E, new Coord(10, -20), new Coord(10, -17)); Sym.DrawLine(EdgeType.Black, new Coord(10, 17), new Coord(bx, 8)); Sym.DrawArrow(EdgeType.Black, new Coord(bx, -8), new Coord(10, -17), 0.2, 0.3); break; case BjtType.PNP: Sym.AddTerminal(E, new Coord(10, 20), new Coord(10, 17)); Sym.AddTerminal(C, new Coord(10, -20), new Coord(10, -17)); Sym.DrawArrow(EdgeType.Black, new Coord(10, 17), new Coord(bx, 8), 0.2, 0.3); Sym.DrawLine(EdgeType.Black, new Coord(bx, -8), new Coord(10, -17)); break; default: throw new NotSupportedException("Unknown BJT type."); } Sym.DrawLine(EdgeType.Black, new Coord(bx, 12), new Coord(bx, -12)); if (Part != null) Sym.DrawText(Part, new Coord(8, 20), Alignment.Far, Alignment.Near); Sym.DrawText(Name, new Point(8, -20), Alignment.Far, Alignment.Far); Sym.AddCircle(EdgeType.Black, new Coord(0, 0), 20); }