|
- $fn = $preview ? 16 : 72;
-
- wall_thickness = 3;
- //box = [21,21,21];
- box = [195,75,36];
- corner_radius = 2;
- cutoff = 0.5;
- overlap = 4;
- taper = 0.1;
-
- module outer_box(box) {
- minkowski(){
- cube([box.x+wall_thickness,box.y+wall_thickness,box.z+wall_thickness], center=true);
- sphere(d=wall_thickness);
- }
- }
-
- module box(size, wall=3, taper=0) {
- translate([0,0,-size.z/2])
- hull(){
- linear_extrude(height=0.1, scale=0)
- offset(r=wall/2) square(size=[(size.x+wall-taper),(size.y+wall-taper)],center=true);
- translate([0,0,size.z])
- rotate([0,180,0])
- linear_extrude(height=0.1, scale=0)
- offset(r=wall/2) square(size=[size.x+wall+taper,size.y+wall+taper],center=true);
- }
- }
-
- module bottom_box(box) {
- difference(){
- //box(size=[box.x,box.y,box.z+2*wall_thickness] ,wall=wall_thickness);
- outer_box(box);
- translate([0,0,box.z*cutoff+wall_thickness])
- cube([box.x+60,box.y+60,box.z],center=true);
- //cube(box,center=true);
- translate([0,0,box.z*cutoff+overlap-wall_thickness+0.01])
- #box([box.x,box.y,overlap],wall=wall_thickness/2,taper=0.5);
- translate([box.x/2+wall_thickness,0,0])
- rotate([90,0,90])
- side_text();
- translate([-box.x/2-wall_thickness,0,0])
- rotate([90,0,-90])
- side_text();
- }
- }
-
- module custom_text() {
- linear_extrude(height=0.4,center=true)
- text("Wetstone", valign="center", halign="center");
- }
-
- module side_text(){
- linear_extrude(height=0.4,center=true)
- scale(1.2)
- text("Wetstone", valign="center", halign="center");
- }
-
- module top_box(box) {
- inner_wall_t = wall_thickness - 0.5;
- difference(){
- union(){
- difference(){
- outer_box(box);
- //box(size=[box.x,box.y,box.z+2*wall_thickness] ,wall=wall_thickness);
- translate([0,0,-box.z*(1-cutoff)+wall_thickness])
- cube([box.x+60,box.y+60,box.z],center=true);
- }
- translate([0,0,overlap-wall_thickness+0.1])
- box([box.x,box.y,overlap],wall=wall_thickness/2,taper=0.5);
- }
- translate([0,0,box.z/2+wall_thickness])
- linear_extrude(height=0.4,center=true)
- scale(3)
- text("Wetstone", valign="center", halign="center");
- cube(box,center=true);
- translate([box.x/2+wall_thickness,0,0])
- rotate([90,0,90])
- side_text();
- translate([-box.x/2-wall_thickness,0,0])
- rotate([90,0,-90])
- side_text();
-
- }
- }
-
- module top_box_flip() {
- rotate([0,180,0])
- top_box();
- }
-
- * rotate([0,90,0]){
- bottom_box();
- translate([0,0,20])
- top_box();
- }
-
-
|