Aucune description
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

beam.scad 2.5KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. $fa=1/1;
  2. $fs=1/2;
  3. bissl=1/100;
  4. wall=1.6;//twice nozzle diameter is fine, walls of triangles
  5. hole=3; //hole for mounting thread inserts
  6. hd=10; //horizontal distance between mounting points, depends on mounting hole distance in the actuator
  7. height=40; //dimension of the beam in the direction of tambourine depth
  8. vd=height-wall; //vertical distance between mounting holes
  9. segments=14; //number of mounting points, defines the beam length
  10. radius=1; //rounding of inner corners
  11. thickness=2*wall+hole; //thickness of the beam, keep some material to properly hold the threaded insert on the side
  12. offset=wall/2+hole/2;
  13. difference() {
  14. linear_extrude(thickness, convexity=4) difference() {
  15. offset(r=-radius)offset(r=radius)union() {
  16. for (i=[0:hd:hd*(segments-1)]) translate ([i,0]) {
  17. for (tr=[[[hd,0],[0,0]],[[-hd/2,vd],[0,0]],[[hd/2,vd],[0,0]],[[hd/2,vd],[-hd/2,vd]]]) hull() { //diagonals
  18. translate(tr[0])circle(d=wall);
  19. translate(tr[1]) circle(d=wall);
  20. }
  21. for (tr=[[hd/2,vd-offset],[-hd/2,vd-offset],[hd,offset],[0,offset]]) translate(tr)circle(d=2*wall+hole); //big circles
  22. }
  23. //left vertical wall, not generated by the loop
  24. for (tr=[[[-hd/2-offset,0],[0,0]],[[-hd/2-offset,0],[-hd/2-offset,vd]],[[-hd/2-offset,vd],[-hd/2,vd]]]) hull() {
  25. translate(tr[0])circle(d=wall);
  26. translate(tr[1]) circle(d=wall);
  27. }
  28. //solid triangle to jhold threaded inserts
  29. hull() for (tr=[[0,0],[-hd/2-offset,0],[-hd/2-offset,vd],[-hd/2,vd]]) translate(tr) circle(d=wall);
  30. //right vertical wall, not generated by the loop
  31. for (tr=[[[hd*segments+offset,0],[0,0]],
  32. [[hd*segments+offset,0],[hd*segments+offset,vd]],
  33. [[hd*segments+offset,vd],[hd*(segments-0.5),vd]],
  34. [[hd*segments,0],[hd*(segments-0.5),vd]]])
  35. hull() {
  36. translate(tr[0])circle(d=wall);
  37. translate(tr[1]) circle(d=wall);
  38. }
  39. }
  40. for (i=[0:segments]) {
  41. translate([i*hd,offset]) circle(d=hole);
  42. translate([(i-0.5)*hd,vd-offset]) circle(d=hole);
  43. }
  44. }
  45. //mounting holes for threaded inserts, three just in case, it's better to use the middle one
  46. translate([-hd/2-offset-wall/2,height/4-wall,thickness/2])rotate([0,90,0])cylinder(d=hole,h=hd-wall);
  47. translate([-hd/2-offset-wall/2,height/2-wall/2,thickness/2])rotate([0,90,0])cylinder(d=hole,h=hd-wall);
  48. translate([-hd/2-offset-wall/2,height*3/4,thickness/2])rotate([0,90,0])cylinder(d=hole,h=hd-wall);
  49. }