X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=rs485-case%2Fcase.scad;h=92d83beed4fd231749b8741a6772a0fee75264ca;hb=e37b5b9c468d4c3898c2ae3affbf4165f4bf95de;hp=1f60dd35b6075c129dc1a863c5a98875dae641e6;hpb=fb54a06fe1365ebbce7ca19bea34358ebe94917d;p=home-hw.git diff --git a/rs485-case/case.scad b/rs485-case/case.scad index 1f60dd3..92d83be 100644 --- a/rs485-case/case.scad +++ b/rs485-case/case.scad @@ -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();