2024-10-15 14:20:38 +00:00
|
|
|
use <./common/common.scad>
|
|
|
|
|
|
|
|
PLATE_X = -6;
|
|
|
|
PLATE_Y = 25;
|
|
|
|
|
|
|
|
|
|
|
|
module bolex_debug (pad = 0) {
|
|
|
|
cylinder(r = R(29) + pad, h = 10, center = true, $fn = 80);
|
2024-10-17 00:13:26 +00:00
|
|
|
translate([0, 0, 8]) cylinder(r = R(29) + pad, h = 15, center = true, $fn = 80);
|
2024-10-22 02:54:22 +00:00
|
|
|
translate([0, 0, 12.51]) cylinder(r = R(33), h = 3, center = true, $fn = 90);
|
|
|
|
|
2024-10-17 00:13:26 +00:00
|
|
|
translate([3 + 18.5, 17 + 1.5, 50 - 4]) rotate([0, 90, 0]) cylinder(r = R(100), h = 36, center = true, $fn = 180);
|
2024-10-23 00:59:47 +00:00
|
|
|
translate([5.55, 0 + 4, 38]) rotate([0, 90, 0]) rounded_cube([50, 135, 67.9], d = 20, center = true, $fn = 50);
|
2024-10-15 14:20:38 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
module debug () {
|
|
|
|
bolex_debug();
|
|
|
|
base_plate([-PLATE_X, -PLATE_Y, 3]);
|
|
|
|
}
|
|
|
|
|
|
|
|
module bolt_voids () {
|
|
|
|
$fn = 80;
|
2024-10-15 19:48:41 +00:00
|
|
|
translate([6, -27, 0]){
|
2024-10-15 14:20:38 +00:00
|
|
|
//base reference
|
|
|
|
// cube([50, 71.5, 40], center = true);
|
|
|
|
//holes
|
2024-10-15 19:48:41 +00:00
|
|
|
translate([0, -(71.5 / 2) + 12, 0]) {
|
|
|
|
cylinder(r = 10 / 2, h = 100, center = true);
|
2024-10-22 02:54:22 +00:00
|
|
|
translate([0, 0, 9]) cylinder(r = R(16.5), h = 25, center = true, $fn = 6);
|
2024-10-15 19:48:41 +00:00
|
|
|
}
|
2024-10-15 14:20:38 +00:00
|
|
|
translate([0, (71.5 / 2) - 34, 0]) {
|
|
|
|
cylinder(r = R(6.5), h = 100, center = true);
|
2024-10-22 02:54:22 +00:00
|
|
|
translate([0, 0, 9]) cylinder(r = R(13), h = 25, center = true, $fn = 6);
|
2024-10-15 14:20:38 +00:00
|
|
|
}
|
2024-10-15 19:48:41 +00:00
|
|
|
/*translate([(-50 / 2) + 18, (71.5 / 2) - 62, 0]) {
|
2024-10-15 14:20:38 +00:00
|
|
|
cylinder(r = R(10), h = 100, center = true);
|
|
|
|
translate([0, 0, 9]) cylinder(r = R(16.5), h = 10, center = true, $fn = 6);
|
2024-10-15 19:48:41 +00:00
|
|
|
}*/
|
2024-10-15 14:20:38 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2024-10-22 02:54:22 +00:00
|
|
|
module base_plate (pos = [0, 0, 0], rot = [0, 0, 0], rails = "15mm") {
|
|
|
|
Rails15mmZ = -1;
|
2024-10-15 14:20:38 +00:00
|
|
|
translate(pos) rotate(rot) {
|
|
|
|
difference () {
|
2024-10-22 02:54:22 +00:00
|
|
|
union () {
|
2024-10-23 00:59:47 +00:00
|
|
|
translate([0, 40 / 2, 0]) rotate([0, 90, 0]) rounded_cube([31, 90.5 + 40, 55.3], d = 4, center = true, $fn = 40);
|
2024-10-22 02:54:22 +00:00
|
|
|
if (rails == "15mm") {
|
|
|
|
translate([60 / 2, -20, Rails15mmZ]) {
|
|
|
|
rotate([90, 0, 0]) cylinder(r = R(24), h = 20, center = true, $fn = 60);
|
|
|
|
translate([13, 0, 0]) cube([12, 20, 10], center = true);
|
|
|
|
}
|
|
|
|
translate([-60 / 2, -20, Rails15mmZ]) {
|
|
|
|
rotate([90, 0, 0]) cylinder(r = R(24), h = 20, center = true, $fn = 60);
|
|
|
|
translate([-13, 0, 0]) cube([12, 20, 10], center = true);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2024-10-15 14:20:38 +00:00
|
|
|
translate([PLATE_X, PLATE_Y, -3]) {
|
2024-10-22 02:54:22 +00:00
|
|
|
difference () {
|
|
|
|
bolex_debug(0.7);
|
|
|
|
if (rails == "15mm") {
|
|
|
|
translate([-PLATE_X + (60 / 2), - PLATE_Y - 20, 3 + Rails15mmZ]) rotate([90, 0, 0]) cylinder(r = R(24), h = 20, center = true, $fn = 60);
|
|
|
|
translate([-PLATE_X - (60 / 2), - PLATE_Y - 20, 3 + Rails15mmZ]) rotate([90, 0, 0]) cylinder(r = R(24), h = 20, center = true, $fn = 60);
|
|
|
|
}
|
|
|
|
}
|
2024-10-15 14:20:38 +00:00
|
|
|
cylinder(r = R(10), h = 60, center = true, $fn = 40);
|
2024-10-23 00:59:47 +00:00
|
|
|
translate([0, 0, -37]) cylinder(r = R(17), h = 60, center = true, $fn = 40);
|
2024-10-15 14:20:38 +00:00
|
|
|
bolt_voids();
|
|
|
|
}
|
2024-10-23 00:59:47 +00:00
|
|
|
translate([-20, 52, 0]) cube([40, 30, 40], center = true);
|
|
|
|
translate([0, 77.8, -9]) rotate([0, 90, 0]) cylinder(r = R(5.25), h = 100, center = true, $fn = 50);
|
2024-10-15 19:48:41 +00:00
|
|
|
translate([0, 7.8, -9]) rotate([0, 90, 0]) cylinder(r = R(5.25), h = 100, center = true, $fn = 50);
|
|
|
|
translate([0, -37.8, -9]) rotate([0, 90, 0]) cylinder(r = R(5.25), h = 100, center = true, $fn = 50);
|
|
|
|
|
2024-10-22 02:54:22 +00:00
|
|
|
if (rails == "15mm") {
|
|
|
|
translate([60 / 2, -50, Rails15mmZ]) {
|
|
|
|
rotate([90, 0, 0]) cylinder(r = R(15.4), h = 100, center = true, $fn = 60);
|
|
|
|
translate([5, 0, 0]) cube([20, 100, 1]);
|
|
|
|
translate([14, 30, 13]) {
|
|
|
|
rotate([0, 0, 30]) m4_nut(20);
|
|
|
|
cylinder(r = R(4.25), h = 50, center = true, $fn = 40);
|
|
|
|
translate([0, 0, -43]) cylinder(r = R(14), h = 50, center = true, $fn = 40);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
translate([-60 / 2, -50, Rails15mmZ]) {
|
|
|
|
rotate([90, 0, 0]) cylinder(r = R(15.4), h = 100, center = true, $fn = 60);
|
|
|
|
translate([-20, 0, 0]) cube([20, 100, 1]);
|
|
|
|
translate([-14, 30, 13]) {
|
|
|
|
rotate([0, 0, 30]) m4_nut(20);
|
|
|
|
cylinder(r = R(4.25), h = 50, center = true, $fn = 40);
|
|
|
|
translate([0, 0, -43]) cylinder(r = R(14), h = 50, center = true, $fn = 40);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else if (rails == "1/2in") {
|
|
|
|
translate([15, -50, 0]) rotate([90, 0, 0]) cylinder(r = R(13), h = 100, center = true, $fn = 50);
|
|
|
|
translate([-15, -50, 0]) rotate([90, 0, 0]) cylinder(r = R(13), h = 100, center = true, $fn = 50);
|
|
|
|
}
|
|
|
|
|
2024-10-15 14:20:38 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-10-17 00:13:26 +00:00
|
|
|
PART = "bolex_base_plate";
|
2024-10-15 14:20:38 +00:00
|
|
|
|
2024-10-17 00:13:26 +00:00
|
|
|
if (PART == "bolex_base_plate") {
|
2024-10-22 02:54:22 +00:00
|
|
|
base_plate(rails="1/2in");
|
2024-10-15 14:20:38 +00:00
|
|
|
} else {
|
|
|
|
debug();
|
|
|
|
}
|
|
|
|
|