Re: Frustrating lack of a fan duct: "Sturdy" + E3D-V6 April 12, 2015 03:29PM |
Registered: 9 years ago Posts: 254 |
Quote
nophead
Just pushed an E3D branch to Github. Select that branch and then either download the zip or navigate to the STLs and download them individually.
The wades block, fan duct and fan bracket are all different. As the machine is built around the extruder the knock on effect is to make it slightly taller, which affects the sheets and the spool holder slightly. Those changes are only relevant if you are building a new machine from scratch with an E3D hot end. Otherwise you lose a few mm from Z. Only 3mm I think with V6 and the new wades block that loses the extension piece that is there for J-Head MK5.
Re: Frustrating lack of a fan duct: "Sturdy" + E3D-V6 April 13, 2015 11:28AM |
Admin Registered: 17 years ago Posts: 7,879 |
Re: Frustrating lack of a fan duct: "Sturdy" + E3D-V6 April 13, 2015 06:04PM |
Registered: 9 years ago Posts: 254 |
Re: Frustrating lack of a fan duct: "Sturdy" + E3D-V6 April 13, 2015 07:21PM |
Admin Registered: 17 years ago Posts: 7,879 |
python stls.py sturdy x_carriage.stlThe file will end up in the sturdy/stls directory.
Re: Frustrating lack of a fan duct: "Sturdy" + E3D-V6 April 13, 2015 08:02PM |
Admin Registered: 17 years ago Posts: 7,879 |
Re: Frustrating lack of a fan duct: "Sturdy" + E3D-V6 April 13, 2015 08:27PM |
Registered: 9 years ago Posts: 254 |
Re: Frustrating lack of a fan duct: "Sturdy" + E3D-V6 April 14, 2015 05:36AM |
Admin Registered: 17 years ago Posts: 7,879 |
e3dv6 = [e3d, "E3D V6 3mm direct", 62, 3.7, 16, 42.7, "lightgrey", 12, true, 6, 15, [1, 5, -4], 15, 25];
Re: Frustrating lack of a fan duct: "Sturdy" + E3D-V6 April 14, 2015 07:27PM |
Registered: 9 years ago Posts: 254 |
Tried the Python route. Not sure what I am doing wrong, but no altered drawing showed up in my directory of "Sturdy" stl files.Quote
nophead
OpenScad does not have a command line. I was referring to the command line of your operating system.
Another way is to change these two lines to be if(1) so that it draws just the fan duct. Then you can compile it with F6 and export the STL from the file menu, avoiding python and the command line.
module x_carriage_fan_duct_stl() { stl("x_carriage_fan_duct"); difference() { union() { difference() { union() { // fan input hull() { for(side = [-1, 1]) translate([fan_x_duct + side * fan_hole_pitch(part_fan), fan_y_duct + fan_hole_pitch(part_fan), 0]) cylinder(r = fan_screw_boss_r, h = duct_height_fan); neck(false); } // neck hull() { neck(false); throat(false); } // nozzle hull() { union() { cylinder(r1 = or, r2 = or + skew, h = nozzle_height); translate([0, 0, nozzle_height - eta]) cylinder(r = or + skew, h = duct_height_nozzle - nozzle_height); } throat(false); } } // hole in the middle translate([0, 0, -2 * eta]) cylinder(r1 = ir, r2 = ir + skew, h = nozzle_height + 4 * eta); translate([0, 0, nozzle_height - 2 * eta]) cylinder(r = ir + skew, h = duct_height_fan - nozzle_height + 4 * eta); // fan entrance hull() { translate([fan_x_duct, fan_y_duct, duct_wall + duct_height_fan - duct_wall - duct_top_thickness]) rotate([180, 0, 0]) rounded_cylinder(r = fan_bore(part_fan) / 2, h = duct_height_fan - duct_bottom_thickness - duct_top_thickness, r2 = duct_height_fan / 2); neck(true); } translate([0, 0, duct_height_fan - duct_wall - duct_top_thickness - 1]) hull() { translate([fan_x_duct, fan_y_duct, duct_wall]) cylinder(r = fan_bore(part_fan) / 2, h = duct_height_fan - duct_wall - duct_top_thickness); neck(true); } // neck hull() { neck(true); throat(true); } // nozzle exit slot translate([0, 0, -2 * eta]) difference() { union() { cylinder(r1 = or - duct_wall, r2 = or + skew - duct_wall, h = nozzle_height); hull() { translate([0, 0, nozzle_height - 2 * eta]) cylinder(r = or + skew - duct_wall, h = duct_height_nozzle - nozzle_height - duct_top_thickness); throat(true); } } translate([0, 0, -2 * eta]) cylinder(r1 = ir + duct_wall, r2 = ir + skew + duct_wall, h = nozzle_height + 4 * eta); translate([0, 0, nozzle_height - 2 * eta]) cylinder(r = ir + skew + duct_wall, h = duct_height_nozzle - nozzle_height + 4 * eta); } } for(side = [-1, 1]) translate([fan_x_duct + side * fan_hole_pitch(part_fan), fan_y_duct - fan_hole_pitch(part_fan), 0]) cylinder(r = fan_screw_boss_r, h = duct_height_fan); } // // Fan screw nut traps // translate([fan_x_duct, fan_y_duct, -fan_depth(part_fan) / 2]) fan_hole_positions(part_fan) group() { nut_trap(screw_clearance_radius(fan_screw), nut_radius(screw_nut(fan_screw)), duct_height_fan - fan_nut_trap_thickness, supported = true); nut_trap(0, nut_radius(screw_nut(fan_screw)) + 0.15, duct_height_fan - fan_nut_trap_thickness - nut_trap_depth(fan_nut)); } // // Cold end cooling vent // if (hot_end_style(hot_end) != e3d) rotate([0, 0, atan2(-fan_x, -fan_y)]) translate([0, ir + skew, duct_height_nozzle - duct_top_thickness - 3]) rotate([90, 0, 0]) teardrop(r = 4.5 / 2, h = 10, center = true); } } module x_carriage_fan_bracket_stl() { stl("x_carriage_fan_bracket"); t = fan_bracket_thickness; h = fan_z - fan_depth(part_fan) / 2; pitch = fan_hole_pitch(part_fan); boss_r = washer_diameter(fan_washer) / 2 + 1; w = front_nut_pitch * 2 + washer_diameter(M3_washer) + 2 * t; rad = sqrt(2) * pitch - boss_r; bodge = 54 - 51.2; // error in length of MK5 J-head dx = pitch - w / 2; dy = -(fan_y + width / 2) - pitch; hyp = sqrt(dx * dx + dy * dy); angle = atan2(dy, dx) - asin(boss_r / hyp); tangent = sqrt(hyp * hyp - boss_r * boss_r); gusset = tangent - sqrt(boss_r * boss_r - (boss_r - t) * (boss_r - t)); gusset_pitch = front_nut_pitch - t / 2 - washer_diameter(M3_washer) / 2 - 1; gusset_spacing = gusset_pitch - t / 2; difference() { union() { hull() { translate([- w / 2, fan_y + width / 2, 0]) cube([w, 1, t]); for(side = [-1, 1]) translate([side * pitch, -pitch, 0]) cylinder(r = boss_r, h = t); } translate([- w / 2, fan_y + width / 2, eta]) cube([w, t, h]); // gussets for(side = [-1, 1]) { translate([side * gusset_pitch, fan_y + width / 2 + t - eta, t - eta]) rotate([90, 0, 90]) right_triangle(width = -(fan_y + width / 2 + t) - sqrt(rad * rad - gusset_spacing * gusset_spacing) - eta, height = h - t, h = t); translate([side * (w / 2), fan_y + width / 2 + eta, t - eta]) rotate([90, 0, (90 + angle) * side - 90]) translate([0, 0, -side * t / 2]) linear_extrude(height = t, center = true) polygon([[0, 0], [0, h - t], [t * sin(angle), h - t], [gusset, 0]]); } } // // clear the fan // cylinder(r = rad, h = 100, center = true); for(side = [-1, 1]) { // // mounting screw holes // translate([side * front_nut_pitch, 0, max(h - duct_top_thickness - front_nut_z - bodge, fan_bracket_thickness + washer_diameter(M3_washer) / 2) + h / 2]) rotate([90, 0, 0]) vertical_tearslot(h = 100, l = h, r = M3_clearance_radius, center = true); // // fan screw holes // translate([side * pitch, -pitch, 0]) poly_cylinder(r = screw_clearance_radius(fan_screw), h = 100, center = true);
Re: Frustrating lack of a fan duct: "Sturdy" + E3D-V6 April 14, 2015 07:53PM |
Registered: 10 years ago Posts: 12 |
Quote
Rich K.
Tried the Python route. Not sure what I am doing wrong, but no altered drawing showed up in my directory of "Sturdy" stl files.
if(1) if(0) { intersection() { x_carriage_fan_duct_stl(); *translate([0, 0, -10]) cube(200); } } else if(1) { x_carriage_fan_ducts_stl(); } else x_carriage_parts_stl(); else x_carriage_assembly(true);
Re: Frustrating lack of a fan duct: "Sturdy" + E3D-V6 April 14, 2015 08:43PM |
Registered: 9 years ago Posts: 254 |
Re: Frustrating lack of a fan duct: "Sturdy" + E3D-V6 April 15, 2015 03:14AM |
Registered: 10 years ago Posts: 12 |
include < sturdy_config.scad>(except with no space after < )
Module cache size: 8 modules Compiling design (CSG Tree generation)... ECHO: "Sturdy:" ECHO: "base screw length", 16 ECHO: "frame screw length", 16
Re: Frustrating lack of a fan duct: "Sturdy" + E3D-V6 April 15, 2015 05:01AM |
Registered: 9 years ago Posts: 254 |
Re: Frustrating lack of a fan duct: "Sturdy" + E3D-V6 April 15, 2015 10:41AM |
Admin Registered: 17 years ago Posts: 7,879 |
Re: Frustrating lack of a fan duct: "Sturdy" + E3D-V6 April 15, 2015 01:25PM |
Registered: 9 years ago Posts: 44 |
Re: Frustrating lack of a fan duct: "Sturdy" + E3D-V6 July 23, 2015 01:03PM |
Registered: 11 years ago Posts: 180 |
Re: Frustrating lack of a fan duct: "Sturdy" + E3D-V6 July 24, 2015 05:50AM |
Registered: 10 years ago Posts: 541 |
Re: Frustrating lack of a fan duct: "Sturdy" + E3D-V6 January 23, 2016 05:18PM |
Registered: 11 years ago Posts: 88 |
Quote
nophead
Again it is all not parametric though, so only works for whichever version Ivor built.
OpenScad is the DNA of RepRap. I think anything that doesn't use it is doomed as an evolutionary dead end, however good it might be.