From 3c2368a1dd659cdb89771c6cce4bb0999283311f Mon Sep 17 00:00:00 2001 From: Ivan Kokshaysky Date: Sat, 05 Nov 2016 11:38:27 +0000 Subject: Nozzle cover and mold adjustments - codpiece for the nozzle; - shortened molds for single component silicone, namely Abro "The Gasket Maker" Red ("abro" flag in stuff.scad). Signed-off-by: Ivan Kokshaysky --- diff --git a/e3dv6.scad b/e3dv6.scad index 902eb52..9b74f8a 100644 --- a/e3dv6.scad +++ b/e3dv6.scad @@ -27,8 +27,17 @@ the_w = ss + max(c_tw,ts_t)+hb_w+c_t + ss; the_l = ss + hb_l + ss; the_h = sv + hb_h + ss; +/* Nozzle stuff */ +n_protrude = 0.4; // nozzle tip protrusion from silicone +n_h1 = 3.6; // nozzle cone base from the heater body (minimal) +n_cone_h = 2; // nozzle cone height +n_cone_d2 = 1; // pad diameter of the 0.4 nozzle (works up to 0.6); see + // http://wiki.e3d-online.com/images/3/3a/V6-NOZZLE-ALL.pdf +n_cone_d1 = n_cone_h * tan(40) * 2 + n_cone_d2; +codpiece_h = n_h1 + n_cone_h - n_protrude; + use ; -module heatershape(bubbled=true) { +module heatershape(bubbled=true, codpiece=false) { m = n_offset_l-hb_d/2; module topholes(h) { hull() { @@ -46,15 +55,29 @@ module heatershape(bubbled=true) { translate([0,0,hb_h]) { // irrelevant, because we print upside-down: mo = m+max(c_t,c_tw)+ss; th=3*ss; mo = protrude/4; th = protrude/2; - translate([0,0,-1]) topholes(h=ss+protrude); - translate([0,0,ss+protrude-mo-th]) hull() { - topholes(h=layer_height); - translate([-c_tw-ss,-ss,mo]) - cube(size=[the_w,the_l,th]); - } + translate([0,0,-1]) topholes(h=ss+th); + if (!abro) + translate([0,0,ss+protrude-mo-th]) hull() { + topholes(h=layer_height); + translate([-c_tw-ss,-ss,mo]) + cube(size=[the_w,the_l,th]); + } + else + translate([-c_tw-ss,-ss,ss]) + cube(size=[the_w,the_l,th]); } // nozzle - translate([n_offset_w,n_offset_l,1]) mirror([0,0,1]) cylinder(d=n_d,h=sv+1,$fn=24); + translate([n_offset_w,n_offset_l,1]) mirror([0,0,1]) + if (codpiece) { + mc_d2 = n_cone_d2 + n_protrude * tan(40) * 2; + intersection() { + cylinder(d = n_d, h = n_h1 + 1 + epsilon, $fn=24); + cylinder(d1 = n_d * 2, d2 = 0, h = n_h1 * 2 + 1, $fn=24); + } + translate([0, 0, n_h1 + 1]) + cylinder(h = n_cone_h - n_protrude, d1 = n_cone_d1, d2 = mc_d2, $fn = 32); + } else + cylinder(d=n_d,h=sv+1,$fn=24); // heater screw translate([hs_offset_w,hs_offset_l,1]) mirror([0,0,1]) cylinder(d=hs_d,h=hs_t+1,$fn=24); // thermistor screw @@ -89,11 +112,27 @@ echo("volume",vol); use ; use ; -view="*"; +codpiece = true; +view="inner"; view(view=view,volume=vol) { - mold(size=[the_w,the_l,the_h],s=ms,v_protrude=protrude,introffset=ss+c_offset_l); - translate([ms+c_tw+ss,ms+ss,ms+sv]) heatershape(); - translate([ms+epsilon,ms+epsilon,ms+epsilon]) cube(size=[the_w-2*epsilon,the_l-2*epsilon,the_h-2*epsilon]); + cp_h = codpiece ? codpiece_h - sv : 0; + prt = abro ? protrude / 2 : protrude; + difference() { + union() { + mold(size=[the_w,the_l,the_h],s=ms,v_protrude=prt,introffset=ss+c_offset_l); + if (codpiece) + translate([0, 0, -cp_h]) + cube([the_w + ms * 2, the_l + ms * 2, cp_h + epsilon]); + } + if (codpiece) + translate([ms + c_tw + ss + n_offset_w, ms + ss + n_offset_l, ms]) { + scale([1, 1, codpiece_h / (n_d + 2)]) + sphere(d = n_d + 2, $fn = 64); + } + } + translate([ms+c_tw+ss,ms+ss,ms+sv]) heatershape(true, codpiece); + translate([ms+epsilon,ms+epsilon,ms+epsilon - cp_h]) + cube(size=[the_w-2*epsilon,the_l-2*epsilon,the_h-2*epsilon + cp_h]); } /* vim:set ai sw=1: */ diff --git a/stuff.scad b/stuff.scad index 26fb39f..922e702 100644 --- a/stuff.scad +++ b/stuff.scad @@ -4,3 +4,5 @@ epsilon = .01; protrude=10; // distance to protrude vertically ss=1; // minimum silicone shell thickness ms=1; // mold shell thickness + +abro = 1; // single component silicone diff --git a/view.scad b/view.scad index e3dcbee..cc996d6 100644 --- a/view.scad +++ b/view.scad @@ -1,3 +1,4 @@ +include ; use ; /** @@ -26,8 +27,9 @@ module view(view,volume) { }else{ cou() children(0); cin() children(1); csi() children(2); - translate([-mixing_size(volume=volume)[1]*2,0]) rotate([0,0,90]) - cmx() mixing(volume=volume,what="altogethernow"); + if (!abro) + translate([-mixing_size(volume=volume)[1]*2,0]) rotate([0,0,90]) + cmx() mixing(volume=volume,what="altogethernow"); } } /* vim:set ai sw=1: */ -- cgit v0.9.0.2