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.7KB

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