chiark / gitweb /
sewing-table: RoundCorner (wip)
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 2 Jan 2017 16:10:00 +0000 (16:10 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 2 Jan 2017 16:10:00 +0000 (16:10 +0000)
sewing-table.scad.m4

index ba93622aec8afda2cf3f54ac967703f76245ad30..8499366ca5f40f74d820a91e7707491f7894b634 100644 (file)
@@ -18,6 +18,8 @@ screw_big_len = 4.0;
 
 round_edge_rad = 2.0;
 
+round_cnr_rad = 10;
+
 interlock_dia = 10;
 interlock_fine = 0.66;
 
@@ -129,6 +131,22 @@ module RoundLeftCorner(this_cnr, right_cnr) {
   }
 }
 
+module RoundCornerCut(this_cnr, right_cnr) {
+  INREFFRAME(this_cnr, right_cnr) INREFFRAME_EDGE {
+    cube(round_cnr_rad*2, center=true);
+  }
+}
+
+module RoundCornerAdd(this_cnr, right_cnr) {
+  bigr = round_cnr_rad - round_edge_rad;
+  INREFFRAME(this_cnr, right_cnr) INREFFRAME_EDGE {
+    translate([bigr, bigr, 0])
+      rotate_extrude(convexity=10)
+      translate([bigr, 0])
+      circle(r= round_edge_rad);
+  }
+}
+
 module InterlockLobePlan(negative) {
   r = negative ? interlock_negative_rad : interlock_rad;
   ymir = negative ? 0 : 1;
@@ -219,10 +237,11 @@ module TestPiece1(){ ////toplevel
       Posts(holes);
       RoundEdge(corners[0], corners[1]);
       RoundEdge(corners[3], corners[0]);
-      RoundLeftCorner(corners[0], corners[1]);
     }
     InterlockEdge(corners[1], corners[2], 1, nlobes=1);
+    RoundCornerCut(corners[0], corners[1]);
   }
+  RoundCornerAdd(corners[0], corners[1]);
 }
 
 module TestPiece2(){ ////toplevel