My self designed awesome 3D printer
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

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. }