]> mj.ucw.cz Git - home-hw.git/blobdiff - rs485-case/case.scad
Clock: A new daemon
[home-hw.git] / rs485-case / case.scad
index 1f60dd35b6075c129dc1a863c5a98875dae641e6..92d83beed4fd231749b8741a6772a0fee75264ca 100644 (file)
@@ -1,6 +1,6 @@
 wall_thickness = 1.5;
 
-pcb_length = 53.5;
+pcb_length = 54;
 pcb_width = 18.5;
 pcb_thickness = 1;
 pcb_depth = 3;
@@ -9,14 +9,16 @@ pcb_rail_width = 1;
 box_height = 12;
 box_depth = pcb_thickness + pcb_depth;
 
-usb_width = 10.5;
+lid_rail_width = 1;
+lid_rail_height = 1.5;
+
+usb_width = 12.2;
 usb_height = 11;
 
 rs485_width = 16.5;
 rs485_height = 8;
 
-lock_thickness = 1;
-lock_height = 4;
+text_depth = 0.2;
 
 over = 0.1;
 clearance = 0.3;
@@ -32,7 +34,7 @@ module bottom() {
 
                // USB connector hole
                translate([pcb_length-over, (pcb_width-usb_width)/2, 0])
-                       cube([wall_thickness+2, usb_width, box_height+over]);
+                       cube([wall_thickness+2*over, usb_width, box_height+over]);
 
                // RS485 connector hole
                translate([-wall_thickness-over, (pcb_width-rs485_width)/2, 0])
@@ -43,21 +45,13 @@ module bottom() {
                        cube([pcb_length, pcb_width, pcb_thickness+over]);
 
                // Sub-PCB holes
-               translate([0, pcb_rail_width, -pcb_thickness-pcb_depth])
+               translate([pcb_length - 10, pcb_rail_width, -pcb_thickness-pcb_depth])
                        cube([10, pcb_width - 2*pcb_rail_width, pcb_thickness + pcb_depth + over]);
-               translate([24, pcb_rail_width, -pcb_thickness-pcb_depth])
+               translate([pcb_length - 33, pcb_rail_width, -pcb_thickness-pcb_depth])
                        cube([9, pcb_width - 2*pcb_rail_width, pcb_thickness + pcb_depth + over]);
-               translate([pcb_length - 9, pcb_rail_width, -pcb_thickness-pcb_depth])
+               translate([1, pcb_rail_width, -pcb_thickness-pcb_depth])
                        cube([8, pcb_width - 2*pcb_rail_width, pcb_thickness + pcb_depth + over]);
        }
-
-       // Locks
-       /*
-       translate([0, -wall_thickness-lock_thickness, box_height - lock_height])
-               cube([pcb_length, lock_thickness + wall_thickness/2, lock_height]);
-       translate([0, pcb_width + wall_thickness/2, box_height - lock_height])
-               cube([pcb_length, lock_thickness + wall_thickness/2, lock_height]);
-       */
 }
 
 module top() {
@@ -67,6 +61,12 @@ module top() {
                        translate([-wall_thickness, -wall_thickness, 0])
                                cube([pcb_length + 2*wall_thickness, pcb_width + 2*wall_thickness, wall_thickness]);
 
+                       // Rails
+                       translate([0, 0, -lid_rail_height])
+                               cube([pcb_length, lid_rail_width, lid_rail_height + over]);
+                       translate([0, pcb_width - lid_rail_width, -lid_rail_height])
+                               cube([pcb_length, lid_rail_width, lid_rail_height + over]);
+
                        // USB connector roof
                        translate([pcb_length, (pcb_width - usb_width)/2 + clearance, usb_height - box_height + clearance])
                                cube([wall_thickness, usb_width - 2*clearance, box_height - usb_height - clearance + over]);
@@ -83,20 +83,20 @@ module top() {
                        cube([4, 2, wall_thickness + 2*over]);
 
                // USB label
-               translate([pcb_length-3, pcb_width/2, wall_thickness/2])
+               translate([pcb_length-3, pcb_width/2, wall_thickness - text_depth])
                rotate(90)
                scale([0.4, 0.4, 1])
-                       linear_extrude(wall_thickness/2 + over)
+                       linear_extrude(text_depth + over)
                        text("USB", font = "Liberation Serif", halign="center");
 
                // RS485 label
-               translate([3, pcb_width/2, wall_thickness/2])
+               translate([3, pcb_width/2, wall_thickness - text_depth])
                rotate(-90)
                scale([0.4, 0.4, 1])
-                       linear_extrude(wall_thickness/2 + over)
+                       linear_extrude(text_depth + over)
                        text("RS 485", font = "Liberation Serif", halign="center");
        }
 }
 
-color([0.7, 0, 0]) bottom();
-color([0, 1, 0]) translate([0, 0, box_height]) top();
+bottom();
+color([1, 0, 0]) translate([0, 0, box_height]) top();