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.

mosfet_mount.scad 2.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. mosfet_width = 70;
  2. mosfet_height = 60;
  3. mosfet_depth = 2;
  4. mosfet_holes_x = 63;
  5. mosfet_holes_y = 53;
  6. mosfet_dia = 3.2;
  7. wall = 5.0;
  8. mosfet_wall_dist = 5.0;
  9. mosfet_mount_dist = 2.0;
  10. mount_dia = 4.2;
  11. cutout_len = 30;
  12. cutout_dist = 4;
  13. $fn = 42;
  14. module prism(l, w, h) {
  15. polyhedron(
  16. points = [[0,0,0], [l,0,0], [l,w,0], [0,w,0], [0,w,h], [l,w,h]],
  17. faces = [[0,1,2,3],[5,4,3,2],[0,4,5,1],[0,3,4],[5,2,1]]
  18. );
  19. }
  20. module mosfet() {
  21. cube([mosfet_width, mosfet_height, mosfet_depth]);
  22. for (x = [-1, 1])
  23. for (y = [-1, 1])
  24. translate([mosfet_width / 2 + x * mosfet_holes_x / 2, mosfet_height / 2 + y * mosfet_holes_y / 2, -mosfet_mount_dist - wall - 1])
  25. cylinder(d = mosfet_dia - 0.2, h = mosfet_mount_dist + wall + 1);
  26. }
  27. module mount() {
  28. translate([0, -wall, 0])
  29. difference() {
  30. union() {
  31. cube([mosfet_width + mosfet_wall_dist + 20, wall, mosfet_height]);
  32. translate([mosfet_width + mosfet_wall_dist + 7.5, wall, 0])
  33. cube([5, 1, mosfet_height]);
  34. for (x = [-1, 1])
  35. for (y = [-1, 1])
  36. translate([mosfet_width / 2 + x * mosfet_holes_x / 2, wall, mosfet_height / 2 + y * mosfet_holes_y / 2])
  37. rotate([-90, 0, 0])
  38. cylinder(d = 7, h = mosfet_mount_dist);
  39. }
  40. for (i = [-15, 15])
  41. translate([mosfet_width + mosfet_wall_dist + 10, -1, mosfet_height / 2 + i])
  42. rotate([-90, 0, 0])
  43. cylinder(d = mount_dia, h = wall + 3);
  44. for (x = [-1, 1])
  45. for (y = [-1, 1])
  46. translate([mosfet_width / 2 + x * mosfet_holes_x / 2, -1, mosfet_height / 2 + y * mosfet_holes_y / 2])
  47. rotate([-90, 0, 0])
  48. cylinder(d = mosfet_dia, h = wall + mosfet_mount_dist + 2);
  49. for (i = [0, 1, 2, 3])
  50. translate([mosfet_width / 2, 0, mosfet_height / 2])
  51. rotate([0, 90 * i, 0])
  52. translate([cutout_len * sqrt(2) / 2 + cutout_dist, -1, -cutout_len * sqrt(2) / 2])
  53. rotate([45, 0, 90])
  54. prism(wall + 2, cutout_len, cutout_len);
  55. }
  56. }
  57. module assembly() {
  58. %translate([0, mosfet_mount_dist, mosfet_height])
  59. rotate([-90, 0, 0])
  60. mosfet();
  61. mount();
  62. }
  63. rotate([90, 0, 0])
  64. assembly();