183 lines
5.5 KiB
OpenSCAD
183 lines
5.5 KiB
OpenSCAD
$fn=80;
|
|
|
|
include <threads.scad>
|
|
include <BOSL2/std.scad>
|
|
include <BOSL2/gears.scad>
|
|
|
|
sl=75;
|
|
td=11;
|
|
tp=4;
|
|
sw=5;
|
|
cp=7;
|
|
te1=12;
|
|
te2=25;
|
|
pa=20;
|
|
|
|
module l_screw() {
|
|
mirror([0,1,0]) RodStart(sw*2, sw, thread_len=sl, thread_diam=td, thread_pitch=tp);
|
|
translate([0,0,sw]) {
|
|
linear_extrude(sw, center=true)
|
|
spur_gear2d(circ_pitch=cp, teeth=te1, pressure_angle=pa);
|
|
}
|
|
/* translate([0,0,sl+sw]) zcyl(l=sw, d=td+1, rounding=1); */
|
|
}
|
|
module l_bolt() {
|
|
difference() {
|
|
cuboid([20,20,20], rounding=1);
|
|
zcyl(l=20, d=15);
|
|
}
|
|
translate([0,0,-10]) mirror([0,1,0]) RodEnd(15, 20, thread_len=20, thread_diam=12, thread_pitch=4);
|
|
}
|
|
module r_screw() {
|
|
RodStart(sw*2, sw, thread_len=sl, thread_diam=td, thread_pitch=tp);
|
|
translate([0,0,sw]) {
|
|
linear_extrude(sw, center=true)
|
|
spur_gear2d(circ_pitch=cp, teeth=te1, pressure_angle=pa);
|
|
}
|
|
/* translate([0,0,sl+sw]) zcyl(l=sw, d=td+1, rounding=1); */
|
|
}
|
|
module r_bolt() {
|
|
difference() {
|
|
cuboid([20,20,20], rounding=1);
|
|
zcyl(l=20, d=15);
|
|
}
|
|
translate([0,0,-10]) RodEnd(15, 20, thread_len=20, thread_diam=12, thread_pitch=4);
|
|
}
|
|
module plate() {
|
|
/* Main */
|
|
cuboid([45,3,45], rounding=1);
|
|
translate([21,13,16]) cuboid([3,28,5], rounding=1);
|
|
translate([-21,13,16]) cuboid([3,28,5], rounding=1);
|
|
translate([21,13,-16]) cuboid([3,28,5], rounding=1);
|
|
translate([-21,13,-16]) cuboid([3,28,5], rounding=1);
|
|
//
|
|
translate([16,-13,21]) cuboid([5,28,3], rounding=1);
|
|
translate([-16,-13,21]) cuboid([5,28,3], rounding=1);
|
|
translate([16,-13,-21]) cuboid([5,28,3], rounding=1);
|
|
translate([-16,-13,-21]) cuboid([5,28,3], rounding=1);
|
|
//
|
|
difference() {
|
|
cuboid([30,14,30], rounding=1);
|
|
translate([0,-6,0]) cuboid([21,4,55], rounding=1);
|
|
translate([0,6,0]) cuboid([55,4,21], rounding=1);
|
|
}
|
|
// Front
|
|
translate([0,-26,0]) cuboid([45,3,45], rounding=1);
|
|
translate([0,-31,0]) rotate([90,0,0]) tube(od=16, wall=2, h=10, rounding=1);
|
|
// Back
|
|
translate([0,26,0]) cuboid([45,3,45], rounding=1);
|
|
}
|
|
|
|
/*[screws]*/
|
|
/*[x_axis]*/
|
|
color("cyan") {
|
|
translate([-14,0,0]) l_bolt();
|
|
translate([14,0,0]) l_bolt();
|
|
}
|
|
color("blue") {
|
|
translate ([-14,0,sl/2+5]) rotate([0,180,14]) {
|
|
translate([0,0,-10]) cylinder(h=15, d=td+1, $fn=6);
|
|
l_screw();
|
|
}
|
|
translate ([14,0,sl/2+5]) rotate([0,180,0]) l_screw();
|
|
}
|
|
/*[y_axis */
|
|
color("pink") {
|
|
translate([-42,0,0]) rotate([-90,0,0]) r_bolt();
|
|
translate([42,0,0]) rotate([-90,0,0]) l_bolt();
|
|
}
|
|
|
|
color("red") {
|
|
translate ([-42,-sl/2-5,0]) rotate([-90,6,0]) r_screw();
|
|
|
|
translate ([0,-sl/2,0]) rotate([90,0,0]) {
|
|
cylinder(h=15, d=td+1, $fn=6);
|
|
linear_extrude(sw, center=true)
|
|
spur_gear2d(circ_pitch=cp, teeth=te2, pressure_angle=pa);
|
|
}
|
|
|
|
translate ([42,-sl/2-5,0]) rotate([-90,-6,0]) l_screw();
|
|
}
|
|
/*[plates]*/
|
|
translate([-28,0,0]) rotate([0,0,-90]) plate();
|
|
translate([28,0,0]) rotate([0,0,90]) plate();
|
|
|
|
/*[enclosure]*/
|
|
* color("white", alpha=.5) {
|
|
difference() {
|
|
cuboid([126,86,86], rounding=1);
|
|
translate([3,0,0]) cuboid([126,80,80]);
|
|
translate([0,0,41.5]) cuboid([70,50,5]);
|
|
translate([0,-41.5,0]) cuboid([114,4,74]);
|
|
cuboid([140,55,55], rounding=20);
|
|
translate([-14,0,38.5]) zcyl(l=10, d=td+2);
|
|
translate([14,0,40]) zcyl(l=4, d=td+1);
|
|
translate([0,-38.5,0]) ycyl(l=10, d=td+2);
|
|
translate([-42,-40,0]) ycyl(l=4, d=td+1);
|
|
translate([42,-40,0]) ycyl(l=4, d=td+1);
|
|
}
|
|
color("grey") {
|
|
translate([0,-33,0]) {
|
|
ycyl(l=3, d=20);
|
|
cuboid([10,2,85]);
|
|
}
|
|
}
|
|
translate([-14,0,-38.5]) tube(od=16, wall=1.5, h=5, rounding=1);
|
|
translate([14,0,-38.5]) tube(od=16, wall=1.5, h=5, rounding=1);
|
|
rotate([90,0,0]) {
|
|
translate([-42,0,-38.5]) tube(od=16, wall=1.5, h=5, rounding=1);
|
|
translate([42,0,-38.5]) tube(od=16, wall=1.5, h=5, rounding=1);
|
|
}
|
|
/*[covers]*/
|
|
// Top
|
|
translate ([0,0,65]) {
|
|
difference() {
|
|
union() {
|
|
cuboid([76,56,2], rounding=1);
|
|
translate([0,0,-1.5]) cuboid([70,50,5], rounding=1);
|
|
}
|
|
translate([-14,0,-1]) zcyl(l=6, d=td+2);
|
|
translate([14,0,-3]) zcyl(l=3, d=td+1);
|
|
}
|
|
}
|
|
// Right
|
|
translate ([0,-65,0]) {
|
|
difference() {
|
|
union() {
|
|
cuboid([126,2,86], rounding=1);
|
|
translate([0,1.5,0]) cuboid([113,5,73], rounding=1);
|
|
}
|
|
translate([0,1,0]) ycyl(l=6, d=td+2);
|
|
translate([-42,3,0]) ycyl(l=3, d=td+1);
|
|
translate([42,3,0]) ycyl(l=3, d=td+1);
|
|
}
|
|
}
|
|
}
|
|
|
|
/*[grp_holder]*/
|
|
* translate([68,0,0]) rotate([0,0,-90]) {
|
|
difference() {
|
|
union() {
|
|
translate([0,0,16]) {
|
|
rotate([90,0,0]) {
|
|
linear_extrude(6, center=true)
|
|
trapezoid(55, 20, 80, rounding=5);
|
|
}
|
|
}
|
|
translate([0,0,100]) {
|
|
cuboid([126,6,126], rounding=1);
|
|
}
|
|
}
|
|
translate([0,0,23]) {
|
|
rotate([90,0,0]) {
|
|
linear_extrude(6, center=true)
|
|
trapezoid(27, 30, 60, rounding=5);
|
|
}
|
|
}
|
|
translate([0,-1.5,100]) cuboid([121,5,121]);
|
|
* translate([0,0,100]) cuboid([116,7,116], rounding=2);
|
|
ycyl(l=6, d=10, rounding=-3);
|
|
}
|
|
/*[plexi]*/
|
|
color("cyan", alpha=.3) translate([0,-1,100]) cuboid([120,4,120], rounding=1);
|
|
} |