All work on mcopy hardware. Improvements to gate peg bars, film path, front block and gate mask slides. Improvement to rails mounts for Bolex and Arri. Improvements to projector controller electronics mount.
This commit is contained in:
parent
34dfb25f57
commit
d40957063c
|
@ -11,4 +11,6 @@ dist
|
|||
|
||||
notes/mphd
|
||||
|
||||
./lib
|
||||
./lib
|
||||
|
||||
./debug
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"version": "1.8.148",
|
||||
"version": "1.8.149",
|
||||
"ext_port": 1111,
|
||||
"profiles": {
|
||||
"mcopy": {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "mcopy-app",
|
||||
"version": "1.8.148",
|
||||
"version": "1.8.149",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "mcopy-app",
|
||||
"version": "1.8.148",
|
||||
"version": "1.8.149",
|
||||
"description": "GUI for the mcopy small gauge film optical printer platform",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"version": "1.8.148",
|
||||
"version": "1.8.149",
|
||||
"ext_port": 1111,
|
||||
"profiles": {
|
||||
"mcopy": {
|
||||
|
|
Binary file not shown.
|
@ -1,13 +1,16 @@
|
|||
module,quantity,part,part_id,description
|
||||
front_block_pegs,2,M2.5 hex cap bolts 10mm,N/A,Fasctens front_block_pegs to front_block
|
||||
front_block,2,M5 hex cap bolt 25mm,N/A,
|
||||
front_block,4,M2.5 hex nut,N/A,Attach the film path blocks
|
||||
front_block,2,M5 hex cap bolt 25mm,N/A,Attach the front_block to the body
|
||||
body,2,Bearing,N/A,Center sprocketed_roller in gate voids and allow for smooth rotation
|
||||
body,2,M3 hex nut,N/A,Attach slide_catch to gate
|
||||
body,12,M2.5 hex nut,N/A,Attach idle_roller and filter_holder and slide_rail to gate
|
||||
body,12,M2.5 hex nut,ISO 4032,Attach idle_roller and filter_holder and slide_rail to gate
|
||||
body,4,M2.5 hex cap bolt 10mm,N/A,Attach slide_rail to gate
|
||||
body,2,M2.5 hex cap bolt 25mm,N/A,Attach filter_holder to gate
|
||||
body,6,M2.5 hex cap bolt 15mm,N/A,Attach idle_roller to gate
|
||||
body,2,M5 hex nut,N/A,Attach front_block to gate
|
||||
body,2,M5 hex cap bolt 20mm,N/A,Attach gate to projector
|
||||
sprocketed_roller_nut_16mm,s,,,
|
||||
sprocketed_roller_nut_16mm,2,M2.5 hex nut,ISO 4032,Attaches the bolt to the nut
|
||||
sprocketed_roller_nut_16mm,2,M2.5 hex cap bolt 16mm,ISO 4762,Attaches the nut to the sprocketed roller
|
||||
back_plate,1,M2.5 hex cap bolt 10mm,N/A,Join the front_plate to the back_plate
|
||||
front_plate,1,M2.5 hex nut,N/A,Join the front_plate to the back_plate
|
||||
front_plate,1,M2.5 hex nut,ISO 4032,Join the front_plate to the back_plate
|
||||
|
|
|
|
@ -3,10 +3,11 @@ quantity,part_id,part,price
|
|||
2,"M5 hex cap bolt 25mm",N/A,0
|
||||
2,"M5 hex cap bolt 20mm",N/A,0
|
||||
2,"M3 hex nut",N/A,6
|
||||
13,"M2.5 hex nut",N/A,0
|
||||
19,"M2.5 hex nut",N/A,171
|
||||
2,"M2.5 hex cap bolts 10mm",N/A,0
|
||||
2,"M2.5 hex cap bolt 25mm",N/A,0
|
||||
2,"M2.5 hex cap bolt 16mm","ISO 4762",0
|
||||
6,"M2.5 hex cap bolt 15mm",N/A,0
|
||||
5,"M2.5 hex cap bolt 10mm",N/A,0
|
||||
0.0,"","",0.0
|
||||
36.0,N/A,TOTALS,6.0
|
||||
2,Bearing,N/A,0
|
||||
46,N/A,TOTALS,177
|
||||
|
|
|
|
@ -0,0 +1,4 @@
|
|||
module,quantity,part,part_id,description
|
||||
sled,8,Radial bearing,N/A,For something
|
||||
sled,2,Linear bearing,N/A,For center rails
|
||||
sled,2,T8 Nut,N/A,For drive screw
|
|
|
@ -0,0 +1,5 @@
|
|||
quantity,part_id,part,price
|
||||
2,"T8 Nut",N/A,0
|
||||
8,"Radial bearing",N/A,0
|
||||
2,"Linear bearing",N/A,0
|
||||
12,N/A,TOTALS,0
|
|
|
@ -0,0 +1,4 @@
|
|||
module,quantity,part,part_id,description
|
||||
electronics_attachment,2,M3 hex cap bolt 12mm,N/A,Attach to electronics mount
|
||||
electronics_mount,2,M3 hex nut,N/A,Attach electronics attachment
|
||||
electronics_mount,4,M3 hex cap bolt 8mm,N/A,Attach Arduino Uno
|
|
|
@ -0,0 +1,5 @@
|
|||
quantity,part_id,part,price
|
||||
2,"M3 hex nut",N/A,6
|
||||
4,"M3 hex cap bolt 8mm",N/A,0
|
||||
2,"M3 hex cap bolt 12mm",N/A,18
|
||||
8,N/A,TOTALS,24
|
|
|
@ -1,4 +1,5 @@
|
|||
part,part_id,price,url
|
||||
M3 hex nut,N/A,3,https://amzn.to/4hAnwjc
|
||||
M3 hex cap bolt 12mm,N/A,9,https://amzn.to/48CGa5Y
|
||||
608-RS Ball Bearing,608-RS,8,https://amzn.to/4fKxDA7
|
||||
608-RS Ball Bearing,608-RS,8,https://amzn.to/4fKxDA7
|
||||
M2.5 hex nut, ISO 4032,9,https://www.metricscrewandtool.com/product-page/m2-5-hex-nuts
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"name": "mcopy",
|
||||
"version": "1.8.148",
|
||||
"version": "1.8.149",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "mcopy",
|
||||
"version": "1.8.148",
|
||||
"version": "1.8.149",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"alert": "file:app/lib/alert",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "mcopy",
|
||||
"version": "1.8.148",
|
||||
"version": "1.8.149",
|
||||
"description": "Small gauge film optical printer platform",
|
||||
"main": "build.js",
|
||||
"directories": {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"version": "1.8.148",
|
||||
"version": "1.8.149",
|
||||
"ext_port": 1111,
|
||||
"profiles": {
|
||||
"mcopy": {
|
||||
|
|
|
@ -38,6 +38,12 @@ BearingInnerDiameter = 11.5;
|
|||
|
||||
capM3OffsetZ = 11.5;
|
||||
|
||||
module debug_arris (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
||||
translate(pos) rotate(rot) {
|
||||
color("green") cube([60, 80, 0.1], center = true);
|
||||
color("red") translate([0, 0, 57]) cube([16, 0.1, 10], center = true);
|
||||
}
|
||||
}
|
||||
|
||||
module motorBarrel () {
|
||||
$fn = 200;
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
use <./common/common.scad>;
|
||||
|
||||
BolexFilmPlaneZ = 108.7;
|
||||
BolexFilmPlaneX = 0;
|
||||
BolexFilmPlaneY = 0;
|
||||
|
||||
module debug_bolex_film_plane (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
||||
translate(pos) rotate(rot) {
|
||||
color("red") cube([16, 0.1, 10], center = true);
|
||||
}
|
||||
}
|
||||
|
||||
module debug_bolex_base_plate (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
||||
translate(pos) rotate(rot) {
|
||||
color("green") cube([56, 78, 0.1], center = true);
|
||||
}
|
||||
}
|
||||
|
||||
module debug_bolex (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
||||
translate(pos) rotate(rot) {
|
||||
debug_bolex_film_plane([BolexFilmPlaneX, BolexFilmPlaneY, BolexFilmPlaneZ]);
|
||||
debug_bolex_base_plate();
|
||||
}
|
||||
}
|
|
@ -79,7 +79,7 @@ module plug_pin_voids (PinH) {
|
|||
plug_pin(PinSpacing, -PinSpacing, PinH); //7
|
||||
}
|
||||
|
||||
module socket_pin_voids (PinH) {
|
||||
module socket_pin_voids (PinH, OnlyPins) {
|
||||
socket_pin(0, 0, PinH); //5
|
||||
socket_pin(PinSpacing, 0, PinH); //4
|
||||
socket_pin(-PinSpacing, 0, PinH); //6
|
||||
|
|
|
@ -1,9 +1,72 @@
|
|||
include <./common.scad>;
|
||||
|
||||
use <./common/common.scad>;
|
||||
use <./bolex.scad>;
|
||||
|
||||
RAIL_SPACING = 160;
|
||||
RAIL_H = 70;
|
||||
RAIL_LEN = 400;
|
||||
RAIL_D=25.4;
|
||||
RAIL_D = 25.4;
|
||||
|
||||
X = 134;
|
||||
Y = 105.5;
|
||||
Z = 19;
|
||||
|
||||
VX = 106.7;
|
||||
VY = 76;
|
||||
|
||||
A1 = 61;
|
||||
A2 = 60.2;
|
||||
|
||||
B1 = 80.8;
|
||||
B2 = 80.3;
|
||||
|
||||
C1 = 91.7;
|
||||
C2 = 90.6;
|
||||
|
||||
OFFSETX = 0;
|
||||
|
||||
CameraSledBolexZ = 33;
|
||||
CameraSledBolexX = 100;
|
||||
CameraSledBolexY = 105;
|
||||
|
||||
CameraSledBolexPlateX = 60;
|
||||
CameraSledBolexPlateY = 90;
|
||||
CameraSledBolexPlateZ = 15;
|
||||
|
||||
CameraBoltX = (A1 + A2) / 2; //75;
|
||||
CameraBoltY = (C1 + C2) / 2;
|
||||
|
||||
module cy (D, H, FN = $fn, X = 0, Y = 0, Z = 0) {
|
||||
rotate([X, Y, Z]) cylinder(r = R(D), h = H, center = true, $fn = FN);
|
||||
}
|
||||
|
||||
module m5_nut (H = 5, DIAG = 9.1) {
|
||||
hex(diag = DIAG, h = H);
|
||||
}
|
||||
|
||||
module enlarged_m5_bolt_void (pos = [0, 0, 0], rot = [0, 0, 0], BoltH = 20, CapH = 20) {
|
||||
$fn = 50;
|
||||
translate(pos) rotate(rot) {
|
||||
translate([0, 0, (CapH / 2) - 0.1]) cy(10, CapH);
|
||||
translate([0, 0, -(BoltH / 2) + 0.1]) cy(6, BoltH);
|
||||
}
|
||||
}
|
||||
|
||||
module camera_sled_bolex_plate_blank (pos = [0, 0, 0], rot = [0, 0, 0], PadX = 0, PadY = 0, PadZ = 0) {
|
||||
X = CameraSledBolexPlateX + PadX;
|
||||
Y = CameraSledBolexPlateY + PadY;
|
||||
Z = CameraSledBolexPlateZ + PadZ;
|
||||
BevelZ = 5;
|
||||
translate(pos) rotate(rot) {
|
||||
difference () {
|
||||
cube([X, Y, Z], center = true);
|
||||
translate([X - BevelZ, 0, Z - BevelZ]) cube([X, Y + 1, Z], center = true);
|
||||
translate([-X + BevelZ, 0, Z - BevelZ]) cube([X, Y + 1, Z], center = true);
|
||||
translate([-(X / 2) - 7.83, 0, -3.45]) rotate([0, 20, 0]) cube([20, Y + 1, 20], center = true);
|
||||
translate([(X / 2) + 7.83, 0, -3.45]) rotate([0, -20, 0]) cube([20, Y + 1, 20], center = true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module rail (H = 100) {
|
||||
cylinder(r = R(RAIL_D), h = H, center = true, $fn = 60);
|
||||
|
@ -40,7 +103,111 @@ module end () {
|
|||
}
|
||||
}
|
||||
|
||||
module jk_camera_sled () {
|
||||
difference () {
|
||||
cube([X, Y, Z], center = true);
|
||||
cube([VX, VY, Z + 1], center = true);
|
||||
translate([OFFSETX, 0, 0]) {
|
||||
translate([A1 / 2, C1 / 2, 0]) cylinder(r = R(5), h = Z * 2, center = true, $fn = 30);
|
||||
translate([-A1 / 2, C2 / 2, 0]) cylinder(r = R(5), h = Z * 2, center = true, $fn = 30);
|
||||
translate([A2 / 2, -C1 / 2, 0]) cylinder(r = R(5), h = Z * 2, center = true, $fn = 30);
|
||||
translate([-A2 / 2, -C2 / 2, 0]) cylinder(r = R(5), h = Z * 2, center = true, $fn = 30);
|
||||
translate([B1 / 2, C1 / 2, 0]) cylinder(r = R(5), h = Z * 2, center = true, $fn = 30);
|
||||
translate([-B1 / 2, C2 / 2, 0]) cylinder(r = R(5), h = Z * 2, center = true, $fn = 30);
|
||||
translate([B2 / 2, -C1 / 2, 0]) cylinder(r = R(5), h = Z * 2, center = true, $fn = 30);
|
||||
translate([-B2 / 2, -C2 / 2, 0]) cylinder(r = R(5), h = Z * 2, center = true, $fn = 30);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
color("blue") rails();
|
||||
translate([0, RAIL_LEN / 2, 0]) end();
|
||||
translate([0, -RAIL_LEN / 2, 0]) rotate([0, 0, 180]) end();
|
||||
module jk_camera_sled_bolex (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
||||
Z = CameraSledBolexZ;
|
||||
X = CameraSledBolexX;
|
||||
Y = CameraSledBolexY;
|
||||
PlateY = 20;
|
||||
translate(pos) rotate(rot) {
|
||||
difference () {
|
||||
|
||||
rounded_cube([X, Y, Z], d = 10, center = true, $fn = 40);
|
||||
translate([0, 0, -20]) rounded_cube([CameraBoltX - 10, CameraBoltY - 10, Z], d = 10, center = true, $fn = 40);
|
||||
|
||||
enlarged_m5_bolt_void([CameraBoltX / 2, CameraBoltY / 2, -10], BoltH = Z * 2, CapH = Z);
|
||||
enlarged_m5_bolt_void([-CameraBoltX / 2, CameraBoltY / 2, -10], BoltH = Z * 2, CapH = Z);
|
||||
enlarged_m5_bolt_void([CameraBoltX / 2, -CameraBoltY / 2, -10], BoltH = Z * 2, CapH = Z);
|
||||
enlarged_m5_bolt_void([-CameraBoltX / 2, -CameraBoltY / 2, -10], BoltH = Z * 2, CapH = Z);
|
||||
|
||||
//film plane
|
||||
translate([X / 2, CameraBoltY / 2, 0]) rotate([0, 0, 45]) cube([1/2, 1/2, Z + 1], center = true);
|
||||
translate([-X / 2, CameraBoltY / 2, 0]) rotate([0, 0, 45]) cube([1/2, 1/2, Z + 1], center = true);
|
||||
|
||||
//center
|
||||
translate([0, 0, Z / 2]) rotate([90, 0, 0]) rotate([0, 0, 45]) cube([1/2, 1/2, Y + 1], center = true);
|
||||
|
||||
|
||||
//void for plate
|
||||
camera_sled_bolex_plate_blank([0, -(PlateY / 2), (CameraSledBolexZ / 2) - (CameraSledBolexPlateZ / 2)], PadX = 0.4, PadY = PlateY, PadZ = 0.1);
|
||||
|
||||
translate([-33, -22, 10]) rotate([0, 90, 0]) m5_nut();
|
||||
translate([-33, -22, 20]) cube([5, 7.9, 20], center = true);
|
||||
|
||||
//m5 bolt
|
||||
translate([-25, -22, 10]) cy(5.1, 25, 40, Y = 90);
|
||||
translate([-25 - 27, -22, 10]) cy(9, 30, 40, Y = 90);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
module jk_camera_sled_nut () {
|
||||
D = 13;
|
||||
Ridges = 40;
|
||||
RidgeD = 1;
|
||||
difference () {
|
||||
union () {
|
||||
difference () {
|
||||
cylinder(r = R(D), h = 5, center = true, $fn = 50);
|
||||
translate([0, 0, 2]) m5_nut(5);
|
||||
cylinder(r = R(5.1), h = 5 + 1, center = true, $fn = 40);
|
||||
|
||||
}
|
||||
for (i = [0 : Ridges - 1]) {
|
||||
rotate([0, 0, i * (360 / Ridges)]) translate([D / 2, 0, 0]) cylinder(r = R(RidgeD), h = 5, center = true, $fn = 20);
|
||||
}
|
||||
}
|
||||
translate([0, 0, -2]) difference () {
|
||||
cylinder(r = R(D + 2), h = 2, center = true, $fn = 50);
|
||||
cylinder(r1 = R(D) - 1, r2 = R(D) + 1, h = 2.01, center = true, $fn = 50);
|
||||
}
|
||||
translate([0, 0, 2]) difference () {
|
||||
cylinder(r = R(D + 2), h = 2, center = true, $fn = 50);
|
||||
cylinder(r1 = R(D) + 1, r2 = R(D) - 1, h = 2.01, center = true, $fn = 50);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module debug () {
|
||||
color("blue") rails();
|
||||
translate([0, RAIL_LEN / 2, 0]) end();
|
||||
translate([0, -RAIL_LEN / 2, 0]) rotate([0, 0, 180]) end();
|
||||
|
||||
translate([0, 0, 79.4]) jk_camera_sled();
|
||||
jk_camera_sled_bolex([0, 0, 105]);
|
||||
//debug_bolex([0, 0, 90 + 33]);
|
||||
|
||||
translate([0, -150, 160]) cube([10, 10, 145], center = true);
|
||||
|
||||
translate([A1 / 2, C1 / 2, 90]) cylinder(r = R(5), h = 80, center = true, $fn = 30);
|
||||
translate([-A1 / 2, C2 / 2, 90]) cylinder(r = R(5), h = 80, center = true, $fn = 30);
|
||||
translate([A2 / 2, -C1 / 2, 90]) cylinder(r = R(5), h = 80, center = true, $fn = 30);
|
||||
translate([-A2 / 2, -C2 / 2, 90]) cylinder(r = R(5), h = 80, center = true, $fn = 30);
|
||||
}
|
||||
|
||||
PART = "jk_camera_sled_nut";
|
||||
|
||||
if (PART == "jk_camera_sled_bolex") {
|
||||
jk_camera_sled_bolex();
|
||||
} else if (PART == "jk_camera_sled_nut") {
|
||||
jk_camera_sled_nut();
|
||||
} else {
|
||||
debug();
|
||||
}
|
|
@ -1,19 +1,18 @@
|
|||
include <./bellows.scad>;
|
||||
include <./connectors.scad>;
|
||||
include <./light.scad>;
|
||||
include <./motor.scad>;
|
||||
//include <./bellows.scad>;
|
||||
//include <./connectors.scad>;
|
||||
//include <./light.scad>;
|
||||
//include <./motor.scad>;
|
||||
|
||||
//use <./mcopy_rails.scad>;
|
||||
//use <./mcopy_projector.scad>;
|
||||
//use <./mcopy_lens_assembly.scad>;
|
||||
|
||||
|
||||
//translate([0, 2.5, 0]) rotate([90, 0, 0]) color("red") adafruit_pixie();
|
||||
//translate([0, 6, 0]) color("blue") pixie_mount();
|
||||
//translate([0, 0, -50]) color("red") fan(35);
|
||||
//color("green") diffuser_mount();
|
||||
//translate([0, 0, -51.2]) light_body35();
|
||||
//translate([0, 0, 20]) light_vent_top();
|
||||
//translate ([0, -20, 0]) rotate([90, 90, 0]) color("red") diffuser_insert();
|
||||
//translate ([0, -10, 0]) rotate([90, 90, 0]) color("red") diffuser_spacer();
|
||||
//rotate([0, 0, 90]) flashlight_mount();
|
||||
translate([0, -8.5, 0]) rotate([0, 0, 90]) impromptu_mount();
|
||||
//translate([30, -8.5, 0]) rotate([90, 0, 90]) flashlight_mount_cap();
|
||||
//translate([0, -9, 0]) cube([15, 15, 15], center = true);
|
||||
//light_fresnel();
|
||||
|
||||
module assembled_mcopy_gate (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
||||
translate(pos) rotate(rot) {
|
||||
include <./mcopy_gate.scad>;
|
||||
}
|
||||
}
|
||||
|
||||
assembled_mcopy_gate(rot = [90, 90, 0]);
|
|
@ -1,6 +1,8 @@
|
|||
use <./common/common.scad>;
|
||||
use <./sprocketed_roller/sprocketed_roller_var.scad>;
|
||||
use <./filmless.scad>;
|
||||
use <./bolex.scad>;
|
||||
use <./arri_s.scad>;
|
||||
|
||||
PlateZ = 1.3 + 1;
|
||||
PlateX = 35.1;
|
||||
|
@ -128,7 +130,7 @@ module front_plate_void (pos = [0, 0, 0]) {
|
|||
}
|
||||
}
|
||||
|
||||
//BOM: 1, M2.5 hex nut, N/A, Join the front_plate to the back_plate
|
||||
//BOM: 1, M2.5 hex nut, ISO 4032, Join the front_plate to the back_plate
|
||||
module front_plate () {
|
||||
ExtraPlateZ = 1 / 2;
|
||||
difference () {
|
||||
|
@ -156,11 +158,11 @@ module front_plate () {
|
|||
//alignment rod voids
|
||||
translate([(-PlateX / 2) + AlignmentX, AlignmentSpacingY / 2, 0]) {
|
||||
cylinder(r = R(AlignmentD + 0.45), h = 10, center = true , $fn = 30);
|
||||
translate([0, 0, 2.2]) cylinder(r = R(AlignmentD + 0.45), r2 = R(AlignmentD + 0.45) + 0.5, h = 1 , center = true , $fn = 30);
|
||||
translate([0, 0, 2.2]) cylinder(r1 = R(AlignmentD + 0.45), r2 = R(AlignmentD + 0.45) + 0.5, h = 1 , center = true , $fn = 30);
|
||||
}
|
||||
translate([(-PlateX / 2) + AlignmentX, -AlignmentSpacingY / 2, 0]) {
|
||||
cylinder(r = R(AlignmentD + 0.45), h = 10, center = true , $fn = 30);
|
||||
translate([0, 0, 2.2]) cylinder(r = R(AlignmentD + 0.45), r2 = R(AlignmentD + 0.45) + 0.5, h = 1 , center = true , $fn = 30);
|
||||
translate([0, 0, 2.2]) cylinder(r1 = R(AlignmentD + 0.45), r2 = R(AlignmentD + 0.45) + 0.5, h = 1 , center = true , $fn = 30);
|
||||
}
|
||||
//gate bolt and nut void
|
||||
translate([-6, 0, 0]) cylinder(r = R(BoltD), h = 20, center = true, $fn = 40);
|
||||
|
@ -170,17 +172,17 @@ module front_plate () {
|
|||
}
|
||||
}
|
||||
|
||||
module text_void (string = "example", pos = [0, 0, 0], rot = [0, 0, 0], letter_size = 5, letter_height = 2) {
|
||||
module gate_mask_text_void (string = "example", pos = [0, 0, 0], rot = [0, 0, 0], letter_size = 3, letter_height = 2) {
|
||||
translate(pos) rotate(rot) linear_extrude(height = letter_height) {
|
||||
text(string, size = letter_size, font = "Liberation Sans", halign = "center", valign = "center", $fn = 16);
|
||||
text(string, size = letter_size, font = "Liberation Sans:style=Bold", halign = "center", valign = "center", $fn = 16);
|
||||
}
|
||||
}
|
||||
|
||||
module gate_mask_text (format = "") {
|
||||
if (format == "standard16") {
|
||||
text_void("16mm", pos= [11, 0, -3], rot = [90, 0, 90], letter_size = 4);
|
||||
gate_mask_text_void("16mm", pos = [11, 0, -2.5], rot = [90, 0, 90]);
|
||||
} else if (format == "super16") {
|
||||
text_void("super16", pos= [11, 0, -4], rot = [90, 0, 90], letter_size = 4);
|
||||
gate_mask_text_void("super16", pos = [11, 0, -2.5], rot = [90, 0, 90]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -190,6 +192,7 @@ module gate_mask_slide (pos = [0, 0, 0], pad = 0.0, format = "") {
|
|||
FormatBevelY = format == "super16" ? 4.5 : 5;
|
||||
PadZ = format == "" ? 0.3 : 0;
|
||||
FrontMaskZ = 0.375;
|
||||
|
||||
translate(pos) {
|
||||
difference () {
|
||||
union () {
|
||||
|
@ -203,9 +206,10 @@ module gate_mask_slide (pos = [0, 0, 0], pad = 0.0, format = "") {
|
|||
}
|
||||
}
|
||||
if (format != "") {
|
||||
//tab
|
||||
translate([(20 / 2) + 0.1, 0, -3.5]) difference () {
|
||||
rotate([0, 90, 0]) rounded_cube([PlateZ + 2 + 5, FrontPlateVoidY + 8, 2], d = 2, $fn = 20, center = true);
|
||||
film_entry_side_bevel([1.5, 0, 5]);
|
||||
translate([0, 0, 1]) rotate([0, 90, 0]) rounded_cube([PlateZ + 4, FrontPlateVoidY + 8, 2], d = 2, $fn = 20, center = true);
|
||||
film_entry_side_bevel([1.5, 0, 4.5]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -364,7 +368,7 @@ module sprocketed_roller_text (pos = [0, 0, 0], rot = [0, 0, 0], font_size = 3,
|
|||
rotate(-i * step_angle) {
|
||||
translate([0, radius + font_size / 2, 0]) {
|
||||
linear_extrude(height = h) {
|
||||
text(chars[i], font = "Liberty Sans:style=Bold", size = font_size, valign = "center", halign = "center");
|
||||
text(chars[i], font = "Liberation Sans:style=Bold", size = font_size, valign = "center", halign = "center");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -399,13 +403,14 @@ module sprocketed_roller_16mm (pos = [0, 0, 0], rot = [0, 0, 0], side = "TOP") {
|
|||
//m2.5 bolt
|
||||
translate([0, 0, -15.85]) rotate([0, 90, 0]) cylinder(r = R(2.75), h = 30, center = true, $fn = 30);
|
||||
//
|
||||
sprocketed_roller_text([0, 0, 16], chars=TopChars);
|
||||
sprocketed_roller_text([0, 0, 16], chars = TopChars);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//BOM: s
|
||||
//BOM: 2, M2.5 hex cap bolt 16mm, ISO 4762, Attaches the nut to the sprocketed roller
|
||||
//BOM: 2, M2.5 hex nut, ISO 4032, Attaches the bolt to the nut
|
||||
module sprocketed_roller_nut_16mm (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
||||
$fn = 80;
|
||||
translate(pos) rotate(rot) difference() {
|
||||
|
@ -433,9 +438,9 @@ module sprocketed_roller_nut_16mm (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
|||
//BOM: 6, M2.5 hex cap bolt 15mm, N/A, Attach idle_roller to gate
|
||||
//BOM: 2, M2.5 hex cap bolt 25mm, N/A, Attach filter_holder to gate
|
||||
//BOM: 4, M2.5 hex cap bolt 10mm, N/A, Attach slide_rail to gate
|
||||
//BOM: 12, M2.5 hex nut, N/A, Attach idle_roller and filter_holder and slide_rail to gate
|
||||
//BOM: 12, M2.5 hex nut, ISO 4032, Attach idle_roller and filter_holder and slide_rail to gate
|
||||
//BOM: 2, M3 hex nut, N/A, Attach slide_catch to gate
|
||||
//BOM, 2, Bearing, N/A, Center sprocketed_roller in gate voids and allow for smooth rotation
|
||||
//BOM: 2, Bearing, N/A, Center sprocketed_roller in gate voids and allow for smooth rotation
|
||||
module body (pos = [0, 0, 0], gauge = "16mm") {
|
||||
SlideRailsOffsetZ = -5;
|
||||
translate(pos) {
|
||||
|
@ -628,15 +633,19 @@ module slide_catch_slot_void (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
|||
}
|
||||
|
||||
module slide_catch (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
||||
Length = 51;
|
||||
Length = 54;
|
||||
Thickness = 2.5;
|
||||
SlideCatchVoidsOffset = 6;
|
||||
SlideCatchVoidsDistance = 18;
|
||||
translate(pos) rotate(rot) {
|
||||
difference () {
|
||||
cube([8, Length, 1.5], center = true);
|
||||
translate([0, -(Length / 2) - 0.25, -1]) rotate([45, 0, 0]) cube([8 + 1, 3, 3], center = true);
|
||||
slide_catch_slot_void([0, 8, 0]);
|
||||
slide_catch_slot_void([0, -10, 0]);
|
||||
cube([8, Length, Thickness], center = true);
|
||||
translate([0, -(Length / 2) - 0.25, -1]) rotate([45, 0, 0]) cube([8 + 1, 3, 10], center = true);
|
||||
translate([0, -(Length / 2) - 0.9, -1]) cube([8 + 1, 3, 10], center = true);
|
||||
slide_catch_slot_void([0, SlideCatchVoidsOffset, 0]);
|
||||
slide_catch_slot_void([0, SlideCatchVoidsOffset - SlideCatchVoidsDistance, 0]);
|
||||
}
|
||||
translate([0, Length / 2, (5 / 2) - (1.5 / 2)]) cube([8, 1.5, 5], center = true);
|
||||
translate([0, Length / 2, (5 / 2) - (Thickness / 2)]) cube([8, Thickness, 5], center = true);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -662,11 +671,14 @@ module front_block_bolt_and_nut_void (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
|||
|
||||
module front_block_film_path (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
||||
Nut = 4;
|
||||
Width = 16.75;
|
||||
CircularOffsetY = -7;
|
||||
CircularOffsetZ = -11;
|
||||
translate(pos) rotate(rot) {
|
||||
difference () {
|
||||
cube([17, 13, 17.5], center = true);
|
||||
translate([0, -6, -12]) rotate([0, 90, 0]) cylinder(r = R(20), h = 17 + 1, center = true, $fn = 120);
|
||||
translate([0, -6, -12]) rotate([0, 90, 0]) cylinder(r = R(23.5), h = 15, center = true, $fn = 120);
|
||||
cube([Width, 13, 17.5], center = true);
|
||||
translate([0, CircularOffsetY, CircularOffsetZ]) rotate([0, 90, 0]) cylinder(r = R(20), h = Width + 1, center = true, $fn = 120);
|
||||
translate([0, CircularOffsetY, CircularOffsetZ]) rotate([0, 90, 0]) cylinder(r = R(23.5), h = 14.75, center = true, $fn = 120);
|
||||
|
||||
translate([10 / 2, 0, 5]) rotate([90, 0, 0]) {
|
||||
cylinder(r = R(2.75), h = 20, center = true, $fn = 40);
|
||||
|
@ -680,8 +692,10 @@ module front_block_film_path (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
|||
}
|
||||
}
|
||||
|
||||
//BOM: 2, M5 hex cap bolt 25mm, N/A
|
||||
//BOM: 2, M5 hex cap bolt 25mm, N/A, Attach the front_block to the body
|
||||
//BOM: 4, M2.5 hex nut, N/A, Attach the film path blocks
|
||||
module front_block (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
||||
FrontBlockFilmPathOffset = 12.625;
|
||||
translate(pos) rotate(rot) {
|
||||
difference () {
|
||||
union () {
|
||||
|
@ -692,11 +706,11 @@ module front_block (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
|||
}
|
||||
translate([(BodyX / 2) + ((48 - BodyX) / 2) - 5.5, 0, 0]) cylinder(r = R(19), h = 6.5 + 1, center = true, $fn = 100);
|
||||
|
||||
front_block_bolt_and_nut_void([12.75, 24.5, -0.5], [-90, 0, 0]);
|
||||
front_block_bolt_and_nut_void([12.75 + 10, 24.5, -0.5], [-90, 0, 0]);
|
||||
front_block_bolt_and_nut_void([FrontBlockFilmPathOffset, 24.5, -0.5], [-90, 0, 0]);
|
||||
front_block_bolt_and_nut_void([FrontBlockFilmPathOffset + 10, 24.5, -0.5], [-90, 0, 0]);
|
||||
|
||||
front_block_bolt_and_nut_void([12.75, -24.5, -0.5], [-90, 0, 0]);
|
||||
front_block_bolt_and_nut_void([12.75 + 10, -24.5, -0.5], [-90, 0, 0]);
|
||||
front_block_bolt_and_nut_void([FrontBlockFilmPathOffset, -24.5, -0.5], [-90, 0, 0]);
|
||||
front_block_bolt_and_nut_void([FrontBlockFilmPathOffset + 10, -24.5, -0.5], [-90, 0, 0]);
|
||||
|
||||
//m5 bolts
|
||||
translate([0, FrontPlatePostSpacingX / 2, 0]) cylinder(r = R(5.25), h = 40, center = true, $fn = 40);
|
||||
|
@ -709,15 +723,15 @@ module front_block (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
|||
translate([-5, -PlateBoltSpacingY / 2, -10 / 2]) cylinder(r = R(6), h = 10, center = true, $fn = 40);
|
||||
|
||||
//for pegs
|
||||
translate([10.25, 0, -1.75]) {
|
||||
translate([-3, 0, 0]) rounded_cube([16.4, 31.4, 4], d = 3, center = true, $fn = 30);
|
||||
translate([12.25, 0, -1.75]) {
|
||||
translate([3.5, 0, 0]) rounded_cube([33.4, 31.4, 4], d = 3, center = true, $fn = 30);
|
||||
translate([-3, 12, -2]) {
|
||||
cylinder(r = R(2.75), h = 20, center = true, $fn = 40);
|
||||
translate([0, 0, 7.51]) m2_5_nut(4);
|
||||
translate([0, 0, 7]) m2_5_nut(4);
|
||||
}
|
||||
translate([-3, -12, -2]) {
|
||||
cylinder(r = R(2.75), h = 20, center = true, $fn = 40);
|
||||
translate([0, 0, 7.51]) m2_5_nut(4);
|
||||
translate([0, 0, 7]) m2_5_nut(4);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -727,15 +741,18 @@ module front_block (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
|||
module front_block_peg (pos = [0, 0, 0], rot = [0, 0, 0], h = 10) {
|
||||
BaseX = 1.4;
|
||||
translate(pos) rotate(rot) {
|
||||
translate([0, 0, h / 4]) cube([2.1, 1.5, h / 2], center = true);
|
||||
translate([0, 0, h / 4]) cube([1.8, 1.4, h / 2], center = true);
|
||||
difference () {
|
||||
cube([1.6, 1.3, h], center = true);
|
||||
translate([1.2, 0, -h / 2]) rotate([0, 10, 0]) cube([2, 1.75 + 1, h], center = true);
|
||||
translate([-1.2, 0, -h / 2]) rotate([0, -10, 0]) cube([2, 1.75 + 1, h], center = true);
|
||||
cube([1.8, 1.4, h], center = true);
|
||||
translate([1.3, 0, -h / 2]) rotate([0, 10, 0]) cube([2, 1.75 + 1, h], center = true);
|
||||
translate([-1.3, 0, -h / 2]) rotate([0, -10, 0]) cube([2, 1.75 + 1, h], center = true);
|
||||
translate([0, -1.05, -h / 2]) rotate([10, 0, 0]) cube([2 + 1, 1.75, h], center = true);
|
||||
translate([0, 1.05, -h / 2]) rotate([-10, 0, 0]) cube([2 + 1, 1.75, h], center = true);
|
||||
translate([0, 0, -3.5]) difference() {
|
||||
cube([2, 2, 5], center = true);
|
||||
translate([0, 0, 5 / 2]) rotate([0, 90, 0]) cylinder(r = R(1.3), h = 2 + 1, center = true, $fn = 30);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -745,9 +762,9 @@ module front_block_pegs (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
|||
BoltSpacingY = 24;
|
||||
translate(pos) rotate(rot) {
|
||||
difference () {
|
||||
translate([-3, 0, 0]) rounded_cube([16, 31, 3], d = 3, center = true, $fn = 30);
|
||||
translate([5.5, 0, 0]) rounded_cube([33, 31, 3], d = 3, center = true, $fn = 30);
|
||||
translate([-6, 0, 0]) cylinder(r = R(8), h = 3 + 1, center = true, $fn = 40);
|
||||
translate([6, 0, 0]) rounded_cube([12, 16, 3 + 1], d = 3, center = true, $fn = 30);
|
||||
translate([9, 0, 0]) rounded_cube([15, 12, 3 + 1], d = 3, center = true, $fn = 30);
|
||||
|
||||
translate([-3, BoltSpacingY / 2, 0]) cylinder(r = R(2.75), h = 10, center = true, $fn = 40);
|
||||
translate([-3, -BoltSpacingY / 2, 0]) cylinder(r = R(2.75), h = 10, center = true, $fn = 40);
|
||||
|
@ -757,6 +774,10 @@ module front_block_pegs (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
|||
}
|
||||
front_block_peg([1.75, (PerfSpacingY / 2) + Standard16OffsetY, -6 / 2], h = 7);
|
||||
front_block_peg([1.75, (-PerfSpacingY / 2) + Standard16OffsetY, -6 / 2], h = 7);
|
||||
|
||||
front_block_peg([1.75 + PerfSpacingX, (PerfSpacingY / 2) + Standard16OffsetY, -4.75 / 2], h = 7);
|
||||
front_block_peg([1.75 + PerfSpacingX, (-PerfSpacingY / 2) + Standard16OffsetY, -4.75 / 2], h = 7);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -775,8 +796,8 @@ module filter_block (pos = [0, 0, 0], rot = [0, 0, 0], side = "A") {
|
|||
m2_5_bolt_void([8, 13.1, BoltOffsetZ], [0, 90, 0], bolt = 24);
|
||||
m2_5_bolt_void([8, -13.1, BoltOffsetZ], [0, 90, 0], bolt = 24);
|
||||
|
||||
m2_5_bolt_void([-28, 13.1, BoltOffsetZ + (SlideRailBoltSpacingZ / 2)], [0, -90, 0], bolt = 26, pad = 0.2);
|
||||
m2_5_bolt_void([-28, -13.1, BoltOffsetZ + (SlideRailBoltSpacingZ / 2)], [0, -90, 0], bolt = 26, pad = 0.2);
|
||||
m2_5_bolt_void([-21, 13.1, BoltOffsetZ + (SlideRailBoltSpacingZ / 2)], [0, -90, 0], bolt = 26, pad = 0.2);
|
||||
m2_5_bolt_void([-21, -13.1, BoltOffsetZ + (SlideRailBoltSpacingZ / 2)], [0, -90, 0], bolt = 26, pad = 0.2);
|
||||
|
||||
if (side == "A") {
|
||||
translate([0, 50, 0]) cube([100, 100, 100], center = true);
|
||||
|
@ -788,18 +809,20 @@ module filter_block (pos = [0, 0, 0], rot = [0, 0, 0], side = "A") {
|
|||
}
|
||||
|
||||
module debug () {
|
||||
FilmRetractionDistanceZ = -7.2;
|
||||
difference () {
|
||||
//color("blue") translate([8, 4.6, FilmZ]) 16mm_film(18, true, true);
|
||||
union () {
|
||||
FilmZ = - 4.2; //retraction distance
|
||||
translate([(-BodyX / 2) - 1, 0, -BodyZ / 2]) body(gauge = "16mm");
|
||||
FilmZ = - 7.2; //retraction distance
|
||||
//translate([(-BodyX / 2) - 1, 0, -BodyZ / 2]) body(gauge = "16mm");
|
||||
|
||||
translate([0, 0, FilmZ + 1.4]) front_plate();
|
||||
//translate([0, 0, FilmZ - 1.4]) back_plate();
|
||||
gate_mask_slide_standard16([(PlateX / 2) - (FrontPlateVoidX / 2) - 1.9, 0, FilmZ - .9]);
|
||||
//gate_mask_slide_super16([(PlateX / 2) - (FrontPlateVoidX / 2) - 2.41, 0, -3]);
|
||||
translate([0, 0, FilmZ - 1.4]) back_plate();
|
||||
//gate_mask_slide_standard16([(PlateX / 2) - (FrontPlateVoidX / 2) - 1.9, 0, FilmZ - .9]);
|
||||
gate_mask_slide_super16([(PlateX / 2) - (FrontPlateVoidX / 2) - 1.9, 0, FilmZ - .9]);
|
||||
//front_plate_void([(PlateX / 2) - (FrontPlateVoidX / 2) - 2.41, 0, 0]);
|
||||
//film_clearance_void([0, 0, 15]);
|
||||
color("blue") translate([8, 4.6, FilmZ]) 16mm_film(18, true, true);
|
||||
|
||||
sprocketed_roller_16mm([1.5, KeySpacingY / 2, KeyZ], [0, 90, 0], side = "TOP");
|
||||
sprocketed_roller_16mm([1.5, -KeySpacingY / 2, KeyZ], [0, 90, 0], side = "BOTTOM");
|
||||
|
||||
|
@ -818,25 +841,26 @@ module debug () {
|
|||
idle_roller_16mm([9, -IdleRollerSpacingBY / 2, (BodyZ / 2) - IdleRollerBZ - (BodyZ / 2)], [0, 90, 0]);*/
|
||||
|
||||
slide_rail([-BodyX + (7 / 2) - 0.6, 11.5, (-BodyZ / 2) - 7], "A");
|
||||
//slide_rail([-BodyX + (7 / 2) - 0.6, -11.5, (-BodyZ / 2) - 7], "B");
|
||||
slide_rail([-BodyX + (7 / 2) - 0.6, -11.5, (-BodyZ / 2) - 7], "B");
|
||||
|
||||
slide([-BodyX + (7 / 2) - 0.4, 0, FilmZ + (-BodyZ / 2) + 1]);
|
||||
|
||||
slide_catch([-13, 34, -51.5]);
|
||||
|
||||
front_block([(-BodyX / 2) - 1, 0, (6.5 / 2) + 15]);
|
||||
//color("yellow") front_block_pegs([0, 0, 2]);
|
||||
//front_block_film_path([(17 / 2) - 1, (58.5 / 2) + (13 / 2), -2.25]);
|
||||
//front_block_film_path([(17 / 2) - 1, (-58.5 / 2) - (13 / 2), -2.25 ], [0, 0, 180]);
|
||||
|
||||
filter_block([11+ 10, 0, -29], side = "A");
|
||||
slide_catch([-13, 36, -51.5]);
|
||||
translate([0, 0, 0]) {
|
||||
front_block([(-BodyX / 2) - 1, 0, (6.5 / 2)]);
|
||||
color("yellow") front_block_pegs([0, 0, 2]);
|
||||
front_block_film_path([(16.75 / 2) - 1, (58.5 / 2) + (13 / 2), -2.25]);
|
||||
front_block_film_path([(16.75 / 2) - 1, (-58.5 / 2) - (13 / 2), -2.25], [0, 0, 180]);
|
||||
}
|
||||
|
||||
filter_block([11, 0, -29], side = "A");
|
||||
filter_block([11, 0, -29], side = "B");
|
||||
}
|
||||
//translate([-60, 0, 0]) cube([100, 100, 100], center = true);
|
||||
}
|
||||
}
|
||||
|
||||
PART="front_platex";
|
||||
PART="front_block_16mm";
|
||||
|
||||
if (PART == "front_plate") {
|
||||
//1
|
||||
|
|
|
@ -11,6 +11,8 @@ include <./common/common.scad>
|
|||
include <./common/motors.scad>
|
||||
include <./common/rods.scad>
|
||||
use <./capper.scad>
|
||||
use <./bolex.scad>;
|
||||
use <./arri_s.scad>;
|
||||
|
||||
IN = 25.4;
|
||||
|
||||
|
@ -34,6 +36,14 @@ CameraSledBolexPlateX = 60;
|
|||
CameraSledBolexPlateY = 90;
|
||||
CameraSledBolexPlateZ = 15;
|
||||
|
||||
CameraSledArriSZ = 33 + 52;
|
||||
CameraSledArriSX = 100;
|
||||
CameraSledArriSY = 110;
|
||||
|
||||
CameraSledArriSPlateX = 60;
|
||||
CameraSledArriSPlateY = 90;
|
||||
CameraSledArriSPlateZ = 15;
|
||||
|
||||
LensBearingsSpacing = 28;
|
||||
LensBearingM5Spacing = 62;
|
||||
|
||||
|
@ -215,11 +225,12 @@ module rail_end (pos = [0, 0, 0], rot = [90, 0, 0], Motors = true, Projector = f
|
|||
}
|
||||
}
|
||||
|
||||
echo("sled");
|
||||
echo("BOM: ", "(2) T8 Nut");
|
||||
echo("BOM: ", "(1 or 2) Linear bearing");
|
||||
echo("BOM: ", "(4 or 8) Radial bearings ()");
|
||||
|
||||
//BOM: 2,T8 Nut, N/A, For drive screw
|
||||
//BOM: 2, Linear bearing, N/A, For center rails
|
||||
//BOM: 8, Radial bearing, N/A, For something
|
||||
module sled (pos = [0, 0, 0], rot = [90, 0, 0], Length = 60) {
|
||||
|
||||
X = RailEndX;
|
||||
Y = 60;
|
||||
Z = Length;
|
||||
|
@ -547,9 +558,9 @@ module camera_sled_bolex (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
|||
X = CameraSledBolexX;
|
||||
Y = CameraSledBolexY;
|
||||
PlateY = 20;
|
||||
|
||||
translate(pos) rotate(rot) {
|
||||
difference () {
|
||||
|
||||
rounded_cube([X, Y, Z], d = 10, center = true, $fn = 40);
|
||||
translate([0, 0, -20]) rounded_cube([CameraBoltX - 10, CameraBoltY - 10, Z], d = 10, center = true, $fn = 40);
|
||||
|
||||
|
@ -568,13 +579,54 @@ module camera_sled_bolex (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
|||
|
||||
//void for plate
|
||||
camera_sled_bolex_plate_blank([0, -(PlateY / 2), (CameraSledBolexZ / 2) - (CameraSledBolexPlateZ / 2)], PadX = 0.4, PadY = PlateY, PadZ = 0.1);
|
||||
|
||||
translate([-33, -22, 10]) rotate([0, 90, 0]) m5_nut();
|
||||
translate([-33, -22, 20]) cube([5, 7.9, 20], center = true);
|
||||
translate([-33, -22, (CameraSledBolexZ / 2) - (CameraSledBolexPlateZ / 2) + 1]) rotate([0, 90, 0]) m5_nut();
|
||||
translate([-33, -22, (CameraSledBolexZ / 2) - (CameraSledBolexPlateZ / 2) + 11]) cube([5, 7.9, 20], center = true);
|
||||
|
||||
//m5 bolt
|
||||
translate([-25, -22, 10]) cy(5.1, 25, 40, Y = 90);
|
||||
translate([-25 - 27, -22, 10]) cy(9, 30, 40, Y = 90);
|
||||
translate([-25, -22, (CameraSledBolexZ / 2) - (CameraSledBolexPlateZ / 2) + 1]) cy(5.1, 25, 40, Y = 90);
|
||||
translate([-25 - 27, -22, (CameraSledBolexZ / 2) - (CameraSledBolexPlateZ / 2) + 1]) cy(9, 30, 40, Y = 90);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
module camera_sled_arris (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
||||
Z = CameraSledArriSZ;
|
||||
X = CameraSledArriSX;
|
||||
Y = CameraSledArriSY;
|
||||
PlateY = 20;
|
||||
translate(pos) rotate(rot) {
|
||||
|
||||
difference () {
|
||||
|
||||
rounded_cube([X, Y, Z], d = 10, center = true, $fn = 40);
|
||||
|
||||
//center void
|
||||
translate([0, 0, -20]) rounded_cube([CameraBoltX - 20, CameraBoltY - 20, Z], d = 10, center = true, $fn = 40);
|
||||
translate([0, 0, -20]) rotate([0, 90, 0]) rounded_cube([Z, CameraBoltY - 20, X + 1], d = 10, center = true, $fn = 40);
|
||||
translate([0, 0, -20]) rotate([90, 0, 0]) rounded_cube([CameraBoltX - 20, Z, Y + 1], d = 10, center = true, $fn = 40);
|
||||
|
||||
m5_bolt_void([CameraBoltX / 2, CameraBoltY / 2, -30], BoltH = Z * 2, CapH = Z);
|
||||
m5_bolt_void([-CameraBoltX / 2, CameraBoltY / 2, -30], BoltH = Z * 2, CapH = Z);
|
||||
m5_bolt_void([CameraBoltX / 2, -CameraBoltY / 2, -30], BoltH = Z * 2, CapH = Z);
|
||||
m5_bolt_void([-CameraBoltX / 2, -CameraBoltY / 2, -30], BoltH = Z * 2, CapH = Z);
|
||||
|
||||
//film plane lines
|
||||
translate([X / 2, CameraBoltY / 2, 0]) rotate([0, 0, 45]) cube([1/2, 1/2, Z + 1], center = true);
|
||||
translate([-X / 2, CameraBoltY / 2, 0]) rotate([0, 0, 45]) cube([1/2, 1/2, Z + 1], center = true);
|
||||
|
||||
//center line
|
||||
translate([0, 0, Z / 2]) rotate([90, 0, 0]) rotate([0, 0, 45]) cube([1/2, 1/2, Y + 1], center = true);
|
||||
|
||||
//void for plate
|
||||
camera_sled_bolex_plate_blank([0, -(PlateY / 2), (CameraSledArriSZ / 2) - (CameraSledArriSPlateZ / 2)], PadX = 0.4, PadY = PlateY, PadZ = 0.1);
|
||||
|
||||
translate([-33, -22, (CameraSledArriSZ / 2) - (CameraSledArriSPlateZ / 2) + 1]) rotate([0, 90, 0]) m5_nut();
|
||||
translate([-33, -22, (CameraSledArriSZ / 2) - (CameraSledArriSPlateZ / 2) + 11]) cube([5, 7.9, 20], center = true);
|
||||
|
||||
//m5 bolt
|
||||
translate([-25, -22, (CameraSledArriSZ / 2) - (CameraSledArriSPlateZ / 2) + 1]) cy(5.1, 25, 40, Y = 90);
|
||||
translate([-25 - 27, -22, (CameraSledArriSZ / 2) - (CameraSledArriSPlateZ / 2) + 1]) cy(9, 30, 40, Y = 90);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -629,6 +681,40 @@ module camera_sled_bolex_plate (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
|||
}
|
||||
}
|
||||
|
||||
module camera_sled_arris_plate (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
||||
Z = CameraSledBolexZ;
|
||||
X = CameraSledBolexX;
|
||||
Y = CameraSledBolexY;
|
||||
|
||||
CameraBoltLen = 20;
|
||||
CameraBolts = ["3/8"];
|
||||
CameraBoltsY = [-27.35];
|
||||
CameraBoltsX = [0];
|
||||
|
||||
translate(pos) rotate(rot) {
|
||||
difference () {
|
||||
camera_sled_bolex_plate_blank([0, 0, (Z / 2) - (CameraSledBolexPlateZ / 2)]);
|
||||
//camera mounting bolts
|
||||
translate([0, (Y / 2) - ((Y - CameraBoltY) / 2) - (9.6 - 5.2), -33 - 10]) {
|
||||
for (i = [0 : 0]) {
|
||||
camera_sled_bolt_slot([CameraBoltsX[i], CameraBoltsY[i], 50], Bolt = CameraBolts[i], Len = CameraBoltLen);
|
||||
}
|
||||
}
|
||||
//m5 nut drop in
|
||||
translate([-18, -22, 10]) rotate([0, 90, 0]) m5_nut();
|
||||
translate([-18, -22, 20]) cube([5, 7.9, 20], center = true);
|
||||
translate([-25, -22, 10]) cy(5.1, 25, 40, Y = 90);
|
||||
|
||||
//lines
|
||||
camera_bolex_plate_lines_y(Z / 2);
|
||||
camera_bolex_plate_lines_y((Z / 2) - CameraSledBolexPlateZ);
|
||||
translate([0, CameraSledBolexPlateY / 2, 0]) rotate([90, 0, 0]) camera_bolex_plate_lines_y(0);
|
||||
translate([0, -CameraSledBolexPlateY / 2, 0]) rotate([90, 0, 0]) camera_bolex_plate_lines_y(0);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
module camera_bolex_plate_lines_y (Z) {
|
||||
camera_bolex_plate_line_y(Z = Z);
|
||||
for (i = [1 : 4]) {
|
||||
|
@ -986,12 +1072,19 @@ module debug () {
|
|||
|
||||
corner_bracket([-30, 0, 260], [180, 0, 90]);
|
||||
corner_outer_bracket([-55, 0, 290], [180, 0, 0]);
|
||||
//camera_sled([0, -90, 0]);
|
||||
//difference () {
|
||||
|
||||
difference () {
|
||||
//lens_sled([0, -90, 0]);
|
||||
camera_sled([0, -90, 0]);
|
||||
//translate([ 50 + (RailSpacing / 2), -90 - 50, 0]) cube([100, 100, 100], center = true);
|
||||
//translate([ -50 - (RailSpacing / 2), -90, 0]) cube([100, 100, 100], center = true);
|
||||
//}
|
||||
}
|
||||
|
||||
camera_sled_bolex([0, -90, 54]);
|
||||
//camera_sled_arris([0, -90, 54 + 26]);
|
||||
|
||||
debug_bolex([0, -90, 70.75]);
|
||||
//debug_arris([0, -91, 70.75 + 51.75]);
|
||||
|
||||
//color("green") translate([(LensFrameSpacingX / 2) + 15, -20, 50]) rotate([0, 0, 0]) linear_extrude(height=200) 2020_profile();
|
||||
//color("green") translate([-(LensFrameSpacingX / 2) - 15, -20, 50]) rotate([0, 0, 0]) linear_extrude(height=200) 2020_profile();
|
||||
|
@ -1029,8 +1122,8 @@ module debug () {
|
|||
//translate([-RailSpacing / 2, 0, 0]) rotate([90, 0, 0]) rail_debug(175);
|
||||
//color("green") translate([RailSpacing / 2, 0, 0]) rotate([90, 0, 0]) linear_extrude(height=175) 2020_profile();
|
||||
|
||||
//translate([ThreadedRodSpacing / 2, 40, 0]) rotate([90, 0, 0]) color("blue") NEMA17();
|
||||
//translate([-ThreadedRodSpacing / 2, 40, 0]) rotate([90, 0, 0]) color("blue") NEMA17();
|
||||
//translate([ThreadedRodSpacing / 2, 40, 0]) rotate([90, 0, 0]) color("blue") NEMA17();
|
||||
//translate([-ThreadedRodSpacing / 2, 40, 0]) rotate([90, 0, 0]) color("blue") NEMA17();
|
||||
|
||||
//translate([50 - 10, 0, 0]) rail_debug(100);
|
||||
//translate([-50 + 10, 0, 0]) rail_debug(100);
|
||||
|
@ -1078,7 +1171,7 @@ module debug2 () {
|
|||
}
|
||||
|
||||
|
||||
PART = "rail_endx";
|
||||
PART = "camera_sled_arris_platex";
|
||||
|
||||
if (PART == "rail_end") {
|
||||
rail_end(Projector = true);
|
||||
|
@ -1092,6 +1185,10 @@ if (PART == "rail_end") {
|
|||
camera_sled_bolex();
|
||||
} else if (PART == "camera_sled_bolex_plate") {
|
||||
camera_sled_bolex_plate(rot = [180, 0, 0]);
|
||||
} else if (PART == "camera_sled_arris_plate") {
|
||||
camera_sled_arris_plate(rot = [180, 0, 0]);
|
||||
} else if (PART == "camera_sled_arris") {
|
||||
camera_sled_arris();
|
||||
} else if (PART == "bearing_roller") {
|
||||
bearing_roller();
|
||||
} else if (PART == "bearing_roller_inner") {
|
||||
|
@ -1123,7 +1220,7 @@ if (PART == "rail_end") {
|
|||
} else if (PART == "dial_handle") {
|
||||
dial_handle();
|
||||
} else {
|
||||
//debug();
|
||||
rail_sizing();
|
||||
debug();
|
||||
//rail_sizing();
|
||||
//debug2();
|
||||
}
|
|
@ -272,6 +272,7 @@ module electronics_attachment_bolt_voids (pos = [0, 0, 0]) {
|
|||
}
|
||||
|
||||
//BOM: 4, M3 hex cap bolt 8mm,N/A,Attach Arduino Uno
|
||||
//BOM: 2, M3 hex nut, N/A, Attach electronics attachment
|
||||
module electronics_mount () {
|
||||
difference () {
|
||||
union() {
|
||||
|
@ -291,24 +292,27 @@ module electronics_mount () {
|
|||
//translate([35.1, 76.8, 4.5]) rotate([0, 0, 180]) arduino();
|
||||
}
|
||||
|
||||
//BOM: 2, M3 hex cap bolt 12mm, N/A, Attach to electronics mount
|
||||
module electronics_attachment () {
|
||||
difference () {
|
||||
cube([70, 16, 19.75], center = true);
|
||||
translate([1/2, 0, -15.5]) cube([58, 20 + 1, 20], center = true);
|
||||
translate([5.5, 0, -11.5]) cube([48, 20 + 1, 20], center = true);
|
||||
translate([11.75, 00, -4.5]) cube([13, 20 + 1, 20], center = true);
|
||||
translate([11.75, 0, -4.5]) cube([13, 20 + 1, 20], center = true);
|
||||
translate([-18, 00, -5]) cube([10, 20 + 1, 20], center = true);
|
||||
translate([ReinforcementBoltSpacingX / 2, 0, 0]) {
|
||||
cylinder(r = R(3.25), h = 20 + 1, center = true, $fn = 30);
|
||||
translate([0, 0, 10]) cylinder(r = R(6.5), h = 20 , center = true, $fn = 30);
|
||||
}
|
||||
translate([-ReinforcementBoltSpacingX / 2, 0, 0]) {
|
||||
translate([-ReinforcementBoltSpacingX / 2, 0, -2]) {
|
||||
cylinder(r = R(3.25), h = 20 + 1, center = true, $fn = 30);
|
||||
translate([0, 0, 10]) cylinder(r = R(6.5), h = 20 , center = true, $fn = 30);
|
||||
}
|
||||
arduino_bolts_voids([28, 6.5, 0], h = 20, pad = 5);
|
||||
|
||||
translate([35, 8, 0]) cylinder(r = R(10), h = 19.75 + 1, center = true, $fn = 40);
|
||||
translate([-37, 0, 8]) rotate([90, 0, 0]) cylinder(r = R(20), h = 19.75 + 1, center = true, $fn = 40);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module usb_protector () {
|
||||
|
@ -328,7 +332,7 @@ module debug () {
|
|||
translate(ArduinoPosition) translate([-27.5, -8, -10]) electronics_attachment();
|
||||
}
|
||||
|
||||
PART="electronics_mount";
|
||||
PART="electronics_attachment";
|
||||
|
||||
if (PART == "electronics_mount") {
|
||||
electronics_mount();
|
||||
|
|
|
@ -10,6 +10,7 @@ FILES=(
|
|||
mcopy_projector
|
||||
mcopy_lens_assembly
|
||||
mcopy_gate
|
||||
projector_controller
|
||||
)
|
||||
|
||||
PARALLEL=0
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -3,48 +3,48 @@ solid OpenSCAD_Model
|
|||
outer loop
|
||||
vertex -12 11.6330805 10.59582
|
||||
vertex -12 11.6330805 10.90418
|
||||
vertex -2.1000004 11.6330805 10.90418
|
||||
vertex 4.8999996 11.6330805 10.90418
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0.9781474 0.20791261
|
||||
outer loop
|
||||
vertex -12 11.6330805 10.59582
|
||||
vertex -2.1000004 11.6330805 10.59582
|
||||
vertex 4.8999996 11.6330805 10.59582
|
||||
vertex -12 11.697192 10.2942
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 1 0
|
||||
outer loop
|
||||
vertex -12 11.6330805 10.59582
|
||||
vertex -2.1000004 11.6330805 10.90418
|
||||
vertex -2.1000004 11.6330805 10.59582
|
||||
vertex 4.8999996 11.6330805 10.90418
|
||||
vertex 4.8999996 11.6330805 10.59582
|
||||
endloop
|
||||
|