bolex_base_plate/scad/bolex_base_plate.scad

69 lines
2.4 KiB
OpenSCAD

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);
translate([0, 0, 8]) cylinder(r = R(29) + pad, h = 15, center = true, $fn = 80);
translate([3 + 18.5, 17 + 1.5, 50 - 4]) rotate([0, 90, 0]) cylinder(r = R(100), h = 36, center = true, $fn = 180);
translate([5.55, 0 + 3, 38]) rotate([0, 90, 0]) rounded_cube([50, 135, 67.9], d = 20, center = true, $fn = 50);
}
module debug () {
bolex_debug();
base_plate([-PLATE_X, -PLATE_Y, 3]);
}
module bolt_voids () {
$fn = 80;
translate([6, -27, 0]){
//base reference
// cube([50, 71.5, 40], center = true);
//holes
translate([0, -(71.5 / 2) + 12, 0]) {
cylinder(r = 10 / 2, h = 100, center = true);
translate([0, 0, 9]) cylinder(r = R(16.5), h = 10, center = true, $fn = 6);
}
translate([0, (71.5 / 2) - 34, 0]) {
cylinder(r = R(6.5), h = 100, center = true);
translate([0, 0, 9]) cylinder(r = R(13), h = 10, center = true, $fn = 6);
}
/*translate([(-50 / 2) + 18, (71.5 / 2) - 62, 0]) {
cylinder(r = R(10), h = 100, center = true);
translate([0, 0, 9]) cylinder(r = R(16.5), h = 10, center = true, $fn = 6);
}*/
}
}
module base_plate (pos = [0, 0, 0], rot = [0, 0, 0]) {
translate(pos) rotate(rot) {
difference () {
rotate([0, 90, 0]) rounded_cube([31, 90.5, 55.3], d = 4, center = true, $fn = 40);
translate([PLATE_X, PLATE_Y, -3]) {
bolex_debug(0.7);
cylinder(r = R(10), h = 60, center = true, $fn = 40);
translate([0, 0, -37]) cylinder(r = R(17), h = 60, center = true, $fn = 40);
bolt_voids();
}
translate([-20, 58, 0]) cube([40, 40, 40], center = true);
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);
translate([15, -50, 0]) rotate([90, 0, 0]) cylinder(r = R(12), h = 100, center = true, $fn = 50);
translate([-15, -50, 0]) rotate([90, 0, 0]) cylinder(r = R(12), h = 100, center = true, $fn = 50);
}
}
}
PART = "bolex_base_plate";
if (PART == "bolex_base_plate") {
base_plate();
} else {
debug();
}