format all files
add 3dprinter.scad where to simulate the whole 3dprinter should look like
This commit is contained in:
parent
77607f2ecc
commit
b26be99f4e
62
3dprinter.scad
Normal file
62
3dprinter.scad
Normal file
@ -0,0 +1,62 @@
|
||||
use <angle_bracket.scad>;
|
||||
use <horizontal_angle_bracket.scad>;
|
||||
use <Motorhalter.scad>;
|
||||
use <YRollHolder.scad>;
|
||||
|
||||
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]);
|
||||
}
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
}
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
Loading…
Reference in New Issue
Block a user