# HG changeset patch # User Paul Boddie # Date 1389396323 -3600 # Node ID 70e6508742f452b193194bd8697d0f6c28045f93 Added Acorn Electron expansion cartridge physical models. diff -r 000000000000 -r 70e6508742f4 cartridge.scad --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cartridge.scad Sat Jan 11 00:25:23 2014 +0100 @@ -0,0 +1,89 @@ +module cartridge() +{ + $fn = 50; + + module fillet(r, h) { + translate([0, 0, -h/2]) + difference() { + cube([r, r, h]); + cylinder(r = r, h = h); + } + } + + /* Cartridge dimensions. */ + + width = 89.0; + height = 68.5; + depth = 16.5; + + /* Side thicknesses. */ + + front = 2; + back = 3.5; + top = 3; + left = 2; + right = 2; + + /* Rounding/fillet offset, radius and additional length. + The radius needs to be slightly larger than the offset + in order to avoid geometry problems. */ + + ro = 1; + rr = 1.01; + extra = 0; + + difference() { + union() { + translate([0, -depth / 2 + front / 2, 0]) + cube([width, front, height], center = true); + translate([0, depth / 2 - back / 2, 0]) + cube([width, back, height], center = true); + translate([-width / 2 + left / 2, 0, 0]) + cube([left, depth, height], center = true); + translate([width / 2 - right / 2, 0, 0]) + cube([right, depth, height], center = true); + translate([0, 0, height / 2 - top / 2]) + cube([width, depth, top], center = true); + } + + union() { + + /* Top left and right rounding. */ + + translate([-width / 2 + ro, 0, height / 2 - ro]) + rotate([0, 0, 180]) + rotate([90, 0, 0]) + fillet(rr, depth + extra); + translate([width / 2 - ro, 0, height / 2 - ro]) + rotate([90, 0, 0]) + fillet(rr, depth + extra); + + /* Top back and front rounding. */ + + translate([0, depth / 2 - ro, height / 2 - ro]) + rotate([0, -90, 0]) + fillet(rr, width + extra); + translate([0, -depth / 2 + ro, height / 2 - ro]) + rotate([0, 0, 180]) + rotate([0, -90, 0]) + fillet(rr, width + extra); + + /* Edge rounding. */ + + translate([width / 2 - ro, depth / 2 - ro, 0]) + fillet(rr, height + extra); + translate([-width / 2 + ro, depth / 2 - ro, 0]) + rotate([0, 0, 90]) + fillet(rr, height + extra); + translate([-width / 2 + ro, -depth / 2 + ro, 0]) + rotate([0, 0, 180]) + fillet(rr, height + extra); + translate([width / 2 - ro, -depth / 2 + ro, 0]) + rotate([0, 0, 270]) + fillet(rr, height + extra); + } + } +} + +cartridge(); + diff -r 000000000000 -r 70e6508742f4 cartridge.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cartridge.svg Sat Jan 11 00:25:23 2014 +0100 @@ -0,0 +1,1057 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + Front of cartridge + + + Front label of cartridge + + + + + + + Front of cartridge + + + Front of cartridge + + + Front of cartridge + + + + + + + Front of cartridge + + + Front of cartridge + + + Front of cartridge + + + + + Front of cartridge + + + + + Front label of cartridge + + + Front of cartridge + + + Front label of cartridge + + + Front of cartridge + + + + + 0.65cm + + 0.85vm 0.85cm + + 1.1cm + 6.85cm + 4.6cm + Front Bottom front Bottom back Top back Top front + 0.85cm + + 1.1cm + + 1.0cm + + 0.65cm + + 8.7cm + + 6.4cm + + 6.5cm + + 6.8cm + + 6.6cm + + 6.9cm + + 8.3cm + + 1.95cm + + Front of cartridge + + + 6.65cm + + 6.35cm + Front cross-section for label region 8.3cm + 8.9cm + + Front of cartridge + + Back cross-section for cut-out region + + 1.35cm + 1.2cm + + Front of cartridge + + + 5.7cm + + Front of cartridge + + + Front label of cartridge + + + Front label of cartridge + + + + + + + 6.85cm + 8.9cm + + 6.8cm + 6.5cm + Back +