15 h2 = r2 * sin(a2); z2 = z1 - h2;
16 h3 = r3 * sin(a2); z3 = z2 - h3;
17 h4 = r4 * sin(a4); z4 = z3 - h4;
19 zc5 = z4 - r5 * sin(a4);
20 z5 = zc5 + r5 * sin(a6); z6 = z5 - h6;
23 x2 = x1 + r2 * (1-cos(a2));
24 x3 = x2 + r3 * (1-cos(a2));
25 x4 = x3 - r4 * (1-cos(a4));
27 xc5 = x4 + r5 * cos(a4);
28 x5 = xc5 - r5 * cos(a6);
30 x6 = x5 - h6 * tan(a6);
33 echo("height", htotal);
41 module SegmentBasisSquare(zmin, zmax, xmin){
42 translate([xmin, zmin-d]) square([-xmin+dx, zmax-zmin+d*2]);
44 module ConvexSegment(xc, zc, r, zmin, zmax){
46 translate([xc,zc]) circle(r=r);
47 SegmentBasisSquare(zmin,zmax,-50);
50 module ConcaveSegment(xc, zc, r, zmin, zmax){
52 SegmentBasisSquare(zmin,zmax, xc);
53 translate([xc,zc]) circle(r=r);
57 module PawnTemplate(){
58 ConvexSegment( x1 + r1, z1, r1, z1, 50);
59 ConvexSegment( x1 + r2, z1, r2, z2, z1);
60 ConcaveSegment( x3 - r3, z3, r3, z3, z2);
61 ConcaveSegment( x3 - r4, z3, r4, z4, z3);
62 ConvexSegment( xc5, zc5, r5, z5, z4);
69 module Pawn(h=htotal){
71 rotate_extrude(convexity=10, $fn=50){