Update the symbol library.

* Add bipolar, IGFET and JFET transistors.
* Add more variants to some symbols.
* Add a symbol for a simple terminal.
* Avoid unneccessary stroke() calls.
* Fix comments.
This commit is contained in:
Přemysl Eric Janouch 2011-02-11 18:37:00 +01:00
parent 2c5f2f5b3f
commit 299ce010bd
17 changed files with 511 additions and 59 deletions

View File

@ -0,0 +1,73 @@
-- Symbol names
local names_npn =
{
en = "NPN transistor",
cs = "Tranzistor NPN"
}
local names_pnp =
{
en = "PNP transistor",
cs = "Tranzistor PNP"
}
-- Render area in base units (X1, Y1, X2, Y2)
local area = {-2, -2, 2, 2}
-- Terminal points
local terminals = {{-2, 0}, {2, 2}, {2, -2}}
-- Rendering
local render = function (cr)
-- The terminals
cr.move_to (-2, 0)
cr.line_to (0, 0)
cr.move_to (0, 0.5)
cr.line_to (2, 2)
cr.move_to (0, -0.5)
cr.line_to (2, -2)
-- The ohmic connection
cr.move_to (0, -1)
cr.line_to (0, 1)
cr.stroke ()
end
local render_npn = function (cr)
render (cr)
cr.save ()
cr.translate (0, -0.5)
cr.rotate (math.atan2 (-2, -1.5))
cr.move_to (-0.4, 0.8)
cr.line_to (0, 1.4)
cr.line_to (0.4, 0.8)
cr.stroke ()
cr.restore ()
end
local render_pnp = function (cr)
render (cr)
cr.save ()
cr.translate (2, -2)
cr.rotate (math.atan2 (2, 1.5))
cr.move_to (-0.4, 1.3)
cr.line_to (0, 1.9)
cr.line_to (0.4, 1.3)
cr.stroke ()
cr.restore ()
end
-- Register the symbols
logdiag.register ("NPN", names_npn, area, terminals, render_npn)
logdiag.register ("PNP", names_pnp, area, terminals, render_pnp)

View File

@ -0,0 +1,5 @@
{
"en": "Active",
"cs": "Aktivní"
}

View File

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
version="1.1"
width="128"
height="128"
id="svg2">
<defs
id="defs4" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(-3,-1)"
id="g3774"
style="fill:none;stroke:#000000;stroke-width:4;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none">
<path
d="m 20,63 45,0"
id="path3764"
style="fill:none;stroke:#000000;stroke-width:4;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
d="m 65,38 0,50"
id="path3766"
style="fill:none;stroke:#000000;stroke-width:4;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
d="M 65,53 110,23"
id="path3768"
style="fill:none;stroke:#000000;stroke-width:4;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
d="m 65,73 45,30"
id="path3770"
style="fill:none;stroke:#000000;stroke-width:4;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
d="m 82,31 15,0 -5,15"
id="path3772"
style="fill:none;stroke:#000000;stroke-width:4;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -0,0 +1,73 @@
-- Symbol names
local names_igfet_n =
{
en = "N-channel IGFET transistor",
cs = "Tranzistor IGFET s kanálem N"
}
local names_igfet_p =
{
en = "P-channel IGFET transistor",
cs = "Tranzistor IGFET s kanálem P"
}
-- Render area in base units (X1, Y1, X2, Y2)
local area = {-2, -1.5, 2, 1.5}
-- Terminal points
local terminals = {{-2, 1}, {2, 1}, {2, 0}, {2, -1}}
-- Rendering
local render = function (cr)
-- The terminals
cr.move_to (-2, 1)
cr.line_to (-0.3, 1)
cr.line_to (-0.3, -1)
cr.move_to (0, 1)
cr.line_to (2, 1)
cr.move_to (0, 0)
cr.line_to (2, 0)
cr.move_to (0, -1)
cr.line_to (2, -1)
-- Source, gate, drain
cr.move_to (0, -1.5)
cr.line_to (0, -0.5)
cr.move_to (0, -0.3)
cr.line_to (0, 0.3)
cr.move_to (0, 0.5)
cr.line_to (0, 1.5)
cr.stroke ()
end
local render_igfet_n = function (cr)
render (cr)
cr.move_to (0.9, -0.4)
cr.line_to (0.4, 0)
cr.line_to (0.9, 0.4)
cr.stroke ()
end
local render_igfet_p = function (cr)
render (cr)
cr.move_to (0.4, -0.4)
cr.line_to (0.9, 0)
cr.line_to (0.4, 0.4)
cr.stroke ()
end
-- Register the symbols
logdiag.register ("IGFET-N", names_igfet_n, area, terminals, render_igfet_n)
logdiag.register ("IGFET-P", names_igfet_p, area, terminals, render_igfet_p)

View File

@ -0,0 +1,63 @@
-- Symbol names
local names_jfet_n =
{
en = "N-channel JFET transistor",
cs = "Tranzistor JFET s kanálem N"
}
local names_jfet_p =
{
en = "P-channel JFET transistor",
cs = "Tranzistor JFET s kanálem P"
}
-- Render area in base units (X1, Y1, X2, Y2)
local area = {-2, -1.5, 2, 1.5}
-- Terminal points
local terminals = {{-2, 1}, {2, 1}, {2, -1}}
-- Rendering
local render = function (cr)
-- The terminals
cr.move_to (-2, 1)
cr.line_to (0, 1)
cr.move_to (0, 1)
cr.line_to (2, 1)
cr.move_to (0, -1)
cr.line_to (2, -1)
-- The ohmic connection
cr.move_to (0, -1.5)
cr.line_to (0, 1.5)
cr.stroke ()
end
local render_jfet_n = function (cr)
render (cr)
cr.move_to (-1, 0.6)
cr.line_to (-0.5, 1)
cr.line_to (-1, 1.4)
cr.stroke ()
end
local render_jfet_p = function (cr)
render (cr)
cr.move_to (-0.4, 0.6)
cr.line_to (-1, 1)
cr.line_to (-0.4, 1.4)
cr.stroke ()
end
-- Register the symbols
logdiag.register ("JFET-N", names_jfet_n, area, terminals, render_jfet_n)
logdiag.register ("JFET-P", names_jfet_p, area, terminals, render_jfet_p)

View File

@ -8,7 +8,7 @@ local names =
-- Render area in base units (X1, Y1, X2, Y2) -- Render area in base units (X1, Y1, X2, Y2)
local area = {-4, -2, 5, 2} local area = {-4, -2, 5, 2}
-- Terminals -- Terminal points
local terminals = {{-4, -1}, {-4, 1}, {5, 0}} local terminals = {{-4, -1}, {-4, 1}, {5, 0}}
-- Rendering -- Rendering
@ -19,19 +19,17 @@ local render = function (cr)
cr.arc (1, 0, 2, math.pi * 1.5, math.pi * 0.5) cr.arc (1, 0, 2, math.pi * 1.5, math.pi * 0.5)
cr.line_to (-2, 2) cr.line_to (-2, 2)
cr.close_path () cr.close_path ()
cr.stroke ()
-- The contacts -- The terminals
cr.move_to (-4, -1) cr.move_to (-4, -1)
cr.line_to (-2, -1) cr.line_to (-2, -1)
cr.stroke ()
cr.move_to (-4, 1) cr.move_to (-4, 1)
cr.line_to (-2, 1) cr.line_to (-2, 1)
cr.stroke ()
cr.move_to (3, 0) cr.move_to (3, 0)
cr.line_to (5, 0) cr.line_to (5, 0)
cr.stroke () cr.stroke ()
end end

View File

@ -8,7 +8,7 @@ local names =
-- Render area in base units (X1, Y1, X2, Y2) -- Render area in base units (X1, Y1, X2, Y2)
local area = {-4, -2, 4, 2} local area = {-4, -2, 4, 2}
-- Terminals -- Terminal points
local terminals = {{-4, 0}, {4, 0}} local terminals = {{-4, 0}, {4, 0}}
-- Rendering -- Rendering
@ -18,20 +18,18 @@ local render = function (cr)
cr.line_to (2, 0) cr.line_to (2, 0)
cr.line_to (-2, 2) cr.line_to (-2, 2)
cr.close_path () cr.close_path ()
cr.stroke ()
-- The circle -- The circle
cr.new_sub_path () cr.new_sub_path ()
cr.arc (2.25, 0, 0.25, 0, 2 * math.pi) cr.arc (2.25, 0, 0.25, 0, 2 * math.pi)
cr.stroke ()
-- The contacts -- The terminals
cr.move_to (-4, 0) cr.move_to (-4, 0)
cr.line_to (-2, 0) cr.line_to (-2, 0)
cr.stroke ()
cr.move_to (2.5, 0) cr.move_to (2.5, 0)
cr.line_to (4, 0) cr.line_to (4, 0)
cr.stroke () cr.stroke ()
end end

View File

@ -8,7 +8,7 @@ local names =
-- Render area in base units (X1, Y1, X2, Y2) -- Render area in base units (X1, Y1, X2, Y2)
local area = {-4, -2, 5, 2} local area = {-4, -2, 5, 2}
-- Terminals -- Terminal points
local terminals = {{-4, -1}, {-4, 1}, {5, 0}} local terminals = {{-4, -1}, {-4, 1}, {5, 0}}
-- Rendering -- Rendering
@ -22,7 +22,7 @@ local render = function (cr)
cr.curve_to (-1, 1, -1, -1, -2, -2) cr.curve_to (-1, 1, -1, -1, -2, -2)
cr.stroke () cr.stroke ()
-- The contacts -- The terminals
cr.save () cr.save ()
-- Crop the contacts according to -- Crop the contacts according to
@ -36,12 +36,11 @@ local render = function (cr)
cr.move_to (-4, -1) cr.move_to (-4, -1)
cr.line_to (-1, -1) cr.line_to (-1, -1)
cr.stroke ()
cr.move_to (-4, 1) cr.move_to (-4, 1)
cr.line_to (-1, 1) cr.line_to (-1, 1)
cr.stroke ()
cr.stroke ()
cr.restore () cr.restore ()
cr.move_to (3, 0) cr.move_to (3, 0)

View File

@ -8,7 +8,7 @@ local names =
-- Render area in base units (X1, Y1, X2, Y2) -- Render area in base units (X1, Y1, X2, Y2)
local area = {-1, -1, 1, 2} local area = {-1, -1, 1, 2}
-- Terminals -- Terminal points
local terminals = {{0, -1}} local terminals = {{0, -1}}
-- Rendering -- Rendering

View File

@ -8,7 +8,7 @@ local names =
-- Render area in base units (X1, Y1, X2, Y2) -- Render area in base units (X1, Y1, X2, Y2)
local area = {-2, -1, 2, 1} local area = {-2, -1, 2, 1}
-- Terminals -- Terminal points
local terminals = {{-2, 0}, {2, 0}} local terminals = {{-2, 0}, {2, 0}}
-- Rendering -- Rendering
@ -25,16 +25,17 @@ local render = function (cr)
cr.move_to (1, -1) cr.move_to (1, -1)
cr.line_to (-1, 1) cr.line_to (-1, 1)
cr.stroke ()
cr.stroke ()
cr.restore () cr.restore ()
-- The contacts -- The terminals
cr.move_to (-2, 0) cr.move_to (-2, 0)
cr.line_to (-1, 0) cr.line_to (-1, 0)
cr.move_to (1, 0) cr.move_to (1, 0)
cr.line_to (2, 0) cr.line_to (2, 0)
cr.stroke () cr.stroke ()
end end

View File

@ -8,7 +8,7 @@ local names =
-- Render area in base units (X1, Y1, X2, Y2) -- Render area in base units (X1, Y1, X2, Y2)
local area = {-1, -2, 1, 2} local area = {-1, -2, 1, 2}
-- Terminals -- Terminal points
local terminals = {{-1, 0}, {1, 0}} local terminals = {{-1, 0}, {1, 0}}
-- Rendering -- Rendering
@ -20,7 +20,7 @@ local render = function (cr)
cr.move_to (0.2, -2) cr.move_to (0.2, -2)
cr.line_to (0.2, 2) cr.line_to (0.2, 2)
-- The contacts -- The terminals
cr.move_to (-1, 0) cr.move_to (-1, 0)
cr.line_to (-0.2, 0) cr.line_to (-0.2, 0)

View File

@ -8,16 +8,16 @@ local names =
-- Render area in base units (X1, Y1, X2, Y2) -- Render area in base units (X1, Y1, X2, Y2)
local area = {-2, -1.5, 2, 0} local area = {-2, -1.5, 2, 0}
-- Terminals -- Terminal points
local terminals = {{-2, 0}, {2, 0}} local terminals = {{-2, 0}, {2, 0}}
-- Rendering -- Rendering
local render_normal = function (cr) local render = function (cr)
-- The switch contact -- The switch contact
cr.move_to (1.3, -1.3) cr.move_to (1.3, -1.3)
cr.line_to (-1, 0) cr.line_to (-1, 0)
-- The contacts -- The terminals
cr.move_to (-2, 0) cr.move_to (-2, 0)
cr.line_to (-1, 0) cr.line_to (-1, 0)
@ -28,6 +28,6 @@ local render_normal = function (cr)
end end
-- Register the symbol -- Register the symbol
logdiag.register ("Switch", names, area, terminals, render_normal) logdiag.register ("Switch", names, area, terminals, render)

View File

@ -0,0 +1,29 @@
-- Symbol name
local names =
{
en = "Terminal",
cs = "Terminál"
}
-- Render area in base units (X1, Y1, X2, Y2)
local area = {-1, -0.5, 0.5, 0.5}
-- Terminal points
local terminals = {{-1, 0}}
-- Rendering
local render = function (cr)
-- The circle
cr.arc (0, 0, 0.3, 0, math.pi * 2)
-- The contact
cr.move_to (-1, 0)
cr.line_to (-0.3, 0)
cr.stroke ()
end
-- Register the symbol
logdiag.register ("Terminal", names, area, terminals, render)

View File

@ -5,10 +5,17 @@ local names =
cs = "Kondenzátor" cs = "Kondenzátor"
} }
local names_polar =
{
en = "Polarized capacitor",
cs = "Polarizovaný kondenzátor"
}
-- Render area in base units (X1, Y1, X2, Y2) -- Render area in base units (X1, Y1, X2, Y2)
local area = {-2, -1, 2, 1} local area = {-2, -1, 2, 1}
local area_polar = {-2, -1.5, 2, 1}
-- Terminals -- Terminal points
local terminals = {{-2, 0}, {2, 0}} local terminals = {{-2, 0}, {2, 0}}
-- Rendering -- Rendering
@ -16,23 +23,36 @@ local render = function (cr)
-- The vertical lines -- The vertical lines
cr.move_to (-0.2, -1) cr.move_to (-0.2, -1)
cr.line_to (-0.2, 1) cr.line_to (-0.2, 1)
cr.stroke ()
cr.move_to (0.2, -1) cr.move_to (0.2, -1)
cr.line_to (0.2, 1) cr.line_to (0.2, 1)
cr.stroke ()
-- The contacts -- The terminals
cr.move_to (-2, 0) cr.move_to (-2, 0)
cr.line_to (-0.2, 0) cr.line_to (-0.2, 0)
cr.stroke ()
cr.move_to (0.2, 0) cr.move_to (0.2, 0)
cr.line_to (2, 0) cr.line_to (2, 0)
cr.stroke ()
end
local render_polar = function (cr)
render (cr)
cr.move_to (0.6, -1)
cr.line_to (1.4, -1)
cr.move_to (1, -1.4)
cr.line_to (1, -0.6)
cr.stroke () cr.stroke ()
end end
-- Register the symbol -- Register the symbol
logdiag.register ("Capacitor", names, area, terminals, render) logdiag.register ("Capacitor",
names, area, terminals, render)
logdiag.register ("CapacitorPolarized",
names_polar, area_polar, terminals, render_polar)

View File

@ -1,41 +1,117 @@
-- Symbol name -- Symbol names
local names = local names =
{ {
en = "Diode", en = "Diode",
cs = "Dioda" cs = "Dioda"
} }
local names_zener =
{
en = "Zener diode",
cs = "Zenerova dioda"
}
local names_led =
{
en = "Light-emitting diode",
cs = "Svítivá dioda"
}
local names_photo =
{
en = "Photodiode",
cs = "Fotodioda"
}
-- Render area in base units (X1, Y1, X2, Y2) -- Render area in base units (X1, Y1, X2, Y2)
local area = {-2, -1, 2, 1} local area = {-2, -1, 2, 1}
local area_rad = {-2, -2.5, 2, 1}
-- Terminals -- Terminal points
local terminals = {{-2, 0}, {2, 0}} local terminals = {{-2, 0}, {2, 0}}
-- Rendering -- Rendering
local render_normal = function (cr) local render = function (cr)
-- The triangle -- The triangle
cr.move_to (-1, -1) cr.move_to (-1, -1)
cr.line_to (1, 0) cr.line_to (1, 0)
cr.line_to (-1, 1) cr.line_to (-1, 1)
cr.line_to (-1, -1) cr.line_to (-1, -1)
cr.stroke ()
-- The vertical line -- The vertical line
cr.move_to (1, 1) cr.move_to (1, 1)
cr.line_to (1, -1) cr.line_to (1, -1)
cr.stroke ()
-- The contacts -- The terminals
cr.move_to (-2, 0) cr.move_to (-2, 0)
cr.line_to (-1, 0) cr.line_to (2, 0)
cr.stroke ()
end
local render_zener = function (cr)
render (cr)
cr.move_to (1, 1)
cr.line_to (0.5, 1)
cr.stroke ()
end
local render_arrow = function (cr)
cr.move_to (0, 0)
cr.line_to (0, -1.5)
cr.stroke () cr.stroke ()
cr.move_to (1, 0) cr.move_to (-0.3, -0.7)
cr.line_to (2, 0) cr.line_to (0, -1.5)
cr.stroke () cr.line_to (0.3, -0.7)
cr.close_path ()
cr.fill ()
end
local render_radiation = function (cr)
cr.save ()
cr.translate (-0.4, 0)
render_arrow (cr)
cr.restore ()
cr.save ()
cr.translate (0.4, 0)
render_arrow (cr)
cr.restore ()
end
local render_led = function (cr)
render (cr)
cr.save ()
cr.translate (-0.3, -1.0)
cr.rotate (math.atan2 (1, 1))
render_radiation (cr)
cr.restore ()
end
local render_photo = function (cr)
render (cr)
cr.save ()
cr.translate (0.75, -2.05)
cr.rotate (math.atan2 (-1, -1))
render_radiation (cr)
cr.restore ()
end end
-- Register the symbol -- Register the symbol
logdiag.register ("Diode", names, area, terminals, render) logdiag.register ("Diode", names, area, terminals, render)
logdiag.register ("DiodeZener", names_zener, area, terminals, render_zener)
logdiag.register ("DiodeLED", names_led, area_rad, terminals, render_led)
logdiag.register ("DiodePhoto", names_photo, area_rad, terminals, render_photo)

View File

@ -1,5 +1,5 @@
-- Symbol names -- Symbol names
local names_normal = local names =
{ {
en = "Inductor", en = "Inductor",
cs = "Cívka" cs = "Cívka"
@ -14,30 +14,32 @@ local names_core =
-- Render area in base units (X1, Y1, X2, Y2) -- Render area in base units (X1, Y1, X2, Y2)
local area = {-2, -1, 2, 0} local area = {-2, -1, 2, 0}
-- Terminals -- Terminal points
local terminals = {{-2, 0}, {2, 0}} local terminals = {{-2, 0}, {2, 0}}
-- Rendering -- Rendering
local render_normal = function (cr) local render = function (cr)
-- The arcs -- The arcs
cr.arc (-1.5, 0, 0.5, math.pi, 0) cr.arc (-1.5, 0, 0.5, math.pi, 0)
cr.arc (-0.5, 0, 0.5, math.pi, 0) cr.arc (-0.5, 0, 0.5, math.pi, 0)
cr.arc (0.5, 0, 0.5, math.pi, 0) cr.arc (0.5, 0, 0.5, math.pi, 0)
cr.arc (1.5, 0, 0.5, math.pi, 0) cr.arc (1.5, 0, 0.5, math.pi, 0)
cr.stroke () cr.stroke ()
end end
local render_core = function (cr) local render_core = function (cr)
render_normal (cr) render (cr)
-- The core -- The core
cr.move_to (-2, -1) cr.move_to (-2, -1)
cr.line_to (2, -1) cr.line_to (2, -1)
cr.stroke () cr.stroke ()
end end
-- Register the symbols -- Register the symbols
logdiag.register ("Inductor", names_normal, area, terminals, render_normal) logdiag.register ("Inductor", names, area, terminals, render)
logdiag.register ("InductorWithCore", names_core, area, terminals, render_core) logdiag.register ("InductorWithCore", names_core, area, terminals, render_core)

View File

@ -5,11 +5,26 @@ local names =
cs = "Rezistor" cs = "Rezistor"
} }
local names_adj =
{
en = "Adjustable resistor",
cs = "Nastavitelný rezistor"
}
local names_pot =
{
en = "Potentiometer",
cs = "Potenciometr"
}
-- Render area in base units (X1, Y1, X2, Y2) -- Render area in base units (X1, Y1, X2, Y2)
local area = {-2, -0.5, 2, 0.5} local area = {-2, -0.5, 2, 0.5}
local area_adj = {-2, -1.5, 2, 1}
local area_pot = {-2, -2, 2, 0.5}
-- Terminals -- Terminal points
local terminals = {{-2, 0}, {2, 0}} local terminals = {{-2, 0}, {2, 0}}
local terminals_pot = {{-2, 0}, {2, 0}, {2, -2}}
-- Rendering -- Rendering
local render = function (cr) local render = function (cr)
@ -19,19 +34,66 @@ local render = function (cr)
cr.line_to (1.5, 0.5) cr.line_to (1.5, 0.5)
cr.line_to (-1.5, 0.5) cr.line_to (-1.5, 0.5)
cr.line_to (-1.5, -0.5) cr.line_to (-1.5, -0.5)
cr.stroke ()
-- The contacts -- The terminals
cr.move_to (-2, 0) cr.move_to (-2, 0)
cr.line_to (-1.5, 0) cr.line_to (-1.5, 0)
cr.stroke ()
cr.move_to (1.5, 0) cr.move_to (1.5, 0)
cr.line_to (2, 0) cr.line_to (2, 0)
cr.stroke () cr.stroke ()
end end
local render_adj = function (cr)
render (cr)
-- The arrow
cr.move_to (-1, 1)
cr.line_to (1, -1)
cr.stroke ()
cr.save ()
cr.translate (1.5, -1.5)
cr.rotate (math.atan2 (1, 1))
cr.move_to (0, 0)
cr.line_to (0.3, 0.8)
cr.line_to (-0.3, 0.8)
cr.close_path ()
cr.fill ()
cr.restore ()
end
local render_pot = function (cr)
render (cr)
-- The contact
cr.move_to (0, -2)
cr.line_to (2, -2)
-- The arrow
cr.move_to (0, -2)
cr.line_to (0, -1)
cr.stroke ()
cr.move_to (0, -0.5)
cr.line_to (0.3, -1.3)
cr.line_to (-0.3, -1.3)
cr.close_path ()
cr.fill ()
end
-- Register the symbol -- Register the symbol
logdiag.register ("Resistor", names, area, terminals, render) logdiag.register ("Resistor",
names, area, terminals, render)
logdiag.register ("ResistorAdjustable",
names_adj, area_adj, terminals, render_adj)
logdiag.register ("Potentiometer",
names_pot, area_pot, terminals_pot, render_pot)