diff options
Diffstat (limited to 'graphics/circuit_macros/doc')
-rw-r--r-- | graphics/circuit_macros/doc/Circuit_macros.pdf | bin | 1055738 -> 1059727 bytes | |||
-rw-r--r-- | graphics/circuit_macros/doc/SourcesMan.m4 | 1 | ||||
-rw-r--r-- | graphics/circuit_macros/doc/Version.tex | 2 | ||||
-rw-r--r-- | graphics/circuit_macros/doc/body.tex | 3 | ||||
-rw-r--r-- | graphics/circuit_macros/doc/defines.tex | 792 |
5 files changed, 433 insertions, 365 deletions
diff --git a/graphics/circuit_macros/doc/Circuit_macros.pdf b/graphics/circuit_macros/doc/Circuit_macros.pdf Binary files differindex e9b0b671bf..dcc3027e97 100644 --- a/graphics/circuit_macros/doc/Circuit_macros.pdf +++ b/graphics/circuit_macros/doc/Circuit_macros.pdf diff --git a/graphics/circuit_macros/doc/SourcesMan.m4 b/graphics/circuit_macros/doc/SourcesMan.m4 index 8e82b3f832..9f39d1e044 100644 --- a/graphics/circuit_macros/doc/SourcesMan.m4 +++ b/graphics/circuit_macros/doc/SourcesMan.m4 @@ -14,6 +14,7 @@ define(`NL',`; move down $1; right_') {source ; move ; "`source'" ljust} NL {source(,I) ; move ; "`source(,I)'" ljust} NL {source(,i) ; move ; "`source(,i)'" ljust} NL + {source(,ii) ; move ; "`source(,ii)'" ljust} NL {source(,V) ; move ; "`source(,V)'" ljust} NL {source(,v) ; move ; "`source(,v)'" ljust} NL {source(,S) ; move ; "`source(,S)'" ljust} NL diff --git a/graphics/circuit_macros/doc/Version.tex b/graphics/circuit_macros/doc/Version.tex index 73fb7dd577..1f7ee14733 100644 --- a/graphics/circuit_macros/doc/Version.tex +++ b/graphics/circuit_macros/doc/Version.tex @@ -1 +1 @@ -Version 10.3 +Version 10.4 diff --git a/graphics/circuit_macros/doc/body.tex b/graphics/circuit_macros/doc/body.tex index e229888d91..296ba4e295 100644 --- a/graphics/circuit_macros/doc/body.tex +++ b/graphics/circuit_macros/doc/body.tex @@ -946,6 +946,7 @@ and for power-system diagrams, macros and {\tt Ysymbol(at {\sl position, keys,} U|D|L|R|{\sl degrees})}, +\enlargethispage{\baselineskip} Diodes are shown in \FR{Diodes}. \begin{figure}[H] \input DiodesMan @@ -2481,7 +2482,7 @@ For the slash symbol, the {\tt sl\_slash} keys are valid. The fourth argument is like the third but controls a breaker or slash symbol in the output -lead. The example, {\tt sl\_transformer(right\_ elen\_ from A,,C,C)} +lead. The example, {\tt sl\_transformer(right\_ elen\_ from A,{},C,C)} draws a transformer with closed breakers in the input and output leads. Exception are the {\tt sl\_drawout()} element which does not have breakers diff --git a/graphics/circuit_macros/doc/defines.tex b/graphics/circuit_macros/doc/defines.tex index cf87a5b02f..7f3ceea1b3 100644 --- a/graphics/circuit_macros/doc/defines.tex +++ b/graphics/circuit_macros/doc/defines.tex @@ -187,14 +187,14 @@ {cct} {line (dotted, dashed permissible) with centred arrowhead \seesect{Twoterminal:}} +\macrodef{assign3}{assign3}{({\sl var name,var name,var name,arg4,arg5,arg6})} + {gen} + {Assigns \$1 = arg4 if \$1 is nonblank; similarly \$2 = arg5 and \$3 = arg6} \macrodef{AutoGate}{AutoGate}{} {log} {Draw the tree for a gate as in the {\tt Autologix} macro. No inputs or external connections are drawn. The names of the internal gate inputs are stacked in {\tt `AutoInNames'}} -\macrodef{assign3}{assign3}{({\sl var name,var name,var name,arg4,arg5,arg6})} - {gen} - {Assigns \$1 = arg4 if \$1 is nonblank; similarly \$2 = arg5 and \$3 = arg6} \macrodef{Autologix}{Autologix}% {({\sl Boolean function sequence},% [N[oconnect]][L[eftinputs]][R][V][M][;offset={\sl value}])} @@ -239,14 +239,6 @@ {\tt Autologix(Xor([PN],And(x,y),And(x,y)),LRV)}} \Letter{B}% -\macrodef{b\_}{b_}{} - {gen} - {blue color value} -\macrodef{b\_current}{b_current}{({\sl label},{\sl pos},In|Out,Start|End,{\sl - frac})} - {cct} - {labelled branch-current arrow to {\sl frac} between branch end and body - \seesect{Branchcurrent:}} \macrodef{basename\_}{basename_}{({\sl string sequence, separator})} {gen} {Extract the rightmost name from a sequence of names separated by arg2 @@ -255,6 +247,14 @@ {cct} {n-cell battery: default 1 cell, R=reversed polarity\seesect{Twoterminal:}} +\macrodef{b\_}{b_}{} + {gen} + {blue color value} +\macrodef{b\_current}{b_current}{({\sl label},{\sl pos},In|Out,Start|End,{\sl + frac})} + {cct} + {labelled branch-current arrow to {\sl frac} between branch end and body + \seesect{Branchcurrent:}} \macrodef{beginshade}{beginshade}{({\sl gray value})} {gen} {begin gray shading, see {\tt shade} @@ -270,10 +270,10 @@ {gen} {Position {\sl distance} from {\sl Pos1} toward {\sl Pos2}. If the fourth arg is {\tt R} then from {\sl Pos2} toward {\sl Pos1}.} -\macrodef{bi\_tr}{bi_tr}{(\linespec,L|R,P,E)} - {cct} - {left or right, N- or P-type bipolar transistor, without or with envelope - \seesect{Semiconductors:}} +\macrodef{binary\_}{binary_}{($n$, [$m$])} + {gen} + {binary representation of $n,$ left padded to $m$ digits if the second + argument is nonblank} \macrodef{bi\_trans}{bi_trans}{(\linespec,L|R,{\sl chars},E)} {cct} { bipolar transistor, core left or right; chars: @@ -291,15 +291,10 @@ {\tt [u]T}=thyristor trigger line; arg 4 = E: envelope \seesect{Semiconductors:}} -\macrodef{binary\_}{binary_}{($n$, [$m$])} - {gen} - {binary representation of $n,$ left padded to $m$ digits if the second - argument is nonblank} -\macrodef{BOX\_gate}{BOX_gate}{({\sl inputs,output,swid,sht,label})} - {log} - {output=[{\tt P|N}], inputs=[{\tt P|N}]$\ldots$, sizes swid and sht - in {\tt L\_unit}s (default {\tt AND\_wd} = 7) - \seesect{Logicgates:}} +\macrodef{bi\_tr}{bi_tr}{(\linespec,L|R,P,E)} + {cct} + {left or right, N- or P-type bipolar transistor, without or with envelope + \seesect{Semiconductors:}} \macrodef{boxcoord}{boxcoord}{({\sl planar obj},{\sl x fraction},{\sl y fraction})} {gen} @@ -309,6 +304,11 @@ {evaluate, e.g.\ {\sl name}{\tt \_w} if defined, else {\sl default\/} if given, else 0 {\tt v} gives sum of {\tt d} and {\tt h} values \seesect{Interaction:}} +\macrodef{BOX\_gate}{BOX_gate}{({\sl inputs,output,swid,sht,label})} + {log} + {output=[{\tt P|N}], inputs=[{\tt P|N}]$\ldots$, sizes swid and sht + in {\tt L\_unit}s (default {\tt AND\_wd} = 7) + \seesect{Logicgates:}} \macrodef{bp\_\_}{bp__}{} {gen} {big-point-size factor, in scaled inches, ({\tt *scale/72})} @@ -316,12 +316,6 @@ {cct} {pushbutton switch R=right orientation (default L=left); chars: O= normally open, C=normally closed } -\macrodef{BUF\_ht}{BUF_ht}{} - {log} - {basic buffer gate height in {\tt L\_unit}s} -\macrodef{BUF\_wd}{BUF_wd}{} - {log} - {basic buffer gate width in {\tt L\_unit}s} \macrodef{BUFFER\_gate}{BUFFER_gate}{(\linespec, [N|B], {\sl wid, ht,} [N|P]\char42, [N|P]\char42, [N|P]\char42)} {log} @@ -339,14 +333,17 @@ Args 4-6 allow alternative definitions of respective {\tt In, NE,} and {\tt SE} argument sequences } +\macrodef{BUF\_ht}{BUF_ht}{} + {log} + {basic buffer gate height in {\tt L\_unit}s} +\macrodef{BUF\_wd}{BUF_wd}{} + {log} + {basic buffer gate width in {\tt L\_unit}s} \macrodef{buzzer}{buzzer}{( U|D|L|R|{\sl degrees, size,}[C])} {cct} {buzzer, {\sl In1} to {\sl In3} defined, C=curved \seesect{Composite:}} \Letter{C}% -\macrodef{c\_fet}{c_fet}{(\linespec,R,P)} - {cct} - {left or right, plain or negated pin simplified MOSFET} \macrodef{capacitor}{capacitor}{(\linespec,{\sl chars},R, {\sl height}, {\sl wid})} {cct} @@ -385,6 +382,9 @@ minimum long dash len, short dash len, gap len}} {gen} {Technical drawing centerline} +\macrodef{c\_fet}{c_fet}{(\linespec,R,P)} + {cct} + {left or right, plain or negated pin simplified MOSFET} \macrodef{Cintersect}{Cintersect}{({\sl Pos1, Pos2, rad1, rad2,} [R])} {gen} {Upper (lower if arg5={\tt R}) intersection of circles at @@ -457,14 +457,14 @@ {\sl phase} )} {gen} {function $a\times\cos(\omega t + \phi)$ } +\macrodef{cross3D}{cross3D}{({\sl x1,y1,z1,x2,y2,z2})} + {3D} + {cross product of two triples} \macrodef{cross}{cross}{(at {\sl location, size}|{\sl keys})} {gen} {Plots a small cross. The possible key-value pairs are: {\tt size={\sl expr};}, {\tt line={\sl attributes};} } -\macrodef{cross3D}{cross3D}{({\sl x1,y1,z1,x2,y2,z2})} - {3D} - {cross product of two triples} \macrodef{crossover}{crossover}{(\linespec, [L|R][:{\sl line attributes}], Line1, Line2, .{.}.)} {cct} @@ -476,10 +476,6 @@ {cct} {controlled-source width} \Letter{D}% -\macrodef{d\_fet}{d_fet}{(\linespec,R,P,E|S)} - {cct} - {left or right, N or P depletion MOSFET, envelope or simplified - \seesect{Semiconductors:}} \macrodef{dabove}{dabove}{(at {\sl location})} {darrow} {above (displaced dlinewid/2)} @@ -488,18 +484,6 @@ {DAC with defined width, height, and number of inputs {\tt In$i$}, top terminals {\tt N$i$}, ouputs {\tt Out$i$}, and bottom terminals~{\tt S$i$} \seesect{Logicgates:}} -\macrodef{darc}{darc}{({\sl center position}, - {\sl radius}, {\sl start radians}, {\sl end radians}, {\sl dline thickness}, - {\sl arrowhead wid}, {\sl arrowhead ht}, - {\sl terminals})} - {darrow} - {See also {\tt Darc}. - CCW arc in {\tt dline} style, with closed ends or (dpic only) arrowheads. - Permissible {\sl terminals}: - {\sl x}{\tt -}, - {\tt -}{\sl x}, {\sl x}{\tt -}{\sl x}, {\tt ->}, {\sl x}{\tt ->}, - {\tt <-}, {\tt <-}{\sl x}, {\tt <->} - where {\sl x} means {\tt |} or (half-thickness line) {\tt !}.} \macrodef{Darc}{Darc}{({\sl center position}, {\sl radius}, {\sl start radians}, {\sl end radians}, {\sl parameters})} @@ -512,6 +496,20 @@ {\tt -}{\sl x}, {\sl x}{\tt -}{\sl x}, {\tt ->}, {\sl x}{\tt ->}, {\tt <-}, {\tt <-}{\sl x}, {\tt <->} where {\sl x} means {\tt |} or (half-thickness line) {\tt !}.} +\macrodef{darc}{darc}{({\sl center position}, + {\sl radius}, {\sl start radians}, {\sl end radians}, {\sl dline thickness}, + {\sl arrowhead wid}, {\sl arrowhead ht}, + {\sl end symbols}, {\sl outline attributes}, {\sl inner attributes})} + {darrow} + {See also {\tt Darc}. + CCW arc in {\tt dline} style, with closed ends or (dpic only) arrowheads. + Permissible {\sl end symbols}: + {\sl x}{\tt -}, + {\tt -}{\sl x}, {\sl x}{\tt -}{\sl x}, {\tt ->}, {\sl x}{\tt ->}, + {\tt <-}, {\tt <-}{\sl x}, {\tt <->} + where {\sl x} means {\tt |} or (half-thickness line) {\tt !}. + An inner arc is drawn overlaying the outer arc. + Example: {\tt darc(,{,},{,},{,},{,}outlined "red",outlined "yellow")}.} \macrodef{Darlington}{Darlington}{(L|R,{\sl chars})} {cct} {Composite Darlington pair Q1 and Q2 with internal locations E, B, C; @@ -524,33 +522,44 @@ R2= Q2 bias resistor; E1= ebox, Z= zener bias diode \seesect{Semiconductors:}} -\macrodef{darrow\_init}{darrow_init}{} +\macrodef{darrow}{darrow}{(\linespec, + t,t,{\sl width},{\sl arrowhd wd},{\sl arrowhd ht},{\sl parameters}, + {\sl color attributes})} {darrow} - {initialize darrow drawing parameters (reads {\tt darrow.m4})} + {See also {\tt Darrow}. + Double arrow, truncated at beginning (arg2={\tt t}) or + end (arg3={\tt t}), specified sizes, + with arrowhead and optional closed stem. The parameters (arg7) are + {\tt {\sl x}-} or {\tt ->} or {\tt {\sl x}->} or {\tt <-} or {\tt <-{\sl x}} + or {\tt <->} where {\sl x} is {\tt |} or {\tt !}. + The {\tt !-} or {\tt -!} parameters close + the stem with half-thickness lines to simplify butting to other objects. + The color attributes are, e.g., + {\tt outlined "{\sl color}" shaded "{\sl color}"}. + Example: + {\tt linethick=5; darrow(down\_\ 2,{,},0.5,0.75,0.75,|,outlined "red")}. } \macrodef{Darrow}{Darrow}{(\linespec, {\sl parameters})} {darrow} {Wrapper for {\tt darrow}. Semicolon-separated {\sl parameters}: - {\tt S}, {\tt E} truncate at start or end by dline thickness/2; - {\tt thick=}{\sl val} (total thicknes, ie width); - {\tt wid=}{\sl val} (arrowhead width); - {\tt ht=}{\sl val} (arrowhead height); + {\tt S;}, {\tt E;} truncate at start or end by dline thickness/2; + {\tt thick=}{\sl val}; (total thicknes, ie width); + {\tt wid=}{\sl val}; (arrowhead width); + {\tt ht=}{\sl val}; (arrowhead height); {\tt ends=} {\sl x}{\tt -}{\sl x} or {\tt -}{\sl x} or {\sl x}{\tt -} where {\sl x} is {\tt !} (half-width line) - or {\tt |} (full-width line).} -\macrodef{darrow}{darrow}{(\linespec, - t,t,{\sl width},{\sl arrowhd wd},{\sl arrowhd ht},{\sl parameters})} + or {\tt |} (full-width line). + Examples: + {\tt define(`dfillcolor',`1,0.85,0') linethick=5; + rgbdraw(1,0,0,Darrow(down\_\ 2,thick=0.5; wid=0.75; ht=0.75; ends=|->))}, + which is equivalent to + {\tt Darrow(down\_\ 2,thick=0.5; wid=0.75; ht=0.75; \ + ends=|->; outline="red")}. } +\macrodef{darrow\_init}{darrow_init}{} {darrow} - {See also {\tt Darrow}. - double arrow, truncated at beginning or end, specified sizes, - with arrowhead or closed stem. - {\sl parameters=} - {\tt {\sl x}-} or {\tt ->} or {\tt {\sl x}->} or {\tt <-} or {\tt <-{\sl x}} - or {\tt <->} where {\sl x} is {\tt |} or {\tt !}. - The {\tt !-} or {\tt -!} parameters close - the stem with half-thickness lines to simplify butting to other objects. } + {Initialize darrow drawing parameters (reads library file {\tt darrow.m4})} \macrodef{dashline}{dashline}{(\linespec,{\sl thickness}|{\sl color}|<->, {\sl dash len, gap len},G)} {gen} @@ -567,14 +576,14 @@ {A DC symbol (a dashed line below a solid line). The current drawing direction is default, otherwise Up, Down, Left, Right, or at {\sl degrees} slant; e.g., - {\tt source(up\_ dimen\_); $\lbrace$ DCsymbol(at last [],,,R) $\rbrace$} + {\tt source(up\_ dimen\_); $\lbrace$ DCsymbol(at last [],{},{},R) $\rbrace$} \seesect{Twoterminal:} } -\macrodef{delay\_rad\_}{delay_rad_}{} - {cct} - {delay radius} \macrodef{delay}{delay}{(\linespec,{\sl size})} {cct} {delay element\seesect{Twoterminal:}} +\macrodef{delay\_rad\_}{delay_rad_}{} + {cct} + {delay radius} \macrodef{deleminit\_}{deleminit_}{} {darrow} {sets drawing direction for dlines} @@ -599,18 +608,26 @@ {\tt S[{\sl n}]} puts the Sel inputs at the bottom (default) {\tt OE} ({\tt N=}negated) {\tt OE} pin \seesect{Logicgates:}} -\macrodef{dend}{dend}{(at {\sl location})} +\macrodef{dend}{dend}{(at {\sl location}, + {\sl line thickness}{\tt |}{\sl attributes})} {darrow} - {close (or start) double line} + {Close (or start) double line (Note specifying {\tt dends=} for {\tt Dline} + is a similar function. Arg2 is dline thickness or atributes: + {\tt thick={\sl expression};} (dline thickness in drawing units) + {\tt outline=({\sl r,g,b})|"{\sl color}";}} +\macrodef{d\_fet}{d_fet}{(\linespec,R,P,E|S)} + {cct} + {left or right, N or P depletion MOSFET, envelope or simplified + \seesect{Semiconductors:}} \macrodef{dfillcolor}{dfillcolor}{} {darrow} {dline fill color (default white)} -\macrodef{diff\_}{diff_}{({\sl a},{\sl b})} - {gen} - {difference function} \macrodef{diff3D}{diff3D}{({\sl x1,y1,z1,x2,y2,z2})} {3D} {difference of two triples} +\macrodef{diff\_}{diff_}{({\sl a},{\sl b})} + {gen} + {difference function} \macrodef{dimen\_}{dimen_}{} {cct} {size parameter for scaling circuit element bodies \seesect{Circuitscaling:}} @@ -671,20 +688,27 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,% line rather than the centre of the last {\tt [ ]}; L,R,A,B align labels ljust, rjust, above, or below (absolute) respectively \seesect{Labels:}} -\macrodef{dleft}{dleft}{} +\macrodef{dleft}{dleft}{({\tt at} {\sl position}, {\sl line thickness}, + {\sl attributes})} {darrow} - {double line left turn} + {Double line left turn 90 degrees. Attributes can be + {\tt outline=({\sl r, g, b})|"{\sl color}";} + {\tt innershade=({\sl r, g, b})|"{\sl color}";} + where rgb values in parentheses or a defined color is specified.} \macrodef{Dline}{Dline}{(\linespec, {\sl parameters})} {darrow} {Wrapper for {\tt dline}. - Semicolon-separated {\sl parameters}: - {\tt S}, {\tt E} truncate at start or end by dline thickness/2; - {\tt thick=}{\sl val} (total thicknes, ie width); + The semicolon-separated {\sl parameters} are: + {\tt S;}, {\tt E;} truncate at start or end by dline thickness/2; + {\tt thick={\sl val};} (total thicknes, ie width); + {\tt outline={\sl color};} (e.g., {\tt "red"} or {\tt (1,0,0)}), + {\tt innershade={\sl color};} (e.g., {\tt (0,1,1)} or {\tt "cyan"}), + {\tt name={\sl Name};}, {\tt ends=} {\sl x}{\tt -}{\sl x} or {\tt -}{\sl x} or {\sl x}{\tt -} where {\sl x} is {\tt !} (half-width line) - or {\tt |} (full-width line).} + or {\tt |;} (full-width line).} \macrodef{dline}{dline}{(\linespec,t,t,{\sl width},{\sl parameters})} {darrow} {See also {\tt Dline}. @@ -701,33 +725,37 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,% \macrodef{dljust}{dljust}{(at {\sl location})} {darrow} {ljust (displaced dlinewid/2)} -\macrodef{dn\_}{dnx}{} - {gen} - {down with respect to current direction} \macrodef{dna\_}{dna_}{} {cct} {internal character sequence that specifies which subcomponents are drawn} +\macrodef{dn\_}{dnx}{} + {gen} + {down with respect to current direction} %\macrodef{dnm\_}{dnm_}{} % {cct} % {similar to dna\_} +\macrodef{dot3D}{dot3D}{({\sl x1,y1,z1,x2,y2,z2})} + {3D} + {dot product of two triples} \macrodef{dot}{dot}{(at {\sl location},{\sl radius}|{\sl keys},{\sl fill})} {gen} {Filled circle (third arg= gray value: 0=black, 1=white). The possible key-value pairs are: {\tt rad={\sl expr};} and {\tt circle={\sl attributes};} } -\macrodef{dot3D}{dot3D}{({\sl x1,y1,z1,x2,y2,z2})} - {3D} - {dot product of two triples} \macrodef{dotrad\_}{dotrad_}{} {gen} {dot radius} \macrodef{down\_}{down_}{} {gen} {sets current direction to down \seesect{Placing:}} -\macrodef{dright}{dright}{} +\macrodef{dright}{dright}{({\tt at} {\sl position}, {\sl line thickness}, + {\sl attributes})} {darrow} - {double arrow right turn} + {Double line right turn 90 degrees. Attributes can be + {\tt outline=({\sl r, g, b})|"{\sl color}";} + {\tt innershade=({\sl r, g, b})|"{\sl color}";} + where rgb values in parentheses or a defined color is specified.} \macrodef{drjust}{drjust}{(at {\sl location})} {darrow} {rjust (displaced dlinewid/2)} @@ -763,28 +791,30 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,% Y = pull switch, Z = turn switch \seesect{Twoterminal:}} -\macrodef{dtee}{dtee}{([L|R])} +\macrodef{dtee}{dtee}{([L|R], {\sl line thickness}, {\sl attributes})} {darrow} - {double arrow tee junction with tail to left, - right, or (default) back along current direction } + {Double arrow tee junction with tail to left, + right, or (default) back along current direction, leaving the current + location at the tee centre; e.g., + {\tt dline(right\_,{,}t); dtee(R); + \{ darrow(down\_,t) \}; darrow(right\_,t)}. + The attributes are + {\tt thick={\sl expr};} (line thickness in drawing units), + {\tt innershade=({\sl r,g,b})|"{\sl color}";} + {\tt outline=({\sl r,g,b})|"{\sl color}";}. } \macrodef{dtor\_}{dtor_}{} {gen} {degrees to radians conversion constant} -\macrodef{dturn}{dturn}{({\sl degrees ccw})} +\macrodef{dturn}{dturn}{({\sl degrees ccw},{\sl line thickness}, + {\sl attributes})} {darrow} - {turn dline arg1 degrees left (ccw)} + {Tturn dline arg1 degrees left (ccw). + Attributes can be + {\tt outline=({\sl r, g, b})|"{\sl color}";} + {\tt innershade=({\sl r, g, b})|"{\sl color}";} + where rgb values in parentheses or a defined color is specified.} +% \Letter{E}% -\macrodef{E\_\_}{E__}{} - {gen} - {the constant $e$} -\macrodef{e\_}{e_}{} - {gen} - {.e relative to current direction} -\macrodef{e\_fet}{e_fet}{(\linespec,R,P,E|S)} - {cct} - {left or right, N or P enhancement MOSFET, normal - or simplified, without or with envelope - \seesect{Semiconductors:}} \macrodef{earphone}{earphone}{( U|D|L|R|{\sl degrees, size})} {cct} {earphone, {\sl In1} to {\sl In3} defined @@ -800,6 +830,17 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,% terms. The possible keys are {\tt lgth, wdth, text, box}, e.g., {\tt lgth=0.2; text=\char34{}XX\char34; box=shaded \char34{}green\char34}\seesect{Twoterminal:}} +\macrodef{E\_\_}{E__}{} + {gen} + {the constant $e$} +\macrodef{e\_}{e_}{} + {gen} + {.e relative to current direction} +\macrodef{e\_fet}{e_fet}{(\linespec,R,P,E|S)} + {cct} + {left or right, N or P enhancement MOSFET, normal + or simplified, without or with envelope + \seesect{Semiconductors:}} \macrodef{elchop}{elchop}{({\sl Name1,Name2})} {gen} {{\tt chop} for ellipses: evaluates to {\tt chop} $r$ where $r$ is @@ -812,6 +853,13 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,% \macrodef{elen\_}{elen_}{} {cct} {default element length} +\macrodef{ellipsearc}{ellipsearc}{({\sl width, height, startangle, endangle, + rotangle, {\tt cw|ccw}, line attributes})} + {gen} + {Arc of a rotated ellipse in a {\tt [ ]} block. Angles are in radians. + Arg5 is the angle of the width axis; + e.g., {\tt ellipsearc(2,1,0,pi\_,pi\_/4,{},dashed ->)}. Internal locations + are {\tt Start, End, C} (for centre). } \macrodef{em\_arrows}{em_arrows}{({\sl type}|{\sl keys,angle,length})} {cct} { Radiation arrows: {\sl type} {\tt N|I|E [D|T]} @@ -832,6 +880,7 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,% \macrodef{expe}{expe}{} {gen} {exponential, base $e$} +% \Letter{F}% \macrodef{f\_box}{f_box}{({\sl boxspecs},{\sl text},{\sl expr1},$\cdots$)} {gen} @@ -860,11 +909,6 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,% \macrodef{fitcurve}{fitcurve}{(V,n,[e.g. dotted],m (default 0))} {gen} {Draw a spline through positions V[m], $ldots$ V[n]: Works only with dpic.} -\macrodef{FlipFlop}{FlipFlop}{(D|T|RS|JK,{\sl label},{\sl boxspec},% - {\sl pinlength})} - {log} - {flip-flops, - {\sl boxspec}=e.g.\ ht x wid y \seesect{Logicgates:}} \macrodef{FlipFlop6}{FlipFlop6}{({\sl label},{\sl spec},{\sl boxspec})} {log} {{\em This macro (6-input flip-flops) @@ -873,6 +917,11 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,% {\sl spec}={\tt [[n]NQ][[n]Q][[n]CK][[n]PR][lb]} {\tt [[n]CLR][[n]S][[n].|D|T|R]} to include and negate pins, {\tt lb} to print labels } +\macrodef{FlipFlop}{FlipFlop}{(D|T|RS|JK,{\sl label},{\sl boxspec},% + {\sl pinlength})} + {log} + {flip-flops, + {\sl boxspec}=e.g.\ ht x wid y \seesect{Logicgates:}} \macrodef{FlipFlopJK}{FlipFlopJK}{({\sl label}, {\sl spec},{\sl boxspec})} {log} {{\em This macro (JK flip-flop) @@ -903,9 +952,6 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,% {\tt L}=active low out; {\tt M}=active low in; {\tt E}=edge trigger \seesect{Logicgates:}. Optional arg 7 is the length of pins} -\macrodef{for\_}{for_}{({\sl start},{\sl end},{\sl increment},`{\sl actions}')} - {gen} - {integer for loop with index variable {\tt m4x} \seesect{Looping:}} \macrodef{foreach\_}{foreach_}{(`{\sl variable}',{\sl actions},{\sl value1, value2, $\ldots$})} {gen} @@ -913,6 +959,9 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,% Repeat {\sl actions} with {\sl variable} set successively to {\sl value1, value2, $\ldots$}, setting macro {\tt m4Lx} to 1, 2, $\ldots$, terminating if {\sl variable} is nul} +\macrodef{for\_}{for_}{({\sl start},{\sl end},{\sl increment},`{\sl actions}')} + {gen} + {integer for loop with index variable {\tt m4x} \seesect{Looping:}} \macrodef{FTcap}{FTcap}{({\sl chars})} {cct} {Feed-through capacitor; example of a composite element derived from @@ -923,17 +972,8 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,% {cct} {fuse symbol, type$=$ {\tt A|B|C|D|S|HB|HC|SB} or {\tt dA=D}\seesect{Twoterminal:}} +% \Letter{G}% -\macrodef{g\_}{g_}{} - {gen} - {green color value} -\macrodef{G\_hht}{G_hht}{} - {log} - {gate half-height in {\tt L\_unit}s} -\macrodef{g\_fet}{g_fet}{(\linespec,R,P,{\sl shade spec})} - {cct} - {left or right, N or P graphene FET, without or with shading - \seesect{Semiconductors:}} \macrodef{gap}{gap}{(\linespec,{\sl fill},A)} {cct} {gap with (filled) dots, A=chopped arrow between dots\seesect{Twoterminal:}} @@ -941,6 +981,16 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,% {gen} {initialize environment for general diagrams (customizable, reads {\tt libgen.m4})} +\macrodef{g\_fet}{g_fet}{(\linespec,R,P,{\sl shade spec})} + {cct} + {left or right, N or P graphene FET, without or with shading + \seesect{Semiconductors:}} +\macrodef{g\_}{g_}{} + {gen} + {green color value} +\macrodef{G\_hht}{G_hht}{} + {log} + {gate half-height in {\tt L\_unit}s} \macrodef{glabel\_}{glabel_}{} {cct} {internal general labeller} @@ -978,10 +1028,12 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,% {Gyrator two-port wrapper for {\tt nport}, {\tt N} omits pin dots; {\tt V} gives a vertical orientation \seesect{Composite:}} +% \Letter{H}% -\macrodef{H\_ht}{H_ht}{} - {log} - {hysteresis symbol dimension in {\tt L\_unit}s} +\macrodef{hatchbox}{hatchbox}{({\sl boxspec,hashsep,hatchspec})} + {gen} + {Manhattan box with 45 degree hatching, e.g., + {\tt hatchbox(outlined "blue",{},dashed outlined "green" thick 0.4)}} \macrodef{Header}{Header}{(1|2,{\sl rows,wid,ht,box attributes})} {log} {Header block with 1 or 2 columns and square Pin 1: @@ -995,17 +1047,6 @@ n|e|s|w,{\sl length})} {log} {General pin for {\tt Header} macro; arg 4 specifies pin direction with respect to the current drawing direction)} -\macrodef{hatchbox}{hatchbox}{({\sl boxspec,hashsep,hatchspec})} - {gen} - {Manhattan box with 45 degree hatching, e.g., - {\tt hatchbox(outlined "blue",,dashed outlined "green" thick 0.4)}} -\macrodef{heater}{heater}{({\sl linespec, ndivisions|keys, wid, ht, - boxspec}|[E[R][T]])} - {cct} - {Heater element\seesect{Twoterminal:}. If arg 5 contains {\tt E,} - draws an {\tt heatere({\sl linespec, keys,} [R][T]),} - otherwise a - {\tt heatert({\sl linespec, nparts, wid, ht, boxspec})}} \macrodef{heatere}{heatere}{({\sl linespec, keys,} [R][T])} {cct} {Heater element with curved sides\seesect{Twoterminal:}. @@ -1016,6 +1057,13 @@ n|e|s|w,{\sl length})} {\tt wdth={\sl expr};} (default {\tt lgth*2/5}); {\tt cycles={\sl expr};} {\tt line={\sl attributes};} (e.g., {\tt dotted, dashed, outlined})} +\macrodef{heater}{heater}{({\sl linespec, ndivisions|keys, wid, ht, + boxspec}|[E[R][T]])} + {cct} + {Heater element\seesect{Twoterminal:}. If arg 5 contains {\tt E,} + draws an {\tt heatere({\sl linespec, keys,} [R][T]),} + otherwise a + {\tt heatert({\sl linespec, nparts, wid, ht, boxspec})}} \macrodef{heatert}{heatert}{({\sl linespec, nparts|keys, wid, ht, boxspec})} {cct} {Two-terminal rectangular heater element\seesect{Twoterminal:}. @@ -1026,13 +1074,16 @@ n|e|s|w,{\sl length})} {\tt box={\sl body attributes};} (e.g., {\tt dotted, dashed, outlined, shaded}). Args 3--5 are unused if any key is given} -\macrodef{hex\_digit}{hex_digit}{($n$)} - {gen} - {hexadecimal digit for $0 \leq n < 16$} \macrodef{hexadecimal\_}{hexadecimal_}{($n$, [$m$])} {gen} {hexadecimal representation of $n,$ left padded to $m$ digits if the second argument is nonblank} +\macrodef{hex\_digit}{hex_digit}{($n$)} + {gen} + {hexadecimal digit for $0 \leq n < 16$} +\macrodef{H\_ht}{H_ht}{} + {log} + {hysteresis symbol dimension in {\tt L\_unit}s} \macrodef{hlth}{hlth}{} {gen} {current line half thickness in drawing units} @@ -1042,6 +1093,7 @@ n|e|s|w,{\sl length})} \macrodef{ht\_}{ht_}{} {gen} {height relative to current direction} +% \Letter{I}% \macrodef{ifdpic}{ifdpic}{({\sl if true},{\sl if false})} {gen} @@ -1086,9 +1138,6 @@ n|e|s|w,{\sl length})} {cct} {left or right IGBT, L=alternate gate type, D=parallel diode, dD=dotted connections } -\macrodef{in\_\_}{in__}{} - {gen} - {absolute inches} \macrodef{inductor}{inductor}{(\linespec, W|L, {\sl cycles}, M[n]|P[n]|K[n], {\sl loop wid})} {cct} @@ -1099,12 +1148,12 @@ n|e|s|w,{\sl length})} {\sl M4Core1, M4Core2,} $\ldots$; arg5: loop width (default L,W: {\tt dimen\_}/5; other: {\tt dimen\_}/8) \seesect{Twoterminal:}} +\macrodef{in\_\_}{in__}{} + {gen} + {absolute inches} \macrodef{inner\_prod}{inner_prod}{({\sl linear obj},{\sl linear obj})} {gen} {inner product of (x,y) dimensions of two linear objects} -\macrodef{Int\_}{Int_}{} - {gen} - {corrected (old) gpic $int()$ function} \macrodef{integrator}{integrator}{(\linespec,{\sl size})} {cct} {integrating amplifier\seesect{Twoterminal:}} @@ -1115,23 +1164,27 @@ n|e|s|w,{\sl length})} \macrodef{Intersect\_}{Intersect_}{({\sl Name1},{\sl Name2})} {gen} {intersection of two named lines} +\macrodef{Int\_}{Int_}{} + {gen} + {corrected (old) gpic $int()$ function} \macrodef{IOdefs}{IOdefs}{(\linespec,{\sl label},[P|N]*,L|R) } {log} {Define locations {\sl label}{\tt 1}, $\ldots$ {\sl label}{\tt n} along the line; {\tt P}= label only; {\tt N}=with {\tt NOT\_circle}; {\tt R}=circle to right of current direction } +% \Letter{J}% -\macrodef{j\_fet}{j_fet}{(\linespec,L|R,P,E)} - {cct} - {left or right, N or P JFET, without or with envelope - \seesect{Semiconductors:}} \macrodef{jack}{jack}{(U|D|L|R|{\sl degrees},{\sl chars})} {cct} {arg1: drawing direction; string arg2: {\tt R}=right orientation, one or more {\tt L[M][B]} for L and auxiliary contacts with make or break points; {\tt S[M][B]} for S and auxiliary contacts \seesect{Composite:}} +\macrodef{j\_fet}{j_fet}{(\linespec,L|R,P,E)} + {cct} + {left or right, N or P JFET, without or with envelope + \seesect{Semiconductors:}} \macrodef{jumper}{jumper}{({\sl linespec, chars}|{\sl keys})} {cct} { Two-terminal solder jumper with named body parts. @@ -1147,19 +1200,22 @@ n|e|s|w,{\sl length})} {\tt wdth=}{\sl expr}; {\tt name=}{\sl chars} (the body name)% \seesect{Twoterminal:}} +% \Letter{K}% \macrodef{KelvinR}{KelvinR}{({\sl cycles},[R],{\sl cycle wid})} {cct} {IEEE resistor in a {\tt [ ]} block with Kelvin taps {\sl T1} and {\sl T2} \seesect{Composite:}} +% \Letter{L}% -\macrodef{L\_unit}{L_unit}{} - {log} - {logic-element grid size} \macrodef{lamp}{lamp}{(\linespec, [R][T])} {cct} {Two-terminal incandescent lamp. {\tt T} truncates leads to the body width. \seesect{Twoterminal:}} +\macrodef{langle}{langle}{({\sl Start, End})} + {gen} + {Angle in radians from horizontal of the line from {\sl Start} + to {\sl End}.} \macrodef{larrow}{larrow}{({\sl label},{\tt ->|<-},{\sl dist})} {cct} {arrow {\sl dist} to left of last-drawn 2-terminal element @@ -1177,13 +1233,13 @@ n|e|s|w,{\sl length})} \macrodef{left\_}{left_}{} {gen} {left with respect to current direction \seesect{Placing:}} -\macrodef{length3D}{length3D}{(x,y,z)} - {3D} - {Euclidean length of triple x,y,z} \macrodef{LEintersect}{LEintersect}{({\sl line name, Centre, ellipse wid, ellipse ht}, [R])} {gen} { First (second if arg5 is R) intersection of a line with an ellipse} +\macrodef{length3D}{length3D}{(x,y,z)} + {3D} + {Euclidean length of triple x,y,z} \macrodef{LEtangent}{LEtangent}{({\sl Pos1, Centre, ellips wid, ellipse ht} [R])} {gen} @@ -1218,13 +1274,13 @@ n|e|s|w,{\sl length})} {gen} {the angle of a line or move from {\tt .start} to {\tt .end} of a linear object (in degrees if arg2={\tt d})} +\macrodef{linethick\_}{linethick_}{({\sl number})} + {gen} + {set line thickness in points} \macrodef{lin\_leng}{lin_leng}{({\sl line-reference})} {gen} {length of a line, equivalent to {\sl line-reference}{\tt .len} with dpic} -\macrodef{linethick\_}{linethick_}{({\sl number})} - {gen} - {set line thickness in points} \macrodef{ljust\_}{ljust_}{} {gen} {ljust with respect to current direction} @@ -1243,44 +1299,48 @@ n|e|s|w,{\sl length})} \macrodef{loc\_}{loc_}{({\sl x}, {\sl y})} {gen} {location adjusted for current direction} -\macrodef{log\_init}{log_init}{} - {log} - {initialize environment for logic diagrams - (customizable, reads {\tt liblog.m4})} \macrodef{log10E\_}{log10E_}{} {gen} {constant $\log_{10}(e)$} \macrodef{loge}{loge}{} {gen} {logarithm, base $e$} +\macrodef{log\_init}{log_init}{} + {log} + {initialize environment for logic diagrams + (customizable, reads {\tt liblog.m4})} \macrodef{Loopover\_}{Loopover_}{(`{\sl variable}',{\sl actions},{\sl value1, value2, $\ldots$})} {gen} {Repeat {\sl actions} with {\sl variable} set successively to {\sl value1, value2, $\ldots$}, setting macro {\tt m4Lx} to 1, 2, $\ldots$, terminating if {\sl variable} is nul} -\macrodef{lp\_xy}{lp_xy}{} - {log} - {coordinates used by {\tt lg\_pin}} \macrodef{lpop}{lpop}{({\sl xcoord}, {\sl ycoord}, {\sl radius}, {\sl fill}, {\sl zero ht})} {gen} {for lollipop graphs: filled circle with stem to (xcoord,zeroht)} +\macrodef{lp\_xy}{lp_xy}{} + {log} + {coordinates used by {\tt lg\_pin}} \macrodef{lswitch}{lswitch}{( \linespec, L|R, {\sl chars} )} {cct} {knife switch R=right orientation (default L=left); {\sl chars}=[O{\tt|}C][D][K][A] O=opening arrow; C=closing arrow; D=dots; K=closed switch; A=blade arrowhead \seesect{Twoterminal:}} +\macrodef{lthick}{lthick}{} + {gen} + {current line thickness in drawing units} \macrodef{lt\_}{lt_}{} {gen} {left with respect to current direction} \macrodef{LT\_symbol}{LT_symbol}{(U|D|L|R|{\sl degrees})} {log} {logic-gate triangle symbol} -\macrodef{lthick}{lthick}{} - {gen} - {current line thickness in drawing units} +\macrodef{L\_unit}{L_unit}{} + {log} + {logic-element grid size} +% \Letter{M}% \macrodef{m4\_arrow}{m4_arrow}{(\linespec,{\sl ht},{\sl wid})} {gen} @@ -1360,9 +1420,6 @@ n|e|s|w,{\sl length})} \macrodef{Mux\_ht}{Mux_ht}{} {cct} {Mux height parameter in {\tt L\_unit}s} -\macrodef{Mux\_wid}{Mux_wid}{} - {cct} - {Mux width parameter in {\tt L\_unit}s} \macrodef{Mux}{Mux}{({\sl n},{\sl label}, {\tt [L][B|H|X][N[{\sl n}]|S[{\sl n}]][[N]OE], {\sl wid},{\sl ht}})} {log} @@ -1373,28 +1430,23 @@ n|e|s|w,{\sl length})} at the top (i.e., to the left of the drawing direction), {\tt S[{\sl n}]} puts the Sel inputs at the bottom (default) {\tt OE} ({\tt N=}negated) {\tt OE} pin \seesect{Logicgates:}} +\macrodef{Mux\_wid}{Mux_wid}{} + {cct} + {Mux width parameter in {\tt L\_unit}s} \macrodef{Mx\_pins}{Mx_pins}{} {log} {max number of gate inputs without wings} +% \Letter{N}% -\macrodef{n\_}{n_}{} - {gen} - {.n with respect to current direction} -\macrodef{N\_diam}{N_diam}{} - {log} - {diameter of `not' circles in {\tt L\_unit}s} -\macrodef{N\_rad}{N_rad}{} - {log} - {radius of `not' circles in {\tt L\_unit}s} \macrodef{NAND\_gate}{NAND_gate}{({\sl n},N)} {log} {`nand' gate, 2 or {\sl n\/} inputs; N=negated input. Otherwise, arg1 can be a sequence of letters {\tt P|N} to define normal or negated inputs. \seesect{Logicgates:}} -\macrodef{ne\_}{ne_}{} - {gen} - {.ne with respect to current direction} +\macrodef{N\_diam}{N_diam}{} + {log} + {diameter of `not' circles in {\tt L\_unit}s} \macrodef{NeedDpicTools}{NeedDpicTools}{} {gen} {executes {\tt copy "HOMELIB\_/dpictools.pic"} if the file has @@ -1402,15 +1454,21 @@ n|e|s|w,{\sl length})} \macrodef{neg\_}{neg_}{} {gen} {unary negation} +\macrodef{ne\_}{ne_}{} + {gen} + {.ne with respect to current direction} +\macrodef{n\_}{n_}{} + {gen} + {.n with respect to current direction} +\macrodef{norator}{norator}{(\linespec,{\sl width},{\sl ht})} + {cct} + { norator two-terminal element \seesect{Twoterminal:}} \macrodef{NOR\_gate}{NOR_gate}{({\sl n},N)} {log} {`nor' gate, 2 or {\sl n\/} inputs; N=negated input. Otherwise, arg1 can be a sequence of letters {\tt P|N} to define normal or negated inputs. \seesect{Logicgates:}} -\macrodef{norator}{norator}{(\linespec,{\sl width},{\sl ht})} - {cct} - { norator two-terminal element \seesect{Twoterminal:}} \macrodef{NOT\_circle}{NOT_circle}{} {log} {`not' circle} @@ -1441,6 +1499,9 @@ nw,nn,ne,ns,space ratio,pin lgth,style, other commands})} (default 2), and arg 7 is the pin length. Set arg 8 to N to omit the dots on the port pins. Arguments 1 and 9 allow customizations \seesect{Composite:}} +\macrodef{N\_rad}{N_rad}{} + {log} + {radius of `not' circles in {\tt L\_unit}s} \macrodef{nterm}{nterm}{({\sl box spec{\tt ;}other commands, nw,nn,ne,ns,pin lgth,style, other commands})} {cct} @@ -1463,6 +1524,7 @@ nw,nn,ne,ns,pin lgth,style, other commands})} Otherwise, arg1 can be a sequence of letters {\tt P|N} to define normal or negated inputs. \seesect{Logicgates:}} +% \Letter{O}% \macrodef{opamp}{opamp}{(\linespec,{\sl label},{\sl label},{\sl size},{\sl @@ -1495,9 +1557,9 @@ label},{\sl size},{\sl \macrodef{OR\_rad}{OR_rad}{} {log} {radius of OR input face in {\tt L\_unit}s} +% \Letter{P}% -\macrodef{parallel\_}{parallel_}{(\char96{\sl -elementspec}\char39,% +\macrodef{parallel\_}{parallel_}{(\char96{\sl elementspec}\char39,% \char96{\sl elementspec}\char39 $\ldots$)} {cct} { Parallel combination of two-terminal elements in a {\tt [ @@ -1512,20 +1574,6 @@ elementspec}\char39,% element Sep={\sl val}; applies only to that branch. An element may have normal arguments but should not change the drawing direction. \seesect{Seriesandparallel:}} -%\macrodef{par\_}{par_}{({\sl element},{\sl element},{\sl separation})} -% {cct} % {two same-direction, same-length elements in parallel} -\macrodef{proximity}{proximity}{(\sl linespec)} - {cct} - {proximity detector (= {\tt consource(,P)})} -\macrodef{pc\_\_}{pc__}{} - {gen} - {absolute points} -\macrodef{pvcell}{pvcell}{({\sl linespec, width, height})} - {cct} - {PV cell} -\macrodef{px\_\_}{px__}{} - {gen} - {absolute SVG screen pixels} \macrodef{pconnex}{pconnex}{(R|L|U|D|{\sl degrees},{\sl chars})} {cct} {power connectors, arg 1: drawing direction; {\sl chars:} @@ -1533,6 +1581,19 @@ elementspec}\char39,% 3 prong, B=box, C=circle, {\tt P}= PC connector, {\tt D}= 2-pin connector, {\tt G|GC}= GB 3-pin, {\tt J}= 110V 2-pin \seesect{Composite:}} +\macrodef{pc\_\_}{pc__}{} + {gen} + {absolute points} +\macrodef{perpto}{perpto}{({\sl Pos1, Line, Point})} + {gen} + {{\sl Point} is the label for the point on {\sl Line} of the + perpendicular + from {\sl Point} to {\sl Line}.} +\macrodef{PerpTo}{PerpTo}{({\sl Pos1, Pos2, Pos3})} + {gen} + {The point between Pos2 and Pos3 of intersection of the perpendicular + to Pos1, i.e., the perpendicular projection of Pos1 onto the line + from Pos2 to Pos3.} \macrodef{pi\_}{pi_}{} {gen} {$\pi$} @@ -1546,26 +1607,12 @@ elementspec}\char39,% \macrodef{point\_}{point_}{({\sl angle})} {gen} {(radians) set direction cosines} -\macrodef{perpto}{perpto}{({\sl Pos1, Line, Point})} - {gen} - {{\sl Point} is the label for the point on {\sl Line} of the - perpendicular - from {\sl Point} to {\sl Line}.} -\macrodef{PerpTo}{PerpTo}{({\sl Pos1, Pos2, Pos3})} - {gen} - {The point between Pos2 and Pos3 of intersection of the perpendicular - to Pos1, i.e., the perpendicular projection of Pos1 onto the line - from Pos2 to Pos3.} \macrodef{Point\_}{Point_}{({\sl integer})} {gen} {sets direction cosines in degrees \seesect{Placing:}} \macrodef{polar\_}{polar_}{({\sl x},{\sl y})} {gen} {rectangular-to polar conversion} -\macrodef{langle}{langle}{({\sl Start, End})} - {gen} - {Angle in radians from horizontal of the line from {\sl Start} - to {\sl End}.} \macrodef{potentiometer}{potentiometer}{(\linespec,% {\sl cycles},{\sl fractional pos},{\sl length},$\cdots$)} {cct} {resistor with taps T1, T2, $\ldots$ @@ -1580,17 +1627,20 @@ elementspec}\char39,% {3D} {3D to 2D projection onto the plane perpendicular to the view vector with angles defined by {\tt setview({\sl azim, elev})}} +\macrodef{proximity}{proximity}{(\sl linespec)} + {cct} + {proximity detector (= {\tt consource(,P)})} \macrodef{psset\_}{psset_}{({\sl PSTricks settings})} {gen} {set PSTricks parameters} -\macrodef{pt\_\_}{pt__}{} - {gen} - {\TeX\ point-size factor, in scaled inches, ({\tt *scale/72.27})} \macrodef{PtoL}{PtoL}{({\sl position}, U|D|L|R|{\sl degrees}, {\sl length}) } {gen} {Evaluates to {\tt from {\sl position} to {\sl position} + Rect\_({\sl length, angle}) } from the polar-coordinate data in the arguments } +\macrodef{pt\_\_}{pt__}{} + {gen} + {\TeX\ point-size factor, in scaled inches, ({\tt *scale/72.27})} \macrodef{ptrans}{ptrans}{(\linespec, [R|L])} {cct} {pass transistor; {\tt L=} left orientation @@ -1613,10 +1663,14 @@ elementspec}\char39,% which must contain no semicolons and the default values contain no colons. Macro {\tt pushkey\_} is applied to each of the terms in order. \seesect{Macroarguments:}} -\Letter{R}% -\macrodef{r\_}{r_}{} +\macrodef{pvcell}{pvcell}{({\sl linespec, width, height})} + {cct} + {PV cell} +\macrodef{px\_\_}{px__}{} {gen} - {red color value} + {absolute SVG screen pixels} +% +\Letter{R}% \macrodef{rarrow}{rarrow}{({\sl label,{\tt ->|<-},{\sl dist}})} {cct} {arrow {\sl dist} to right of last-drawn 2-terminal element @@ -1633,14 +1687,6 @@ elementspec}\char39,% {Enclosed reed two-terminal contact; {\tt R}=right orientation; {\tt C}=closed contact; e.g., {\tt reed(,,dimen\_/5,shaded "lightgreen"} \seesect{Composite:}} -\macrodef{relay}{relay}{({\sl number of poles, chars})} - {cct} - {relay: n poles (default 1), {\sl chars:} {\tt O}=normally open, - {\tt C}=normally closed, {\tt P}=three position, default double - throw, {\tt L}=drawn left (default), {\tt R}=drawn right, {\tt - Th}=thermal. Argument 3={\tt [L|R]} is deprecated but works for - backward compatibility - \seesect{Composite:}} \macrodef{relaycoil}{relaycoil}{({\sl chars, wid, ht,} R|L|U|D|{\sl degrees})} {cct} @@ -1654,6 +1700,14 @@ degrees})} PO}=polarized; {\tt RM}=remanent; {\tt RH}=remanent; {\tt TH}=thermal; {\tt EL}=electronic \seesect{Composite:}} +\macrodef{relay}{relay}{({\sl number of poles, chars})} + {cct} + {relay: n poles (default 1), {\sl chars:} {\tt O}=normally open, + {\tt C}=normally closed, {\tt P}=three position, default double + throw, {\tt L}=drawn left (default), {\tt R}=drawn right, {\tt + Th}=thermal. Argument 3={\tt [L|R]} is deprecated but works for + backward compatibility + \seesect{Composite:}} \macrodef{resetdir\_}{resetdir_)}{} {gen} {resets direction set by {\tt setdir\_}} @@ -1699,21 +1753,14 @@ degrees})} rgbstring(0.1,0.2,0.7) shaded rgbstring(0.75,0.5,0.25)}. For those postprocessors that allow it, there can be one argument which is the name of a defined color} -\macrodef{right\_}{right_}{} - {gen} - {set current direction right \seesect{Placing:}} \macrodef{RightAngle}{RightAngle}{({\sl Pos1, Pos2, Pos3, line len, attributes})} {gen} {Draw a right-angle symbol at {\sl Pos2}, of size given by arg4. Arg5 = line attributes, e.g., {\tt outlined "gray"}} -\macrodef{r\_text}{r_text}{({\sl degrees},{\sl text},at {\sl position})} +\macrodef{right\_}{right_}{} {gen} - {Rotate text by arg1 degrees (provides a single command for - PSTricks, PGF, or SVG only) placed at position in arg3. - The first argument is a decimal constant (not an expression) and - the text is a simple string without quotes. - \seesect{Interaction:}, \seesect{Pstricks:}} + {set current direction right \seesect{Placing:}} \macrodef{rjust\_}{rjust_}{} {gen} {right justify with respect to current direction} @@ -1735,12 +1782,6 @@ degrees})} {3D} {rotates x,y,z about y axis} \macrodef{rot3Dz}{rot3Dz}{({\sl radians,x,y,z})} {3D} {rotates x,y,z about z axis} -\macrodef{Rot\_}{Rot_}{({\sl position, degrees})} - {gen} - {rotate position by degrees} -\macrodef{rot\_}{rot_}{({\sl x, y, angle})} - {gen} - {rotate {\sl x,y} by theta radians} \macrodef{rotbox}{rotbox}{({\sl wid,ht,type},[r|t={\sl val}])} {gen} {box oriented in current direction in {\tt [ ]} block; @@ -1754,6 +1795,12 @@ degrees})} {ellipse oriented in current direction in {\tt [ ]} block; e.g. {\tt Point\_(45); rotellipse(,{},dotted fill\_(0.9)).} Defined internal locations: N, S, E, W.} +\macrodef{Rot\_}{Rot_}{({\sl position, degrees})} + {gen} + {rotate position by degrees} +\macrodef{rot\_}{rot_}{({\sl x, y, angle})} + {gen} + {rotate {\sl x,y} by theta radians} \macrodef{round}{round}{(at {\sl location,line thickness,attributes})} {gen} {filled circle for rounded corners; attributes={\tt colored @@ -1766,6 +1813,9 @@ degrees})} \macrodef{rpos\_}{rpos_}{({\sl position})} {gen} {Here + {\sl position}} +\macrodef{r\_}{r_}{} + {gen} + {red color value} \macrodef{rrot\_}{rrot_}{({\sl x, y, angle})} {gen} {\tt Here + vrot\_({\sl x, y, cos(angle), sin(angle))}} @@ -1785,63 +1835,49 @@ degrees})} \macrodef{rsvec\_}{rsvec_}{({\sl position})} {gen} {Here + {\sl position}} -\macrodef{rt\_}{rt_}{} +\macrodef{r\_text}{r_text}{({\sl degrees},{\sl text},at {\sl position})} {gen} - {right with respect to current direction} + {Rotate text by arg1 degrees (provides a single command for + PSTricks, PGF, or SVG only) placed at position in arg3. + The first argument is a decimal constant (not an expression) and + the text is a simple string without quotes. + \seesect{Interaction:}, \seesect{Pstricks:}} \macrodef{rtod\_\_}{rtod__}{} {gen} {constant, degrees/radian} \macrodef{rtod\_}{rtod_}{} {gen} {constant, degrees/radian} +\macrodef{rt\_}{rt_}{} + {gen} + {right with respect to current direction} \macrodef{rvec\_}{rvec_}{({\sl x},{\sl y})} {gen} {location relative to current direction} +% \Letter{S}% -\macrodef{s\_}{s_}{} - {gen} - {.s with respect to current direction} -\macrodef{s\_box}{s_box}{({\sl text},{\sl expr1},$\cdots$)} - {gen} - {generate dimensioned text string using {\tt\char92{}boxdims} from - {\tt boxdims.sty}. Two or more args are passed to {\tt sprintf()} - (default 90) degrees \seesect{Interaction:}} -\macrodef{s\_dp}{s_dp}{({\sl name},{\sl default})} - {gen} - {depth of the most recent (or named) {\tt s\_box} - \seesect{Interaction:}} -\macrodef{s\_ht}{s_ht}{({\sl name},{\sl default})} - {gen} - {height of the most recent (or named) {\tt s\_box} - \seesect{Interaction:}} -\macrodef{s\_init}{s_init}{({\sl name})} - {gen} - {initialize {\tt s\_box} string label to {\sl name} which should - be unique - \seesect{Interaction:}} -\macrodef{s\_name}{s_name}{} - {gen} - {the value of the last {\tt s\_init} argument - \seesect{Interaction:}} -\macrodef{s\_wd}{s_wd}{({\sl name},{\sl default})} - {gen} - {width of the most recent (or named) {\tt s\_box} - \seesect{Interaction:}} \macrodef{sarrow}{sarrow}{(\linespec,{\sl keys})} {gen} {Single-segment, single-headed special arrows. The {\sl keys} are {\tt type=}{\tt O[pen]} (default) - | {\tt D[iamond]} | {\tt C[rowfoot]} | {\tt P[lain]}{\tt ;} + | {\tt D[iamond]} | {\tt C[rowfoot]} | {\tt P[lain]} + | {\tt R[ight]} | {\tt L[eft]} {\tt ;} {\tt wdth=}{\tt expression}{\tt ;} (default {\tt arrowwid}) {\tt lgth=}{\tt expression}{\tt ;} (default {\tt arrowht}) {\tt shaft=}{\sl shaft attributes} (e.g., {\tt dashed}){\tt ;} {\tt head=}{\sl head attributes} (e.g., {\tt shaded}){\tt ;} + {\tt name=}{\sl Name}{\tt ;} (default {\sl Sarrow\_}) \seesect{Macroarguments:}} \macrodef{savem4dir}{savem4dir}{([`{\sl stack name}'])} {gen} {Stack m4 direction parameters in the named stack (default {\tt `savm4dir\_'})} +\macrodef{s\_box}{s_box}{({\sl text},{\sl expr1},$\cdots$)} + {gen} + {generate dimensioned text string using {\tt\char92{}boxdims} from + {\tt boxdims.sty}. Two or more args are passed to {\tt sprintf()} + (default 90) degrees \seesect{Interaction:}} \macrodef{sbs}{sbs}{({\sl linespec, chars, label})} {cct} {Wrapper to place an SBS thyristor as a two-terminal element with @@ -1860,9 +1896,10 @@ degrees})} {Wrapper to place an SCS thyristor as a two-terminal element with {\tt [ ]} block label given by the third argument \seesect{Semiconductors:}} -\macrodef{se\_}{se_}{} +\macrodef{s\_dp}{s_dp}{({\sl name},{\sl default})} {gen} - {.se with respect to current direction} + {depth of the most recent (or named) {\tt s\_box} + \seesect{Interaction:}} \macrodef{series\_}{series_}{({\sl elementspec}, {\sl elementspec}, $\ldots$)} {cct} @@ -1873,6 +1910,9 @@ $\ldots$)} [rlabel($\ldots$);] [b\_current($\ldots$);]}. Internal points {\tt Start}, {\tt End}, and {\tt C} are defined \seesect{Seriesandparallel:} } +\macrodef{se\_}{se_}{} + {gen} + {.se with respect to current direction} \macrodef{setdir\_}{setdir_}{(R|L|U|D|{\sl degrees}, {\sl default} U|D|R|L|{\sl degrees})} {gen} @@ -1881,11 +1921,6 @@ $\ldots$)} resetdir\_}). The directions may be spelled out, i.e., Right, Left, $\ldots$ \seesect{Seriesandparallel:}} -\macrodef{setrgb}{setrgb}{({\sl red value, green value, blue value},[{\sl - name}])} - {gen} - {define colour for lines and text, optionally named (default - {\tt lcspec}); \seesect{Semiconductors:}} \macrodef{setkey\_}{setkey_}{({\sl string, key, default,}[N])} {gen} {Key-value definition, like {\tt pushkey\_()} but the resulting @@ -1896,14 +1931,14 @@ $\ldots$)} {Multiple key-value definition using {\tt define()} rather than {\tt pushdef().} See macro {\tt pushkeys\_}. \seesect{Macroarguments:}} +\macrodef{setrgb}{setrgb}{({\sl red value, green value, blue value},[{\sl + name}])} + {gen} + {define colour for lines and text, optionally named (default + {\tt lcspec}); \seesect{Semiconductors:}} \macrodef{setview}{setview}{({\sl azimuth degrees},{\sl elevation degrees})} {3D} {set projection viewpoint} -\macrodef{sfg\_init}{sfg_init}{({\sl default line len, node rad, -arrowhd len, - arrowhd wid}), (reads {\tt libcct.m4})} {cct} - {initialization of signal - flow graph macros} \macrodef{sfgabove}{sfgabove}{} {cct} {like above but with extra space} @@ -1916,6 +1951,11 @@ justification},cw|ccw, \macrodef{sfgbelow}{sfgbelow}{} {cct} {like below but with extra space} +\macrodef{sfg\_init}{sfg_init}{({\sl default line len, node rad, +arrowhd len, + arrowhd wid}), (reads {\tt libcct.m4})} {cct} + {initialization of signal + flow graph macros} \macrodef{sfgline}{sfgline}{(\linespec,{\sl text},{\sl text justification})} {cct} @@ -1932,11 +1972,6 @@ justification})} {cct} {self-loop drawn at angle {\sl angle} from a node, with text label and a size-adjustment parameter } -\macrodef{shade}{shade}{({\sl gray value},{\sl closed line specs})} - {gen} - {Fill arbitrary closed curve. Note: when producing pdf via pdflatex, line - thickness changes within this macro must be made via the {\tt linethick} - environment variable rather than by the {\tt thickness} line attribute} \macrodef{shadebox}{shadebox}{(box {\sl attributes, shade width})} {gen} {Box with edge shading. Arg2 is in points. See also {\tt shaded} } @@ -1950,6 +1985,11 @@ justification})} the form 0, r0,g0,b0, {\sl frac1},r1,g1,b1, {\sl frac2},r2,g2,b2, \ldots 1,rn,gn,bn with $0 < \hbox{\sl frac1} < \hbox{\sl frac2} \ldots 1$ } +\macrodef{shade}{shade}{({\sl gray value},{\sl closed line specs})} + {gen} + {Fill arbitrary closed curve. Note: when producing pdf via pdflatex, line + thickness changes within this macro must be made via the {\tt linethick} + environment variable rather than by the {\tt thickness} line attribute} \macrodef{shadowed}{shadowed}{(box|circle|ellipse|line, {\sl position spec, keys})} {gen} @@ -1969,6 +2009,10 @@ justification})} (default) to enclose the element body; L for the left side with respect to drawing direction, R for right. Internal points {\tt .Start, .End,} and {\tt .C} are defined} +\macrodef{s\_ht}{s_ht}{({\sl name},{\sl default})} + {gen} + {height of the most recent (or named) {\tt s\_box} + \seesect{Interaction:}} \macrodef{SIdefaults}{SIdefaults}{} {gen} {Sets {\tt scale = 25.4} for drawing units in mm, and sets @@ -1979,15 +2023,20 @@ justification})} \macrodef{sign\_}{sign_}{({\sl number})} {gen} {sign function} -\macrodef{Sin}{Sin}{({\sl integer})} - {gen} - {sine function, {\sl integer\/} degrees} \macrodef{sinc}{sinc}{({\sl number})} {gen} {the $\hbox{sinc}(x)$ function} \macrodef{sind}{sind}{({\sl arg})} {gen} {sine of an expression in degrees} +\macrodef{s\_init}{s_init}{({\sl name})} + {gen} + {initialize {\tt s\_box} string label to {\sl name} which should + be unique + \seesect{Interaction:}} +\macrodef{Sin}{Sin}{({\sl integer})} + {gen} + {sine function, {\sl integer\/} degrees} \macrodef{sinusoid}{sinusoid}{({\sl amplitude, frequency, phase, tmin, tmax, linetype})} {gen} @@ -2234,6 +2283,36 @@ justification})} {\tt size=}{\sl expr} (default {\tt ht dimen\_/3}). \seesect{SingleLine:}} % +\macrodef{sl\_transformer3}{sl_transformer3}{({\sl linespec, keys, + breaker keys, symbol keys})} + {SLD} + {Composite (block) SLD element: argument 1 is a \linespec\ that can be used + to set the direction and distance between primary terminals but not + position. + + Argument 2 contains semicolon (;)-separated key-value body attributes: + {\tt name={\sl{}Name}} (default {\sl Body}); + {\tt type=S|C} (default {\tt S}); + {\tt scale={\sl expr}} (body size factor, default 1.0); + {\tt direct=L|R} (default {\tt L}) direction of the tertiary + circle and terminal relative to the drawing direction; + {\tt body={\sl circle attributes}}. + + Argument 3 is colon (:)-separated sequence of up to three breaker + attribute specifications for the input, output, and teriary breaker + in order. A null or blank means no breaker, {\tt tt\_breaker} + specifications otherwise. Default breaker names are {\sl BrI} + and {\sl BrO} as for + {\tt sl\_transformer,} and {\sl Br} for the third breaker. + + Argument 4 is colon (:)-separated sequence of up to three symbol + specifications for the input, output, and teriary circle + in order. A null or blank means no symbol; + {\tt Y} for a Y-symbol; + {\tt Delta} for a $\Delta$ symbol; + otherwise, other customization commands expanded in a {\tt \lbr\rbr} pair. + \seesect{SingleLine:}} +% \macrodef{sl\_transformer}{sl_transformer}{({\sl linespec, keys, input breaker keys, output breaker keys, input circle inner object, output circle inner object})} @@ -2273,35 +2352,6 @@ justification})} otherwise, other customization commands expanded in a {\tt \lbr\rbr} pair. \seesect{SingleLine:}} % -\macrodef{sl\_transformer3}{sl_transformer3}{({\sl linespec, keys, - breaker keys, symbol keys})} - {SLD} - {Composite (block) SLD element: argument 1 is a \linespec\ that can be used - to set the direction and distance between primary terminals but not - position. - - Argument 2 contains semicolon (;)-separated key-value body attributes: - {\tt name={\sl{}Name}} (default {\sl Body}); - {\tt type=S|C} (default {\tt S}); - {\tt scale={\sl expr}} (body size factor, default 1.0); - {\tt direct=L|R} (default {\tt L}) direction of the tertiary - circle and terminal relative to the drawing direction; - {\tt body={\sl circle attributes}}. - - Argument 3 is colon (:)-separated sequence of up to three breaker - attribute specifications for the input, output, and teriary breaker - in order. A null or blank means no breaker, {\tt tt\_breaker} - specifications otherwise. Default breaker names are {\sl BrI} - and {\sl BrO} as for - {\tt sl\_transformer,} and {\sl Br} for the third breaker. - - Argument 4 is colon (:)-separated sequence of up to three symbol - specifications for the input, output, and teriary circle - in order. A null or blank means no symbol; - {\tt Y} for a Y-symbol; - {\tt Delta} for a $\Delta$ symbol; - otherwise, other customization commands expanded in a {\tt \lbr\rbr} pair. - \seesect{SingleLine:}} \macrodef{sl\_ttbox}{sl_ttbox}{({\sl linespec, keys, input breaker keys, output breaker keys})} {SLD} @@ -2326,34 +2376,38 @@ justification})} except that the default breaker name is {\sl BrO}. \label{sl_ttbox}% \seesect{SingleLine:}} +\macrodef{s\_name}{s_name}{} + {gen} + {the value of the last {\tt s\_init} argument + \seesect{Interaction:}} +\macrodef{sourcerad\_}{sourcerad_}{} + {cct} + {default source radius} \macrodef{source}{source}{(\linespec, - V|v|I|i|AC|B|F|G|H|J|Q|L|N|P|S[C[r]]|E[r]]|T|X|U|{\sl other}, {\sl + V|v|I|i|ii|AC|B|F|G|H|J|Q|L|N|P|S[C[r]]|E[r]]|T|X|U|{\sl other}, {\sl diameter},R)} {cct} {source, blank or: - V = voltage source; v = alternate voltage source; I = - current source; i = alternate current source; AC = - AC source; B = bulb; F = fluorescent; G = generator; - H = step function; L = lamp; N = neon; P = pulse; - Q = charge; R = ramp; r = right orientation; S = - sinusoid; SC = quarter arc; SE = arc; T = triangle; - U = square-wave; X = interior X; other = custom - interior label or waveform; arg 4: R = reversed - polarity; arg 5 modifies the circle with e.g., - color or fill + V = voltage source; v = alternate voltage source; + I = current source; i = alternate current source; + ii = double arrow current source; AC = AC source; + B = bulb; F = fluorescent; G = generator; H = step + function; L = lamp; N = neon; P = pulse; Q = charge; + R = ramp; r = right orientation; S = sinusoid; + SC = quarter arc; SE = arc; T = triangle; U = + square-wave; X = interior X; other = custom interior + label or waveform; arg 4: R = reversed polarity; + arg 5 modifies the circle with e.g., color or fill \seesect{Twoterminal:}} -\macrodef{sourcerad\_}{sourcerad_}{} - {cct} - {default source radius} -\macrodef{sp\_}{sp_}{} - {gen} - {evaluates to medium space for gpic strings} \macrodef{speaker}{speaker}{( U|D|L|R|{\sl degrees},{\sl size},H)} {cct} {speaker, {\sl In1} to {\sl In7} defined; {\tt H}=horn \seesect{Composite:}} \macrodef{sprod3D}{sprod3D}{(a,x,y,z)} {3D} {scalar product of triple x,y,z by a} +\macrodef{sp\_}{sp_}{} + {gen} + {evaluates to medium space for gpic strings} \macrodef{sqrta}{sqrta}{({\sl arg})} {gen} {square root of the absolute value of {\sl arg}; i.e., @@ -2364,6 +2418,9 @@ justification})} with {\sl }n junctions labeled {\tt J1, ... J}{\sl n} placed around a circle with initial angle -90 deg (by default) with respect to the current drawing direction. The default diameter is {\tt dimen\_} } +\macrodef{s\_}{s_}{} + {gen} + {.s with respect to current direction} \macrodef{stackargs\_}{stackargs}{(`{\sl stackname}',{\sl args})} {gen} {Stack arg 2, arg 3, ... onto the named stack up to a blank arg} @@ -2398,11 +2455,11 @@ justification})} by nonblank {\sl separator} (default .). White space preceding the fields is ignored.} +\macrodef{sum3D}{sum3D}{({\sl x1,y1,z1,x2,y2,z2})} + {3D} {sum of two triples} \macrodef{sum\_}{sum_}{({\sl a},{\sl b})} {gen} {binary sum} -\macrodef{sum3D}{sum3D}{({\sl x1,y1,z1,x2,y2,z2})} - {3D} {sum of two triples} \macrodef{sus}{sus}{({\sl linespec, chars, label})} {cct} {Wrapper to place an SUS thyristor as a two-terminal element with @@ -2411,9 +2468,10 @@ justification})} \macrodef{svec\_}{svec_}{({\sl x},{\sl y})} {log} {scaled and rotated grid coordinate vector} -\macrodef{sw\_}{sw_}{} +\macrodef{s\_wd}{s_wd}{({\sl name},{\sl default})} {gen} - {.sw with respect to current direction} + {width of the most recent (or named) {\tt s\_box} + \seesect{Interaction:}} \macrodef{switch}{switch}{(\linespec,L|R,[C|O][D],[B|D])} {cct} {SPST switch (wrapper for bswitch, lswitch, and dswitch), @@ -2423,10 +2481,11 @@ justification})} if arg4=B (button switch): arg3 = O{\tt|}C O=normally open, C=normally closed, if arg4=D: arg3 = same as for dswitch \seesect{Twoterminal:}} +\macrodef{sw\_}{sw_}{} + {gen} + {.sw with respect to current direction} +% \Letter{T}% -\macrodef{ta\_xy}{ta_xy}{({\sl x, y})} - {cct} - {macro-internal coordinates adjusted for {\tt L|R}} \macrodef{tapped}{tapped}{(`{\sl two-terminal element}', [{\sl arrowhd} | type={\sl arrowhd};name={\sl Name}], {\sl fraction, length, fraction, length,} $\cdots$)} @@ -2440,6 +2499,9 @@ justification})} or Name1, Name2, $\cdots$ if specified. Internal block names are {\tt .Start, .End,} and {.C} corresponding to the drawn element, and the tap names \seesect{Composite:} } +\macrodef{ta\_xy}{ta_xy}{({\sl x, y})} + {cct} + {macro-internal coordinates adjusted for {\tt L|R}} \macrodef{tbox}{tbox}{({\sl text,wid,ht},<|>|<>,{\sl type})} {cct} {Pointed terminal box. The {\sl text} is placed at the rectangular @@ -2520,12 +2582,6 @@ justification})} {gen} {Evaluates to {\tt from {\sl position} - Rect\_({\sl length, angle}) to {\sl position}} from the polar-coordinate data in the arguments } -\macrodef{tr\_xy\_init}{tr_xy_init}{({\sl origin, unit size, sign })} - {cct} - {initialize {\tt tr\_xy}} -\macrodef{tr\_xy}{tr_xy}{({\sl x, y})} - {cct} - {relative macro internal coordinates adjusted for {\tt L|R}} \macrodef{transformer}{transformer}{(\linespec,L|R,{\sl np},% [A|P][W|L][D1|D2|D12|D21],{\sl ns})} {cct} @@ -2536,6 +2592,12 @@ justification})} L = looped windings, D1: phase dots at P1 and S1 end; D2 at P2 and S2 end; D12 at P1 and S2 end; D21 at P2 and S1 end \seesect{Composite:}} +\macrodef{tr\_xy\_init}{tr_xy_init}{({\sl origin, unit size, sign })} + {cct} + {initialize {\tt tr\_xy}} +\macrodef{tr\_xy}{tr_xy}{({\sl x, y})} + {cct} + {relative macro internal coordinates adjusted for {\tt L|R}} \macrodef{tstrip}{tstrip}{(R|L|U|D|{\sl degrees, nterms, chars})} {cct} {terminal strip, chars: @@ -2550,6 +2612,7 @@ brushht})} \macrodef{twopi\_}{twopi_}{} {gen} {$2\pi$} +% \Letter{U}% \macrodef{ujt}{ujt}{(\linespec,R,P,E)} {cct} @@ -2563,6 +2626,7 @@ brushht})} \macrodef{up\_}{up_}{} {gen} {set current direction up \seesect{Placing:}} +% \Letter{V}% \macrodef{variable}{variable}{(`{\sl element}', {\tt [A|P|L|[u]N|[u]NN][C|S]}, [+|-]{\sl angle}, @@ -2616,10 +2680,8 @@ brushht})} {{\tt Vsum\_(A,B)} evaluates to {\tt A+B} with dpic, {\tt A+(B.x,B.y)} with gpic} +% \Letter{W}% -\macrodef{w\_}{w_}{} - {gen} - {.w with respect to current direction} \macrodef{while\_}{while_}{(`{\sl test}',`{\sl actions}')} {gen} {Integer m4 while loop} @@ -2631,6 +2693,9 @@ brushht})} {cct} {core winding drawn in the current direction; {\tt R}=right-handed \seesect{Composite:}} +\macrodef{w\_}{w_}{} + {gen} + {.w with respect to current direction} \macrodef{XOR\_gate}{XOR_gate}{({\sl n},N)} {log} {`xor' gate, 2 or {\sl n\/} inputs; N=negated input. @@ -2640,6 +2705,7 @@ brushht})} \macrodef{XOR\_off}{XOR_off}{} {log} {XOR and NXOR offset of input face} +% \Letter{X}% \macrodef{xtal}{xtal}{(\linespec,{\sl keys})} {cct} |