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.

Spool Holder.scad 2.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. /*
  2. * Based on the "Fabrikator mini Esun Spool holder" by "Rlw":
  3. * http://www.thingiverse.com/thing:1324831
  4. *
  5. * Recreated and parameterized by:
  6. * Thomas Buck <xythobuz@xythobuz.de> in March 2016
  7. *
  8. * Licensed under the Creative Commons - Attribution license.
  9. *
  10. * Settings suggested by the original author:
  11. * Rafts: No
  12. * Supports: No
  13. * Resolution: 0.2mm
  14. * Infill: 15%
  15. */
  16. // Modify the overall length (moving the top part)
  17. size_modifier = -25;
  18. // Spool width
  19. spool_width = 35;
  20. // Distance of spool rollers from border
  21. balls_distance = 7.5;
  22. // width of outer spool border
  23. outer_border_width = 6;
  24. // set if the inner spool border should be rounded
  25. // to save some more material
  26. round_top = true;
  27. // -----------------------------------------------------------
  28. inner_border_width = round_top ? 10 : 5;
  29. body_height_modifier = round_top ? -19 : 0;
  30. // -----------------------------------------------------------
  31. // a cylinder cut in half in the middle
  32. module half_cylinder(h, r) {
  33. difference() {
  34. cylinder(h, r, r);
  35. translate([0, -r, 0]) cube([r, 2 * r, h]);
  36. }
  37. }
  38. // -----------------------------------------------------------
  39. //import("fabrikator_mini_gsun_5kg_175mm__spool_holder.stl");
  40. // upper body
  41. translate([5, -19, 0])
  42. cube([5, 51 + size_modifier + body_height_modifier, 40]);
  43. // lower body
  44. translate([5, -43, 0])
  45. cube([4, 24, 40]);
  46. // upper border
  47. translate([10, -19, 0])
  48. cube([9, 5, 40]);
  49. // upper lip
  50. translate([14, -24, 0])
  51. cube([5, 5, 40]);
  52. // lower border
  53. translate([9, -43, 0])
  54. cube([3, 3, 40]);
  55. // stabilization
  56. translate([0, size_modifier, 0]) difference() {
  57. rotate([0, 0, 45]) translate([2.5, -5, 0]) cube([4, 21, 40]);
  58. translate([5, -5, 0]) cube([10, 10, 40]);
  59. translate([-10, 13, 0]) cube([10, 10, 40]);
  60. }
  61. // inner border
  62. translate([0, size_modifier, 0])
  63. scale([1, 0.85, 1])
  64. translate([0, 15.5, 20])
  65. rotate([-90, 0, 0])
  66. rotate([0, 90, 0])
  67. half_cylinder(inner_border_width, 20);
  68. // outer border
  69. translate([0, size_modifier, 0])
  70. scale([1, 0.85, 1])
  71. translate([-(spool_width + outer_border_width), 15.5, 20])
  72. rotate([-90, 0, 0])
  73. rotate([0, 90, 0])
  74. half_cylinder(outer_border_width, 20);
  75. // roll plane
  76. translate([0, size_modifier, 0])
  77. translate([-(spool_width + outer_border_width), 13, 0])
  78. cube([spool_width + outer_border_width + inner_border_width, 1, 40]);
  79. // roll
  80. translate([0, size_modifier, 0])
  81. scale([1, 0.4, 1])
  82. translate([-spool_width, 33, 20])
  83. rotate([-90, 0, 0])
  84. rotate([0, 90, 0])
  85. half_cylinder(spool_width, 20);
  86. // rolling balls
  87. translate([0, size_modifier, 0])
  88. translate([-(spool_width - balls_distance), 19, 20])
  89. sphere(r = 3);
  90. translate([0, size_modifier, 0])
  91. translate([-balls_distance, 19, 20])
  92. sphere(r = 3);