My self designed awesome 3D printer
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

e3d_v6_all_metall_hotend.scad 5.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. /*
  2. Name: E3D-v6 All Metal HotEnd in OpenSCAD
  3. Author: Jons Collasius from Germany/Hamburg
  4. License: CC BY-NC-SA 4.0
  5. License URL: https://creativecommons.org/licenses/by-nc-sa/4.0/
  6. Creator of "E3D-v6 All Metal HotEnd": E3D Online - JR
  7. URL E3D v6: http://wiki.e3d-online.com/wiki/E3D-v6_Documentation
  8. */
  9. // retrieved from https://www.thingiverse.com/thing:548237
  10. // ######################################################################################################################
  11. /* [Global] */
  12. // 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).
  13. fnresolution = 1.0;
  14. // detail level
  15. detaillevel = 1; // [0:coarse render only outlines,1:fine render with all details]
  16. // ######################################################################################################################
  17. //e3d_v6();
  18. // ######################################################################################################################
  19. e3d_v6_height = 65.6;
  20. e3d_upper_large_dia = 16;
  21. e3d_upper_small_dia = 12;
  22. e3d_upper_small_height = 6;
  23. e3d_max_dia = 22;
  24. module e3d_v6() {
  25. translate([0, 0, e3d_v6_height])
  26. rotate([0, 180, 0])
  27. e3d();
  28. }
  29. // ######################################################################################################################
  30. module e3d() {
  31. difference() {
  32. union() {
  33. translate([0,0,0]) fncylinder(r=8,h=7);
  34. translate([0,0,6]) fncylinder(r=6,h=8);
  35. translate([0,0,13]) fncylinder(r=8,h=8);
  36. translate([0,0,20]) fncylinder(r=11.15,h=26);
  37. translate([0,0,0]) fncylinder(r=8,h=7);
  38. translate([0,0,45]) fncylinder(r=2,h=4.1);
  39. 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]);
  40. translate([0,0,58.6]) fncylinder(r=2.5,h=3);
  41. translate([0,0,60.6]) fncylinder(r=4.03,h=3,fn=6);
  42. translate([0,0,62.6]) fncylinder(r=3,r2=0.5,h=3);
  43. }
  44. if(detaillevel==1) {
  45. translate([0,0,-1]) fncylinder(r=1.6,h=64.1);
  46. translate([0,0,62.1]) fncylinder(r=0.25,h=4,fn=10);
  47. translate([0,0,16]) fnpipe(r=9,r2=4.475,h=1.5);
  48. translate([0,0,18.5]) fnpipe(r=9,r2=4.475,h=1.5);
  49. for ( i = [0 : 9] ) {
  50. translate([0,0,21+i*2.5]) fnpipe(r=12.15,r2=4.475+i*0.15,h=1.5);
  51. }
  52. translate([-9,8,55.6]) rotate([0,90,0]) fncylinder(r=3.05, h=18);
  53. translate([-9,8,54.6]) cube([18,8.5,2]);
  54. translate([0,13,47.1]) fncylinder(r=1.4, h=13.5);
  55. translate([4.45,-1,54.8]) rotate([0,90,0]) fncylinder(r=1.4, h=4.45);
  56. translate([3.45,-2.5,57.6]) rotate([0,90,0]) fncylinder(r=1.15, h=5.45);
  57. }
  58. }
  59. }
  60. // ######################################################################################################################
  61. 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) {
  62. translate([x==true?-xyz[0]/2:0,y==true?-xyz[1]/2:0,z==true?-xyz[2]/2:0]) difference() {
  63. cube(xyz);
  64. 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);
  65. 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);
  66. 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);
  67. 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);
  68. 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);
  69. 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);
  70. 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);
  71. 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);
  72. 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);
  73. 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);
  74. 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);
  75. 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);
  76. }
  77. }
  78. // ######################################################################################################################
  79. module fnpipe(r,r2,h,fn){
  80. if (fn==undef) {
  81. difference() {
  82. fncylinder(r=r,h=h,$fn=2*r*3.14/fnresolution);
  83. translate([0,0,-1]) fncylinder(r=r2,h=h+2,$fn=2*r*3.14/fnresolution);
  84. }
  85. } else {
  86. difference() {
  87. fncylinder(r=r,h=h,fn=fn);
  88. translate([0,0,-1]) fncylinder(r=r2,h=h+2,fn=fn);
  89. }
  90. }
  91. }
  92. // ######################################################################################################################
  93. module fncylinder(r,r2,h,fn){
  94. if (fn==undef) {
  95. if (r2==undef) {
  96. cylinder(r=r,h=h,$fn=2*r*3.14/fnresolution);
  97. } else {
  98. cylinder(r=r,r2=r2,h=h,$fn=2*r*3.14/fnresolution);
  99. }
  100. } else {
  101. if (r2==undef) {
  102. cylinder(r=r,h=h,$fn=fn);
  103. } else {
  104. cylinder(r=r,r2=r2,h=h,$fn=fn);
  105. }
  106. }
  107. }