Merge in 9 months of work on capper branch #71
|
@ -0,0 +1,45 @@
|
||||||
|
include <./common.scad>;
|
||||||
|
|
||||||
|
RAIL_SPACING = 100;
|
||||||
|
RAIL_H = 70;
|
||||||
|
RAIL_LEN = 400;
|
||||||
|
RAIL_D=25.4;
|
||||||
|
|
||||||
|
module rail (H = 100) {
|
||||||
|
cylinder(r = R(RAIL_D), h = H, center = true, $fn = 60);
|
||||||
|
}
|
||||||
|
|
||||||
|
module rails () {
|
||||||
|
translate([RAIL_SPACING/2, 0, RAIL_H]) rotate([90, 0, 0]) rail(RAIL_LEN);
|
||||||
|
translate([-RAIL_SPACING/2, 0, RAIL_H]) rotate([90, 0, 0]) rail(RAIL_LEN);
|
||||||
|
}
|
||||||
|
|
||||||
|
module end () {
|
||||||
|
L = 50;
|
||||||
|
T = 20;
|
||||||
|
translate ([0, -L / 2, 0]) {
|
||||||
|
difference () {
|
||||||
|
union () {
|
||||||
|
translate([RAIL_SPACING/2, 0, RAIL_H]) rotate([90, 0, 0]) {
|
||||||
|
cylinder(r = R(35), h = L, center = true, $fn = 60);
|
||||||
|
}
|
||||||
|
translate([-RAIL_SPACING/2, 0, RAIL_H]) rotate([90, 0, 0]) {
|
||||||
|
cylinder(r = R(35), h = L, center = true, $fn = 60);
|
||||||
|
}
|
||||||
|
translate([0, 0, RAIL_H + (35 / 2) - (T / 2)]) cube([RAIL_SPACING, L, T], center = true);
|
||||||
|
translate([RAIL_SPACING/2 - (5 / 2), 5, RAIL_H / 2]) cube([40, 40, RAIL_H], center = true);
|
||||||
|
translate([-RAIL_SPACING/2 + (5 / 2), 5, RAIL_H / 2]) cube([40, 40, RAIL_H], center = true);
|
||||||
|
}
|
||||||
|
translate([RAIL_SPACING/2, 0, RAIL_H]) rotate([90, 0, 0]) {
|
||||||
|
rail(L + 1);
|
||||||
|
}
|
||||||
|
translate([-RAIL_SPACING/2, 0, RAIL_H]) rotate([90, 0, 0]) {
|
||||||
|
rail(L + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//color("blue") rails();
|
||||||
|
translate([0, RAIL_LEN / 2, 0]) end();
|
Loading…
Reference in New Issue