zapfen2.scad 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /* [General] */
  2. // Resolution
  3. $fn=120; // [36:6:180]
  4. /* [Outer and inner tubes] */
  5. // Diameter of outer tube.
  6. outer_tube_diameter = 22;
  7. // Wall thickness of the outer tube.
  8. outer_tube_wall = 2;
  9. // Diameter of inner tube.
  10. inner_tube_diameter = 20;
  11. // Wall thickness of the inner tube.
  12. inner_tube_wall = 2;
  13. /* [Bolt drilling] */
  14. // Diameter of the used screw
  15. drill_hole_diameter = 5;
  16. // Position measured from the end of the tube
  17. drill_hole_position = 20;
  18. /* [Rubber cord] */
  19. rubber_band_diameter = 2.5;
  20. /* [3D printput] */
  21. holder_wall_thickness = 1.5;
  22. /* [Hidden] */
  23. d_a = outer_tube_diameter;
  24. d_i = inner_tube_diameter - 2*inner_tube_wall;
  25. /////////////////////////////////////////////////////////////////////////////
  26. module aussen() {
  27. // Sockel angerundet
  28. translate([0,0,-holder_wall_thickness]) union() {
  29. cylinder( d=d_a, h=holder_wall_thickness );
  30. hull()
  31. rotate_extrude()
  32. translate([ (d_a-holder_wall_thickness)/2, 0 ])
  33. circle( d=holder_wall_thickness );
  34. }
  35. // Zapfen Außenform
  36. hull() {
  37. cylinder( d=d_i, h=holder_wall_thickness );
  38. translate([0, 0, drill_hole_position+drill_hole_diameter])
  39. sphere( d=d_i );
  40. }
  41. }
  42. module innen() {
  43. // Zapfen innen hohl
  44. hull() {
  45. translate([0, 0, -0.01])
  46. cylinder( d=(d_i-2*holder_wall_thickness), h=holder_wall_thickness );
  47. translate([0, 0, drill_hole_position+drill_hole_diameter])
  48. sphere( d=(d_i-2*holder_wall_thickness) );
  49. }
  50. // Bohrung
  51. translate([0, 0, drill_hole_position])
  52. rotate([0, 90, 0])
  53. cylinder( d1=drill_hole_diameter, d2=max(drill_hole_diameter, 3*rubber_band_diameter), h=(d_i+holder_wall_thickness), center=true);
  54. // Schlitz um Gummi einzulegen
  55. translate([0, -rubber_band_diameter/2, drill_hole_position])
  56. cube([d_i, rubber_band_diameter, d_i]);
  57. // Loch oben fürs Gummiband
  58. translate([0, 0, drill_hole_position])
  59. cylinder( d=rubber_band_diameter, h=drill_hole_position);
  60. }
  61. difference() {
  62. aussen();
  63. innen();
  64. //translate([-50,-100,-10]) cube(100); // Schnittsicht, Debug
  65. }