119 lines
3.5 KiB
OpenSCAD
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();
|
|
} |