sixteenmillimeter-tools/models/minolta16_cartridge/minolta16_cartridge.scad

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