diff --git a/Hardware/Development/Gears/motor_gear.scad b/Hardware/Development/Gears/motor_gear.scad index c959ee3..78c60b7 100644 --- a/Hardware/Development/Gears/motor_gear.scad +++ b/Hardware/Development/Gears/motor_gear.scad @@ -121,17 +121,16 @@ union() difference() { } - if(with_extra_parts) { - if(exploded) - cyclone_motor_gear_extras(exploded_distance=20); - else - cyclone_motor_gear_extras(exploded_distance=0); + if(with_extra_parts) + cyclone_motor_gear_extras(exploded_distance=(exploded?20:0)); + + module cyclone_motor_gear_extras(exploded_distance=0) { + echo("Non-Plastic Parts: 1 x Grub screw M3 x 8 mm 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); } } -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(); diff --git a/Hardware/Development/Gears/rod_gear.scad b/Hardware/Development/Gears/rod_gear.scad index 96f6ec1..c216241 100644 --- a/Hardware/Development/Gears/rod_gear.scad +++ b/Hardware/Development/Gears/rod_gear.scad @@ -30,6 +30,8 @@ * -- * DeuxVis - device@ymail.com */ +include +include include include @@ -77,7 +79,7 @@ module herringbone_gear( teeth=12, circles=0, shaft=5 ) { ); } -module cyclone_rod_gear() { +module cyclone_rod_gear(with_extra_parts=false, exploded=false) { // Extruder Gear difference() { union() { @@ -97,6 +99,16 @@ difference() { translate( [0, 0, (nut_separation/2)] ) cylinder( r=M8_nut_diameter/2, h=7, $fn=6 ); } + + if(with_extra_parts) + cyclone_rod_gear_extras(exploded_distance=(exploded?12:0)); + + module cyclone_rod_gear_extras(exploded_distance=0) { + echo("Non-Plastic Parts: 2 x M8 nuts to attach rod_gear on threaded rod"); + translate([0,0,-10/2-0.8*8-1.0*exploded_distance]) color(Steel) flat_nut(8); + translate([0,0,nut_separation/2+0.8*8+1.0*exploded_distance]) rotate([180,0,0]) color(Steel) flat_nut(8); + } + } cyclone_rod_gear(); diff --git a/Hardware/Development/XZ_axis/Z_carriage.scad b/Hardware/Development/XZ_axis/Z_carriage.scad index f467042..419716e 100644 --- a/Hardware/Development/XZ_axis/Z_carriage.scad +++ b/Hardware/Development/XZ_axis/Z_carriage.scad @@ -272,12 +272,12 @@ module Z_carriage(showSpindle=false,top_part=true, with_extra_parts=false, explo module Z_carriage_extras(top_part=true, exploded_distance=0) { if(top_part) { - echo("PART: 1 x Nema 17 for Z axis"); + echo("Non-Plastic Parts: 1 x Nema 17 for Z axis"); translate([-motor_width/2,0,1-exploded_distance]) rotate([0,180,0]) motor(Cyclone_Nema17, NemaLengthLong); - echo("PART: 4 x M3 x 6mm for Z motor"); + echo("Non-Plastic Parts: 4 x Bolt M3 x 6 mm for Z motor"); for(i=[-1,1]) for(j=[-1,1]) translate([-motor_width/2,0,0]) translate([i*motor_screw_distance/2,j*motor_screw_distance/2,2.5+exploded_distance*0.7]) { @@ -288,7 +288,7 @@ module Z_carriage_extras(top_part=true, exploded_distance=0) { rotate([0,0,-90]) cyclone_motor_z_gear(with_extra_parts=true, exploded=(exploded_distance!=0)); - echo("PART: 1 x 608 bearing for Z motor"); + echo("Non-Plastic Parts: 1 x 608 bearing for Z motor"); translate([0,0,wall_thickness/2]) bearing(model=608); @@ -296,11 +296,13 @@ module Z_carriage_extras(top_part=true, exploded_distance=0) { rotate([180,0,11]) cyclone_rod_z_gear(with_extra_parts=true, exploded=(exploded_distance!=0)); } + else + echo("Non-Plastic Parts: 1 x Spindle"); if(top_part) - echo("PART: 2 x LM8UU for Z_carriage top part"); + echo("Non-Plastic Parts: 2 x LM8UU for Z_carriage top part"); else - echo("PART: 2 x LM8UU for Z_carriage bottom part"); + echo("Non-Plastic Parts: 2 x LM8UU for Z_carriage bottom part"); rotate([0,0,-90]) translate([-wall_height/2,-Z_threaded_pos,0]) { translate([wall_height/2-Z_smooth_rods_sep/2,Z_threaded_pos,0]) @@ -312,12 +314,12 @@ module Z_carriage_extras(top_part=true, exploded_distance=0) { } if(top_part) { - echo("PART: 1 x M3 x 20 mm for Z_carriage part"); - echo("PART: 1 x M3 nut forZ_carriage top part"); + echo("Non-Plastic Parts: 1 x M3 x 20 mm for Z_carriage part"); + echo("Non-Plastic Parts: 1 x M3 nut for Z_carriage top part"); } else { - echo("PART: 1 x M3 x 20 mm for Z_carriage bottom part"); - echo("PART: 1 x M3 nut for Z_carriage bottom part"); + echo("Non-Plastic Parts: 1 x M3 x 20 mm for Z_carriage bottom part"); + echo("Non-Plastic Parts: 1 x M3 nut for Z_carriage bottom part"); } rotate([0,top_part ? 0:180,-90]) translate([-wall_height/2,0,0]) translate([wall_height/2,wall_width+(top_part?-1:-1.5),0]) { diff --git a/Hardware/Development/XZ_axis/motor_gear.scad b/Hardware/Development/XZ_axis/motor_gear.scad index fd4cb4b..88cc6ee 100644 --- a/Hardware/Development/XZ_axis/motor_gear.scad +++ b/Hardware/Development/XZ_axis/motor_gear.scad @@ -81,7 +81,7 @@ module herringbone_gear( teeth=12, circles=0, shaft=5 ) { ); } -module cyclone_motor_z_gear(with_extra_parts=false) { +module cyclone_motor_z_gear(with_extra_parts=false, exploded=false) { // Motor gear rotate([180,0,0]) union() difference() { union() { @@ -119,7 +119,7 @@ rotate([180,0,0]) union() difference() { cyclone_motor_z_gear_extras(exploded_distance = (exploded?24:0)); module cyclone_motor_z_gear_extras(exploded_distance=0) { - echo("PART: 1 x M3 x 8 mm grub screw to attach Z motor gear to motor shaft"); + echo("Non-Plastic Parts: 1 x Grub screw M3 x 8 mm to attach Z motor gear to motor shaft"); translate([0,-2.5-exploded_distance,-(12-3.5)]) rotate([90, 0, 0]) color(Steel) cylinder(r=1.5, h=8, $fn=30); } } diff --git a/Hardware/Development/XZ_axis/rod_gear.scad b/Hardware/Development/XZ_axis/rod_gear.scad index 3f3c71b..cbf6c60 100644 --- a/Hardware/Development/XZ_axis/rod_gear.scad +++ b/Hardware/Development/XZ_axis/rod_gear.scad @@ -100,10 +100,10 @@ difference() { } if(with_extra_parts) - cyclone_rod_z_gear(exploded_distance = (exploded ?8:0)); + cyclone_rod_z_gear_extras(exploded_distance = (exploded ?8:0)); - module cyclone_rod_z_gear(exploded_distance=false) { - echo("PART: 2 x M8 nut for Z rod gear"); + module cyclone_rod_z_gear_extras(exploded_distance=false) { + echo("Non-Plastic Parts: 2 x M8 nut for rod_gear"); translate([0,0,0.8*8+nut_separation/2+exploded_distance]) rotate([180,0,0]) color(Steel) flat_nut(8); translate([0,0,-0.8*8-10/2-exploded_distance]) rotate([0,0,0]) color(Steel) flat_nut(8); } diff --git a/Hardware/Development/Y_axis/Y_rod_idler.scad b/Hardware/Development/Y_axis/Y_rod_idler.scad index e38e890..d19417e 100644 --- a/Hardware/Development/Y_axis/Y_rod_idler.scad +++ b/Hardware/Development/Y_axis/Y_rod_idler.scad @@ -95,30 +95,29 @@ translate([frame_width-frame_thickness,frame_height,frame_thickness-2]) } // End of union() command - if(with_extra_parts) { - 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); + if(with_extra_parts) + Y_rod_idler_extras(exploded_distance=(exploded?20:0)); + + module Y_rod_idler_extras(exploded_distance=0) { + screw_size = 2.9; + screw_length = 16; + echo("Non-Plastic Parts: 2 x Self tapping screw 2.9 x 16 mm for Y_rod_idler"); + 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(screw_size, screw_length); + translate([5,0,0]) + csk_bolt(screw_size, screw_length); + } + + // --- 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)); } } -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); diff --git a/Hardware/Development/Y_axis/linear_bearing_holder.scad b/Hardware/Development/Y_axis/linear_bearing_holder.scad index 6e1f8fb..0112478 100644 --- a/Hardware/Development/Y_axis/linear_bearing_holder.scad +++ b/Hardware/Development/Y_axis/linear_bearing_holder.scad @@ -84,24 +84,25 @@ module lm8uu_bearing_holder(with_extra_parts=false, exploded=false) { //cube([plate_width+3,plate_width+3,100],center=true); cylinder(r=(plate_width+10)/2,h=100,center=true,$fn=8); } - if(with_extra_parts) { - if(exploded) - lm8uu_bearing_holder_extras(exploded_distance=1.3*linearBearing_L("LM8UU")); - else - lm8uu_bearing_holder_extras(exploded_distance=0); + if(with_extra_parts) + lm8uu_bearing_holder_extras(exploded_distance=(exploded?1.3*linearBearing_L("LM8UU"):0)); + + module lm8uu_bearing_holder_extras(exploded_distance=0) { + echo("Non-Plastic Parts: 1 x LM8UU linear ball bearing for lm8uu_bearing_holder"); + rotate([90,0,90]) translate([0,0,LM8UU_dia/2+2]) rotate([90,0,0]) + translate([0,0,exploded_distance]) + linearBearing(pos=[0,0,-linearBearing_L("LM8UU")/2], model="LM8UU"); + + screw_size = 3.5; + screw_length = 13; + echo("Non-Plastic Parts: 1 x Self tapping screw 3.5 x 13 mm to attach lm8uu_bearing_holder on work bed"); + translate([plate_height-3+0.2+0.5*exploded_distance,screw_space_x/2,0]) rotate([0,-90,0]) + color(Steel) csk_bolt(screw_size, screw_length); } + } -module lm8uu_bearing_holder_extras(exploded_distance=0) { - echo("PART: 1 x LM8UU linear ball bearing for Y axis"); - rotate([90,0,90]) translate([0,0,LM8UU_dia/2+2]) rotate([90,0,0]) - translate([0,0,exploded_distance]) - linearBearing(pos=[0,0,-linearBearing_L("LM8UU")/2], model="LM8UU"); - echo("PART: 1 x Self tapping screw 3.5 x 13 mm"); - translate([plate_height-3+0.2+0.5*exploded_distance,screw_space_x/2,0]) rotate([0,-90,0]) - color(Steel) csk_bolt(3.5, 13); -} lm8uu_bearing_holder(); diff --git a/Hardware/Development/Y_axis/motor_stand.scad b/Hardware/Development/Y_axis/motor_stand.scad index 6dc68fa..6d0e931 100644 --- a/Hardware/Development/Y_axis/motor_stand.scad +++ b/Hardware/Development/Y_axis/motor_stand.scad @@ -108,30 +108,31 @@ module motor_stand_no_base_extras(with_motor=false, exploded_distance=0) { // --- additional parts for assembly instruction --- if(with_motor) { translate([motor_width/2,motor_width/2,0]) { - // --- Nema 17 Stepper --- rotate([0,180,0]) translate([0,0,-1+exploded_distance]) motor(Cyclone_Nema17, NemaLengthLong); + echo("Non-Plastic Parts: 1 x Nema 17 motor"); + // --- Motor Gear --- - translate([0,0,12+5.5+exploded_distance]) { - rotate([180, 0, -90]) cyclone_motor_gear(with_extra_parts=true, exploded=(exploded_distance!=0)); - } + 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 --- - translate([0,0,0.5*exploded_distance]) bearing(model=608); - // --- M8 Nut --- - translate([0,0,7+1.0*exploded_distance]) color(Steel) flat_nut(8); + echo("Non-Plastic Parts: 1 x 608 bearing for motor stand"); + translate([0,0,0.5*exploded_distance]) + bearing(model=608); + // --- 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+2*exploded_distance]) rotate([0,180,0]) color(Steel) flat_nut(8); + translate([0,0,1.5-wall_thickness/2+5+2.5+7+3+1.5*exploded_distance]) + rotate([0,180,15]) + cyclone_rod_gear(with_extra_parts=true, exploded=(exploded_distance!=0)); } } - // --- M3 x 6mm bolts for holding the motor --- + echo("Non-Plastic Parts: 4 x M3 x 6mm bolts to attach motor on motor_stand"); 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+exploded_distance*0.7]) { @@ -142,24 +143,22 @@ module motor_stand_no_base_extras(with_motor=false, exploded_distance=0) { 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); + echo("Non-Plastic Parts: 1 x 608 bearing for idle stand"); + translate([0,0,0.3*exploded_distance]) bearing(model=608); + + echo("Non-Plastic Parts: 1 x M8 washer for idle stand"); + translate([0,0,7+0.6*exploded_distance]) washer(8); + + echo("Non-Plastic Parts: 1 x M8 nut to attach threaded rod on idle stand"); + translate([0,0,6.4+7+0.8+0.9*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); - } + if(with_extra_parts) + motor_stand_no_base_extras(with_motor=with_motor, exploded_distance=(exploded?30:0)); difference() { translate([wall_height/2,totalWallWidth/2-wall_extraWidth_left,wall_thickness/2]) @@ -181,17 +180,6 @@ difference() { } // End of difference } -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, exploded=false) { difference() { union() { @@ -213,13 +201,6 @@ module holder(h=35,noScrews=false,base_width_inc=0, with_extra_parts=false, expl cylinder(r=base_screw_diameter/2,h=100,center=true,$fn=7); } } // End of difference - - if(with_extra_parts) { - if(exploded) - holder_extras(17); - else - holder_extras(0); - } } module motor_stand(with_motor=true, with_extra_parts=false, exploded=false) { @@ -229,10 +210,16 @@ module motor_stand(with_motor=true, with_extra_parts=false, exploded=false) { 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); } + if(with_extra_parts && with_motor) { + translate([0,52.4-5/2]) + idle_stand_extras(exploded_distance=(exploded?17:0)); + translate([0,-wall_extraWidth_left+base_width]) scale([1,-1,1]) + idle_stand_extras(exploded_distance=(exploded?17:0)); + } } -module idle_stand(with_extra_parts=false) { +module idle_stand(with_extra_parts=false, exploded=false) { union() { intersection() { // Remove the motor part motor_stand(with_motor=false, with_extra_parts=with_extra_parts, exploded=exploded); @@ -246,6 +233,26 @@ module idle_stand(with_extra_parts=false) { 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); } + + if(with_extra_parts) { + translate([0,wall_width+5-2*(wall_width+wall_extraWidth_right-52.4)]) + idle_stand_extras(exploded_distance=(exploded?17:0)); + translate([0,52.4-5/2, 0]) + idle_stand_extras(exploded_distance=(exploded?17:0)); + } +} + +module idle_stand_extras(exploded_distance=0) { + screw_size = 2.9; + screw_length = 16; + echo("Non-Plastic Parts: 2 x Self tapping screw 2.9 x 16 mm for motor_stand"); + 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(screw_size, screw_length); + translate([5,0,-bottom_thickness-.2-exploded_distance]) + csk_bolt(screw_size, screw_length); + } } //for display only, doesn't contribute to final object diff --git a/Hardware/Development/libs/End_Stop_Holder.scad b/Hardware/Development/libs/End_Stop_Holder.scad index 7d4a393..08dd045 100644 --- a/Hardware/Development/libs/End_Stop_Holder.scad +++ b/Hardware/Development/libs/End_Stop_Holder.scad @@ -30,34 +30,32 @@ difference() { } if(with_extra_parts) { - if(exploded) - end_stop_holder_extras(exploded_distance=8); - else - end_stop_holder_extras(exploded_distance=0); - } -} - -module end_stop_holder_extras(exploded_distance=0) { - echo("PART: 6 x M3 washer"); - for(i = [0:2] ) { - translate([4+i*0.3+(i+1)*0.2*exploded_distance, 28, 5]) rotate([0, 90, 0]) color(Steel) washer(3); - translate([4+i*0.3+(i+1)*0.2*exploded_distance, 38, 5]) rotate([0, 90, 0]) color(Steel) washer(3); + end_stop_holder_extras(exploded_distance=(exploded?8:0)); } - echo("PART: 1 x Micro switch"); - translate([4+3*0.3+exploded_distance, 28-5.15+(10-9.5)/2, 5-2]) - rotate([90,0,90]) - micro_switch(with_extra_parts=true, exploded=(exploded_distance!=0)); + module end_stop_holder_extras(exploded_distance=0) { + echo("Non-Plastic Parts: 6 x M3 washer to attach micro switch on end_stop_holder"); + for(i = [0:2] ) { + translate([4+i*0.3+(i+1)*0.2*exploded_distance, 28, 5]) rotate([0, 90, 0]) color(Steel) washer(3); + translate([4+i*0.3+(i+1)*0.2*exploded_distance, 38, 5]) rotate([0, 90, 0]) color(Steel) washer(3); + } - echo("PART: 1 x M3 bolt 18 mm"); - translate([-3*exploded_distance,6,5]) - rotate([0,90,0]) - color(Steel) boltHole(size=3, length=18); + echo("Non-Plastic Parts: 1 x Micro switch on end_stop_holder"); + translate([4+3*0.3+exploded_distance, 28-5.15+(10-9.5)/2, 5-2]) + rotate([90,0,90]) + micro_switch(with_extra_parts=true, exploded=(exploded_distance!=0)); + + echo("Non-Plastic Parts: 1 x M3 x 18 mm bolt to attach end_stop_holder on smooth rod"); + translate([-3*exploded_distance,6,5]) + rotate([0,90,0]) + color(Steel) boltHole(size=3, length=18); + + echo("Non-Plastic Parts: 1 x M3 nut to attach end_stop_holder on smooth rod"); + translate([17+0.9*3/2+exploded_distance,6,5]) + rotate([0,-90,0]) + rotate([0,0,30]) color(Steel) flat_nut(3); + } - echo("PART: 1 x M3 nut"); - translate([17+0.9*3/2+exploded_distance,6,5]) - rotate([0,-90,0]) - rotate([0,0,30]) color(Steel) flat_nut(3); } diff --git a/Hardware/Development/libs/micro_switch.scad b/Hardware/Development/libs/micro_switch.scad index eadbde0..a4c17ad 100644 --- a/Hardware/Development/libs/micro_switch.scad +++ b/Hardware/Development/libs/micro_switch.scad @@ -17,23 +17,22 @@ module micro_switch(with_extra_parts=false, exploded=false) { rotate([0,0,10]) color(Steel) cube([17,1,4]); - if(with_extra_parts) { - if(exploded) - micro_switch_extras(exploded_distance=15); - else - micro_switch_extras(exploded_distance=0); + if(with_extra_parts) + micro_switch_extras(exploded_distance=(exploded?15:0)); + } + + module micro_switch_extras(exploded_distance=0) { + screw_size = 2.2; + screw_length = 13; + echo("Non-Plastic Parts: 2 x Self tapping screw 2.2 x 13 mm for micro switch"); + translate([5.15, 2, 0]) color(Steel) { + translate([0, 0, 0.5+6.4+exploded_distance]) + rotate([180,0,0]) csk_bolt(screw_size, screw_length); + translate([9.5, 0, 0.5+6.4+exploded_distance]) + rotate([180,0,0]) csk_bolt(screw_size, screw_length); } } -} -module micro_switch_extras(exploded_distance=0) { - echo("PART: 2 x Self tapping screw 2.2 x 13 mm"); - translate([5.15, 2, 0]) color(Steel) { - translate([0, 0, 0.5+6.4+exploded_distance]) - rotate([180,0,0]) csk_bolt(2.2, 13); - translate([9.5, 0, 0.5+6.4+exploded_distance]) - rotate([180,0,0]) csk_bolt(2.2, 13); - } } diff --git a/Hardware/Development/main_frame/frame.scad b/Hardware/Development/main_frame/frame.scad index 4888101..1116ab7 100644 --- a/Hardware/Development/main_frame/frame.scad +++ b/Hardware/Development/main_frame/frame.scad @@ -244,12 +244,8 @@ 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); - } + if(with_extra_parts) + frame_extras(with_motor=with_motor, exploded_distance=(exploded?30:0)); } // End of union() command @@ -260,13 +256,15 @@ module frame_extras(with_motor=1, exploded_distance=0) { 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 --- + echo("Non-Plastic Parts: 1 x Nema 17 on motor frame"); 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 --- + + echo("Non-Plastic Parts: 4 x Bolts M3 x 8 mm to attach motor on frame"); 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]) { @@ -277,26 +275,27 @@ module frame_extras(with_motor=1, exploded_distance=0) { translate([X_threaded_rod_posX,X_threaded_rod_posY,0]) { rotate([0,0,0]) { - // --- Bearing --- + echo("Non-Plastic Parts: 1 x 608 bearing for motor frame"); translate([0,0,-1.0-7/2-0.2*exploded_distance]) bearing(model=608); - // --- M8 Nut --- - translate([0,0,-1.0-7/2-0.6*exploded_distance]) rotate([0,180,0]) color(Steel) flat_nut(8); + // --- Rod Gear --- - translate([0,0,-8-1.0-7/2-1.0*exploded_distance]) rotate([0,0,6]) cyclone_rod_gear(); - // --- M8 Nut --- - translate([0,0,-11.5-8-1.0-7/2-1.2*exploded_distance]) color(Steel) flat_nut(8); + translate([0,0,-8-1.0-7/2-1.0*exploded_distance]) + rotate([0,0,6]) + cyclone_rod_gear(with_extra_parts=true, exploded=(exploded_distance!=0)); } } } - // --- Self tapping screw 2.9 x 16mm --- + screw_size = 2.9; + screw_length = 16; + echo("Non-Plastic Parts: 3 x Self tapping screw 2.9 x 16 mm to attach frame on base"); 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); + csk_bolt(screw_size, screw_length); translate([base_screw_distance*0.8,0,0]) rotate([180,0,0]) - csk_bolt(2.9, 16); + csk_bolt(screw_size, screw_length); translate([base_screw_distance*0.2,0,0]) rotate([180,0,0]) - csk_bolt(2.9, 16); + csk_bolt(screw_size, screw_length); } // --- X smooth rod fix --- @@ -316,7 +315,7 @@ module frame_extras(with_motor=1, exploded_distance=0) { // this seems to reduce working area of Y axis if(false) { - echo("PART: 1 x Micro switch on Y smooth rod for Y axis"); + echo("Non-Plastic Parts: 1 x Micro switch on Y smooth rod for Y axis"); 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,Y_rod_dist_from_wall]) @@ -325,8 +324,8 @@ module frame_extras(with_motor=1, exploded_distance=0) { } // this seems to reduce working area of X axis - if(fasle) { - echo("PART: 1 x Micro switch on X smooth rod for X axis"); + if(false) { + echo("Non-Plastic Parts: 1 x Micro switch on X smooth rod for X axis"); translate([X_smooth_rods_sep_projected,-smooth_rod_margin,0]) translate([15+0.5*exploded_distance, -8, frame_thickness]) rotate([180,180,-90]) @@ -335,7 +334,7 @@ module frame_extras(with_motor=1, exploded_distance=0) { // this seems to reduce working area of X axis if(false) { - echo("PART: 1 x Micro switch on motor frame for X axis"); + echo("Non-Plastic Parts: 1 x Micro switch on motor frame for X axis"); rotate([90, 0, -45]) translate([X_rods_corner_shaft_size/2-19.8,0,-X_rods_corner_shaft_size/2+0.5*exploded_distance]) micro_switch(with_extra_parts=true, exploded=(exploded_distance!=0)); @@ -345,20 +344,21 @@ 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,0]) { - // --- Bearing --- + echo("Non-Plastic Parts: 1 x 608 bearing for no motor frame"); translate([0,0,-1.0-7/2-0.2*exploded_distance]) bearing(model=608); - // --- M8 Nut --- + + echo("Non-Plastic Parts: 1 x M8 nut to attach threaded rod on no motor frame"); translate([0,0,-6.5-1.0-7/2-0.6*exploded_distance]) rotate([0,0,0]) color(Steel) flat_nut(8); } } - echo("PART: 1 x Micro switch on no motor frame for X axis"); + echo("Non-Plastic Parts: 1 x Micro switch on no motor frame for X axis"); rotate([90, 0, -45]) translate([X_rods_corner_shaft_size/2-19.8,0,-X_rods_corner_shaft_size/2+0.5*exploded_distance]) micro_switch(with_extra_parts=true, exploded=(exploded_distance!=0)); if(true) { - echo("PART: 1 x Micro switch on Y smooth rod for Y axis"); + echo("Non-Plastic Parts: 1 x Micro switch on Y smooth rod for Y axis"); 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,Y_rod_dist_from_wall]) @@ -368,7 +368,7 @@ module frame_extras(with_motor=1, exploded_distance=0) { // this seems to reduce working area of Y axis if(false) { - echo("PART: 1 x Micro switch on no motor frame for Y axis"); + echo("Non-Plastic Parts: 1 x Micro switch on no motor frame for Y axis"); translate([frame_width-frame_thickness/2+10.8/2-0.5,frame_height-19.8-2,frame_thickness]) translate([0,-Y_rod_height+smooth_rod_margin,0]) translate([0,-smooth_rod_margin-8.5-0.5*exploded_distance,0]) diff --git a/Hardware/Development/smooth_rod_fix/smooth_rod_fix.scad b/Hardware/Development/smooth_rod_fix/smooth_rod_fix.scad index 5f58470..6b6c5c5 100644 --- a/Hardware/Development/smooth_rod_fix/smooth_rod_fix.scad +++ b/Hardware/Development/smooth_rod_fix/smooth_rod_fix.scad @@ -43,24 +43,23 @@ translate([0,0,part_z/2]) difference() { } // End of difference() command - if(with_extra_parts) { - if(exploded) - smooth_rod_fix_extras(exploded_distance=20); - else - smooth_rod_fix_extras(exploded_distance=0); - } -} + if(with_extra_parts) + smooth_rod_fix_extras(exploded_distance=(exploded?20: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); + module smooth_rod_fix_extras(exploded_distance=0) { + screw_size = 2.9; + screw_length = 16; + echo("Non-Plastic Parts: 2 x Self tapping screw 2.9 x 16 mm for smooth_rod_fix"); + color(Steel) { + translate([0,0,-.2-exploded_distance]) { + translate([-smooth_rod_screw_sep,0,0]) + csk_bolt(screw_size, screw_length); + translate([smooth_rod_screw_sep,0,0]) + csk_bolt(screw_size, screw_length); + } } } + } smooth_rod_fix();