1.1 --- a/cartridge.scad Sat Jan 11 00:52:30 2014 +0100
1.2 +++ b/cartridge.scad Sat Jan 11 01:12:34 2014 +0100
1.3 @@ -2,10 +2,18 @@
1.4 {
1.5 $fn = 50;
1.6
1.7 + /* Rounding/fillet radius and additional margin of subtracted
1.8 + material. The additional margin helps avoid geometry
1.9 + problems. */
1.10 +
1.11 + rr = 1;
1.12 + ro = rr;
1.13 + extra = 0.1;
1.14 +
1.15 module fillet(r, h) {
1.16 translate([0, 0, -h/2])
1.17 difference() {
1.18 - cube([r, r, h]);
1.19 + cube([r + extra, r + extra, h]);
1.20 cylinder(r = r, h = h);
1.21 }
1.22 }
1.23 @@ -22,10 +30,12 @@
1.24 front_label_height = 46.0;
1.25 front_label_depth = 1.0;
1.26 front_label_offset_from_bottom = 19.5;
1.27 +
1.28 top_label_width = front_label_width;
1.29 top_label_height = 11.5;
1.30 top_label_depth = front_label_depth;
1.31 top_label_offset_from_front = 2.5;
1.32 +
1.33 groove_depth = 1.0;
1.34
1.35 /* Side thicknesses. */
1.36 @@ -36,14 +46,6 @@
1.37 left = 2;
1.38 right = 2;
1.39
1.40 - /* Rounding/fillet offset, radius and additional length.
1.41 - The radius needs to be slightly larger than the offset
1.42 - in order to avoid geometry problems. */
1.43 -
1.44 - ro = 1;
1.45 - rr = 1.01;
1.46 - extra = 0;
1.47 -
1.48 difference() {
1.49
1.50 /* The cartridge surfaces. */
1.51 @@ -110,34 +112,34 @@
1.52 translate([-width / 2 + ro, 0, height / 2 - ro])
1.53 rotate([0, 0, 180])
1.54 rotate([90, 0, 0])
1.55 - fillet(rr, depth + extra);
1.56 + fillet(rr, depth);
1.57 translate([width / 2 - ro, 0, height / 2 - ro])
1.58 rotate([90, 0, 0])
1.59 - fillet(rr, depth + extra);
1.60 + fillet(rr, depth);
1.61
1.62 /* Top back and front rounding. */
1.63
1.64 translate([0, depth / 2 - ro, height / 2 - ro])
1.65 rotate([0, -90, 0])
1.66 - fillet(rr, width + extra);
1.67 + fillet(rr, width);
1.68 translate([0, -depth / 2 + ro, height / 2 - ro])
1.69 rotate([0, 0, 180])
1.70 rotate([0, -90, 0])
1.71 - fillet(rr, width + extra);
1.72 + fillet(rr, width);
1.73
1.74 /* Edge rounding. */
1.75
1.76 translate([width / 2 - ro, depth / 2 - ro, 0])
1.77 - fillet(rr, height + extra);
1.78 + fillet(rr, height);
1.79 translate([-width / 2 + ro, depth / 2 - ro, 0])
1.80 rotate([0, 0, 90])
1.81 - fillet(rr, height + extra);
1.82 + fillet(rr, height);
1.83 translate([-width / 2 + ro, -depth / 2 + ro, 0])
1.84 rotate([0, 0, 180])
1.85 - fillet(rr, height + extra);
1.86 + fillet(rr, height);
1.87 translate([width / 2 - ro, -depth / 2 + ro, 0])
1.88 rotate([0, 0, 270])
1.89 - fillet(rr, height + extra);
1.90 + fillet(rr, height);
1.91 }
1.92 }
1.93 }