use <../y-axis-corner.scad>
use <../z-axis.scad>
use <../x-end.scad>
+use <../x-end-motor.scad>
+use <../x-end-idler.scad>
+//use <../x-end-orig.scad>
use <../x-carriage.scad>
+// quick rendering
+$fa = 12;
+$fs = 2;
+
module nutwasher(){
color("silver")
difference(){
translate([0,0,2])cylinder(r=15/2,h=7,$fn=6);
translate([0,0,0.5])cylinder(r=8.5,h=1);
}
- translate([0,0,-1])cylinder(r=8/2,h=12);
+ translate([0,0,-1])cylinder(r=8/2,h=12);
}
}
// y motor mount
-translate([56-yrodseparation/2,-y_smooth_rod_length/2+9,0])
+translate([56-yrodseparation/2,-y_smooth_rod_length/2+9,0])
{
rotate([0,90,0]) rotate([0,0,90]) motorholder();
translate([10,0,30])rotate([0,90,0])nutwasher();
}
// y idler mount
-translate([70-yrodseparation/2,y_smooth_rod_length/2-9,30])
+translate([70-yrodseparation/2,y_smooth_rod_length/2-9,30])
{
- translate([0,0-33,-8])
+ translate([0,0-33,-8])
rotate([0,-90,0]) idlermount();
translate([0,0,0])rotate([0,90,0])nutwasher();
translate([-20,0,0])rotate([0,90,180])nutwasher();
translate([-11,9,10])rotate([0,90,180])nutwasher();
translate([11,9,10])rotate([0,90,0])nutwasher();
-
+
// front top threaded rod
color("Aqua")
translate([-20,9,30]) rotate([0,90,0]) cylinder(h = 140, r=4);
translate([-yrodseparation/2,-y_smooth_rod_length/2])
{
yfront();
-translate([0,y_smooth_rod_length,0])
+translate([0,y_smooth_rod_length,0])
mirror([0,1,0])
yfront();
}
{
// left top rod
color("MediumBlue")
- translate([0,0,45]) rotate([0,90,90]) cylinder(h = y_smooth_rod_length, r=4,center=true);
+ translate([0,0,45]) rotate([0,90,90]) cylinder(h = y_smooth_rod_length, r=bushing_xy[0],center=true);
//left bottom rod
color("Aqua")
- translate([0,0,20]) rotate([0,90,90]) cylinder(h = 430, r=4,center=true);
+ translate([0,0,20]) rotate([0,90,90]) cylinder(h = y_smooth_rod_length, r=4,center=true);
// middle nuts
translate([0,0,20])rotate([0,-90,90])nutwasher();
translate([0,board_thickness,20])rotate([0,90,90])nutwasher();
color("Lime",0.25)
translate([0,0,58]) cube([bed_x_size,bed_y_size,6], center=true);
-board_sides=50;
-board_w=bed_x_size+10+2*board_sides;
+board_sides=(frame_type == frame_alu) ? board_thickness : 50 ;
+// todo: auto set length of smooth rods and board using desired print volume
+// fixme: just copied board_w from wilson bom for my specific printer...
+board_w=(frame_type == frame_alu) ? 430 + board_thickness * 2 : bed_x_size+10+2*board_sides;
+board_h=(frame_type == frame_alu) ? z_smooth_rod_length + 50 : 300;
+board_cut_h=(frame_type == frame_alu) ? board_h - board_thickness * 2 : 200;
+board_cut_w=(frame_type == frame_alu) ? board_w - board_thickness * 2 : bed_x_size + 10;
+
// XZ board
-translate([0,board_thickness/2,150])
+translate([0,board_thickness/2,board_h/2])
%difference()
{
- cube([board_w,board_thickness,300],true);
- translate([0,0,-15])
- cube([bed_x_size+10,board_thickness+2,200],true);
+ cube([board_w,board_thickness,board_h], center=true);
+ translate([0,0,(frame_type == frame_alu) ? 0 : -15])
+ cube([board_cut_w,board_thickness+2,board_cut_h], center=true);
}
-// Z motor mounts
-translate([-board_w/2-5,0,42])
-rotate(-90)
-zmotorholder();
-
-translate([board_w/2+5,0,42])
-rotate(-90)
-mirror([0,1,0])
-zmotorholder();
-
-// Z rod mounts
-translate([-board_w/2-5,0,260])
-rotate(-90)
-zrodholder();
-
-translate([board_w/2+5,0,260])
-rotate(-90)
-mirror([0,1,0])
-zrodholder();
+if (frame_type == frame_alu) {
+ // Z motor mounts
+ translate([-board_w/2-5,0,55 - 6])
+ rotate(-90)
+ zmotorholder (thickness=55, bottom_thickness=6);
+
+ translate([board_w/2+5,0,55 - 6])
+ rotate(-90)
+ mirror([0,1,0])
+ zmotorholder(thickness=55, bottom_thickness=6);
+
+ // Z rod mounts
+ // 6 = bottom_thickness
+ translate([-board_w/2-5,0,board_h - 6/2])
+ rotate(-90)
+ zrodholder(thickness=board_thickness * 2 + 5, ylen = board_thickness * 2 + 10, bottom_x=43 + zaxis_delta_x, bottom_thickness=6);
+
+ translate([board_w/2+5,0,board_h - 6/2])
+ rotate(-90)
+ mirror([0,1,0])
+ zrodholder(thickness=board_thickness * 2 + 5, ylen = board_thickness * 2 + 10, bottom_x=43 + zaxis_delta_x, bottom_thickness=6);
+} else {
+ // Z motor mounts
+ translate([-board_w/2-5,0,42])
+ rotate(-90)
+ zmotorholder ()
+
+ translate([board_w/2+5,0,42])
+ rotate(-90)
+ mirror([0,1,0])
+ zmotorholder();
+
+ // Z rod mounts
+ translate([-board_w/2-5,0,260])
+ rotate(-90)
+ zrodholder();
+
+ translate([board_w/2+5,0,260])
+ rotate(-90)
+ mirror([0,1,0])
+ zrodholder();
+}
// Z rods
module z_rods()
{
color("MediumBlue")
- translate([board_w/2-4,-26,42])cylinder(h=z_smooth_rod_length,r=4);
+ // fixme: 55 - 6 is mount thickness - bottom_thickness
+ // fixme: board_w/2-4 ... should 4 be bushing_z[0] instead ?
+ translate([board_w/2-4-zaxis_delta_y, -(board_to_xz_distance + zaxis_delta_x),55 - 6])cylinder(h=z_smooth_rod_length,r=bushing_z[0]);
}
z_rods();
mirror([1,0,0])z_rods();
+// Z leadscrew
+module z_leadscrew()
+{
+ position_y = board_to_xz_distance + zaxis_delta_y + zmotor_delta_y;
+ position_x = board_to_xz_distance + zaxis_delta_x + zmotor_delta_x;
+ color("Orange")
+ // fixme: 55 - 6 is mount thickness - bottom_thickness
+ // fixme: position_y+5, 5 = side_thickness
+ // fixme: board_w/2-4 ... should 4 be bushing_z[0] instead ?
+ translate([board_w/2-position_y+5, -position_x,55 - 6])cylinder(h=z_smooth_rod_length,r=4);
+}
+
+z_leadscrew();
+mirror([1,0,0])z_leadscrew();
// X ends
-translate([-board_w/2+4,-26,200])
+translate([-board_w/2+4+zaxis_delta_y,-(board_to_xz_distance+zaxis_delta_x),200])
rotate([0,0,90])
rotate([0,180,0])
x_end_motor();
-translate([board_w/2-4,-26,200])
+translate([board_w/2-4-zaxis_delta_y,-(board_to_xz_distance+zaxis_delta_x),200])
rotate(90)
rotate([0,180,0])
x_end_idler();
// X rods
+// fixme: looks off a bit, also relies on value of pushfit_d
for(i=[0:1])
color("MediumBlue")
-translate([0,-12,149+i*45])rotate([0,90,0])cylinder(h=300,r=4,center=true);
+translate([0,-board_to_xz_distance + 15 - zaxis_delta_x,200 - x_box_height+bushing_xy[0]+i*xaxis_rod_distance+3+1+0.1])rotate([0,90,0])cylinder(h=x_smooth_rod_length,r=bushing_xy[0],center=true);
+
+
// X carriage
-translate([0,-12,149])
+translate([0,-board_to_xz_distance + 15 - zaxis_delta_x,200 - x_box_height+bushing_xy[0]+3+1+0.1])
rotate([0,90,0])
-x_carriage();
\ No newline at end of file
+x_carriage();