Pip-Boy inspired phone holder built around the PINE64 PinePhone
Você não pode selecionar mais de 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. }