film_adapter/scad/adapter.scad

119 lines
3.5 KiB
OpenSCAD

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();
}