Pip-Boy inspired phone holder built around the PINE64 PinePhone
Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

69 linhas
1.8 KiB

  1. include <export.scad>
  2. use <BOSL/transforms.scad>
  3. use <BOSL/shapes.scad>
  4. include <BOSL/constants.scad>
  5. use <specs_strap.scad>
  6. use <common.scad>
  7. module pin() {
  8. segment_size=get_link_segment_size();
  9. h=segment_size.y;
  10. d=get_link_pin_diameter();
  11. back(h/2) xrot(90) cylinder(h=h, d=d, $fn=$preview ? 10 : 30);
  12. }
  13. module pin_socket_area() {
  14. segment_size=get_link_segment_size();
  15. h=segment_size.y-get_link_socket_slack().y;
  16. d=segment_size.z;
  17. back(h/2) xrot(90) cylinder(h=h, d=d, $fn=$preview ? 10 : 30);
  18. }
  19. module pin_socket() {
  20. difference() {
  21. pin_socket_area();
  22. scaleup = [
  23. ((get_link_pin_diameter() + get_link_socket_slack().x) / get_link_pin_diameter()),
  24. ((get_link_pin_diameter() + get_link_socket_slack().y) / get_link_pin_diameter()),
  25. ((get_link_pin_diameter() + get_link_socket_slack().z) / get_link_pin_diameter())
  26. ];
  27. scale(scaleup) pin();
  28. }
  29. }
  30. module arm() {
  31. segment_size=get_link_segment_size();
  32. arm_size=get_link_joiner_arm_size();
  33. fwd(segment_size.y/2 + arm_size.y/2 - 1) right(arm_size.x/2 - 1) cubi(arm_size, fillet=1, edges=EDGES_FRONT + EDGES_Y_ALL);
  34. }
  35. module armFront() {
  36. arm();
  37. }
  38. module armBack() {
  39. scale([1, -1, 1]) arm();
  40. }
  41. module armJoiner() {
  42. gap=get_link_socket_roundgap();
  43. arm_size=get_link_joiner_arm_size();
  44. segment_size=get_link_segment_size();
  45. joiner_size=[arm_size.x-get_link_socket_size().x, segment_size.y, segment_size.z];
  46. right(joiner_size.x/2 + get_link_socket_size().x/2 + gap) cubi(joiner_size, fillet=1, edges=EDGES_Z_ALL + EDGES_BOTTOM);
  47. }
  48. module link_arms() {
  49. $fn=$preview?4:20;
  50. armFront();
  51. armBack();
  52. armJoiner();
  53. }
  54. module link_connector_pin() {
  55. pin();
  56. link_arms();
  57. }
  58. module link_connector_socket() {
  59. pin_socket();
  60. }