use <./common/common.scad>; $fn = 80; module square_spindle_reference () { SQUARE = 7.95; translate([0, 0, 12.3 - 1]) { difference() { union() { translate([0, 0, -(12.3 / 2)]) cube([SQUARE, SQUARE, 12.3], center = true); rotate([0, 90, 0]) cylinder(r = SQUARE / 2, h =8, center = true); rotate([0, 90, 90]) cylinder(r = SQUARE / 2, h =8, center = true); } for (i = [0 : 4]) { rotate([0, 0, i * 90]) translate([0, 4.9, 1]) rotate([12, 0, 0]) cube([SQUARE, 2, 10], center = true); } } } translate([0, 0, (39 / 2)]) cylinder(r = 6.57 / 2, h = 39, center = true, $fn = 60); } module square_spindle_reference_alternate () { $fn = 60; difference(){ translate([0, 0, -1.5]) cube([7.5, 7.5, 21.5], center = true); for (i = [0:4]) { rotate([0, 0, (i * 90)]){ translate([(7.5 / 2) + .4, (7.5 / 2) + .4, 18.5 / 2]) rotate([0, -15, 45]) cube([2.5, 7.5, 7.5], center = true); } } } difference () { union() { translate([0, 0, (18.5 / 2) + (3.5 / 2)]) cylinder(r = R(7.5), h = 3.5, center = true); translate([0, 0, (18.5 / 2) + (7.5 / 2)]) sphere(r =(7.5)); } translate ([0, 0, (18.5 / 2) + 7.5]) cube([10, 10, 2], center = true); } translate([0, 0, -(18.5/ 2) - (3 / 2) - 3]) cylinder(r = R(16), h = 3, center = true); } module super8_void (Height = 50) { fin_w = 2; center_d = 13.5; fin_l = (center_d / 2) + 4; for (i = [0:2]) { rotate([0, 0, (i * (360/3))]){ translate([0, fin_l/2, 0]) cube([fin_w, fin_l, Height], center = true); } } cylinder(r = R(center_d), h = Height, center = true); } module 16mm_square_spindle_void (Height = 21.5) { cube([8.3, 8.3, Height], center = true); } module 16mm_core_adapter_body () { $fn = 100; difference () { union () { cylinder(r1 = 13.2, r2 = 12.8, h = 16.6, center = true); translate([0, 0, -8.8]) cylinder(r = 15, h = 1, center = true); translate([14.5, 0, -.5]) cube([3.6, 3.6, 17.6], center = true); } children(); } } module 16mm_core_adapter () { 16mm_core_adapter_body() 16mm_square_spindle_void(); } module super8_to_16mm_core_adapter () { 16mm_core_adapter_body() super8_void(); } module 16mm_to_super8_reel_adapter () { BOTTOM_D = 21.53; BOTTOM_H = 1.5; D = 12.72; H = 10; SQUARE = 8.2; TAPER = 1.4; PEG_H = 9; PEG_L = 3.18; PEG_W = 2; $fn = 200; difference () { union () { cylinder(r = R(BOTTOM_D), h = BOTTOM_H, center = true); translate([0, 0, (BOTTOM_H / 2) + H / 2]) cylinder(r = R(D), h = H, center = true); translate([0, 0, (BOTTOM_H / 2) + H + (TAPER / 2)]) cylinder(r1 = R(D), r2 = R(D) - TAPER, h = TAPER, center = true); } rotate([0, 0, 45]) cube([SQUARE, SQUARE, 60], center = true); translate([0, 10, 0]) cube([3, 20, 60], center = true); } for (i = [1 : 2]) { rotate([0, 0, i * 120]) translate([0, (D / 2) + (PEG_L / 2) - (PEG_W / 2), (BOTTOM_H / 2) + (PEG_H / 2)]) cube([PEG_W, PEG_L, PEG_H], center = true); rotate([0, 0, i * 120]) translate([0, (D / 2) + (PEG_L / 2) + (PEG_W / 3), (BOTTOM_H / 2) + (PEG_H / 2)]) cylinder(r = R(PEG_W), h = PEG_H, center = true, $fn = 40); } } PART = "16mm_core"; if (PART == "16mm_core") { 16mm_core_adapter(); } else if (PART == "super8_to_16mm_core") { super8_to_16mm_core_adapter(); } else if (PART == "16mm_to_super8_reel") { 16mm_to_super8_reel_adapter(); } else { //square_spindle_reference_alternate(); }