diff --git a/3dprinter.scad b/3dprinter.scad new file mode 100644 index 0000000..18a47cb --- /dev/null +++ b/3dprinter.scad @@ -0,0 +1,62 @@ +use ; +use ; +use ; +use ; + +bottmoutline(); +bottomAngleBrackets(); + +horizontalProfile(); +YAxis(); + + +module bottmoutline() { + // draw alu profiles + translate([0, - 40, 0]) aluProfile(400); + translate([0, 400, 0]) aluProfile(400); + + translate([0, - 40, 0]) rotate([0, 0, 90]) aluProfile(480); + translate([440, - 40, 0]) rotate([0, 0, 90]) aluProfile(480); +} + +module bottomAngleBrackets() { + // draw angle bracktes + angle_bracket(); + translate([400, 0, 0]) rotate([0, 0, 90]) angle_bracket(); + + + translate([400, 400, 0]) rotate([0, 0, 180]) angle_bracket(); + translate([0, 400, 0]) rotate([0, 0, 270]) angle_bracket(); +} + +module horizontalProfile() { + height = 600; + translate([- 40, 180, 0]) rotate([0, - 90, 0]) halfAluProfile(height); + translate([460, 180, 0]) rotate([0, - 90, 0]) halfAluProfile(height); + // upper part + translate([- 60, 180, height]) halfAluProfile(520); + + // add the horitzontal angle bracktes + translate([- 40, 135, 0]) rotate([0, 0, 90]) horizontal_angle_bracket(); + translate([440, 265, 0]) rotate([0, 0, 270]) horizontal_angle_bracket(); + + // angle brackets up + translate([- 40, 220, height]) rotate([90, 90, 0]) angle_bracket(); + translate([440, 180, height]) rotate([-90, 90, 0]) angle_bracket(); +} + +module YAxis() { + translate([160, 0, 0]) Motorhalter(); + + translate([214, 400, 0]) rotate([0, 0, 180]) YRollHolder(); +} + +// -- MODULES -- // + +module aluProfile(length) { + color("#dddddd") cube([length, 40, 40]); +} + +module halfAluProfile(length) { + color("#dddddd") cube([length, 40, 20]); +} \ No newline at end of file diff --git a/Motorhalter.scad b/Motorhalter.scad index db857f1..1b16259 100644 --- a/Motorhalter.scad +++ b/Motorhalter.scad @@ -1,64 +1,71 @@ -$fn=50; +$fn = 50; -motorheight=42.1; -motorwidth=40.5; -wanddickemotor=3; -wanddickelinks=5.5; +motorheight = 42.1; +motorwidth = 40.5; +wanddickemotor = 3; +wanddickelinks = 5.5; -cylinderdiameter=22.2; +cylinderdiameter = 22.2; -motorholedistance=(motorheight-31) /2; -leftholedist=7; -M3HoleDiam=3.4; -M3HeadDiam=5.8; +motorholedistance = (motorheight - 31) / 2; +leftholedist = 7; +M3HoleDiam = 3.4; +M3HeadDiam = 5.8; -render() difference() { - mainbody(); - translate([motorwidth,wanddickelinks,0]) motorholes(); - leftholes(); +Motorhalter(); + +module Motorhalter() { + render() difference() { + mainbody(); + translate([motorwidth, wanddickelinks, 0]) motorholes(); + leftholes(); + } } + //modules -module mainbody(){ - cube([motorwidth + wanddickemotor, wanddickelinks ,motorheight]); +module mainbody() { + cube([motorwidth + wanddickemotor, wanddickelinks, motorheight]); -translate([motorwidth,wanddickelinks,0])cube([wanddickemotor, motorheight, motorheight]); - - translate([motorwidth + wanddickemotor,motorheight * 2 /3,motorheight]) rotate([0,0,180]) linear_extrude(3) polygon([[0,0], [0, motorheight * 2 /3], [motorwidth * 2 /3, motorheight* 2 /3]]); + translate([motorwidth, wanddickelinks, 0])cube([wanddickemotor, motorheight, motorheight]); + + translate([motorwidth + wanddickemotor, motorheight * 2 / 3, motorheight]) rotate([0, 0, 180]) linear_extrude(3) + polygon([[0, 0], [0, motorheight * 2 / 3], [motorwidth * 2 / 3, motorheight * 2 / 3]]); } -module motorholes(){ - translate([0,motorheight/2,motorheight/2])rotate([0,90,0])cylinder(h=wanddickemotor, d=cylinderdiameter, $fn=130); - - translate([0,motorheight - motorholedistance,motorheight - motorholedistance]) MotorM3Hole(); - - translate([0,motorheight - motorholedistance, motorholedistance]) MotorM3Hole(); - - translate([0,motorholedistance,motorheight - motorholedistance]) MotorM3Hole(); - - translate([0,motorholedistance, motorholedistance]) MotorM3Hole(); +module motorholes() { + translate([0, motorheight / 2, motorheight / 2])rotate([0, 90, 0])cylinder(h = wanddickemotor, d = cylinderdiameter, + $fn = 130); + + translate([0, motorheight - motorholedistance, motorheight - motorholedistance]) MotorM3Hole(); + + translate([0, motorheight - motorholedistance, motorholedistance]) MotorM3Hole(); + + translate([0, motorholedistance, motorheight - motorholedistance]) MotorM3Hole(); + + translate([0, motorholedistance, motorholedistance]) MotorM3Hole(); } module leftholes() { // bottom left - translate([leftholedist,0,leftholedist]) LeftM3Hole(); + translate([leftholedist, 0, leftholedist]) LeftM3Hole(); //bottom right - translate([motorwidth - leftholedist,0,leftholedist]) LeftM3Hole(); + translate([motorwidth - leftholedist, 0, leftholedist]) LeftM3Hole(); // upper left - translate([leftholedist,0,motorwidth - leftholedist]) LeftM3Hole(); + translate([leftholedist, 0, motorwidth - leftholedist]) LeftM3Hole(); // upper right - translate([motorwidth - leftholedist,0,motorwidth - leftholedist]) LeftM3Hole(); + translate([motorwidth - leftholedist, 0, motorwidth - leftholedist]) LeftM3Hole(); } module MotorM3Hole() { - rotate([0,90,0])cylinder(h=wanddickemotor, d=M3HoleDiam); + rotate([0, 90, 0])cylinder(h = wanddickemotor, d = M3HoleDiam); } module LeftM3Hole() { - rotate([270,0,0])cylinder(h=wanddickelinks, d=M3HoleDiam); - translate([0,wanddickelinks-3,0]) rotate([270,0,0])cylinder(h=3, d=M3HeadDiam); + rotate([270, 0, 0])cylinder(h = wanddickelinks, d = M3HoleDiam); + translate([0, wanddickelinks - 3, 0]) rotate([270, 0, 0])cylinder(h = 3, d = M3HeadDiam); } diff --git a/YRollHolder.scad b/YRollHolder.scad index bc08d26..d65b80c 100644 --- a/YRollHolder.scad +++ b/YRollHolder.scad @@ -1,41 +1,45 @@ -$fn=33; +$fn = 33; -M3HoleDiam=3.4; +M3HoleDiam = 3.4; -height=40; -thickness=3; -length=30; +height = 40; +thickness = 3; +length = 30; // cambelt has 6mm width -innerspace=8; +innerspace = 8; -render() difference() { - frame(); - holes(); +// call main +YRollHolder(); + +module YRollHolder() { + render() difference() { + frame(); + holes(); + } } + module frame() { - cube([innerspace + 2 * thickness,thickness,height]); + cube([innerspace + 2 * thickness, thickness, height]); translate([0, thickness, 0]) cube([thickness, length, height]); translate([innerspace + thickness, thickness, 0]) cube([thickness, length, height]); - - } -module holes(){ +module holes() { // two inner holes translate([innerspace / 2 + thickness, 0, height / 4]) M3Hole(); translate([innerspace / 2 + thickness, 0, height / 4 * 3]) M3Hole(); - - translate([0, length / 4 *3, height / 2]) SideM3Hole(); - + + translate([0, length / 4 * 3, height / 2]) SideM3Hole(); + translate([innerspace + thickness, length / 4 * 3, height / 2]) SideM3Hole(); } module M3Hole() { - rotate([0,90,90])cylinder(h=thickness, d=M3HoleDiam); + rotate([0, 90, 90])cylinder(h = thickness, d = M3HoleDiam); } module SideM3Hole() { - rotate([0,90,0])cylinder(h=thickness, d=M3HoleDiam); + rotate([0, 90, 0])cylinder(h = thickness, d = M3HoleDiam); } \ No newline at end of file diff --git a/angle_bracket.scad b/angle_bracket.scad index 2511ab3..c43f6af 100644 --- a/angle_bracket.scad +++ b/angle_bracket.scad @@ -1,55 +1,59 @@ -$fn=33; +$fn = 33; -height=40; -width=60; -b=3; -triagleheight=5; +height = 40; +width = 60; +b = 3; +triagleheight = 5; -M4HoleDiam=4.4; +M4HoleDiam = 4.4; -holedistance=10; +holedistance = 10; +// main call +angle_bracket(); -difference() { - frame(); - holes(); +module angle_bracket() { + render() difference() { + frame(); + holes(); + } } module frame() { // x plate -cube([width,b,height]); + cube([width, b, height]); -// y plate -translate([b, 0,0]) rotate([0,0,90]) cube([width,b,height]); + // y plate + translate([b, 0, 0]) rotate([0, 0, 90]) cube([width, b, height]); -//bottom triangle -translate([b,b,0]) stabilizetriangle(); -// upper triangle -translate([b,b,height-triagleheight]) stabilizetriangle(); + //bottom triangle + translate([b, b, 0]) stabilizetriangle(); + // upper triangle + translate([b, b, height - triagleheight]) stabilizetriangle(); } module holes() { // y holes - translate([0,holedistance,height-holedistance]) YM3Hole(); - translate([0,width-holedistance,height-holedistance]) YM3Hole(); - translate([0,holedistance,holedistance]) YM3Hole(); - translate([0,width-holedistance,holedistance]) YM3Hole(); - - - translate([holedistance,0,height-holedistance]) XM3Hole(); - translate([width-holedistance,0,height-holedistance]) XM3Hole(); - translate([holedistance,0,holedistance]) XM3Hole(); - translate([width-holedistance,0,holedistance]) XM3Hole(); + translate([0, holedistance, height - holedistance]) YM3Hole(); + translate([0, width - holedistance, height - holedistance]) YM3Hole(); + translate([0, holedistance, holedistance]) YM3Hole(); + translate([0, width - holedistance, holedistance]) YM3Hole(); + + + translate([holedistance, 0, height - holedistance]) XM3Hole(); + translate([width - holedistance, 0, height - holedistance]) XM3Hole(); + translate([holedistance, 0, holedistance]) XM3Hole(); + translate([width - holedistance, 0, holedistance]) XM3Hole(); } module stabilizetriangle() { - linear_extrude(triagleheight) polygon([[0,0], [0, width-b], [width-b, 0]]); + linear_extrude(triagleheight) polygon([[0, 0], [0, width - b], [width - b, 0]]); } module YM3Hole() { - rotate([0,90,0])cylinder(h=b, d=M4HoleDiam); + rotate([0, 90, 0])cylinder(h = b, d = M4HoleDiam); } module XM3Hole() { - rotate([270,0,0])cylinder(h=b, d=M4HoleDiam); + rotate([270, 0, 0])cylinder(h = b, d = M4HoleDiam); } diff --git a/horizontal_angle_bracket.scad b/horizontal_angle_bracket.scad index 0d50c77..53e7054 100644 --- a/horizontal_angle_bracket.scad +++ b/horizontal_angle_bracket.scad @@ -1,74 +1,79 @@ -$fn=33; +$fn = 33; -height=40; -hwidth=40; -thickness=5; +height = 40; +hwidth = 40; +thickness = 5; -vthickness=20; -vwidth=40.3; -vheight=80; +vthickness = 20; +vwidth = 40.3; +vheight = 80; //https://de.wikipedia.org/wiki/Durchgangsbohrung -M4HoleDiam=4.4; +M4HoleDiam = 4.4; -holedistance=10; +holedistance = 10; -horizontalcenterholes=true; +horizontalcenterholes = true; -difference() { - frame(); - holes(); +// calling main +horizontal_angle_bracket(); + +module horizontal_angle_bracket() { + render() difference() { + frame(); + holes(); + } } -module frame(){ +module frame() { // left tile - cube([hwidth,thickness,height]); - translate([0,thickness,0]) sidetriangle(); - translate([0,thickness,height - thickness]) sidetriangle(); - + cube([hwidth, thickness, height]); + translate([0, thickness, 0]) sidetriangle(); + translate([0, thickness, height - thickness]) sidetriangle(); + // left to back tile - translate([hwidth,0,0]) cube([thickness, vthickness, height]); - + translate([hwidth, 0, 0]) cube([thickness, vthickness, height]); + // left triangle - translate([hwidth,0,height]) rotate([90, 0, 90]) middletriangle(); + translate([hwidth, 0, height]) rotate([90, 0, 90]) middletriangle(); // covers upper edge of above translate([hwidth, vthickness, 0]) cube([vwidth + thickness * 2, thickness, vheight]); -// right to back tile - translate([hwidth + vwidth + thickness,0,0]) cube([thickness, vthickness, height]); - - // right triangle - translate([hwidth + vwidth + thickness,0,height]) rotate([90, 0, 90]) middletriangle(); + // right to back tile + translate([hwidth + vwidth + thickness, 0, 0]) cube([thickness, vthickness, height]); + + // right triangle + translate([hwidth + vwidth + thickness, 0, height]) rotate([90, 0, 90]) middletriangle(); + + // right tile + translate([hwidth + vwidth + thickness * 2, 0, 0]) cube([hwidth, thickness, height]); + + translate([hwidth * 2 + vwidth + thickness * 2, thickness, thickness]) rotate([0, 180, 0]) sidetriangle(); + translate([hwidth * 2 + vwidth + thickness * 2, thickness, height]) rotate([0, 180, 0]) sidetriangle(); -// right tile - translate([hwidth + vwidth + thickness * 2, 0, 0]) cube([hwidth,thickness,height]); - - translate([hwidth * 2 + vwidth + thickness * 2,thickness,thickness]) rotate([0, 180,0 ]) sidetriangle(); - translate([hwidth * 2 + vwidth + thickness * 2,thickness,height]) rotate([0, 180,0 ]) sidetriangle(); - } -module middletriangle(){ - linear_extrude(thickness) polygon([[0,0], [vthickness, 0], [vthickness, vheight-height]]); +module middletriangle() { + linear_extrude(thickness) polygon([[0, 0], [vthickness, 0], [vthickness, vheight - height]]); } module sidetriangle() { - linear_extrude(5) polygon([[0,0], [hwidth, 0], [hwidth, vthickness]]); + linear_extrude(5) polygon([[0, 0], [hwidth, 0], [hwidth, vthickness]]); } module holes() { // left holes leftholes(); - + // right holes - translate([hwidth + vwidth + thickness * 2,0,0]) leftholes(); - + translate([hwidth + vwidth + thickness * 2, 0, 0]) leftholes(); + // center holes - translate([hwidth + thickness,vthickness,0]) centerholes(); + translate([hwidth + thickness, vthickness, 0]) centerholes(); } -module leftholes(){ +module leftholes() { translate([holedistance, 0, holedistance]) XM3Hole(); translate([hwidth - holedistance, 0, holedistance]) XM3Hole(); translate([holedistance, 0, height - holedistance]) XM3Hole(); @@ -80,14 +85,14 @@ module centerholes() { translate([vwidth - holedistance, 0, holedistance]) XM3Hole(); translate([holedistance, 0, vheight - holedistance]) XM3Hole(); translate([vwidth - holedistance, 0, vheight - holedistance]) XM3Hole(); - - if(horizontalcenterholes){ - // center holes - translate([vwidth - holedistance, 0, vheight / 2]) XM3Hole(); - translate([holedistance, 0, vheight / 2]) XM3Hole(); + + if (horizontalcenterholes) { + // center holes + translate([vwidth - holedistance, 0, vheight / 2]) XM3Hole(); + translate([holedistance, 0, vheight / 2]) XM3Hole(); } } module XM3Hole() { - rotate([270,0,0])cylinder(h=thickness, d=M4HoleDiam); + rotate([270, 0, 0])cylinder(h = thickness, d = M4HoleDiam); } \ No newline at end of file