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.

Fan Feet.scad 1.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /*
  2. * Created by:
  3. * Thomas Buck <xythobuz@xythobuz.de> in April 2016
  4. *
  5. * Licensed under the Creative Commons - Attribution license.
  6. */
  7. // -----------------------------------------------------------
  8. $fn = 15;
  9. fan_width = 120;
  10. fan_depth = 25.5;
  11. hole_diameter = 4;
  12. hole_distance = 7.5; // in x and z direction
  13. wall_size = 5;
  14. height = 20;
  15. width = 25;
  16. base_depth = 60; // minimum fan_depth + (2 * wall_size)
  17. // -----------------------------------------------------------
  18. depth = fan_depth + (2 * wall_size);
  19. // -----------------------------------------------------------
  20. module foot_walls() {
  21. // bottom wall
  22. translate([0, -(base_depth - depth) / 2, 0])
  23. cube([width, base_depth, wall_size]);
  24. // outer wall
  25. translate([0, 0, wall_size])
  26. cube([wall_size, depth, height - wall_size]);
  27. // back wall
  28. translate([wall_size, 0, wall_size])
  29. cube([width - wall_size, wall_size, height - wall_size]);
  30. // front wall
  31. translate([wall_size, fan_depth + wall_size, wall_size])
  32. cube([width - wall_size, wall_size, height - wall_size]);
  33. }
  34. module foot() {
  35. difference() {
  36. // solid parts
  37. foot_walls();
  38. // cut out screw hole
  39. translate([wall_size + hole_distance, depth + (wall_size / 2), wall_size + hole_distance])
  40. rotate([90, 0, 0])
  41. cylinder(d = hole_diameter, h = depth + wall_size);
  42. }
  43. }
  44. // -----------------------------------------------------------
  45. // Visualize fan
  46. %translate([wall_size, wall_size, wall_size])
  47. cube([fan_width, fan_depth, fan_width]);
  48. foot();
  49. // Visualize second foot (print twice!)
  50. %translate([fan_width + (2 * wall_size), depth, 0])
  51. rotate([0, 0, 180])
  52. foot();