Advertisement
digigram

Filament Gauge

Oct 14th, 2019
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. //Math by https://www.thingiverse.com/thing:1880517
  2. //https://jscalc.io/calc/1Cj6c1zxnr4q8Tzw
  3. diamInnerHole=85;
  4. diamInnerSpool = 91;
  5. diamOuterSpool = 200;
  6. widthScale=25;
  7. diamFilament=1.75;
  8. innerWidth=54;
  9.  
  10. translate([0,0,-1])
  11. linear_extrude(height=0.24+0.2+0.2+0.2){
  12. difference(){
  13. union(){
  14. translate([-diamOuterSpool/2,-widthScale/2]) square(size=[diamOuterSpool,widthScale]);
  15.  
  16. circle(d=diamInnerHole);
  17. }
  18. circle(d=diamInnerHole-4);
  19. }
  20. }
  21.  
  22. function getLength(d2) = (pow(d2,2)-pow(diamInnerSpool,2))*PI*innerWidth*0.8/4/pow(diamFilament,2)/1000;
  23.  
  24. maxFilament = getLength(diamOuterSpool);
  25.  
  26. function getDiam(L) = sqrt(pow(diamInnerSpool,2)+((L*4*1000*pow(diamFilament,2))/(PI*innerWidth*0.8)));
  27.  
  28. echo (getDiam(maxFilament));
  29.  
  30. perc = 0.75;
  31. for (perc=[0.02, 0.1, 0.25, 0.37, 0.5, 0.75]){
  32. rotate([90,0,0]) translate([getDiam(perc*maxFilament)/2,0,-widthScale/2]) cylinder(h=widthScale, r=1);
  33. rotate([0,0,90]) translate([-widthScale/2+1.5,getDiam(perc*maxFilament)/2,0]) linear_extrude(height=1) text(str(perc*100,"% - ",round(perc*maxFilament),"m"), size=3, font="Liberation Sans:style=Bold");
  34. rotate([90,0,0]) translate([-getDiam(perc*maxFilament)/2,0,-widthScale/2]) cylinder(h=widthScale, r=1);
  35. rotate([0,0,-90]) translate([-widthScale/2+1.5,getDiam(perc*maxFilament)/2,0]) linear_extrude(height=1) text(str(perc*100,"% - ",round(perc*maxFilament),"m"), size=3, font="Liberation Sans:style=Bold");
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement