chiark / gitweb /
digispark-with-cable: wip progress
[reprap-play.git] / digispark-with-cable.scad
index a489574afb718cdaaa95c5dd2f5f1353ff766e0a..e6d3d7014966f32aa765b476ce1f1cda0dd01874 100644 (file)
@@ -55,9 +55,12 @@ side_x_gap = 0.5;
 
 cover_ceil_th = 0.9;
 
+cover_strap_sz_x = side_wall_th * 3.5;
+
 // calculated
 
 strap_w = strain_w;
+cover_strap_cutout_z = side_wall_th;
 
 top_top_z = usb_wall_h;
 top_base_z = -board_th;
@@ -87,6 +90,27 @@ module BothSides(){
     }
   }
 }
+
+module BottomStrapCutouts(y_c){
+  BothSides(){
+    translate([ -total_side_wall_x, y_c, bottom_base_z ])
+      rotate([0, -45, 0])
+      cube([ side_wall_th,
+            strap_w,
+            10 ],
+          center=true);
+  }
+}
+module CoverStrapCutouts(){
+  BothSides(){
+    translate([ -total_side_wall_x, -cover_strap_c_d_y, cover_top_z ])
+      cube([ cover_strap_sz_x*2,
+            strap_w,
+            cover_strap_cutout_z*2 ],
+          center=true);
+  }
+}
+
 module FrontWallsPlan(slop) {
   BothSides(){
     rectfromto([ -board_w/2 - side_wall_th,    0             ],
@@ -204,6 +228,11 @@ module Bottom(){ ////toplevel
        }
       }
     }
+    minkowski(){
+      CoverRegistrations();
+      cube([ 1, fit_gap_y*2, fit_gap_z*2 ], center=true);
+    }
+    BottomStrapCutouts(-cover_strap_c_d_y);
   }
 }
 
@@ -216,9 +245,14 @@ module CoverMainElevation(){
   }
 }
 module Cover(){ ////toplevel
-  linextr_y_xz(main_y_min, front_y_max)
-    CoverMainElevation();
-  CoverRegistrations();
+  difference(){
+    union(){
+      linextr_y_xz(main_y_min, front_y_max)
+       CoverMainElevation();
+      CoverRegistrations();
+    }
+    CoverStrapCutouts();
+  }
 }
 
 module BottomDemo(){ ////toplevel