(dp1 S'shapes' p2 (lp3 sS'text' p4 Vfrom koko.lib.shapes import *\u000a\u000a# Render boundaries\u000acad.xmin = -.5\u000acad.xmax = 18.5\u000acad.ymin = -.5\u000acad.ymax = 3.5\u000acad.mm_per_unit = 25.4 # inch units\u000a\u000al = 18\u000aw = 2\u000atl = 1\u000atw = .5\u000arim = .3\u000amaxm = (l-rim-tw)/2-2*tw\u000ar = rectangle(0,l,0,w)\u000at = triangle(0, w, tw, w+tl, tw, w)\u000at2 = triangle(maxm+tw, w-rim, maxm+tw, w+tl, maxm+2*tw, w-rim)\u000aslide = rectangle(maxm+tw, l-rim, rim, w-rim)\u000aslot = rectangle(tw, l-rim, rim, w-rim)\u000amidtgap = rectangle(tw, maxm+tw, w-rim, w)\u000ac = r+t-slot-midtgap-t2\u000as = slide+t2\u000adb = 10/25.4\u000afor i in range(11):\u000a s = s-rectangle(maxm+tw+(2*i+1)*db, maxm+tw+(2*i+2)*db, 2*rim, w-2*rim)\u000a\u000acuin = slide+rectangle(l-rim, l+2*w, w/2-rim, w/2+rim)\u000acuout = rectangle(maxm+2*tw, l, 0, w)+rectangle(l, l+2*w, w/2-rim, w/2+rim)\u000acopper_pieces = move(cuin, -maxm-tw, w)+move(cuout, -maxm-2*tw,0)\u000acopper_pieces = move(rotate(copper_pieces, 90), 2*w,0)\u000a#cad.function = c#outer piece\u000a#cad.function = move(s, -maxm-tw,-rim)#center piece\u000acad.function = c+move(s, -maxm/2,0)#see what they look like together\u000a#cad.function = copper_pieces p5 s.