My self-made 3D-printable designs, mainly in OpenSCAD
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.

NecksCaps.scad 4.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. // Necks & Caps for DIY projects
  2. // Xavan June 2016
  3. //https://www.thingiverse.com/thing:1654620
  4. //***** Bouchons / Caps *****
  5. //38mm3start ();
  6. //28PCO1810 ();
  7. //28PCO1881 ();
  8. //TestMotif ();
  9. //***** Goulots / Necks *****
  10. //N38mm3start ();
  11. //N28PCO1810 ();
  12. //N28PCO1881 ();
  13. //TestMotif (); // threadform test
  14. //***** ************ *****
  15. $fn=64;
  16. module screw (Sta,End,Pas,Ray){ // filet - thread
  17. Ste=5;//pas angulaire
  18. //Pas mm/360°
  19. //Ray rayon centre du motif
  20. //Sta angle de départ
  21. //End angle de fin
  22. for (Rz = [Sta:Ste:End]) {//Rz rotation Z
  23. a= Rz>Sta ? 1: 0;
  24. b= Rz<End ? 1: 0;
  25. Ap=Pas*(Rz-Sta)/360;//Ap avancement du pas en Z
  26. Ap1=Ap+Pas*Ste/360;//Ap1 avancement du pas en Z+1
  27. hull (){
  28. rotate ([0,0,Rz])translate([Ray,0,Ap])motif (a);
  29. rotate ([0,0,Rz+Ste]) translate([Ray,0,Ap1])motif (b);
  30. }
  31. }
  32. }
  33. module motif (a){//trapeze - threadform
  34. //$Z1 largeur base
  35. //$Z2 largeur sommet
  36. //$X1 distance base sommet
  37. // dans le plan x-z
  38. cube([0.1,0.1,$Z1],true);
  39. translate([-a*$X1,0,0])cube([0.1,0.1,$Z2],true);
  40. }
  41. module bouchon (Rb,Hb,Ep,Nc){//cap
  42. //Rb ray bouchon interieur
  43. //Hb haut bouchon interieur
  44. //Eb epais bouchon
  45. //Nc nb crans
  46. difference(){
  47. translate ([0,0,(Hb+Ep)/2])cylinder(Hb+Ep, r=Rb+Ep, center=true);
  48. translate ([0,0,(Ep)/2])
  49. translate ([0,0,Hb/2+Ep])cylinder(Hb, r=Rb, center=true);
  50. }
  51. // crans
  52. for (Rz = [0:360/Nc:360]) {
  53. rotate ([0,0,Rz])translate ([Rb+Ep,0,Hb/2+Ep])cube([Ep/2,Ep,Hb],true);
  54. }
  55. }
  56. module goulot (Rb,Hb,Ep){//neck
  57. //Rb ray goulot exterieur
  58. //Hb haut goulot
  59. //Eb epais goulot
  60. difference(){
  61. union(){
  62. hull(){//exterieur
  63. translate ([0,0,Hb/2])cylinder(Hb, r=Rb-Ep/3, center=true);translate ([0,0,(Hb-Ep/3)/2])cylinder(Hb-Ep/3, r=Rb, center=true);
  64. }
  65. hull(){//base
  66. translate ([0,0,Ep/4])cylinder(Ep/2, r=Rb+Ep, center=true);
  67. translate ([0,0,Ep/2])cylinder(Ep, r=Rb, center=true);
  68. }
  69. }
  70. translate ([0,0,Hb/2])cylinder(Hb, r=Rb-Ep, center=true); //interieur
  71. }
  72. }
  73. module TestMotif (){
  74. $Z1=2;//largeur base
  75. $Z2=1;//largeur sommet
  76. $X1=1;//distance base sommet (std 1.0)
  77. hull(){
  78. motif (1);
  79. }
  80. }
  81. //****************BOUCHONS-CAPS*********************
  82. module 38mm3start () {
  83. jeu=0.5;//jeu
  84. Ray=38/2+jeu;//rayon centre du motif
  85. Pas=9;//pas de vis
  86. Ep=1.5;//épaisseur bouchon
  87. Ej=0;//épaisseur joint gasket
  88. Dd=1.5+Ej+(Pas/3)/2;//distance demarrage depuis la base
  89. Df=2;//distance fin
  90. $Z1=2;//largeur base
  91. $Z2=1;//largeur sommet
  92. $X1=1;//distance base sommet (std 1.0)
  93. translate([0,0,Ep+Dd]){
  94. screw (0,180,Pas,Ray);
  95. screw (120,300,Pas,Ray);
  96. screw (240,420,Pas,Ray);
  97. }
  98. bouchon (Ray,Dd+Pas/2+Df,Ep,32);
  99. }
  100. module 28PCO1810 () {
  101. jeu=0.5;//jeu
  102. Ray=27.43/2+jeu;//rayon centre du motif
  103. Pas=3.18;//pas de vis
  104. Ep=1;//épaisseur bouchon
  105. Ej=0;//épaisseur joint gasket
  106. Dd=1.5+Ej+Pas/2;//distance demarrage depuis la base
  107. Df=2;//distance fin
  108. $Z1=2;//largeur base
  109. $Z2=1;//largeur sommet
  110. $X1=1.1;//distance base sommet (std 1.18)
  111. translate([0,0,Ep+Dd]){
  112. screw (0,720,Pas,Ray);
  113. }
  114. bouchon (Ray,Dd+2*Pas+Df,Ep,48);
  115. }
  116. module 28PCO1881 () {
  117. jeu=0.5;//jeu
  118. Ray=27.40/2+jeu;//rayon centre du motif
  119. Pas=2.7;//pas de vis
  120. Ep=1;//épaisseur bouchon
  121. Ej=0;//épaisseur joint gasket
  122. Dd=1.5+Ej+Pas/2;//distance demarrage depuis la base
  123. Df=2;//distance fin
  124. $Z1=1.8;//largeur base
  125. $Z2=0.8;//largeur sommet
  126. $X1=1.1;//distance base sommet (std 1.165)
  127. translate([0,0,Ep+Dd]){
  128. screw (0,650,Pas,Ray);
  129. }
  130. bouchon (Ray,Dd+2*Pas+Df,Ep,48);
  131. }
  132. //******************GOULOTS-NECKS*******************
  133. module N28PCO1810 () {
  134. Ray=25.07/2;//rayon externe
  135. Pas=3.18;//pas de vis
  136. Ep=1.7;//épaisseur bouchon
  137. Dd=13;//hauteur depuis l'épaulement
  138. Df=1.7;//distance fin
  139. $Z1=2;//largeur base
  140. $Z2=1;//largeur sommet
  141. $X1=-1;//distance base sommet (std 1.0)
  142. translate([0,0,Dd+Ep-Df-2*Pas-$Z1/2]){
  143. screw (0,720,Pas,Ray);
  144. }
  145. goulot (Ray,Dd+Ep,Ep);
  146. }
  147. module N28PCO1881 () {
  148. Ray=25.07/2;//rayon externe
  149. Pas=2.7;//pas de vis
  150. Ep=1.0;//épaisseur bouchon
  151. Dd=10;//hauteur depuis l'épaulement
  152. Df=1.7;//distance fin
  153. $Z1=1.8;//largeur base
  154. $Z2=0.8;//largeur sommet
  155. $X1=-1.1;//distance base sommet (std 1.165)
  156. translate([0,0,Dd+Ep-Df-650*Pas/360-$Z1/2]){
  157. screw (0,650,Pas,Ray);
  158. }
  159. goulot (Ray,Dd+Ep,Ep);
  160. }
  161. module N38mm3start () {
  162. Ray=36/2;//rayon externe
  163. Pas=9;//pas de vis
  164. Ep=1.4;//épaisseur bouchon
  165. Dd=9.2;//hauteur depuis l'épaulement
  166. Df=1.5;//distance fin
  167. $Z1=2;//largeur base
  168. $Z2=1;//largeur sommet
  169. $X1=-1;//distance base sommet (std 1.165)
  170. translate([0,0,Dd+Ep-Df-Pas/2-$Z1/2]){
  171. screw (0,180,Pas,Ray);
  172. screw (120,300,Pas,Ray);
  173. screw (240,420,Pas,Ray);
  174. }
  175. difference(){
  176. goulot (Ray,Dd+Ep,Ep);
  177. //biseautage
  178. translate ([0,0,Dd])cylinder(h=2*Ep, r1=Ray-Ep, r2=Ray-Ep/1.5, center=true);
  179. }
  180. }