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.

rear-leg.scad 2.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. /*
  2. * Created by:
  3. * Thomas Buck <xythobuz@xythobuz.de> in June 2016
  4. *
  5. * Licensed under the
  6. * Creative Commons - Attribution - Share Alike license.
  7. */
  8. // -----------------------------------------------------------
  9. head_height = 14.7;
  10. head_width = 20.8;
  11. head_intersect_angle = 225;
  12. head_intersect_x = 19;
  13. head_intersect_y = 21;
  14. head_intersect_off_x = -3.5;
  15. head_intersect_off_y = -4.9;
  16. nub_width = 5;
  17. nub_height = 1;
  18. nub_depth = 1;
  19. nub_off = 8.9;
  20. hole = 2.7;
  21. hole_dist_x = 3.95;
  22. hole_dist_y = 5.85;
  23. height = 2.5;
  24. arm_height = 11;
  25. arm_width = 65;
  26. foot_height = 12;
  27. foot_length = 20;
  28. foot_angle = 45;
  29. foot_off_x = -16;
  30. foot_off_y = -1;
  31. cutout_1_width = 8;
  32. cutout_1_height = 4;
  33. cutout_1_x = 25;
  34. cutout_1_y = 5;
  35. cutout_1_angle = 20;
  36. cutout_2_width = 8;
  37. cutout_2_height = 4;
  38. cutout_2_x = 42.5;
  39. cutout_2_y = 5;
  40. cutout_2_angle = 20;
  41. cutout_3_width = 8;
  42. cutout_3_height = 4;
  43. cutout_3_x = 60;
  44. cutout_3_y = 5;
  45. cutout_3_angle = 20;
  46. $fn = 20;
  47. // -----------------------------------------------------------
  48. difference() {
  49. union() {
  50. intersection() {
  51. cube([head_width, head_height, height]);
  52. rotate([0, 0, head_intersect_angle])
  53. translate([-head_intersect_x + head_intersect_off_x, head_intersect_off_y, 0])
  54. cube([head_intersect_x, head_intersect_y, height]);
  55. }
  56. translate([head_width - nub_width, nub_off, height])
  57. cube([nub_width, nub_height, nub_depth]);
  58. translate([head_width, 0, 0])
  59. cube([arm_width, arm_height, height]);
  60. translate([head_width + arm_width + foot_off_x, foot_off_y, 0])
  61. rotate([0, 0, -foot_angle])
  62. cube([height, foot_length, foot_height]);
  63. }
  64. translate([hole_dist_x, hole_dist_y, -1])
  65. cylinder(d = hole, h = height + 2);
  66. translate([head_width + arm_width - 20, -10, -1])
  67. cube([10, 10, 10 + foot_height]);
  68. translate([head_width + arm_width - 8, arm_height, -1])
  69. cube([10, 10, 10 + foot_height]);
  70. translate([head_width + arm_width + foot_off_x, foot_off_y, -1])
  71. rotate([0, 0, -foot_angle])
  72. translate([2, 0, 0])
  73. cube([10, 20, 10 + foot_height]);
  74. translate([cutout_1_x, cutout_1_y, -1])
  75. rotate([0, 0, -cutout_1_angle])
  76. cube([cutout_1_width, cutout_1_height, height + 2]);
  77. translate([cutout_2_x, cutout_2_y, -1])
  78. rotate([0, 0, -cutout_2_angle])
  79. cube([cutout_2_width, cutout_2_height, height + 2]);
  80. translate([cutout_3_x, cutout_3_y, -1])
  81. rotate([0, 0, -cutout_3_angle])
  82. cube([cutout_3_width, cutout_3_height, height + 2]);
  83. }