Basic Elements¶
See Electrical Elements for complete class definitions for these elements.
Two-terminal¶
Two-terminal devices subclass schemdraw.elements.Element2Term
, and have leads that will be extended to make the element the desired length depending on the arguments.
All two-terminal elements define start, end, and center anchors for placing, and a few define other anchors as shown in blue in the tables below.
Some elements have optional parameters, shown in parenthesis in the table below.
Styled Elements¶
These elements change based on IEEE/U.S. vs IEC/European style configured by schemdraw.elements.style()
.
Selectable elements, such as Resistor, point to either ResistorIEEE or ResistorIEC, for example.
IEEE Style¶
IEEE style, common in the U.S., is the default, or it can be configured using
elm.style(elm.STYLE_IEEE)
IEC/European Style¶
IEC style can be enabled using
elm.style(elm.STYLE_IEC)
Resistors¶
Both styles of resistors are always available using these classes.
Capacitors and Inductors¶
Diodes¶
Pathological¶
Miscellaneous¶
Sources and Meters¶
Switches¶
Lines and Arrows¶
Single-Terminal¶
Single terminal elements are drawn about a single point, and do not move the current drawing position.
Power and Ground¶
Antennas¶
Connection Dots¶
Switches¶
The standard toggle switch is listed with other two-terminal elements above. Other switch configurations are shown here.
Single-pole double-throw¶
Two options for SPDT switches can be also be drawn with arrows by adding action=’open’ or action=’close’ parameters.
Double-pole¶
DPST and DPDT switches have a link parameter for disabling the dotted line lnking the poles.
Rotary Switch¶
The rotary switch schemdraw.elements.switches.SwitchRotary
takes several parameters, with n being the number of contacts and other parameters defining the contact placement.
DIP Switch¶
A set of switches in a dual-inline package, where can show each switch flipped up or down.
See schemdraw.elements.switches.SwitchDIP
for options.
Audio Elements¶
Speakers, Microphones, Jacks
Labels¶
The Label element can be used to add a label anywhere. The Gap is like an “invisible” element, useful for marking the voltage between output terminals.
Operational Amplifiers¶
The schemdraw.elements.opamp.Opamp
element defines several anchors for various inputs, including voltage supplies and offset nulls. Optional leads can be added using the leads parameter, with anchors exteded to the ends of the leads.
Transistors¶
Bipolar Junction Transistors¶
Field-Effect Transistors¶
“Two-Terminal” Transistors¶
Another set of transistor elements subclass schemdraw.elements.Element2Term
so they
have emitter and collector (or source and drain) leads extended to the desired length.
These can be easier to place centered between endpoints, for example.
Two-ports¶
Twoport elements share the interface defined by schemdraw.elements.twoports.ElementTwoport
, providing a set of anchors and various styling options. The terminals and box can be enabled or disabled using the terminals and box arguments. In addition, the boxfill, boxlw, and boxls provide the option to style the outline separately from other elements.
Generic¶
Transactors (ideal amplifiers)¶
Like the generic twoport, the transactors provide the option to reverse the direction of the output or current using the reverse_output argument.
Pathological¶
Custom¶
The schemdraw.elements.twoports.ElementTwoport
class can be used to define custom twoports by specifying an input_element and output_element. The bpadx, bpady, minw, unit, width can be used to tune the horizontal and vertical padding, minimum width of the elements, length of components, and width of the twoport respectively.
d += elm.ElementTwoport(input_element=elm.Inductor2(),
output_element=elm.SwitchReed(),
unit=2.5, width=2.5).anchor('center')
d += elm.ElementTwoport(input_element=elm.Lamp(),
output_element=elm.Photodiode().reverse().flip(),
width=3).anchor('center').at([7,0])
Cables¶
schemdraw.elements.cables.Coax
and schemdraw.elements.cables.Triax
cables are 2-Terminal elements that can be made with several options and anchors.
Coax parameters include length, radius, and leadlen for setting the distance between leads and the shell.
Triax parameters include length, radiusinner, radiusouter, leadlen, and shieldofststart for offseting the outer shield from the inner guard.
Transformers¶
The schemdraw.elements.xform.Transformer
element is used to create various transformers.
Anchors p1, p2, s1, and s2 are defined for all transformers.
Other anchors can be created using the taps method to add tap locations to
either side.
Here is a transformers with anchor “B” added using the tap method. Note the tap by itself does not draw anything, but defines a named anchor to connect to.
with schemdraw.Drawing() as d:
d.config(fontsize=12)
x = d.add(elm.Transformer(t1=4, t2=8)
.tap(name='B', pos=3, side='secondary'))
d += elm.Line().at(x.s1).length(d.unit/4).label('s1', 'rgt').color('blue')
d += elm.Line().at(x.s2).length(d.unit/4).label('s2', 'rgt').color('blue')
d += elm.Line().at(x.p1).length(d.unit/4).left().label('p1', 'lft').color('blue')
d += elm.Line().at(x.p2).length(d.unit/4).left().label('p2', 'lft').color('blue')
d += elm.Line().at(x.B).length(d.unit/4).right().label('B', 'rgt').color('blue')