HM v4.3 Case CNC G-Code file


 

DLMiller

TVWBB Member
I have been trying to modify the v4.3 case in OpenSCAD I have made some changes through changing the code in trial and error, wow what a piece of software, unsuccessfully I might add. I then need to export it as a STL and then into G-Code for my CNC machine.

Maybe I could get the case modified with a few changes...

Once I get a working model of the case produced by CNC I can post it for any future needs.

All I need is;
  1. The case set to 1/4 inch thickness.
  2. A larger space between the electronics and the bottom. I need the extra space for mounting screws.
  3. And all Locking Lips removed.
  4. Nuttrapps removed.

If this is possible I appreciate the help....
 
1 - Set "wall" equal to inch(0.25). This may cause issues where some things expect wall to be around 2-3mm so they start turning inside out (and become convex) with that width.
2 - Is a real problem because that means that everything in the case would have to have its position modified. Everything is relative to its distance from the bottom of the case, not the position of bottom of the Pi. This could be a pretty big job.
3 - Just comment out all the locklip calls
4 - Just comment out the nuttrap call and LCD grab notch

Here's what all that looks like apart from #2. Note that an asterisk comments out a whole statement, which may span multiple lines. I only saw and fixed one problem that the thick wall caused but that's just me looking at it with my eyeballs, you may find other things that aren't quite right in practice. Full file on gist.
Code:
diff --git a/3d/hm-case-43.scad b/3d/hm-case-43.scad
index 2d2236a..32fb31d 100644
--- a/3d/hm-case-43.scad
+++ b/3d/hm-case-43.scad
@@ -10,7 +10,7 @@ Pieces = "Both"; // [Both,Top,Bottom]
 // Include cutouts and mounts for LCD/Buttons
 LCD = 1; // [0:None,1:2-line]
 // Thickness of side walls (mm) - Set to trace width multiple
-wall = 2.5;
+wall = inch(0.25); //2.4;
 /* [Advanced] */
 // Thickness of top and bottom faces (mm)
 wall_t = 2;
@@ -307,7 +307,7 @@ difference() {
     }
   }
   // Pi connector side  
-  translate([wall*-0.5,wall+d_off,wall_t]) {
+  translate([0,wall+d_off,wall_t]) {
     // Pi connectors
     translate([0,0,5]) {
       if (Pi_Model == "3B/2B/1B+") {
@@ -346,7 +346,7 @@ difference() {
     }  
   }
   // close screw holes
-  translate([wall+inch(0.825)+0.5,wall+d_off+inch(0.1),0]) {
+  *translate([wall+inch(0.825)+0.5,wall+d_off+inch(0.1),0]) {
     screwhole();
     translate([inch(2.0),0,0]) screwhole();
   }
@@ -384,13 +384,13 @@ difference() {
   } // if !Zero
   
   // close nut traps
-  translate([wall+inch(0.825)+0.5,wall+d_off+inch(0.1),0]) {
+  *translate([wall+inch(0.825)+0.5,wall+d_off+inch(0.1),0]) {
     nuttrap();
     translate([inch(2.0),0,0]) nuttrap();
   }
   
   // Top locklip (negative)
-  if (Pi_Model == "3B/2B/1B+")
+  *if (Pi_Model == "3B/2B/1B+")
     locklip_top_n(case_split);
   else
     locklip_top_n(probe_centerline);
@@ -403,7 +403,7 @@ difference() {
         cube_fillet([w,d-d_off-78,lcd_mount_t+e], 
           bottom=[lcd_mount_t/2,lcd_mount_t/2,0,lcd_mount_t/2]);
       // LCD grab notch
-      translate([wall+10.7, wall+d_off+51.5, h_b+wall_t-lcd_mount_t])
+      *translate([wall+10.7, wall+d_off+51.5, h_b+wall_t-lcd_mount_t])
         translate([(77.5-20)/2,34.0-wall_t,-(1.8+wall_t)])
           // 1.8=thickness of LCD pcb
           cube_fillet([20,1.8+wall_t+wall,1.8+wall_t+e], top=[0,0,1.8+wall_t+e],
@@ -520,7 +520,7 @@ module hm43_split() {
       hm43();
       split_volume();
     }
-    if (Pi_Model == "3B/2B/1B+")
+    *if (Pi_Model == "3B/2B/1B+")
       hm43_bottom_lips(case_split);
     else
       hm43_bottom_lips(probe_centerline);
 

 

Back
Top