Add optional bowden connector to E3D hotends.

This commit is contained in:
Martin Budden 2020-11-13 10:21:38 +00:00
parent eac0086199
commit 166ed05d4a
3 changed files with 39 additions and 6 deletions

View File

@ -25,7 +25,7 @@ module hot_ends()
layout([for(h = hot_ends) 40]) layout([for(h = hot_ends) 40])
translate([-20, 0]) translate([-20, 0])
rotate(90) rotate(90)
hot_end(hot_ends[$i], 3); hot_end(hot_ends[$i], 3, bowden = $i == 3);
if($preview) if($preview)
hot_ends(); hot_ends();

View File

@ -26,6 +26,8 @@ include <tubings.scad>
include <zipties.scad> include <zipties.scad>
include <fans.scad> include <fans.scad>
use <../utils/rounded_cylinder.scad>
use <../utils/thread.scad>
use <../utils/tube.scad> use <../utils/tube.scad>
rad_dia = 22; // Diam of the part with ailettes rad_dia = 22; // Diam of the part with ailettes
@ -94,7 +96,34 @@ module heater_block(type, naked = false, resistor_wire_rotate = [0,0,0]) {
} }
} }
module bowden_connector(cap_colour = grey(20)) {
ir = 4.25 / 2;
body_colour = "silver";
color(body_colour) {
translate_z(-4.5) {
tube(or = 2.5, ir = ir, h = 4.5, center = false);
male_metric_thread(6, metric_coarse_pitch(5), length = 4.5, center = false, solid = false, colour = body_colour);
}
tube(or = 7.7 / 2, ir = ir, h = 2, center = false);
translate_z(2)
linear_extrude(6.5)
difference() {
circle(d = 11.55, $fn = 6);
circle(r = ir);
}
translate_z(8.5)
rounded_cylinder(r = 9.8 / 2, h = 2, r2 = 1.5, ir = ir);
translate_z(10.5)
tube(or = 3.5, ir = ir, h = 0.5, center = false);
}
color(cap_colour) {
translate_z(11)
tube(or = 3, ir = ir, h = 1, center = false);
translate_z(12)
tube(or = 5.5, ir = ir, h = 1.75, center = false);
}
}
module e3d_fan_duct(type) { module e3d_fan_duct(type) {
color("DeepSkyBlue") color("DeepSkyBlue")
@ -123,7 +152,7 @@ module e3d_fan(type) {
fan(fan30x10); fan(fan30x10);
} }
module e3d_hot_end(type, filament, naked = false, resistor_wire_rotate = [0,0,0]) { module e3d_hot_end(type, filament, naked = false, resistor_wire_rotate = [0,0,0], bowden = false) {
insulator_length = hot_end_insulator_length(type); insulator_length = hot_end_insulator_length(type);
inset = hot_end_inset(type); inset = hot_end_inset(type);
h_ailettes = rad_len / (2 * rad_nb_ailettes - 1); h_ailettes = rad_len / (2 * rad_nb_ailettes - 1);
@ -150,6 +179,10 @@ module e3d_hot_end(type, filament, naked = false, resistor_wire_rotate = [0,0,0]
square([100, hot_end_groove(type)]); square([100, hot_end_groove(type)]);
} }
if(bowden)
translate_z(inset)
bowden_connector();
rotate(90) rotate(90)
heater_block(type, naked, resistor_wire_rotate); heater_block(type, naked, resistor_wire_rotate);
@ -158,10 +191,10 @@ module e3d_hot_end(type, filament, naked = false, resistor_wire_rotate = [0,0,0]
e3d_fan(); e3d_fan();
} }
module e3d_hot_end_assembly(type, filament, naked = false, resistor_wire_rotate = [0,0,0]) { module e3d_hot_end_assembly(type, filament, naked = false, resistor_wire_rotate = [0,0,0], bowden = false) {
bundle = 3.2; bundle = 3.2;
e3d_hot_end(type, filament, naked, resistor_wire_rotate); e3d_hot_end(type, filament, naked, resistor_wire_rotate, bowden);
// Wire and ziptie // Wire and ziptie
if(!naked) if(!naked)

View File

@ -44,10 +44,10 @@ function hot_end_length(type) = hot_end_total_length(type) - hot_end_inset(type)
use <jhead.scad> use <jhead.scad>
use <e3d.scad> use <e3d.scad>
module hot_end(type, filament, naked = false, resistor_wire_rotate = [0,0,0]) { //! Draw specified hot end module hot_end(type, filament, naked = false, resistor_wire_rotate = [0,0,0], bowden = false) { //! Draw specified hot end
if(hot_end_style(type) == jhead) if(hot_end_style(type) == jhead)
jhead_hot_end_assembly(type, filament, naked); jhead_hot_end_assembly(type, filament, naked);
if(hot_end_style(type) == e3d) if(hot_end_style(type) == e3d)
e3d_hot_end_assembly(type, filament, naked, resistor_wire_rotate); e3d_hot_end_assembly(type, filament, naked, resistor_wire_rotate, bowden);
} }