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

pipe_holder.scad 1.9KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. tube = 16.5;
  2. wall = 6;
  3. depth = 12;
  4. mount = 1;
  5. wall_off = 3;
  6. tab = 11;
  7. hole = 4.1;
  8. head_min = hole;
  9. head_max = 7.9;
  10. head_height = 2.5;
  11. fix_height = 9;
  12. fix_wall = 4;
  13. fix_dia = 40;
  14. fix_hole = 2.8;
  15. double = true;
  16. $fn = 42;
  17. module fix() {
  18. difference() {
  19. cylinder(d = fix_dia, h = fix_height);
  20. translate([0, 0, -1])
  21. cylinder(d = tube, h = fix_height + 2);
  22. translate([0, -1, fix_height / 2])
  23. rotate([90, 0, 0])
  24. cylinder(d = fix_hole, h = fix_dia / 2);
  25. translate([1, 0, fix_height / 2])
  26. rotate([0, 90, 0])
  27. cylinder(d = fix_hole, h = fix_dia / 2);
  28. }
  29. }
  30. module tab() {
  31. difference() {
  32. cube([wall + wall_off, tab, depth]);
  33. translate([-1, tab / 2, depth / 2])
  34. rotate([0, 90, 0]) {
  35. cylinder(d = hole, h = wall + wall_off + 2);
  36. translate([0, 0, wall + wall_off + 1 - head_height])
  37. cylinder(d1 = head_min, d2 = head_max, h = head_height + 0.01);
  38. }
  39. }
  40. }
  41. module main_part() {
  42. hull() {
  43. cylinder(d = tube + (2 * wall), h = depth);
  44. translate([-tube / 2 - wall_off, tube / 2 + wall, 0])
  45. cube([wall + wall_off, mount, depth]);
  46. translate([-tube / 2 - wall_off, -tube / 2 - wall - mount, 0])
  47. cube([wall + wall_off, mount, depth]);
  48. }
  49. translate([-tube / 2 - wall_off, tube / 2 + wall + mount, 0])
  50. tab();
  51. translate([-tube / 2 - wall_off, -tube / 2 - wall - mount - tab, 0])
  52. tab();
  53. }
  54. module whole() {
  55. difference() {
  56. main_part();
  57. translate([0, 0, -1])
  58. cylinder(d = tube, h = depth + 2);
  59. translate([-100 - tube / 2 - wall_off, -50, -50])
  60. cube([100, 100, 100]);
  61. }
  62. }
  63. translate([fix_dia + 10, 0, 0])
  64. fix();
  65. whole();
  66. if (double) {
  67. translate([0, 0, depth])
  68. whole();
  69. }