chiark / gitweb /
pull-cord-keeper: screw hole
[reprap-play.git] / pull-cord-keeper.scad
index 39b063ddacad0bb1c08197d3a7fd11bd62916ed4..4812465f1b99be691291c5f658d1b28deb4f511e 100644 (file)
@@ -20,8 +20,12 @@ ribsgap = 1;
 ribdepth = 3;
 ribheight = 4;
 
+backxgap = 1;
+
 blockoverlapcnr = 5;
 
+screwholedia = 4 + 0.5;
+
 module Oval(centredist, rad) {
   hull() {
     translate([-centredist/2,0,0]) circle(r=rad);
@@ -43,9 +47,15 @@ module Hoop(){
 }
 
 module Positive(){
-  translate([0,0, -height/2])
-    linear_extrude(height=20)
-    Hoop();
+  difference(){
+    translate([0,0, -height/2])
+      linear_extrude(height=20)
+      Hoop();
+
+    rotate([90,0,0])
+      translate([0,0,-50])
+      cylinder(r=screwholedia/2, h=100);
+  }
 }
 
 module Ribs(){
@@ -64,20 +74,26 @@ module Ribs(){
   }
 }          
 
-module Division(biggerpi) {
-  xgap = feedxgap * biggerpi;
-  zgap = feedzgap * biggerpi;
-
+module Division(cutmore) {
   mirror([0,0,1]) {
-    translate([0, 0, zgap/2 * (1 - 2*biggerpi)]) {
-      translate([-ziglen + xgap/2, -100, 0])
+    translate([0, 0, -cutmore*feedzgap/2]) {
+      translate([-ziglen + -cutmore*feedxgap/2, -100, 0])
        cube([100, 100, 50]);
     }
   }
-  translate([blockwidth/2 - blockoverlapcnr, -50, -50])
+  translate([blockwidth/2 - blockoverlapcnr + -cutmore*backxgap/2,
+            -1,
+            -50])
     cube([100, 100, 100]);
 
-  translate([50, houterrad + blockdepth/2 + ribsgap * biggerpi, 0])
+  translate([ziglen + -cutmore*feedxgap/2,
+            -50,
+            -50])
+    cube([100, 51, 100]);
+
+  translate([50,
+            hinnerrad/2 + houterrad/2 + blockdepth/2 + -cutmore*ribsgap/2,
+            0])
     rotate([-90,0,90])
     linear_extrude(height=100)
     Ribs();
@@ -88,33 +104,35 @@ module SDemo(){
   %  Positive();
   //  Division(0);
   //}
-  Division(0);
+  Division(-1);
 }
 
 module A(){
   difference(){
     Positive();
-    Division(1);
+    Division(+1);
   }
 }
 
 module B(){
   intersection(){
     Positive();
-    Division(0);
+    Division(-1);
   }
 }
 
 module Demo(){
   color("red") A();
-//  color("blue") B();
+  color("blue") B();
 }
 
 //Ribs();
 //Demo();
 
 //A();
-B();
-%Division(0);
+//B();
+//%Division(+1);
 
-//Demo();
+//Hoop();
+
+Demo();