sd300_z100.scad 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. // from https://github.com/janssen86/OpenSCAD-Getriebebibliothek
  2. use <getriebe.scad>
  3. /* [OpenSCAD] */
  4. cross_section = false;
  5. /* [Zahnrad] */
  6. // Number of teeth in this gear
  7. Teeth = 70; // [20,30,35,40,50,55,60,65,70,75,80,100,120]
  8. /* [Hidden] */
  9. $fn=120;
  10. // Proxxon SD300 / Hobbymat MD65 use modul 1.0
  11. Modul = 1.0; // [0.05,0.06,0.08,0.10,0.12,0.16,0.20,0.25,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1,1.25,1.5,2,2.5,3,4,5,6,8,10,12,16,20,25,32,40,50,60]
  12. Teeth_Limit = 500;
  13. intersection() {
  14. difference() {
  15. H=[8,1.7]; // heights
  16. B=[20,32]; // bore
  17. union() {
  18. translate([0,0,-H[0]/2]) stirnrad(Modul, Teeth, H[0], 0); // center
  19. if (Teeth>30) translate([0,0,H[0]/2]) cylinder(d=B[1], h=H[1]);
  20. if (Teeth>Teeth_Limit) {
  21. R=(Teeth*Modul)/2*2/3;
  22. translate([0,R,H[0]/2]) linear_extrude(height=0.5) text(text=str(Teeth), size=3.5, halign="center", valign="center");
  23. }
  24. }
  25. if (Teeth>20) { // central axis
  26. cylinder(d=B[0], h=3*H[0], center=true);
  27. translate([0,-B[0]/2,0]) cube([4,4,2*H[0]], center=true); // Notch
  28. }
  29. else {
  30. cylinder(d=6, h=3*H[0], center=true);
  31. }
  32. if (Teeth==30) translate([0,B[0]/2+2,H[0]/2-0.5])
  33. linear_extrude(height=0.6) text(text=str(Teeth), size=2.5, halign="center", valign="center");
  34. else if (Teeth<=Teeth_Limit) translate([0,B[0]/2+2.5,(H[0]+H[1])/2+0.2])
  35. linear_extrude(height=1) text(text=str(Teeth), size=3.5, halign="center", valign="center");
  36. }
  37. if (cross_section) translate([-50,0,0]) cube(100, center=true); // cross section view for debugging
  38. }
  39. // Further info: https://www.weltderfertigung.de/archiv/jahrgang-2018/ausgabe-januar-2018/wechselradberechnung-leichtgemacht.php