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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
.PS
# IC10107.m4
log_init
right_
pinlen = 2*NOT_rad
hunit = AND_wd*L_unit*1.6
B: box invis wid hunit*4 ht hunit*2
psep = hunit/2
nrad = B.ht*0.06
line from B.w+(0,nrad) to B.nw then to B.ne then to B.se then to B.sw \
then to B.w-(0,nrad)
arc ccw to Here+(0,2*nrad) with .c at B.w
for i = 1 to 8 do {
line down pinlen from B.sw+(psep/2,0)+((i-1)*psep,0)
sprintf("\small\sf%g",i) below
exec sprintf("P%g: last line.start",i)
line up pinlen from B.ne-(psep/2,0)-((i-1)*psep,0)
sprintf("\small\sf%g",8+i) above
exec sprintf("P%g: last line.start",8+i)
}
G1: OR_gen(2,PIBANEONSEC) with .Out at P12.x-pinlen,B.y+B.ht/4
G2: OR_gen(2,PIBANNEOSEC) with .Out at B.e.x-4*pinlen,B.y
left_
G3: OR_gen(2,PIBANEONSEC) with .NE at P3.x,B.y-B.ht/4-AND_ht/6*L_unit
line from G3.N_NSE.w to (P2,G3.N_NSE) then to P2
line from P3 to G3.NE
line right pinlen from G3.In1 then down 2*pinlen
contline to (P4,Here) then to P4
line from G3.In2 to (P5,G3.In2) then to P5
line from G2.In2 left pinlen then down 2*pinlen
contline to (P9,Here) then to P9
line from G2.In1 left pinlen*2 then down G2.In1.y-G2.In2.y+3*pinlen
contline to (P7,Here) then to P7
line from G2.SE right NOT_rad+2*pinlen then up B.n.y-pinlen-G2.SE.y
contline to (P10,Here) then to P10
line from G2.N_NNE.e right pinlen then up B.n.y-2*pinlen-G2.N_NNE.y
contline to (P11,Here) then to P11
line from P12 to (P12,G1.N_NSE) then to G1.N_NSE.e
line from P13 down pinlen
contline to (G1.NE,Here) then to G1.NE
line from G1.In1 to (P14,G1.In1) then to P14
line from G1.In2 to (P15,G1.In2) then to P15
.PE
|