intval_alt/intval_alt.scad

392 lines
13 KiB
OpenSCAD
Raw Normal View History

2018-11-23 03:34:41 +00:00
BODY_X = 135;
BODY_Y = 140;
BODY_Z = 68;
BOLEX_X = BODY_X;
BOLEX_Y = BODY_Y;
BOLEX_Z = BODY_Z;
STEPPER_W = 42.5;
STEPPER_VOID_D = 22.5;
STEPPER_H = 8;
STEPPER_THICKNESS = 5;
STEPPER_BOLTS = 21.6;
STEPPER_CORNER = 60.1;
STEPPER_BOTTOM = 6;
PANEL_Z = 3;
PANEL_X = BOLEX_X;
PANEL_Y = 96;
2019-04-15 21:09:12 +00:00
PANEL_OFFSET_Z = 42 + 6;
2018-11-23 03:34:41 +00:00
PANEL_OFFSET_X = 0;
PANEL_OFFSET_Y = 20;
FRONT_SPACING_Z = 64;
SHAFT_POSITION_X = (BOLEX_X / 2) - 25.5;
SHAFT_POSITION_Y = (BOLEX_Y / 2) - 47.6;
module rounded_cube (cube_arr = [1, 1, 1], d = 0, center = false) {
off_x = 0;
off_y = 0;
r = d/2;
union () {
cube([cube_arr[0] - d, cube_arr[1], cube_arr[2]], center = center);
cube([cube_arr[0], cube_arr[1] - d, cube_arr[2]], center = center);
translate ([1 * (cube_arr[0] / 2) - r , 1 * (cube_arr[1] / 2)- r, 0]) cylinder(r = r, h = cube_arr[2], center = center);
translate ([-1 * (cube_arr[0] / 2) + r, -1 * (cube_arr[1] / 2) + r, 0]) cylinder(r = r, h = cube_arr[2], center = center);
translate ([1 * (cube_arr[0] / 2) - r, -1 * (cube_arr[1] / 2) + r, 0]) cylinder(r = r, h = cube_arr[2], center = center);
translate ([-1 * (cube_arr[0] / 2) + r, 1 * (cube_arr[1] / 2)- r, 0]) cylinder(r = r, h = cube_arr[2], center = center);
}
}
module panel () {
2018-11-24 04:37:16 +00:00
$fn = 60;
2018-11-23 03:34:41 +00:00
difference () {
rounded_cube([PANEL_X, PANEL_Y, PANEL_Z], d = 8, center = true);
//stepper void
translate([0 , -PANEL_OFFSET_Y, 0]) {
translate([SHAFT_POSITION_X, SHAFT_POSITION_Y, 0]) stepper_void();
}
//arduino void
translate([0 , -PANEL_OFFSET_Y, 0]) translate([-20, 15, 20]) arduino();
//window for frame counter
2018-11-23 03:34:41 +00:00
translate([(PANEL_X / 2) - 32, (PANEL_Y / 2) - 8, 0]) cube([16, 16, 4], center = true);
//front supports
translate([56.8, (FRONT_SPACING_Z / 2) + 2.1, 0]) cylinder(r = 5 / 2, h = 16, center = true);
translate([56.8, (FRONT_SPACING_Z / 2) + 2 - FRONT_SPACING_Z, 0]) cylinder(r = 5 / 2, h = 16, center = true);
//back supports
translate([-56.8 -2.25, (50 / 2) , 0]) cylinder(r = 5 / 2, h = 16, center = true);
translate([-56.8 -2.25, (50 / 2) - 50, 0]) cylinder(r = 5 / 2, h = 16, center = true);
//center standoff void
2019-04-15 21:09:12 +00:00
translate([0, -PANEL_OFFSET_Y, 0]) translate([17, -6, 20]) cylinder(r = 8 / 2, h = 50, center = true);
2018-11-23 03:34:41 +00:00
}
}
//mothballed, mount stepper directly to board
/*module stepper_mount () {
$fn = 60;
difference () {
rounded_cube([STEPPER_W + (STEPPER_THICKNESS * 2), STEPPER_W + (STEPPER_THICKNESS * 2), STEPPER_H + STEPPER_BOTTOM], d = 8, center = true);
translate([0, 0, STEPPER_BOTTOM / 2 + 0.1]) {
difference() {
cube([STEPPER_W, STEPPER_W, STEPPER_H], center = true);
for (i = [0:4]) {
rotate([0, 0, 45 + (i * (360 / 4))]) {
translate([STEPPER_CORNER / 2, 0, 0]) cube([3, 3, STEPPER_H * 2], center = true);
}
}
}
}
for (i = [0:4]) {
rotate([0, 0, 45 + (i * (360 / 4))]) {
translate([STEPPER_BOLTS, 0, 0]) {
cylinder(r = 1.5, h = 20, center = true);
translate([0, 0, -6]) cylinder(r = 5.6 / 2, h = 3, center = true);
}
}
}
//disk void
2019-04-15 21:09:12 +00:00
translate([0, 0, -1.9]) cylinder(r = STEPPER_VOID_D/ 2, h = 2, center = true, $fn = 200);
2018-11-23 03:34:41 +00:00
cylinder(r = 5.5 / 2, h = 20, center = true);
}
}*/
module stepper_void (H = 10) {
//$fn = 50;
for (i = [0:4]) {
rotate([0, 0, 45 + (i * (360 / 4))]) {
translate([STEPPER_BOLTS, 0, 0]) {
cylinder(r = 1.5, h = 20, center = true);
//translate([0, 0, -6]) cylinder(r = 5.6 / 2, h = H, center = true);
}
}
}
//disk void
2019-04-15 21:09:12 +00:00
translate([0, 0, -1.9]) cylinder(r = STEPPER_VOID_D/ 2, h = H, center = true, $fn = 200);
2018-11-23 03:34:41 +00:00
cylinder(r = 5.5 / 2, h = 20, center = true, $fn = 100);
}
module mount_base () {
rounded_cube([STEPPER_W + (STEPPER_THICKNESS * 2), STEPPER_W + (STEPPER_THICKNESS * 2), 6], d = 8, center = true);
//stepper mount
}
module one_to_eight_shaft () {
//$fn = 60;
H = 4;
BAR = 4.98 - 3.66;
BAR_W = 1.34;
difference () {
cylinder(r = 9.11 / 2, h = H, center = true);
cylinder(r = 7.16 / 2, h = H + 1, center = true);
}
cylinder(r = 3 / 2, h = H, center = true);
rotate([0, 90, 0]) cylinder(r = BAR_W / 2, h = H, center = true);
}
module key () {
2018-11-24 04:37:16 +00:00
$fn = 60;
2018-11-23 03:34:41 +00:00
BODY = 16;
OD = 7.16 - .15;
2018-11-24 04:37:16 +00:00
ID = 3.2;
2018-11-23 03:34:41 +00:00
H = 5;
BAR = 4.98 - 3.66;
BAR_W = 1.34;
BEARING_ID = 8;
PAD = BODY;
SHAFT_D = 5;
SHAFT_H = 18;
difference () {
cylinder(r = OD / 2, h = H, center = true);
cylinder(r = ID / 2, h = H, center = true);
translate([OD / 2, 0, -(5 / 2) + ((BAR + .15) / 2)]) cube([OD + 1, BAR_W + .15, BAR + .15], center = true);
}
translate([0, 0, 4]) cylinder(r2 = PAD / 2, r1 = BEARING_ID / 2, h = 4, center = true);
translate([0, 0, 14 - 0.02]) {
difference() {
cylinder(r = BODY / 2, h = BODY, center = true);
translate([0, 0, 1.5]) difference(){
cylinder(r = SHAFT_D / 2 , h = SHAFT_H, center = true);
translate([0, (SHAFT_D / 2) + (4.6 / 2), 0]) cube([SHAFT_D, SHAFT_D, SHAFT_H + 1], center = true);
}
translate([0, 5, 2]) {
rotate([90, 0, 0]) {
cylinder(r = 2.6 /2, h = 10, center = true);
translate([0, 0, -2.5]) cylinder(r = 5.75 / 2, h = 4, center =true);
}
}
}
}
2018-11-24 04:37:16 +00:00
//outside
translate([0, 0, 2]) difference () {
cylinder(r = 12 / 2, h = 6, center = true);
cylinder(r = 9.1 / 2, h = 6 + 1, center = true);
}
2018-11-23 03:34:41 +00:00
}
module bolex () {
cube([BODY_X, BODY_Y, BODY_Z], center = true);
//1:8 shaft
color("red") translate([SHAFT_POSITION_X, SHAFT_POSITION_Y, (BOLEX_Z / 2) + 2]) one_to_eight_shaft();
//translate([0, 0, 50]) key();
}
module arduino () {
X = 53.5;
Y = 68.75;
Z = 22.5;
cube([X, Y, Z], center = true);
translate ([-27, -39, 0]) {
translate([ 2.54, 15.24 , 0]) cylinder(r = 3.5 / 2, h = 100, center = true);
translate([ 17.78, 66.04 , 0]) cylinder(r = 3.5 / 2, h = 100, center = true);
translate([ 45.72, 66.04 ,0]) cylinder(r = 3.5 / 2, h = 100, center = true);
translate([ 50.8, 13.97 ,0]) cylinder(r = 3.5 / 2, h = 100, center = true);
//cylinder(r = 3.5 / 2, h = 100, center = true);
}
}
module stepper () {
SHAFT_D = 5;
SHAFT_H = 22.5;
H = 32.76;
cube([STEPPER_W, STEPPER_W, H], center = true);
for (i = [0:4]) {
rotate([0, 0, 45 + (i * (360 / 4))]) {
translate([STEPPER_BOLTS, 0, 0]) {
cylinder(r = 1.5, h = 20, center = true);
translate([0, 0, -6]) cylinder(r = 5.6 / 2, h = H, center = true);
}
}
}
//disk void
2019-04-15 21:09:12 +00:00
translate([0, 0, -1.9]) cylinder(r = STEPPER_VOID_D/ 2, h = H, center = true, $fn = 200);
2018-11-23 03:34:41 +00:00
cylinder(r = 5.5 / 2, h = 20, center = true, $fn = 100);
translate([0,0,-(H / 2) - (SHAFT_H / 2) - 1.9]) difference(){
cylinder(r = SHAFT_D / 2 , h = SHAFT_H, center = true);
translate([0, (SHAFT_D / 2) + (4.6 / 2), 0]) cube([SHAFT_D, SHAFT_D, SHAFT_H + 1], center = true);
}
}
module cross_bar () {
W = 170;
cube([7, W, 40], center = true);
}
module back_support () {
$fn = 60;
2018-11-23 03:34:41 +00:00
A = 27;
B = 33;
difference() {
translate([2, 0, 0]) rotate([90, 0, 0]) {
//rounded_cube([32 , 57, 18], d = 6, center = true);
union () {
translate([0, -(57 / 2) + (A / 2), 0]) rounded_cube([32, A, 18], d = 6, center = true);
2019-04-15 21:09:12 +00:00
translate([(32 / 2) - 8, (57 / 2) - (B / 2) + 3 , 0]) rounded_cube([18, B + 10, 18], d = 6, center = true);
2018-11-23 03:34:41 +00:00
}
}
//void for panel
2019-04-15 21:09:12 +00:00
translate([15, 0, 23.5 + 6]) cube([20, 40, 3.1], center = true);
2018-11-23 03:34:41 +00:00
translate([13, 0, -37]) cube([32 , 18 + 1, 57], center = true);
translate([25, 0, -10]) cube([32 , 18 + 1, 57], center = true);
translate([.3, 0, -18.5]) rotate([0, 90, 0]) {
cylinder(r = 12.2 / 2, h = 20, center = true);
cylinder(r = 5 / 2, h = 50, center = true);
translate([0, 0, -11]) cylinder(r = 8.9 / 2, h = 3.5, center = true, $fn = 6);
}
//top bolt
translate([13.5, 0, 29]) cylinder(r = 5 / 2, h = 25, center = true);
}
}
module back_clamp () {
$fn = 60;
2018-11-23 03:34:41 +00:00
difference () {
intersection () {
cube([20, 75, 8], center = true);
union () {
cube([20, 65, 10], center = true);
translate([0, 65 / 2, 3.5]) rotate([0, 90, 0]) cylinder(r = 7.5, h =20, center = true, $fn = 60);
translate([0, -65 / 2, 3.5]) rotate([0, 90, 0]) cylinder(r = 7.5, h =20, center = true, $fn = 60);
}
}
}
translate([0, 50 / 2, 6]) {
difference() {
cylinder(r = 12 / 2, h = 10, center = true);
cylinder(r = 5 / 2, h = 10 + 1, center = true);
}
}
translate([0, -50 / 2, 6]) {
difference () {
cylinder(r = 12 / 2, h = 10, center = true);
cylinder(r = 5 / 2, h = 10 + 1, center = true);
}
}
}
module front_support() {
2018-11-24 04:37:16 +00:00
$fn = 60;
2018-11-23 03:34:41 +00:00
difference () {
translate([-2.50, 0, 0]) rotate([90, 0, 0]) union() {
//rounded_cube([45, 70, 18], d = 6, center = true);
2019-04-15 21:09:12 +00:00
translate([0, -(70 / 2) + (42 / 2), 0]) rounded_cube([45, 42, 18], d = 6, center = true);
translate([-14.5, (70 / 2) - (35 / 2) + 3, 0]) rounded_cube([45, 35 + 8, 18], d = 6, center = true);
2018-11-23 03:34:41 +00:00
}
translate([-12.5, 0, -11]) rotate([90, 0, 0]) {
difference() {
cube([40, 70, 25], center = true);
translate([0, 43, 0]) cube([40, 70, 25], center = true);
}
}
//void for panel
2019-04-15 21:09:12 +00:00
translate([-15 - 15, 0, 29 + 6]) cube([20, 40, 3.1], center = true);
2018-11-23 03:34:41 +00:00
//top bolt
2019-04-15 21:09:12 +00:00
translate([-16 - 15.5, 0, 29]) cylinder(r = 5 / 2, h = 40, center = true);
2018-11-23 03:34:41 +00:00
//bolt shaft and hex
2018-11-24 04:37:16 +00:00
translate([10, 0, -25 + 3]) rotate([0, 90, 0]) {
2018-11-23 03:34:41 +00:00
cylinder(r = 5 / 2, h = 26, center = true);
translate([0, 0, 0]) cylinder(r = 12.2 / 2, h = 10, center =true);
translate([0, 0, 6.5]) cylinder(r = 8.9 / 2, h = 3.5, center = true, $fn = 6);
}
//void for shelf
2019-04-15 21:09:12 +00:00
translate([17 - 11, 0, 27]) rotate([90, 0, 0]) rounded_cube([30, 40, 19], d = 6, center = true);
translate([-25 - 14.5, 0, 5 + 5]) rotate([90, 0, 0]) rounded_cube([30, 35, 19], d = 6, center = true);
2018-11-23 03:34:41 +00:00
}
//translate([-12, 0, 29]) cylinder(r = 5 / 2, h = 25, center = true);
translate([10, 0, -20]) rotate([0, 90, 0]) {
//cylinder(r = 5 / 2, h = 26, center = true);
//translate([0, 0, 0]) cylinder(r = 12 / 2, h = 10, center =true);
//translate([0, 0, 5]) cylinder(r = 8.9 / 2, h = 3.5, center = true, $fn = 6);
}
}
module front_clamp () {
$fn = 60;
2018-11-23 03:34:41 +00:00
D = 24 + (2.16-1.53);
H = 3;
D2 = 30;
H2 = 6;
difference () {
union () {
cylinder(r = D / 2, h = H, center = true);
translate([0, 0, -(H / 2) - (H2 / 2)]) cylinder(r = D2 / 2, h = H2, center = true);
}
translate([0, 0, -1.5 - 6]) cylinder(r = 5 / 2, h = 6, center = true);
}
translate([0, 0, -10]) {
difference () {
cylinder(r = 12 / 2, h = 10, center =true);
translate([0, 0, 0]) cylinder(r = 5 / 2, h = 16, center = true);
}
}
}
module center_stand () {
cylinder(r = 10 / 2, h = 31, center = true);
translate([0, 0, (31 / 2) + 2]) cylinder(r = 8 / 2, h = 4, center = true);
translate([0, 0, (31 / 2) - 2]) cylinder(r = 16 / 2, h = 4, center = true);
translate([0, 0, -(31 / 2) + 2]) cylinder(r = 16 / 2, h = 4, center = true);
}
//translate([17, -6, 25]) center_stand();
2018-11-23 03:34:41 +00:00
//translate([0, 0, -24]) bolex();
2019-04-15 21:09:12 +00:00
translate([(170 / 2) - (147.3 - 135) + 11.5 + 4, (BOLEX_Y / 2) - 47.8, -12 + 3]) {
2018-11-23 03:34:41 +00:00
//translate([0, FRONT_SPACING_Z / 2, 0]) rotate([0, -90, 0]) front_clamp();
//translate([0, -FRONT_SPACING_Z / 2, 0]) rotate([0, -90, 0]) front_clamp();
2018-11-23 03:34:41 +00:00
}
//front_clamp();
2018-11-23 03:34:41 +00:00
//translate([0, 0, 10]) rotate([0, 90, 0]) cross_bar();
2018-11-24 04:37:16 +00:00
translate([SHAFT_POSITION_X, SHAFT_POSITION_Y, 12]) difference() {
//key();
//translate([50, 0, 0]) cube([100, 100, 100], center = true);
}
2019-04-15 21:09:12 +00:00
translate([PANEL_OFFSET_X, PANEL_OFFSET_Y, PANEL_OFFSET_Z]) panel();
//projection() panel();
2019-04-15 21:09:12 +00:00
//translate([SHAFT_POSITION_X, SHAFT_POSITION_Y, PANEL_OFFSET_Z + 18]) stepper();
2018-11-23 03:34:41 +00:00
//mount_base();
//translate([-20, 15, 55]) arduino();
/*translate([-5, 20, 63]) color([0, 0, 1], 0.2) difference () {
2018-11-23 03:34:41 +00:00
cube([96, 96, 40], center = true);
translate([0, 0, -3]) cube([96 - 6, 96 - 6, 40 - 3], center = true);
}*/
2019-04-15 21:09:12 +00:00
translate([(170 / 2) - (147.3 - 135) + 11.5 + 4, -10, 13]) {
2018-11-23 03:34:41 +00:00
//difference () {
//front_support();
2018-11-23 03:34:41 +00:00
//translate([0, 50, 0]) cube([100, 100, 200], center = true);
//}
}
2019-04-15 21:09:12 +00:00
//translate([30, 0, -35]) rotate([180, 0, 0]) front_support();
//translate([30 + 18, 0, -35 - 18]) rotate([180, 0, 0]) front_support();
2019-04-15 21:09:12 +00:00
translate([(170 / 2) - (147.3 - 135) + 11.5 + 4, -10 + FRONT_SPACING_Z , 13]) front_support();
2018-11-23 03:34:41 +00:00
//translate([0, 20, 50],) cylinder(r = 5, h = 28, center = true);
2018-11-24 04:37:16 +00:00
//translate([-(170 / 2) + (147.3 - 135) + 1.5, 20, 0]) rotate([0, -90, 0]) back_clamp();
2019-04-15 21:09:12 +00:00
translate([-(170 / 2) + (147.3 - 135), (BODY_Y / 2) - 25 , 18.5]) back_support();
//translate([15, 0, -15]) back_support();
2018-11-23 03:34:41 +00:00
translate([-(170 / 2) + (147.3 - 135), (BODY_Y / 2) - 25 - 50 , 18.5]){
//difference () {
//back_support();
//translate([0, 50, 0]) cube([100, 100, 200], center = true);
//}
2018-11-23 03:34:41 +00:00
}