exploded drawing might be useful. disabled by default
parent
aa583aeb26
commit
539078ef33
|
@ -52,40 +52,43 @@ Y_Spindle_Bit_Offset = 0;
|
|||
// Display steppers, bearings, washers, nuts
|
||||
Display_Extra_Parts = true;
|
||||
|
||||
//To enable exploded drawing view
|
||||
Exploded_Drawing = false;
|
||||
|
||||
X_rod_sep_real = X_smooth_rods_sep_projected+smooth_rod_margin;
|
||||
|
||||
module frame_right(with_extra_parts = false) {
|
||||
module frame_right(with_extra_parts = false, exploded=false) {
|
||||
if(with_extra_parts)
|
||||
rotate([0,0,90]) scale([-1,1,1]) translate([-85,-23,135]) rotate([-90,0,0]) frame(with_motor = 0, with_extra_parts=with_extra_parts);
|
||||
rotate([0,0,90]) scale([-1,1,1]) translate([-85,-23,135]) rotate([-90,0,0]) frame(with_motor = 0, with_extra_parts=with_extra_parts, exploded=exploded);
|
||||
else
|
||||
color([1,0.8,0]) rotate([0,0,90]) scale([-1,1,1]) translate([-85,-23,135]) rotate([-90,0,0]) frame(with_motor = 0, with_extra_parts=with_extra_parts);
|
||||
color([1,0.8,0]) rotate([0,0,90]) scale([-1,1,1]) translate([-85,-23,135]) rotate([-90,0,0]) frame(with_motor = 0, with_extra_parts=with_extra_parts, exploded=exploded);
|
||||
}
|
||||
|
||||
module frame_left(with_extra_parts = false) {
|
||||
module frame_left(with_extra_parts = false, exploded=false) {
|
||||
if(with_extra_parts)
|
||||
rotate([0,0,90]) scale([-1,-1,1]) translate([-85,-23,135]) rotate([-90,0,0]) frame(with_motor = 1, with_extra_parts=with_extra_parts);
|
||||
rotate([0,0,90]) scale([-1,-1,1]) translate([-85,-23,135]) rotate([-90,0,0]) frame(with_motor = 1, with_extra_parts=with_extra_parts, exploded=exploded);
|
||||
else
|
||||
color([1,1,0]) rotate([0,0,90]) scale([-1,-1,1]) translate([-85,-23,135]) rotate([-90,0,0]) frame(with_motor = 1, with_extra_parts=with_extra_parts);
|
||||
color([1,1,0]) rotate([0,0,90]) scale([-1,-1,1]) translate([-85,-23,135]) rotate([-90,0,0]) frame(with_motor = 1, with_extra_parts=with_extra_parts, exploded=exploded);
|
||||
}
|
||||
|
||||
module Y_rod_idler_left(with_extra_parts = false) {
|
||||
module Y_rod_idler_left(with_extra_parts = false, exploded=false) {
|
||||
if(with_extra_parts)
|
||||
rotate([0,0,90]) scale([1,-1,1]) translate([-26,-17,39]) rotate([-90,0,0]) Y_rod_idler(with_extra_parts=with_extra_parts);
|
||||
rotate([0,0,90]) scale([1,-1,1]) translate([-26,-17,39]) rotate([-90,0,0]) Y_rod_idler(with_extra_parts=with_extra_parts, exploded=exploded);
|
||||
else
|
||||
color([0.8,1,1]) rotate([0,0,90]) scale([1,-1,1]) translate([-26,-17,39]) rotate([-90,0,0]) Y_rod_idler(with_extra_parts=with_extra_parts);
|
||||
color([0.8,1,1]) rotate([0,0,90]) scale([1,-1,1]) translate([-26,-17,39]) rotate([-90,0,0]) Y_rod_idler(with_extra_parts=with_extra_parts, exploded=exploded);
|
||||
}
|
||||
|
||||
module Y_rod_idler_right(with_extra_parts = false) {
|
||||
module Y_rod_idler_right(with_extra_parts = false, exploded=false) {
|
||||
if(with_extra_parts)
|
||||
rotate([0,0,90]) translate([-26,-17,39]) rotate([-90,0,0]) Y_rod_idler(with_extra_parts=with_extra_parts);
|
||||
rotate([0,0,90]) translate([-26,-17,39]) rotate([-90,0,0]) Y_rod_idler(with_extra_parts=with_extra_parts, exploded=exploded);
|
||||
else
|
||||
color([1,1,1]) rotate([0,0,90]) translate([-26,-17,39]) rotate([-90,0,0]) Y_rod_idler(with_extra_parts=with_extra_parts);
|
||||
color([1,1,1]) rotate([0,0,90]) translate([-26,-17,39]) rotate([-90,0,0]) Y_rod_idler(with_extra_parts=with_extra_parts, exploded=exploded);
|
||||
}
|
||||
|
||||
module Y_motor_stand() {
|
||||
rotate([0,90,0]) translate([-45,0,52.4]) rotate([-90,0,0]) {
|
||||
if(Display_Extra_Parts)
|
||||
motor_stand(with_extra_parts=Display_Extra_Parts);
|
||||
motor_stand(with_extra_parts=Display_Extra_Parts, exploded=Exploded_Drawing);
|
||||
else
|
||||
color([0,1,1]) motor_stand();
|
||||
}
|
||||
|
@ -94,7 +97,7 @@ module Y_motor_stand() {
|
|||
module Y_idle_stand() {
|
||||
rotate([0,90,180]) translate([-45,0,52.4]) rotate([-90,0,0])
|
||||
if(Display_Extra_Parts)
|
||||
idle_stand(with_extra_parts=Display_Extra_Parts);
|
||||
idle_stand(with_extra_parts=Display_Extra_Parts, exploded=Exploded_Drawing);
|
||||
else
|
||||
color([0,1,0.8]) idle_stand();
|
||||
}
|
||||
|
@ -164,15 +167,15 @@ module cnc(show_printbed = 1) {
|
|||
}
|
||||
|
||||
// ---- main frames ----
|
||||
frame_left(with_extra_parts=Display_Extra_Parts);
|
||||
frame_left(with_extra_parts=Display_Extra_Parts, exploded=Exploded_Drawing);
|
||||
translate([X_axis_sep,0,0])
|
||||
frame_right(with_extra_parts=Display_Extra_Parts);
|
||||
frame_right(with_extra_parts=Display_Extra_Parts, exploded=Exploded_Drawing);
|
||||
|
||||
// ---- Y rod idlers ----
|
||||
translate([0,Y_axis_sep,0]) {
|
||||
Y_rod_idler_left(with_extra_parts=Display_Extra_Parts);
|
||||
Y_rod_idler_left(with_extra_parts=Display_Extra_Parts, exploded=Exploded_Drawing);
|
||||
translate([X_axis_sep,0,0])
|
||||
Y_rod_idler_right(with_extra_parts=Display_Extra_Parts);
|
||||
Y_rod_idler_right(with_extra_parts=Display_Extra_Parts, exploded=Exploded_Drawing);
|
||||
}
|
||||
|
||||
// ---- Y threaded rod motor and idler ----
|
||||
|
|
|
@ -82,7 +82,7 @@ module herringbone_gear( teeth=12, circles=0, shaft=5 ) {
|
|||
);
|
||||
}
|
||||
|
||||
module cyclone_motor_gear(with_extra_parts=false) {
|
||||
module cyclone_motor_gear(with_extra_parts=false, exploded=false) {
|
||||
// Motor gear
|
||||
union() difference() {
|
||||
union() {
|
||||
|
@ -120,10 +120,18 @@ union() difference() {
|
|||
translate( [0, 0, -6] ) cylinder( r=motor_shaft_diameter/2, h=20, $fn=30 );
|
||||
}
|
||||
|
||||
// --- M3 x 8mm grub screw to attach Gear to motor shaft ---
|
||||
if(with_extra_parts)
|
||||
translate([0,2.5+8,12-3.5]) rotate([90, 0, 0]) color(Steel) cylinder(r=1.5, h=8, $fn=30);
|
||||
|
||||
if(with_extra_parts) {
|
||||
if(exploded)
|
||||
cyclone_motor_gear_extras(exploded_distance=20);
|
||||
else
|
||||
cyclone_motor_gear_extras(exploded_distance=0);
|
||||
}
|
||||
}
|
||||
|
||||
module cyclone_motor_gear_extras(exploded_distance=0) {
|
||||
// --- M3 x 8mm grub screw to attach Gear to motor shaft ---
|
||||
translate([0,2.5+8+exploded_distance,12-3.5]) rotate([90, 0, 0]) color(Steel) cylinder(r=1.5, h=8, $fn=30);
|
||||
}
|
||||
|
||||
cyclone_motor_gear();
|
||||
|
|
|
@ -10,7 +10,6 @@ use <../libs/build_plate.scad>
|
|||
use <../smooth_rod_fix/smooth_rod_fix.scad>
|
||||
|
||||
|
||||
module Y_rod_idler(show_printbed = 0, with_extra_parts=false) {
|
||||
|
||||
motor_stand_thickness = 5;
|
||||
|
||||
|
@ -36,6 +35,8 @@ frame_width = 30;
|
|||
frame_height = Y_rod_height-smooth_rod_margin;
|
||||
wall_thickness = 5;
|
||||
|
||||
module Y_rod_idler(show_printbed = 0, with_extra_parts=false, exploded=false) {
|
||||
|
||||
if(show_printbed) {
|
||||
//for display only, doesn't contribute to final object
|
||||
translate([frame_width/2,frame_height/2,0]) build_plate(3,110,140);
|
||||
|
@ -95,24 +96,29 @@ translate([frame_width-frame_thickness,frame_height,frame_thickness-2])
|
|||
} // End of union() command
|
||||
|
||||
if(with_extra_parts) {
|
||||
// --- Self tapping screw 2.9 x 16mm ---
|
||||
rotate([90,0,0]) translate([frame_width/3,Y_rod_support_lenght/2.5,-frame_height+bottom_thickness+.2])
|
||||
rotate([180,0,0]) color(Steel) {
|
||||
translate([-5,0,0])
|
||||
csk_bolt(2.9, 16);
|
||||
translate([5,0,0])
|
||||
csk_bolt(2.9, 16);
|
||||
}
|
||||
|
||||
// --- Y smooth rod fix ---
|
||||
translate([frame_width-frame_thickness,frame_height,frame_thickness-2])
|
||||
translate([0,-Y_rod_height+smooth_rod_margin,0])
|
||||
translate([0,-smooth_rod_margin-8.5,Y_rod_dist_from_wall]) rotate([270,90,0])
|
||||
smooth_rod_fix(with_extra_parts=true);
|
||||
if(exploded)
|
||||
Y_rod_idler_extras(with_extra_parts=with_extra_parts, exploded_distance=20);
|
||||
else
|
||||
Y_rod_idler_extras(with_extra_parts=with_extra_parts, exploded_distance=0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module Y_rod_idler_extras(exploded_distance=0) {
|
||||
// --- Self tapping screw 2.9 x 16mm ---
|
||||
rotate([90,0,0]) translate([frame_width/3,Y_rod_support_lenght/2.5,-frame_height+bottom_thickness+.2+exploded_distance])
|
||||
rotate([180,0,0]) color(Steel) {
|
||||
translate([-5,0,0])
|
||||
csk_bolt(2.9, 16);
|
||||
translate([5,0,0])
|
||||
csk_bolt(2.9, 16);
|
||||
}
|
||||
|
||||
// --- Y smooth rod fix ---
|
||||
translate([frame_width-frame_thickness,frame_height,frame_thickness-2])
|
||||
translate([0,-Y_rod_height+smooth_rod_margin,0])
|
||||
translate([0,-smooth_rod_margin-8.5-exploded_distance,Y_rod_dist_from_wall]) rotate([270,90,0])
|
||||
smooth_rod_fix(with_extra_parts=true,exploded = (exploded_distance!=0));
|
||||
}
|
||||
|
||||
Y_rod_idler(show_printbed = 1);
|
||||
//scale([-1,1,1]) Y_rod_idler(show_printbed = 1);
|
||||
|
|
|
@ -104,39 +104,63 @@ module motorHolesY() {
|
|||
}
|
||||
}
|
||||
|
||||
module motor_stand_no_base(with_motor=true, with_extra_parts=false) {
|
||||
module motor_stand_no_base_extras(with_motor=false, exploded_distance=0) {
|
||||
// --- additional parts for assembly instruction ---
|
||||
if(with_motor && with_extra_parts) {
|
||||
if(with_motor) {
|
||||
translate([motor_width/2,motor_width/2,0]) {
|
||||
// --- Nema 17 Stepper ---
|
||||
rotate([0,180,0])
|
||||
translate([0,0,-1])
|
||||
translate([0,0,-1+exploded_distance])
|
||||
motor(Cyclone_Nema17, NemaLengthLong);
|
||||
// --- Motor Gear ---
|
||||
translate([0,0,12+5.5]) {
|
||||
rotate([180, 0, -90]) cyclone_motor_gear(with_extra_parts);
|
||||
translate([0,0,12+5.5+exploded_distance]) {
|
||||
rotate([180, 0, -90]) cyclone_motor_gear(with_extra_parts=true, exploded=(exploded_distance!=0));
|
||||
}
|
||||
}
|
||||
|
||||
translate([motor_width/2,motor_width/2,wall_thickness/2]) {
|
||||
rotate([0,0,15]) translate([0,axis_distance,2.5-wall_thickness/2]) {
|
||||
// --- Bearing ---
|
||||
bearing(model=608);
|
||||
translate([0,0,0.5*exploded_distance]) bearing(model=608);
|
||||
// --- M8 Nut ---
|
||||
translate([0,0,7]) color(Steel) flat_nut(8);
|
||||
translate([0,0,7+1.0*exploded_distance]) color(Steel) flat_nut(8);
|
||||
// --- Rod Gear ---
|
||||
translate([0,0,1.5-wall_thickness/2+5+2.5+7+3]) rotate([0,180,15]) cyclone_rod_gear();
|
||||
translate([0,0,1.5-wall_thickness/2+5+2.5+7+3+1.5*exploded_distance]) rotate([0,180,15]) cyclone_rod_gear();
|
||||
// --- M8 Nut ---
|
||||
translate([0,0,1.5-wall_thickness/2+5+2.5+7+3+1.5++10]) rotate([0,180,0]) color(Steel) flat_nut(8);
|
||||
translate([0,0,1.5-wall_thickness/2+5+2.5+7+3+1.5+10+2*exploded_distance]) rotate([0,180,0]) color(Steel) flat_nut(8);
|
||||
}
|
||||
}
|
||||
|
||||
// --- M3 x 6mm bolts for holding the motor ---
|
||||
for(i=[-1,1]) for(j=[-1,1])
|
||||
translate([motor_width/2,motor_width/2,wall_thickness/2])
|
||||
translate([i*motor_screw_distance/2,j*motor_screw_distance/2,2.5-wall_thickness/2]) {
|
||||
translate([i*motor_screw_distance/2,j*motor_screw_distance/2,2.5-wall_thickness/2+exploded_distance*0.7]) {
|
||||
rotate([0,180,0]) color(Steel) boltHole(size=3, length=6);
|
||||
}
|
||||
}
|
||||
|
||||
if(!with_motor) {
|
||||
translate([motor_width/2,motor_width/2,wall_thickness/2])
|
||||
rotate([0,0,15]) translate([0,axis_distance,2.5-wall_thickness/2]) color(Steel) {
|
||||
// --- 608 bearing ---
|
||||
translate([0,0,0.5*exploded_distance]) bearing(model=608);
|
||||
// --- M8 washer ---
|
||||
translate([0,0,7+1.0*exploded_distance]) washer(8);
|
||||
// --- M8 nut ---
|
||||
translate([0,0,6.4+7+0.8+1.5*exploded_distance]) rotate([0,180,0]) flat_nut(8);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module motor_stand_no_base(with_motor=true, with_extra_parts=false, exploded=false) {
|
||||
|
||||
if(with_extra_parts) {
|
||||
if(exploded)
|
||||
motor_stand_no_base_extras(with_motor=with_motor, exploded_distance=30);
|
||||
else
|
||||
motor_stand_no_base_extras(with_motor=with_motor, exploded_distance=0);
|
||||
}
|
||||
|
||||
difference() {
|
||||
translate([wall_height/2,totalWallWidth/2-wall_extraWidth_left,wall_thickness/2])
|
||||
bcube([wall_height,totalWallWidth,wall_thickness],cr=4,cres=10);
|
||||
|
@ -151,28 +175,24 @@ difference() {
|
|||
rotate([0,0,15]) translate([0,axis_distance,2.5-wall_thickness/2]) {
|
||||
cylinder(r=(M8_rod_diameter*2)/2,h=10*wall_thickness,center=true,$fn=40);
|
||||
cylinder(r=bearing_diameter/2,h=10*wall_thickness,center=false,$fn=60);
|
||||
if(!with_motor && with_extra_parts) {
|
||||
translate([0,0,7]) bearing(model=608);
|
||||
}
|
||||
}
|
||||
|
||||
} // End of translate relative to motor shaft
|
||||
} // End of difference
|
||||
}
|
||||
|
||||
translate([motor_width/2,motor_width/2,wall_thickness/2])
|
||||
rotate([0,0,15]) translate([0,axis_distance,2.5-wall_thickness/2]) color(Steel) {
|
||||
if(!with_motor && with_extra_parts) {
|
||||
// --- 608 bearing ---
|
||||
bearing(model=608);
|
||||
// --- M8 washer ---
|
||||
translate([0,0,7]) washer(8);
|
||||
// --- M8 nut ---
|
||||
translate([0,0,6.4+7+0.8]) rotate([0,180,0]) flat_nut(8);
|
||||
}
|
||||
module holder_extras(exploded_distance=0) {
|
||||
// --- Self tapping screw 2.9 x 16mm ---
|
||||
translate([wall_height,base_width/2+2.5,base_length/1.5]) color(Steel)
|
||||
rotate([0,90,0]) {
|
||||
translate([-5,0,-bottom_thickness-.2-exploded_distance])
|
||||
csk_bolt(2.9, 16);
|
||||
translate([5,0,-bottom_thickness-.2-exploded_distance])
|
||||
csk_bolt(2.9, 16);
|
||||
}
|
||||
}
|
||||
|
||||
module holder(h=35,noScrews=false,base_width_inc=0, with_extra_parts=false) {
|
||||
module holder(h=35,noScrews=false,base_width_inc=0, with_extra_parts=false, exploded=false) {
|
||||
difference() {
|
||||
union() {
|
||||
translate([wall_height-bottom_thickness,0]) {
|
||||
|
@ -194,24 +214,20 @@ module holder(h=35,noScrews=false,base_width_inc=0, with_extra_parts=false) {
|
|||
}
|
||||
} // End of difference
|
||||
|
||||
// --- Self tapping screw 2.9 x 16mm ---
|
||||
if(with_extra_parts) {
|
||||
translate([wall_height,base_width/2+2.5,base_length/1.5]) color(Steel)
|
||||
rotate([0,90,0]) {
|
||||
translate([-5,0,-bottom_thickness-.2])
|
||||
csk_bolt(2.9, 16);
|
||||
translate([5,0,-bottom_thickness-.2])
|
||||
csk_bolt(2.9, 16);
|
||||
}
|
||||
}
|
||||
if(with_extra_parts) {
|
||||
if(exploded)
|
||||
holder_extras(17);
|
||||
else
|
||||
holder_extras(0);
|
||||
}
|
||||
}
|
||||
|
||||
module motor_stand(with_motor=true, with_extra_parts=false) {
|
||||
module motor_stand(with_motor=true, with_extra_parts=false, exploded=false) {
|
||||
union() {
|
||||
motor_stand_no_base(with_motor=with_motor, with_extra_parts=with_extra_parts);
|
||||
translate([0,wall_width]) holder(noScrews=true, with_extra_parts=false);
|
||||
translate([0,52.4-5/2]) holder(h=12,base_width_inc=1, with_extra_parts=with_extra_parts);
|
||||
translate([0,-wall_extraWidth_left+base_width]) scale([1,-1,1]) holder(with_extra_parts=with_extra_parts);
|
||||
motor_stand_no_base(with_motor=with_motor, with_extra_parts=with_extra_parts, exploded=exploded);
|
||||
translate([0,wall_width]) holder(noScrews=true, with_extra_parts=false, exploded=exploded);
|
||||
translate([0,52.4-5/2]) holder(h=12,base_width_inc=1, with_extra_parts=with_extra_parts, exploded=exploded);
|
||||
translate([0,-wall_extraWidth_left+base_width]) scale([1,-1,1]) holder(with_extra_parts=with_extra_parts, exploded=exploded);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -219,7 +235,7 @@ module motor_stand(with_motor=true, with_extra_parts=false) {
|
|||
module idle_stand(with_extra_parts=false) {
|
||||
union() {
|
||||
intersection() { // Remove the motor part
|
||||
motor_stand(with_motor=false, with_extra_parts=with_extra_parts);
|
||||
motor_stand(with_motor=false, with_extra_parts=with_extra_parts, exploded=exploded);
|
||||
union() {
|
||||
translate([wall_height/2,wall_width/2+52.4-(wall_width+wall_extraWidth_right-52.4),wall_thickness/2])
|
||||
bcube([wall_height,wall_width,100],cr=4,cres=10);
|
||||
|
@ -227,8 +243,8 @@ module idle_stand(with_extra_parts=false) {
|
|||
bcube([wall_height*2,wall_width/6,100],cr=4,cres=10); //keep self tapping screw
|
||||
}
|
||||
}
|
||||
translate([0,wall_width+5-2*(wall_width+wall_extraWidth_right-52.4)]) holder(noScrews=true, with_extra_parts=with_extra_parts);
|
||||
translate([0,52.4+5/2]) scale([1,-1,1]) holder(h=15,base_width_inc=1, with_extra_parts=with_extra_parts);
|
||||
translate([0,wall_width+5-2*(wall_width+wall_extraWidth_right-52.4)]) holder(noScrews=true, with_extra_parts=with_extra_parts, exploded=exploded);
|
||||
translate([0,52.4+5/2]) scale([1,-1,1]) holder(h=15,base_width_inc=1, with_extra_parts=with_extra_parts, exploded=exploded);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -13,7 +13,6 @@ use <../libs/obiscad/bevel.scad>
|
|||
use <../libs/build_plate.scad>
|
||||
use <../smooth_rod_fix/smooth_rod_fix.scad>
|
||||
|
||||
module frame(with_motor = 1, show_printbed = 0, with_extra_parts = false) {
|
||||
|
||||
layer_thickness = 0.4;
|
||||
|
||||
|
@ -86,6 +85,7 @@ Cyclone_Nema17 = [
|
|||
[NemaAxleFlatLengthBack, 14*mm]
|
||||
];
|
||||
|
||||
module frame(with_motor = 1, show_printbed = 0, with_extra_parts=false, exploded=false) {
|
||||
|
||||
if(show_printbed) {
|
||||
//for display only, doesn't contribute to final object
|
||||
|
@ -201,51 +201,6 @@ difference() {
|
|||
|
||||
} // End of difference() command
|
||||
|
||||
if(with_motor && with_extra_parts) {
|
||||
translate([X_threaded_rod_posX,X_threaded_rod_posY,0]) {
|
||||
rotate([0,0,-motor_axis_angle]) translate([motor_axis_distance,0,0]) rotate([0,0,90+motor_axis_angle]) {
|
||||
translate([0,0,wall_thickness-1]) {
|
||||
// --- Stepper ---
|
||||
motor(Cyclone_Nema17, NemaLengthLong);
|
||||
// --- Motor gear ---
|
||||
translate([0,0,-12-5.5+1])
|
||||
cyclone_motor_gear(with_extra_parts);
|
||||
}
|
||||
// --- M3 x 8 mm bolts for holding the motor ---
|
||||
for(i=[-1,1]) for(j=[-1,1])
|
||||
translate([i*motor_screw_distance/2,j*motor_screw_distance/2,0])
|
||||
translate([0,0,0]) {
|
||||
rotate([0,0,0]) color(Steel) boltHole(size=3, length=8);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(with_extra_parts) {
|
||||
// --- Self tapping screw 2.9 x 16mm ---
|
||||
rotate([90,0,0]) translate([frame_width/2,frame_thickness/2,-frame_height+frame_thickness/2+.2]) color(Steel) {
|
||||
translate([-base_screw_distance,0,0]) rotate([180,0,0])
|
||||
csk_bolt(2.9, 16);
|
||||
translate([base_screw_distance*0.8,0,0]) rotate([180,0,0])
|
||||
csk_bolt(2.9, 16);
|
||||
translate([base_screw_distance*0.2,0,0]) rotate([180,0,0])
|
||||
csk_bolt(2.9, 16);
|
||||
}
|
||||
|
||||
// --- X smooth rod fix ---
|
||||
translate([X_smooth_rods_sep_projected,-smooth_rod_margin,0])
|
||||
rotate([90,0,0]) translate([0,frame_thickness/2,8.5])
|
||||
rotate([180,0,0]) smooth_rod_fix(with_extra_parts=true);
|
||||
translate([-smooth_rod_margin,X_smooth_rods_sep_projected,0])
|
||||
rotate([0,90,0]) translate([-frame_thickness/2,0,-8.5])
|
||||
rotate([0,0,90]) smooth_rod_fix(with_extra_parts=true);
|
||||
// --- Y smooth rod fix ---
|
||||
translate([frame_width-frame_thickness/2,frame_height,frame_thickness-2])
|
||||
translate([0,-Y_rod_height+smooth_rod_margin,0]) {
|
||||
translate([0,-smooth_rod_margin-8.5,Y_rod_dist_from_wall]) rotate([90,90,180])
|
||||
smooth_rod_fix(with_extra_parts=true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// --------- Support column for the triangular structure --------- //
|
||||
translate([frame_width/4,frame_height-frame_hole_height/2-bottom_thickness,frame_thickness/2])
|
||||
|
@ -286,9 +241,60 @@ translate([frame_width-frame_thickness/2,frame_height,frame_thickness-2])
|
|||
}
|
||||
}
|
||||
|
||||
if(with_extra_parts) {
|
||||
if(exploded)
|
||||
frame_extras(with_motor=with_motor, exploded_distance=30);
|
||||
else
|
||||
frame_extras(with_motor=with_motor, exploded_distance=0);
|
||||
}
|
||||
|
||||
} // End of union() command
|
||||
|
||||
}
|
||||
|
||||
module frame_extras(with_motor=1, exploded_distance=0) {
|
||||
if(with_motor) {
|
||||
translate([X_threaded_rod_posX,X_threaded_rod_posY,0]) {
|
||||
rotate([0,0,-motor_axis_angle]) translate([motor_axis_distance,0,0]) rotate([0,0,90+motor_axis_angle]) {
|
||||
translate([0,0,wall_thickness-1]) {
|
||||
// --- Stepper ---
|
||||
translate([0,0,exploded_distance]) motor(Cyclone_Nema17, NemaLengthLong);
|
||||
// --- Motor gear ---
|
||||
translate([0,0,-12-5.5+1-0.5*exploded_distance])
|
||||
cyclone_motor_gear(with_extra_parts=true, exploded=(exploded_distance!=0));
|
||||
}
|
||||
// --- M3 x 8 mm bolts for holding the motor ---
|
||||
for(i=[-1,1]) for(j=[-1,1])
|
||||
translate([i*motor_screw_distance/2,j*motor_screw_distance/2,0])
|
||||
translate([0,0,-0.4*exploded_distance]) {
|
||||
rotate([0,0,0]) color(Steel) boltHole(size=3, length=8);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// --- Self tapping screw 2.9 x 16mm ---
|
||||
rotate([90,0,0]) translate([frame_width/2,frame_thickness/2,-frame_height+frame_thickness/2+.2+exploded_distance]) color(Steel) {
|
||||
translate([-base_screw_distance,0,0]) rotate([180,0,0])
|
||||
csk_bolt(2.9, 16);
|
||||
translate([base_screw_distance*0.8,0,0]) rotate([180,0,0])
|
||||
csk_bolt(2.9, 16);
|
||||
translate([base_screw_distance*0.2,0,0]) rotate([180,0,0])
|
||||
csk_bolt(2.9, 16);
|
||||
}
|
||||
|
||||
// --- X smooth rod fix ---
|
||||
translate([X_smooth_rods_sep_projected,-smooth_rod_margin,0])
|
||||
rotate([90,0,0]) translate([0,frame_thickness/2,8.5+0.5*exploded_distance])
|
||||
rotate([180,0,0]) smooth_rod_fix(with_extra_parts=true, exploded=(exploded_distance!=0));
|
||||
translate([-smooth_rod_margin,X_smooth_rods_sep_projected,0])
|
||||
rotate([0,90,0]) translate([-frame_thickness/2,0,-8.5-0.5*exploded_distance])
|
||||
rotate([0,0,90]) smooth_rod_fix(with_extra_parts=true, exploded=(exploded_distance!=0));
|
||||
// --- Y smooth rod fix ---
|
||||
translate([frame_width-frame_thickness/2,frame_height,frame_thickness-2])
|
||||
translate([0,-Y_rod_height+smooth_rod_margin,0])
|
||||
translate([0,-smooth_rod_margin-8.5-0.5*exploded_distance,Y_rod_dist_from_wall]) rotate([90,90,180])
|
||||
smooth_rod_fix(with_extra_parts=true, exploded=(exploded_distance!=0));
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ part_z = 8;
|
|||
//for display only, doesn't contribute to final object
|
||||
translate([frame_width/2,frame_height/2,0]) build_plate(3,110,140);
|
||||
|
||||
module smooth_rod_fix(with_extra_parts=false) {
|
||||
module smooth_rod_fix(with_extra_parts=false, exploded=false) {
|
||||
translate([0,0,part_z/2]) difference() {
|
||||
// --------- Main frame --------- //
|
||||
bcube([part_x,part_y,part_z],center=true,cr=2,cres=10);
|
||||
|
@ -44,17 +44,23 @@ translate([0,0,part_z/2]) difference() {
|
|||
} // End of difference() command
|
||||
|
||||
if(with_extra_parts) {
|
||||
// --- Self tapping screw 2.9 x 16 mm ---
|
||||
color(Steel) {
|
||||
translate([0,0,-.2]) {
|
||||
translate([-smooth_rod_screw_sep,0,0])
|
||||
csk_bolt(2.9, 16);
|
||||
translate([smooth_rod_screw_sep,0,0])
|
||||
csk_bolt(2.9, 16);
|
||||
}
|
||||
if(exploded)
|
||||
smooth_rod_fix_extras(exploded_distance=20);
|
||||
else
|
||||
smooth_rod_fix_extras(exploded_distance=0);
|
||||
}
|
||||
}
|
||||
|
||||
module smooth_rod_fix_extras(exploded_distance=0) {
|
||||
// --- Self tapping screw 2.9 x 16 mm ---
|
||||
color(Steel) {
|
||||
translate([0,0,-.2-exploded_distance]) {
|
||||
translate([-smooth_rod_screw_sep,0,0])
|
||||
csk_bolt(2.9, 16);
|
||||
translate([smooth_rod_screw_sep,0,0])
|
||||
csk_bolt(2.9, 16);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
smooth_rod_fix();
|
||||
|
|
Loading…
Reference in New Issue