123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- /*
- Name: E3D-v6 All Metal HotEnd in OpenSCAD
- Author: Jons Collasius from Germany/Hamburg
-
- License: CC BY-NC-SA 4.0
- License URL: https://creativecommons.org/licenses/by-nc-sa/4.0/
-
- Creator of "E3D-v6 All Metal HotEnd": E3D Online - JR
- URL E3D v6: http://wiki.e3d-online.com/wiki/E3D-v6_Documentation
- */
-
- // retrieved from https://www.thingiverse.com/thing:548237
-
- // ######################################################################################################################
-
- /* [Global] */
-
- // resolution of round object. each line segment is fnr mm long. fnr = 1 crude and good for development (its faster), aim for fnr = 0.4 or smaller for a production render. smaller means more details (and a lot more time to render).
- fnresolution = 1.0;
- // detail level
- detaillevel = 1; // [0:coarse render only outlines,1:fine render with all details]
-
- // ######################################################################################################################
- //e3d_v6();
-
- // ######################################################################################################################
-
- e3d_v6_height = 65.6;
- e3d_upper_large_dia = 16;
- e3d_upper_small_dia = 12;
- e3d_upper_small_height = 6;
- e3d_max_dia = 22;
-
- module e3d_v6() {
- translate([0, 0, e3d_v6_height])
- rotate([0, 180, 0])
- e3d();
- }
-
- // ######################################################################################################################
- module e3d() {
- difference() {
- union() {
- translate([0,0,0]) fncylinder(r=8,h=7);
- translate([0,0,6]) fncylinder(r=6,h=8);
- translate([0,0,13]) fncylinder(r=8,h=8);
- translate([0,0,20]) fncylinder(r=11.15,h=26);
- translate([0,0,0]) fncylinder(r=8,h=7);
- translate([0,0,45]) fncylinder(r=2,h=4.1);
- translate([-8,-4.5,48.1]) chamfercube([16,20,11.5],side=[0.4,0.4,0.4,0.4],top=[0.4,0.4,0.4,0.4],bottom=[0.4,0.4,0.4,0.4]);
- translate([0,0,58.6]) fncylinder(r=2.5,h=3);
- translate([0,0,60.6]) fncylinder(r=4.03,h=3,fn=6);
- translate([0,0,62.6]) fncylinder(r=3,r2=0.5,h=3);
- }
- if(detaillevel==1) {
- translate([0,0,-1]) fncylinder(r=1.6,h=64.1);
- translate([0,0,62.1]) fncylinder(r=0.25,h=4,fn=10);
- translate([0,0,16]) fnpipe(r=9,r2=4.475,h=1.5);
- translate([0,0,18.5]) fnpipe(r=9,r2=4.475,h=1.5);
- for ( i = [0 : 9] ) {
- translate([0,0,21+i*2.5]) fnpipe(r=12.15,r2=4.475+i*0.15,h=1.5);
- }
- translate([-9,8,55.6]) rotate([0,90,0]) fncylinder(r=3.05, h=18);
- translate([-9,8,54.6]) cube([18,8.5,2]);
- translate([0,13,47.1]) fncylinder(r=1.4, h=13.5);
- translate([4.45,-1,54.8]) rotate([0,90,0]) fncylinder(r=1.4, h=4.45);
- translate([3.45,-2.5,57.6]) rotate([0,90,0]) fncylinder(r=1.15, h=5.45);
- }
- }
- }
-
- // ######################################################################################################################
- module chamfercube(xyz=[0,0,0],side=[0,0,0,0],top=[0,0,0,0],bottom=[0,0,0,0],x=false,y=false,z=false) {
- translate([x==true?-xyz[0]/2:0,y==true?-xyz[1]/2:0,z==true?-xyz[2]/2:0]) difference() {
- cube(xyz);
- if(side[0]>=0) translate([0,0,xyz[2]/2]) rotate([0,0,45]) cube([side[0]*2,side[0]*3,xyz[2]+2],center=true);
- if(side[1]>=0) translate([xyz[0],0,xyz[2]/2]) rotate([0,0,-45]) cube([side[1]*2,side[1]*3,xyz[2]+2],center=true);
- if(side[2]>=0) translate([xyz[0],xyz[1],xyz[2]/2]) rotate([0,0,45]) cube([side[2]*2,side[2]*3,xyz[2]+2],center=true);
- if(side[3]>=0) translate([0,xyz[1],xyz[2]/2]) rotate([0,0,-45]) cube([side[3]*2,side[3]*3,xyz[2]+2],center=true);
- if(top[0]>=0) translate([xyz[0]/2,0,xyz[2]]) rotate([-45,0,0]) cube([xyz[0]+2,top[0]*2,top[0]*3,],center=true);
- if(top[2]>=0) translate([xyz[0]/2,xyz[1],xyz[2]]) rotate([45,0,0]) cube([xyz[0]+2,top[2]*2,top[2]*3,],center=true);
- if(top[3]>=0) translate([0,xyz[1]/2,xyz[2]]) rotate([0,45,0]) cube([top[3]*2,xyz[1]+2,top[3]*3,],center=true);
- if(top[1]>=0) translate([xyz[0],xyz[1]/2,xyz[2]]) rotate([0,-45,0]) cube([top[1]*2,xyz[1]+2,top[1]*3,],center=true);
- if(bottom[0]>=0) translate([xyz[0]/2,0,0]) rotate([45,0,0]) cube([xyz[0]+2,bottom[0]*2,bottom[0]*3,],center=true);
- if(bottom[2]>=0) translate([xyz[0]/2,xyz[1],0]) rotate([-45,0,0]) cube([xyz[0]+2,bottom[2]*2,bottom[2]*3,],center=true);
- if(bottom[3]>=0) translate([0,xyz[1]/2,0]) rotate([0,-45,0]) cube([bottom[3]*2,xyz[1]+2,bottom[3]*3,],center=true);
- if(bottom[1]>=0) translate([xyz[0],xyz[1]/2,0]) rotate([0,45,0]) cube([bottom[1]*2,xyz[1]+2,bottom[1]*3,],center=true);
- }
- }
-
- // ######################################################################################################################
- module fnpipe(r,r2,h,fn){
- if (fn==undef) {
- difference() {
- fncylinder(r=r,h=h,$fn=2*r*3.14/fnresolution);
- translate([0,0,-1]) fncylinder(r=r2,h=h+2,$fn=2*r*3.14/fnresolution);
- }
- } else {
- difference() {
- fncylinder(r=r,h=h,fn=fn);
- translate([0,0,-1]) fncylinder(r=r2,h=h+2,fn=fn);
- }
- }
- }
-
- // ######################################################################################################################
- module fncylinder(r,r2,h,fn){
- if (fn==undef) {
- if (r2==undef) {
- cylinder(r=r,h=h,$fn=2*r*3.14/fnresolution);
- } else {
- cylinder(r=r,r2=r2,h=h,$fn=2*r*3.14/fnresolution);
- }
- } else {
- if (r2==undef) {
- cylinder(r=r,h=h,$fn=fn);
- } else {
- cylinder(r=r,r2=r2,h=h,$fn=fn);
- }
- }
- }
|