OpenSCAD 3D models for use with PD Buddy devices
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.

sink.scad 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. include <MCAD/polyholes.scad>;
  2. include <MCAD/units.scad>;
  3. usb_conn_amphenol = [10.4*mm, 9.4*mm, 3.4*mm];
  4. sink_0_1 = [26*mm, 49*mm, 0.8*mm, 1*mm, 18*mm, 4*mm, 10*mm, 0.5*mm,
  5. usb_conn_amphenol];
  6. sink_0_2 = [26*mm, 48*mm, 0.8*mm, 1*mm, 18*mm, 4*mm, 10*mm, 1.25*mm,
  7. usb_conn_amphenol];
  8. sink_0_3 = [25*mm, 30*mm, 1.6*mm, 1*mm, 17*mm, 4*mm, 10*mm, 1.25*mm,
  9. usb_conn_amphenol];
  10. sink_1_0 = [25*mm, 30*mm, 1.6*mm, 1*mm, 17*mm, 4*mm, 10*mm, 1.25*mm,
  11. usb_conn_amphenol];
  12. function sink_width(board) = board[0];
  13. function sink_length(board) = board[1];
  14. function sink_thickness(board) = board[2];
  15. function sink_corner_radius(board) = board[3];
  16. function sink_screw_spacing(board) = board[4];
  17. function sink_screw_distance(board) = board[5];
  18. function sink_connector_cutout(board) = board[6];
  19. function sink_connector_extend(board) = board[7];
  20. function sink_connector(board) = board[8];
  21. /*
  22. * A simple representation of a PD Buddy Sink circuit board
  23. */
  24. module sink(board=sink_1_0, board_color="indigo", copper_color="gold",
  25. connector_color="silver") {
  26. difference() {
  27. color(board_color)
  28. hull() {
  29. for (x = [sink_corner_radius(board),
  30. sink_length(board) - sink_corner_radius(board)]) {
  31. for (y = [sink_corner_radius(board),
  32. sink_width(board) - sink_corner_radius(board)]) {
  33. translate([x, y, 0])
  34. cylinder(r=sink_corner_radius(board),
  35. h=sink_thickness(board),
  36. $fn=($fn<3) ? 8 : ceil($fn/4)*4);
  37. }
  38. }
  39. }
  40. color(copper_color)
  41. for (y = [-1, 1]) {
  42. translate([sink_screw_distance(board),
  43. sink_width(board)/2 + y*sink_screw_spacing(board)/2,
  44. -epsilon])
  45. polyhole(d=3.5, h=sink_thickness(board) + 2*epsilon);
  46. }
  47. }
  48. color(connector_color)
  49. translate([-sink_connector_extend(board),
  50. sink_width(board)/2 - sink_connector(board)[1]/2,
  51. sink_thickness(board)])
  52. cube(sink_connector(board));
  53. }