-rw-r--r-- | e3dv6.scad | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/e3dv6.scad b/e3dv6.scad new file mode 100644 index 0000000..902eb52 --- a/dev/null +++ b/e3dv6.scad | |||
@@ -0,0 +1,99 @@ | |||
1 | include <stuff.scad>; | ||
2 | |||
3 | hb_w = 16; // width (along X axis) | ||
4 | hb_l = 20; // length (along Y axis) | ||
5 | hb_h = 11.5; // height (guess!) | ||
6 | hb_d = 6; // heatbreak diameter | ||
7 | n_offset_w = 8; // nozzle offset from the left | ||
8 | n_offset_l = 4.5;// nozzle offset from the front | ||
9 | n_d = 7/cos(30);// nozzle (outermost) diameter | ||
10 | hs_offset_w = 8;// heater screw offset from the left | ||
11 | hs_offset_l = 17.5;// heater screw offset from the front | ||
12 | hs_d = 5.7; // heater screw diameter | ||
13 | hs_t = 1.5; // heater screw head thickness | ||
14 | ts_offset_l = 3.5;// thermistor screw offset from the front | ||
15 | ts_offset_h = 4.8;// thermistor screw offset from the bottom | ||
16 | ts_d = 7; // thermistor screw diameter | ||
17 | ts_t = 2.6; // thermistor screw head thickness | ||
18 | c_offset_l = 11.5;// cartrdige offset from the from | ||
19 | c_offset_h = 4; // cartridge offset from the bottom | ||
20 | c_d = 6.1; // cartrdige diameter | ||
21 | c_t = 1.7; // cartridge protrusion length (thickness) | ||
22 | c_tw = 4.3; // thickness of the other cartridge end with wires | ||
23 | |||
24 | sv=hs_t+ss; | ||
25 | |||
26 | the_w = ss + max(c_tw,ts_t)+hb_w+c_t + ss; | ||
27 | the_l = ss + hb_l + ss; | ||
28 | the_h = sv + hb_h + ss; | ||
29 | |||
30 | use <bubbles.scad>; | ||
31 | module heatershape(bubbled=true) { | ||
32 | m = n_offset_l-hb_d/2; | ||
33 | module topholes(h) { | ||
34 | hull() { | ||
35 | for(sx=[-1,1]) for(sy=[-1,1]) | ||
36 | translate([hb_w/2+sx*(hb_w/2-m-hb_d/2),hb_l/2+sy*(hb_l/2-m-hb_d/2),0]) | ||
37 | cylinder(d=hb_d,h=h,$fn=24); | ||
38 | } | ||
39 | translate([-c_tw,c_offset_l-c_d/2,0]) | ||
40 | cube(size=[hb_w/2+c_tw,c_d,h]); | ||
41 | } | ||
42 | // main body and protrusion | ||
43 | // body | ||
44 | cube(size=[hb_w,hb_l,hb_h]); | ||
45 | // protrusion | ||
46 | translate([0,0,hb_h]) { | ||
47 | // irrelevant, because we print upside-down: mo = m+max(c_t,c_tw)+ss; th=3*ss; | ||
48 | mo = protrude/4; th = protrude/2; | ||
49 | translate([0,0,-1]) topholes(h=ss+protrude); | ||
50 | translate([0,0,ss+protrude-mo-th]) hull() { | ||
51 | topholes(h=layer_height); | ||
52 | translate([-c_tw-ss,-ss,mo]) | ||
53 | cube(size=[the_w,the_l,th]); | ||
54 | } | ||
55 | } | ||
56 | // nozzle | ||
57 | translate([n_offset_w,n_offset_l,1]) mirror([0,0,1]) cylinder(d=n_d,h=sv+1,$fn=24); | ||
58 | // heater screw | ||
59 | translate([hs_offset_w,hs_offset_l,1]) mirror([0,0,1]) cylinder(d=hs_d,h=hs_t+1,$fn=24); | ||
60 | // thermistor screw | ||
61 | translate([1,ts_offset_l,ts_offset_h]) rotate([0,-90,0]) cylinder(d=ts_d,h=ts_t+1,$fn=24); | ||
62 | // cartridge on the right | ||
63 | translate([hb_w-1,c_offset_l,c_offset_h]) rotate([0,90,0]) cylinder(d=c_d,h=c_t+1,$fn=24); | ||
64 | // cartrdige on the left | ||
65 | translate([1,c_offset_l,c_offset_h]) rotate([0,-90,0]) cylinder(d=c_d,h=c_tw+1,$fn=24); | ||
66 | translate([-c_tw,c_offset_l-c_d/2,c_offset_h]) cube(size=[c_tw+1,c_d,hb_h-c_offset_h]); | ||
67 | |||
68 | if(bubbled) { | ||
69 | for(y=[0,hb_l]) translate([0,y,0]) bubbles(size=[hb_w,ss/2,hb_h]); | ||
70 | rotate([0,0,90]) bubbles(size=[hb_l,(c_tw+ss)/2,hb_h],d=(c_tw+ss)/2,s=1.1*(c_tw+ss)/2); | ||
71 | translate([hb_w,0,0]) rotate([0,0,90]) bubbles(size=[hb_l,(c_t+ss)/2,hb_h],d=(c_t+ss),s=1.1*(c_t+ss)); | ||
72 | rotate([-90,0,0]) bubbles(size=[hb_w,sv/2,hb_l]); | ||
73 | } | ||
74 | } | ||
75 | |||
76 | function vc(d,h) = PI*pow(d/2,2)*h; // cylinder volume | ||
77 | |||
78 | vol_ = the_w*the_l*the_h | ||
79 | - hb_w*hb_l*hb_h // heater block | ||
80 | - vc(d=n_d,h=sv) // nozzle | ||
81 | - vc(d=hs_d,h=hs_t) // heater screw | ||
82 | - vc(d=ts_d,h=ts_t) // thermistor_screw | ||
83 | - vc(d=c_d,h=c_t) // cartridge on the right | ||
84 | - vc(d=c_d,h=c_tw)/2 - c_d*c_tw*(hb_h-c_offset_h)// cartridge on the left | ||
85 | ; | ||
86 | vol = vol_*1.2; | ||
87 | echo("volume",vol); | ||
88 | |||
89 | use <view.scad>; | ||
90 | use <mold.scad>; | ||
91 | |||
92 | view="*"; | ||
93 | |||
94 | view(view=view,volume=vol) { | ||
95 | mold(size=[the_w,the_l,the_h],s=ms,v_protrude=protrude,introffset=ss+c_offset_l); | ||
96 | translate([ms+c_tw+ss,ms+ss,ms+sv]) heatershape(); | ||
97 | translate([ms+epsilon,ms+epsilon,ms+epsilon]) cube(size=[the_w-2*epsilon,the_l-2*epsilon,the_h-2*epsilon]); | ||
98 | } | ||
99 | /* vim:set ai sw=1: */ | ||