15 h2 = r2 * sin(a2); z2 = z1 - h2;
16 h3 = r3 * sin(a2); z3 = z2 - h3;
17 h4 = r4 * sin(a4); z4 = z3 - h4;
18 h5 = r5 * sin(a4-a6); z5 = z4 - h5;
22 x2 = x1 + r2 * (1-cos(a2));
23 x3 = x2 + r3 * (1-cos(a2));
24 x4 = x3 - r4 * (1-cos(a4));
25 x5 = x4 - r5 * (1-cos(a4-a6));
26 x6 = x5 - h6 * tan(a6);
31 module SegmentBasisSquare(zmin, zmax, xmin){
32 translate([xmin, zmin-0.01]) square([-xmin+0.01, zmax-zmin+0.02]);
34 module ConvexSegment(xc, zc, r, zmin, zmax){
36 translate([xc,zc]) circle(r=r);
37 SegmentBasisSquare(zmin,zmax,-50);
40 module ConcaveSegment(xc, zc, r, zmin, zmax){
42 SegmentBasisSquare(zmin,zmax, xc);
43 translate([xc,zc]) circle(r=r);
47 module PawnTemplate(){
48 ConvexSegment( x1 + r1, z1, r1, z1, 50);
49 ConvexSegment( x1 + r2, z1, r2, z2, z1);
50 ConcaveSegment( x3 - r3, z3, r3, z3, z2);
51 ConcaveSegment( x3 - r4, z3, r4, z4, z3);
52 ConvexSegment( x5 + r5*cos(a6), z5 - r5*sin(a6), r5, z5, z4);
62 translate([x5 + r5 * cos(a6), z5]) circle(r=r5);
64 translate([-50,z4]) square([52,z2-z4]);
68 translate([-100,z6]) square([100.1, 200]);