summaryrefslogtreecommitdiff
path: root/graphics/circuit_macros/doc/Opto.m4
blob: 7cbc4abf085ab79187c63a7cced6487de0f8f95c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.PS
cct_init
#                           `opto([R|L][A|B])'
define(`opto',
`[{u = dimen_/2
 Q: bi_trans(up u*2,ifinstr(`$1',R,R),ifinstr(`$1',B,B)CBUdE)
 E: Q.E; C: Q.C; A:ifinstr(`$1',R,Q.e+(u*3/2,u),Q.w+(-u*3/2,u)); K: A-(0,u*2)
   ifinstr(`$1',B,line from Q.B to (Q.B,E); B: Here)
 D: diode(from A to K)
   arrow from D.c+(0,u/6) to Q.ifinstr(`$1',R,e,w)+(0,u/6) chop u/3 chop u/4
   arrow from last arrow.start-(0,u/3) to last arrow.end-(0,u/3)
 Enc: box rad u wid abs(C.x-A.x)+u*2 ht u*2 with .c at 0.5 between C and K
  `$2' }]')

Q1: opto
Q2: opto(type=B;orientation=Rightleft) with .w at Q1.e+(dimen_,0)

{"\sl C" at Q1.C above}
{"\sl C" at Q2.C above}
{"\sl A" at Q1.A above}
{"\sl A" at Q2.A above}
{"\sl E" at Q1.E below}
{"\sl E" at Q2.E below}
{"\sl K" at Q1.K below}
{"\sl K" at Q2.K below}
{"\sl B" at Q2.B below}

.PE