My self-made 3D-printable designs, mainly in OpenSCAD
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

Abus.scad 1.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /*
  2. * Created by:
  3. * Thomas Buck <xythobuz@xythobuz.de> in May 2016
  4. *
  5. * Licensed under the Creative Commons - Attribution license.
  6. */
  7. // -----------------------------------------------------------
  8. hole_distance = 70;
  9. hole_size = 5;
  10. hook_width = 5;
  11. hook_length = 5;
  12. hook_height = 6.5;
  13. hook_strength = 2;
  14. hook_outer_distance = 71;
  15. hook_angle = 18;
  16. base_width = 78;
  17. base_depth = 10;
  18. base_height = 1;
  19. $fn = 15;
  20. // -----------------------------------------------------------
  21. module hook() {
  22. cube([hook_width, hook_strength, hook_height]);
  23. translate([0, 0, hook_height])
  24. cube([hook_width, hook_length, hook_strength]);
  25. }
  26. module hooks() {
  27. translate([(hook_outer_distance / 2) - hook_width, 0, 0])
  28. hook();
  29. translate([-(hook_outer_distance / 2) + hook_width, 0, 0])
  30. rotate([0, 0, 180])
  31. hook();
  32. }
  33. module base() {
  34. difference() {
  35. union() {
  36. cube([base_width, base_depth, base_height]);
  37. translate([0, base_depth, 0])
  38. cube([13, 8, base_height]);
  39. translate([base_width - 13, -base_depth + 2, 0])
  40. cube([13, 8, base_height]);
  41. }
  42. translate([(base_width - hole_distance) / 2, base_depth / 2, -1])
  43. cylinder(d = hole_size, h = base_height + 2);
  44. translate([(base_width + hole_distance) / 2, base_depth / 2, -1])
  45. cylinder(d = hole_size, h = base_height + 2);
  46. }
  47. }
  48. // -----------------------------------------------------------
  49. translate([-base_width / 2, -base_depth / 2, 0])
  50. base();
  51. translate([0, 0, base_height])
  52. rotate([0, 0, -hook_angle])
  53. hooks();