84 lines
2.4 KiB
OpenSCAD
84 lines
2.4 KiB
OpenSCAD
include <../../libraries/Minolta16.scad>;
|
|
|
|
time=0;
|
|
|
|
module feed () {
|
|
INNER_D = FEED_D - WALL_THICKNESS;
|
|
1_OFFSET_Z = (CART_H / 2) - (CAP_LIP_H / 2);
|
|
|
|
difference () {
|
|
union () {
|
|
cylinder(r = FEED_D / 2, h = CART_H, center = true);
|
|
translate([-FEED_D / 4, FEED_D / 4, 0]) {
|
|
cube([FEED_D / 2, FEED_D / 2, CART_H], center = true);
|
|
}
|
|
}
|
|
translate([0, 0, WALL_THICKNESS]) cylinder(r = INNER_D / 2, h = CART_H, center = true);
|
|
//notch
|
|
//translate([-(FEED_D / 2) + 1, 6, (CART_H / 2) - 1]) cube([2, 2, 2], center = true);
|
|
//film neg
|
|
translate ([-FEED_D / 2, FILM_NEG_OFFSET_Y, WALL_THICKNESS / 2]) {
|
|
cube([FEED_D, FILM_NEG_Y, CART_H], center = true);
|
|
}
|
|
//cap neg
|
|
//translate([0, 0, FEED_CAP_OFFSET_Z]) feed_cap_neg();
|
|
}
|
|
}
|
|
|
|
module feed_cap() {
|
|
cylinder(r = FEED_D / 2, h = CART_H, center = true);
|
|
}
|
|
|
|
module feed_cap_neg () {
|
|
INNER_D = FEED_D - CAP_LIP;
|
|
|
|
difference () {
|
|
cylinder(r = FEED_D / 2, h = CAP_LIP_H, center = true);
|
|
translate([0, 0, WALL_THICKNESS]) cylinder(r = INNER_D / 2, h = CART_H, center = true);
|
|
translate([-FEED_D / 4, FEED_D / 4, 0]) {
|
|
cube([FEED_D / 2, FEED_D / 2, CART_H], center = true);
|
|
}
|
|
}
|
|
}
|
|
|
|
module takeup () {
|
|
INNER_D = TAKEUP_D - WALL_THICKNESS;
|
|
difference () {
|
|
union () {
|
|
cylinder(r = TAKEUP_D / 2, h = CART_H, center = true);
|
|
translate([TAKEUP_D / 4, TAKEUP_D / 4, 0]) {
|
|
cube([TAKEUP_D / 2, TAKEUP_D / 2, CART_H], center = true);
|
|
}
|
|
}
|
|
//notch
|
|
//translate([(TAKEUP_D / 2) - 1, 7.5, (CART_H / 2) - 1]) cube([2, 2, 2], center = true);
|
|
translate([0, 0, WALL_THICKNESS]) cylinder(r = INNER_D / 2, h = CART_H, center = true);
|
|
//film neg
|
|
translate ([TAKEUP_D / 2, FILM_NEG_OFFSET_Y - TAKEUP_OFFSET_Y, WALL_THICKNESS / 2]) {
|
|
cube([TAKEUP_D, FILM_NEG_Y, CART_H], center = true);
|
|
}
|
|
}
|
|
}
|
|
|
|
module connector () {
|
|
cube([CONNECT_X, CONNECT_Y, CONNECT_Z], center = true);
|
|
}
|
|
|
|
module minolta16_cartridge (DEBUG = true) {
|
|
translate([SPACING / 2, 0, 0]) feed();
|
|
translate([-SPACING / 2, TAKEUP_OFFSET_Y, 0]) takeup();
|
|
translate([CONNECT_OFFSET_X, CONNECT_OFFSET_Y, CONNECT_OFFSET_Z]) {
|
|
connector();
|
|
}
|
|
//debug
|
|
if (DEBUG) {
|
|
//plane
|
|
translate ([0, FILM_NEG_OFFSET_Y , .25]) {
|
|
cube([SPACING, .14, 16], center = true);
|
|
}
|
|
}
|
|
}
|
|
|
|
rotate([0, 0, time]) minolta16_cartridge(false);
|
|
|