1
0
mirror of https://github.com/nophead/Mendel90.git synced 2025-01-17 12:58:16 +01:00
Mendel90/scad/vitamins/e3d_hot_end.scad
Chris Palmer ad21323ec6 Mods to support e3d in the main branch.
Tweaks to the huxley extruder.
Now shows hot end filament diameter on the BOM.
Moved huxley spool holder back to give more room for lighting.
Updated README.md.
Added huxley to command line usage messages.
2016-01-16 10:47:25 +00:00

162 lines
4.3 KiB
OpenSCAD

//
// Mendel90
//
include <../conf/config.scad>
rad_dia = 22; // Diam of the part with ailettes
rad_nb_ailettes = 11;
rad_len = 26;
nozzle_h = 5;
module e3d_nozzle(type) {
color("gold")
difference() {
union() {
cylinder(d1 = 1.3, d2 = 3, h = 2);
translate([0, 0, 2])
cylinder(d = 8, h = nozzle_h - 2, $fn=6);
}
translate([0, 0, -eta]) cylinder(d = 0.5, h = nozzle_h + 2 * eta);
}
}
resistor_len = 22;
resistor_dia = 6;
heater_width = 16;
heater_length = 20;
heater_height = 11.5;
heater_x = 4.5;
heater_y = heater_width / 2;
fan_x_offset = rad_dia / 2 + 4;
module e3d_resistor(type) {
translate([11 - heater_x, -3 - heater_y, heater_height / 2 + nozzle_h]) {
color("grey")
rotate([-90, 0, 0])
cylinder(r = resistor_dia / 2, h = resistor_len);
color("red")
translate([-3.5/2, resistor_len + 3.5/2 + 1, 0]) {
cylinder(d = 3.5, h = 36);
translate([3.5, 0, 0])
cylinder(r = 3.5 / 2, h = 36);
}
}
}
module heater_block(type) {
translate([0, 0, -hot_end_length(type)]) {
translate([0, 0, nozzle_h]) difference() {
color("lightgrey") union() {
// Heat break
cylinder(r = 2, h = heater_height + 10);
translate([-heater_x, -heater_y, 0])
cube([heater_length, heater_width, heater_height]);
}
cylinder(d=3, h = heater_height + 10 + eta); // Filament hole
}
e3d_resistor(type);
e3d_nozzle(type);
}
}
module e3d_rad(type) {
h_ailettes = rad_len / (2 * rad_nb_ailettes - 1);
difference() {
cylinder(d = rad_dia, h = rad_len);
translate([0, 0, -eta])
cylinder(r = hot_end_insulator_diameter(type) / 2 - eta, h = rad_len + 2 * eta);
for (i = [0 : rad_nb_ailettes -2 ] )
translate([0, 0, (2 * i + 1) * h_ailettes])
cylinder(r = rad_dia, h = h_ailettes);
}
}
module e3d_fan_duct(type) {
color("DeepSkyBlue")
render(convexity = 3) difference() {
hull() {
translate([-8, -23 / 2, 0])
cube([eta, 23, 26]);
translate([fan_x_offset, -30 / 2, 0])
cube([eta, 30, 30]);
}
cylinder(h = 70, d = rad_dia + 0.1, center = true); // For rad
translate([0, 0, 15])
rotate([0, 90, 0])
cylinder(d = rad_dia, h = 50);
}
}
module e3d_fan(type) {
e3d_fan_duct(type);
translate([fan_x_offset + 5, 0, 15])
rotate([0, 90, 0])
color("darkgrey")
fan(fan30x10);
}
module e3d_hot_end(type, filament) {
insulator_length = hot_end_insulator_length(type);
inset = hot_end_inset(type);
bundle = 3.2;
tape_thickness = 0.8;
vitamin(str(hot_end_part(type)," ",filament,"mm"));
translate([0, 0, inset - insulator_length]) {
color(hot_end_insulator_colour(type)) render(convexity = 10) {
difference() {
cylinder(d = hot_end_insulator_diameter(type), h = insulator_length);
cylinder(d = 3.2, h = insulator_length * 2 + 1, center = true); // Filament hole
translate([0, 0, insulator_length - hot_end_inset(type) - hot_end_groove(type) / 2])
tube(ir = hot_end_groove_dia(type) / 2, or = hot_end_insulator_diameter(type) / 2 + eta, h = hot_end_groove(type));
}
e3d_rad(type);
}
}
// Wire and ziptie
rotate([0, 0, 10]) {
scale([1, (bundle + hot_end_insulator_diameter(type)) / hot_end_insulator_diameter(type)])
translate([0, -bundle / 2, -7])
rotate([0, 0, -110])
ziptie(small_ziptie, hot_end_insulator_diameter(type) / 2);
translate([0, -hot_end_insulator_diameter(type) / 2 - bundle / 2, 20])
scale([0.7, bundle / 6.4])
difference() {
tubing(HSHRNK64, 60);
translate([0, 0, 20])
cube([10, 10, 60], center = true);
}
}
rotate([0, 0, 90])
heater_block(type);
translate([0, 0, inset - insulator_length])
e3d_fan();
}
e3d_hot_end(e3d_clone);