public static void LayoutSymbol(SymbolLayout Sym, Terminal A, Terminal C, DiodeType Type, Func <string> Name, Func <string> Part) { Sym.AddTerminal(A, new Coord(0, 20)); Sym.AddWire(A, new Coord(0, 10)); Sym.AddTerminal(C, new Coord(0, -20)); Sym.AddWire(C, new Coord(0, -10)); Sym.AddLoop(EdgeType.Black, new Coord(-10, 10), new Coord(10, 10), new Coord(0, -10)); Sym.AddLine(EdgeType.Black, new Coord(-10, -10), new Coord(10, -10)); switch (Type) { case DiodeType.LED: Sym.DrawArrow(EdgeType.Black, new Coord(-12, 5), new Coord(-20, -3), 0.2); Sym.DrawArrow(EdgeType.Black, new Coord(-8, -2), new Coord(-16, -10), 0.2); break; case DiodeType.Zener: Sym.AddLine(EdgeType.Black, new Coord(-10, -10), new Coord(-10, -5)); Sym.AddLine(EdgeType.Black, new Coord(10, -10), new Coord(10, -15)); break; default: break; } if (Part != null) { Sym.DrawText(Part, new Coord(12, 4), Alignment.Near, Alignment.Near); } Sym.DrawText(Name, new Coord(12, -4), Alignment.Near, Alignment.Far); }
public static void LayoutSymbol(SymbolLayout Sym, Terminal A, Terminal C, DiodeType Type, Func<string> Name, Func<string> Part) { Sym.AddTerminal(A, new Coord(0, 20)); Sym.AddWire(A, new Coord(0, 10)); Sym.AddTerminal(C, new Coord(0, -20)); Sym.AddWire(C, new Coord(0, -10)); Sym.AddLoop(EdgeType.Black, new Coord(-10, 10), new Coord(10, 10), new Coord(0, -10)); Sym.AddLine(EdgeType.Black, new Coord(-10, -10), new Coord(10, -10)); switch (Type) { case DiodeType.LED: Sym.DrawArrow(EdgeType.Black, new Coord(-12, 5), new Coord(-20, -3), 0.2); Sym.DrawArrow(EdgeType.Black, new Coord(-8, -2), new Coord(-16, -10), 0.2); break; case DiodeType.Zener: Sym.AddLine(EdgeType.Black, new Coord(-10, -10), new Coord(-10, -5)); Sym.AddLine(EdgeType.Black, new Coord(10, -10), new Coord(10, -15)); break; default: break; } if (Part != null) Sym.DrawText(Part, new Coord(12, 4), Alignment.Near, Alignment.Near); Sym.DrawText(Name, new Coord(12, -4), Alignment.Near, Alignment.Far); }