summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--e3dv6.scad99
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 @@
1include <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
24sv=hs_t+ss;
25
26the_w = ss + max(c_tw,ts_t)+hb_w+c_t + ss;
27the_l = ss + hb_l + ss;
28the_h = sv + hb_h + ss;
29
30use <bubbles.scad>;
31module 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
78vol_ = 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;
86vol = vol_*1.2;
87echo("volume",vol);
88
89use <view.scad>;
90use <mold.scad>;
91
92view="*";
93
94view(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: */