chiark / gitweb /
sprinkler-spike-receptacle: wip adjustments
[reprap-play.git] / sprinkler-spike-receptacle.scad
index c806941aa0646891a87375c4b13424fe0bc927d9..8f04b8f418e843cad7930f046c3b549b5d5c874b 100644 (file)
@@ -18,6 +18,14 @@ mount_hole_dia = 4.5;
 mount_head_dia = 7.5;
 mount_hole_th = 2.5;
 
+strap_height = main_height * 0.5;
+
+strap_width = 5.5;
+strap_thick = 2.5;
+strap_around = 2.5;
+strap_fixing_height = 4.0;
+strap_fixing_slope = 1.0;
+
 // calculated
 
 main_width = spike_top_width + topwall_width*2;
@@ -74,22 +82,49 @@ module MultiplySolidifyPlan(th){
   }
 }
 
-module MultiplyForMount(){
+module MultiplyForFixings(){
   for (r=[0:90:270])
     rotate([0,0,r])
     children(0);
 }
 
-module Mount(){
+module FixingsPositive(){
+  // mount
   translate([ -1,
              -mount_width/2,
              0 ])
     cube([ mount_dist + mount_width/2 + 1,
           mount_width,
           mount_height ]);
+
+  // strap
+  translate([main_width/2, 0, strap_height]) {
+    hull(){
+      translate([ -strap_around,
+                 -pos_web_thick/2,
+                 -(strap_thick + strap_around) / strap_fixing_slope ])
+       cube([ strap_around,
+              pos_web_thick/2 - strap_width/2,
+              0.5 ]);
+      translate([ -strap_around,
+                 -(strap_around + strap_width/2),
+                 0 ])
+       cube([ strap_around*2 + strap_thick,
+              strap_around,
+              strap_fixing_height ]);
+    }
+    mirror([0,1,0])
+      translate([ strap_thick,
+                 -strap_width/2,
+                 0 ])
+      cube([ strap_around,
+            strap_around + strap_width,
+            strap_fixing_height ]);
+  }
 }
 
-module MountHole(){
+module FixingsNegative(){
+  // mount hole
   translate([ mount_dist, 0,0 ]) {
     translate([0,0, -1])
       cylinder(r= mount_hole_dia/2, h= 20, $fn=20);
@@ -103,11 +138,11 @@ module Main(){
     union(){
       MultiplySolidifyPlan(pos_web_thick) PositivePlan();
       PositiveMidRounding();
-      MultiplyForMount() Mount();
+      MultiplyForFixings() FixingsPositive();
     }
     MultiplySolidifyPlan(spike_web_thick) NegativePlan();
     NegativeMidRounding();
-    MultiplyForMount() MountHole();
+    MultiplyForFixings() FixingsNegative();
   }
 }