My self designed awesome 3D printer
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.

rail_mount.scad 2.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. // #######################################################
  2. // ###################### Mechanics ######################
  3. // #######################################################
  4. rail_mount_wall = 5;
  5. rail_mount_len = 10;
  6. rail_mount_block = 22;
  7. rail_dia = 8;
  8. rail_y_off_1 = 10;
  9. cutout_width = 0.5;
  10. rail_mount_height = rail_y_off_1 + 6;
  11. rail_y_off = rail_dia / 2 + rail_y_off_1;
  12. draw_rail_mount = false;
  13. // #######################################################
  14. if (draw_rail_mount) rail_mount(30, 20);
  15. module rail_mount(slot, rail_mount_len = rail_mount_len) {
  16. $fn = 20;
  17. echo(rail_mount_len=rail_mount_len);
  18. difference() {
  19. union() {
  20. // main body
  21. cube([rail_mount_wall, rail_mount_len, 2 * slot]);
  22. // rail clamp
  23. translate([rail_mount_wall, 0, ((2 * slot) - rail_mount_block ) / 2])
  24. cube([rail_mount_height, rail_mount_len, rail_mount_block]);
  25. }
  26. // M4 slot mounting holes
  27. translate([-1, rail_mount_len / 2, slot / 2])
  28. rotate([0, 90, 0])
  29. cylinder(d = 4.2, h = rail_mount_wall + 2);
  30. translate([-1, rail_mount_len / 2, slot * 3 / 2])
  31. rotate([0, 90, 0])
  32. cylinder(d = 4.2, h = rail_mount_wall + 2);
  33. translate([rail_dia / 2 + rail_y_off_1, -1, slot])
  34. rotate([-90, 0, 0])
  35. cylinder(d = rail_dia + 0.1, h = rail_mount_len + 2);
  36. // clamping cutout
  37. translate([rail_y_off_1 + (rail_dia - cutout_width) / 2, -1, ((2 * slot) - (rail_mount_block + 2)) / 2])
  38. cube([cutout_width, rail_mount_len + 2, rail_mount_block + 2]);
  39. translate([-1, rail_mount_len / 2, slot + rail_mount_block / 3])
  40. rotate([0, 90, 0]) {
  41. cylinder(d = 3.2, h = rail_mount_height + rail_mount_wall + 2);
  42. cylinder(d = 6.1, h = 3.8, $fn = 6);
  43. translate([0, 0, rail_mount_height + rail_mount_wall -2.5])
  44. cylinder(d = 6.1, h = 3.8);
  45. }
  46. translate([-1, rail_mount_len / 2, slot - rail_mount_block / 3])
  47. rotate([0, 90, 0]) {
  48. cylinder(d = 3.2, h = rail_mount_height + rail_mount_wall + 2);
  49. cylinder(d = 6.1, h = 3.8, $fn = 6);
  50. translate([0, 0, rail_mount_height + rail_mount_wall -2.5])
  51. cylinder(d = 6.1, h = 3.8);
  52. }
  53. translate([-10, -10, -22])
  54. cube([30, rail_mount_len + 20, 30]);
  55. translate([-10, -10, 2 * slot - 8])
  56. cube([30, rail_mount_len + 20, 30]);
  57. }
  58. }