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.2KB

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