pocket-plant-seeder.scad 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. $fn=60;
  2. use <threads.scad>
  3. include <honeycomb.scad>
  4. Teil = 2; // [1:Dose, 2:Deckel]
  5. Durchmesser=40;
  6. Wandstaerke=1.5;
  7. Laenge_Gewinde=5;
  8. Laenge_Dose=15;
  9. Raendel=3; // Durchmesser
  10. module Gewinde(dia, len, int) {
  11. clearance=(int) ? 1 : 0; // int==true = Innengewinde mit 1mm Spiel
  12. metric_thread(diameter=dia+clearance, pitch=2, thread_size=1.5, length=len, leadin=2, n_starts=1, internal=int);
  13. }
  14. module Raendelung(h) {
  15. for (i=[0:360/16:359]) rotate([0,0,i]) translate([(Durchmesser)/2-1,0,0]) hull() {
  16. sphere(d=Raendel);
  17. translate(v = [0,0,h]) sphere(d=Raendel);
  18. }
  19. }
  20. module Dose() {
  21. difference() {
  22. union() {
  23. Gewinde(Durchmesser-2*Wandstaerke, len=5, int=false);
  24. translate([0,0,Laenge_Gewinde]) union() {
  25. cylinder(d=Durchmesser, h=Laenge_Dose);
  26. translate([0,0,2]) Raendelung(Laenge_Dose-4);
  27. }
  28. translate([0,0,Laenge_Gewinde+Laenge_Dose]) Gewinde(Durchmesser-2*Wandstaerke, len=Laenge_Gewinde, int=false);
  29. }
  30. cylinder(d=Durchmesser-5*Wandstaerke, h=100, center=true);
  31. }
  32. intersection() {
  33. cylinder(d=Durchmesser-5*Wandstaerke, h=10, center=true);
  34. x=50;
  35. translate([-x/2,-x/2,0]) linear_extrude(height=1.25) honeycomb(x, x, 3.75, 2, whole_only=true);
  36. }
  37. }
  38. module Deckel() {
  39. Rundung=5; // Durchmesser!
  40. difference() {
  41. union() {
  42. hull() rotate_extrude() translate([(Durchmesser-Rundung)/2,0]) circle(d=Rundung);
  43. Raendelung(3);
  44. cylinder(d=Durchmesser, h=Laenge_Gewinde);
  45. }
  46. Gewinde(dia=Durchmesser-2*Wandstaerke, len=6, int=true);
  47. }
  48. }
  49. if (Teil==1) render() Dose();
  50. if (Teil==2) render() Deckel();