Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Circuit_macros
Vordefinierte Position
Der aktuellen Position bzw. dem aktuellen Element kann mit name:
ein Namen gegeben werden, den man später verwenden kann:
R1: resistor()
Code | Bedeutung |
---|---|
Here | aktuelle Position |
R1.x | x-Koordinate von R1 |
R1.y | y-Koordinate von R1 |
R1.start | Start-Koordinate von R1 |
R1.end | End-Koordinate von R1 |
R1.left | linke Koordinate von R1 (in Zeichenrichtung) |
R1.right | rechte Koordinate von R1 (in Zeichenrichtung) |
R1.center | Mittelpunkt von R1 |
Wird mit (A,B)
eine Koordinate aus zwei Punkten zusammengebaut, ist es nicht notwendig explizit auf die jeweilige x- bzw. y-Koordinate (also (A.x,B.y)
) zuzugreifen.
Vordefinierte Längen und Größen
Code | Bedeutung |
---|---|
elen_ | Länge eines zweipoliges Elementes (inkl. Anschlussleitungen) |
dotrad_ | Radius eines Punktes |
Häufig verwendete Elemente/Befehle
Code | Bedeutung | Bild |
---|---|---|
resistor(,,E) | Widerstand (europäisch) | |
capacitor(,,) | Kapazität (europäisch) | |
ebox(,,,0) | Induktivität (europäisch) | |
ground(,,E) | Masse (europäisch) | |
dot | Kreuzungspunkt (dargestellt mit zusätzlichen Linien ( line )) | |
gap(,1,) | Anschlussklemme mit zwei Pins (unausgefüllt) | |
tconn(,O,2*dotrad_) | Anschlussklemme mit einem Pin Das zweite Argument ist ein „Oh“, keine „Null“ Alternativ kann dot(,,1) verwendet werden | |
opamp | Operationsverstärker | |
opamp(,,,,R) | Operationsverstärker (gespiegelt) | |
bi_tr() | Bipolartransisitor, NPN | |
bi_tr(,,P) | Bipolartransisitor, PNP | |
e_fet(,,,S) | N-MOS weitere Varianten | |
e_fet(,,P,S) | P-MOS weitere Varianten | |
line | Verbindungsleitung (dargestellt sind zwei Leitungen) keine Klammern | |
move | Cursorbewegung ohne Zeichnen einer Linie keine Klammern |
Beschriftungen (Label)
Code | Bedeutung |
---|---|
llabel(arg1,arg2,arg3) | Beschriftung in Zeichenrichtung links vom Element |
clabel(arg1,arg2,arg3) | Beschriftung zentriert zum Element |
rlabel(arg1,arg2,arg3) | Beschriftung in Zeichenrichtung rechts vom Element |
Die Argumente arg1
, arg2
, arg3
entsprechen dabei den Positionen Anfang, Mitte und Ende.
Beispiele:
Tipps und Tricks
Anschlussklemme mit unausgefüllten Pins an Masse
Möchte man eine Anschlussklemme mit unausgefüllten Pins in der Größe anderer zweipoliger Elemente mit direkter Verbindung zu Masse zeichnen, sieht das ohne weitere Maßnahmen so aus:
Um dies zu vermeiden, muss die Klemme verkürzt und der Cursor weiterbewegt werden:
gap(down_ dimen_-dotrad_,1,A); llabel(,V_\text{out},) move down_ dotrad_ ground(,,E)
Damit sieht das Beispiel so aus:
Beschriftung innerhalb eines Operationsverstärkers
Soll die Beschriftung eines Operationsverstärker nicht über- oder innerhalb, sondern innerhalb gesetzt werden, kann dies nicht mit den Label-Befehlen, sondern so erreicht werden:
Der Mathemodus (für tiefgestellte Zeichen wie 1
im Beispiel) muss hier im Gegensatz zu den Label-Befehlen explizit mit je einem $
aktiviert und beendet werden.
Linienübergänge an Ecken
Stoßen Linien aufeinander, sind ihre Ende nicht vollständig verbunden (siehe 1. Beispiel).
Als Abhilfe kann eine Linie mit mehreren Segmenten (2. Beispiel) oder die Makros corner
für rechtwinklige Ecken (3. Beispiel) bzw. round
für abgerundete Ecken (4. Beispiel) verwendet werden.
line up_ 0.2 line right_ 0.2 | line up_ 0.2 then right_ 0.2 | line up_ 0.2 corner line right_ 0.2 | line up_ 0.2 round line right_ 0.2 |
Die Syntax corner(at location)
existiert im Gegensatz zu round(at location)
nicht, weil für das Makro corner
die Richtung der letzten gezeichneten Linie bekannt sein muss. Als Workaround kann line right_ linethick bp__ at location
verwendet werden.
round(at location)
verändert in Versionen <= 8.1 nicht die Variable Here
. Ab Version 8.2 wird Here
analog zu den übrigen Befehlen verändert.
Abgeschnittener Text
Unter bestimmten Umständen wird Text abgeschnitten dargestellt.
Das liegt daran, dass die Bounding Box der mit dem Flow m4→dpic→latex→dvips generierten EPS-Datei falsch ist.
Eine Möglichkeit die Bounding Box zu korrigieren, ist das Werkzeug epstool
:
epstool --copy --bbox in.eps out.eps
Eine andere Möglichkeit ist die Verwendung des PGF/TikZ-Backends (durch dpic -g
) anstelle des PSTricks-Backends.
Links
- Cirkuit GUI für Circuit_macros