From f224e8d86161920e554691abad8124d8ae382486 Mon Sep 17 00:00:00 2001 From: dakkar Date: Sat, 24 Jun 2023 18:46:42 +0100 Subject: start --- soap-box.scad | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 soap-box.scad diff --git a/soap-box.scad b/soap-box.scad new file mode 100644 index 0000000..5ff2772 --- /dev/null +++ b/soap-box.scad @@ -0,0 +1,77 @@ +wall_thickness_mm=1.5; +length_mm=120; +width_mm=70; +height_mm=30; +net_slack_pc=0; +net_thickness_mm=0.5; +peg_diam_mm=1; +slot_tolerance=0.1; +peg_hole_tolerance=0.2; + +module notched_wall(x,y,z,side) { + module notch() { + translate ([-slot_tolerance,side*(y/2-slot_tolerance),-z/2]) + cube([z+slot_tolerance*2,y,z*2]); + } + difference() { + cube ([x,y,z]); + translate ([x/2,0,-z/2]) + scale ([(x-z*5)/2,y/2,1]) + cylinder(r=1,h=z*2, $fs=0.1, $fn=0); + translate ([z,0,0]) notch(); + translate ([x-z*2,0,0]) notch(); + } +} + +module wall_NS() { + module peg_hole() { + translate([0,0,-wall_thickness_mm/2]) + cylinder( + d=(peg_diam_mm+peg_hole_tolerance), + h=wall_thickness_mm*2, + $fs=0.1, $fn=0 + ); + } + difference() { + notched_wall(width_mm,height_mm,wall_thickness_mm,-1); + translate([wall_thickness_mm*2.5,height_mm-wall_thickness_mm,0]) peg_hole(); + translate([width_mm-wall_thickness_mm*2.5,height_mm-wall_thickness_mm,0]) peg_hole(); + } +} + +module wall_EW() { + notched_wall(length_mm,height_mm,wall_thickness_mm,1); +} + +module soap_net() { + net_width_mm=(width_mm-wall_thickness_mm*5)*(1+net_slack_pc/100); + net_length_mm=length_mm-wall_thickness_mm*5; + + module peg() { + intersection() { + translate([0,0,peg_diam_mm*0.4]) + rotate([-90,0,0]) + cylinder( + d=peg_diam_mm, + h=length_mm-wall_thickness_mm*2, + $fs=0.1, $fn=0 + ); + translate([-peg_diam_mm,-length_mm*0.5,0]) + cube([peg_diam_mm*2,length_mm*2,peg_diam_mm*2]); + } + } + + union() { + cube ([net_width_mm,net_length_mm,net_thickness_mm]); + translate ([0,-wall_thickness_mm*1.5,0]) peg(); + translate ([net_width_mm,-wall_thickness_mm*1.5,0]) peg(); + } +} + +wall_NS(); +translate([0,height_mm*1.2,0]) wall_NS(); + +translate ([width_mm*1.2,0,0]) wall_EW(); +translate ([width_mm*1.2,height_mm*1.2,0]) wall_EW(); + +translate ([wall_thickness_mm*2.5,height_mm*2.5 ,0]) soap_net(); -- cgit v1.2.3