chiark / gitweb /
pawn wip remove old version
[reprap-play.git] / pawn.scad
index 805c5f383127e92d767566ebb988e77b94c855ef..c4eb293f0282b4b4eb5e3f02684ba3ce578710e7 100644 (file)
--- a/pawn.scad
+++ b/pawn.scad
@@ -28,30 +28,32 @@ x6 = x5 - h6 * tan(a6);
 $fa=1;
 $fs=0.1;
 
+module SegmentBasisSquare(zmin, zmax, xmin){
+  translate([xmin, zmin-0.01]) square([-xmin+0.01, zmax-zmin+0.02]);
+}
 module ConvexSegment(xc, zc, r, zmin, zmax){
   intersection(){
     translate([xc,zc]) circle(r=r);
-    translate([-50,zmin-0.01]) square([55,zmax-zmin+0.02]);
+    SegmentBasisSquare(zmin,zmax,-50);
+  }
+}
+module ConcaveSegment(xc, zc, r, zmin, zmax){
+  difference(){
+    SegmentBasisSquare(zmin,zmax, xc);
+    translate([xc,zc]) circle(r=r);
   }
 }
 
 module PawnTemplate(){
-  intersection(){
-    union(){
-      ConvexSegment(x1 + r1, z1, r1, z1, 50);
-      ConvexSegment(x1 + r2, z1, r2, z2, z1);
-      translate([x5 + r5 * cos(a6), z5]) circle(r=r5);
-      polygon([[x6,z6-1],
-              [x5,z5],
-              [1,z5],
-              [1,z6-1]]);
-      difference(){
-       translate([-50,z4]) square([52,z2-z4]);
-//     circle(
-      }
-    }
-    translate([-100,z6]) square([100.1, 200]);
-  }
+  ConvexSegment(  x1 + r1,         z1,              r1, z1, 50);
+  ConvexSegment(  x1 + r2,         z1,              r2, z2, z1);
+  ConcaveSegment( x3 - r3,         z3,              r3, z3, z2);
+  ConcaveSegment( x3 - r4,         z3,              r4, z4, z3);
+  ConvexSegment(  x5 + r5*cos(a6), z5 - r5*sin(a6), r5, z5, z4);
+  polygon([[x6, z6],
+          [x5, z5+0.01],
+          [0.01, z5],
+          [0.01, z6]]);
 }
 
 PawnTemplate();