Loading

Filament Length/Weight/Volume Estimator for 4d G-Code

by jag, published

Filament Length/Weight/Volume Estimator for 4d G-Code by jag Jan 5, 2012

Description

This is a quick perl script to scan through a gcode file and figure out how much filament will be required.
It reads all of the "E" moves and adds them up each time they get reset to 0.
This will only work with absolute moves, not relative moves.

I did a 5 hour print and weighed it. The script said it should way 48.167 g. My kitchen scale said it weight 50 g.
Pretty good!

Recent Comments

view all
Translated it to php, now available on github:
https://github.com/algspd/Filament-Estimator-for-GCode
I haven't tried this script on windows or with gcode from makerware.
I'll try it out with makerware gcode when I get a chance. There might be something different about the gcode.
I need help please!! I'm on Windows, running the script from command line. I put all the gcode files and the script into C:/ and I write "C:/filament_length.pl -f 1.gcode" but I only get zeros in all the results. gcode generated with MakerWare. What am I doing wrong?

Liked By

view all

Tags

License

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag. Print Thing Tag

Instructions

After downloading this script you may have to make it executable (chmod gou+x filament_length.pl)

To use it just pipe the gcode file through the perl script:

cat mygcodefile.gcode | ./filament_length.pl

(replace the ./ with whatever the path is to the script)

or, you can specify the file on the command line like this:

./filament_length.pl -f filename.gcode

you can also specify the density (in g/cc) and size of the filament (in mm)

./filament_length.pl -d 1.25 -s 2.75 -f filename.gcode

You can include or omit any of the command switches you like, it reads from stdin if you omit the filename and a density of 1.05 and diameter of 1.75 if you omit them.
The density of ABS is around 1.05 g/cc, PLA should be around 1.25 g/cc

It will produce a report like the following:

Cross sectional area of filament: 0.0240527984375 cm^2

macbookpro:~ jag$ ./filament_length.pl -d 1.25 -f ~/Dropbox/repg files/Dreidel03.gcode
Filament diameter is 1.75 mm
Filament density is 1.25 g/cc
Cross sectional area of filament: 0.0240527984375 cm^2

Total filament: 738.936 cm
Volume: 17.773 cc
Weight: 22.217 g
Translated it to php, now available on github:
https://github.com/algspd/Filament-Estimator-for-GCode
I need help please!! I'm on Windows, running the script from command line. I put all the gcode files and the script into C:/ and I write "C:/filament_length.pl -f 1.gcode" but I only get zeros in all the results. gcode generated with MakerWare. What am I doing wrong?
I haven't tried this script on windows or with gcode from makerware.
I'll try it out with makerware gcode when I get a chance. There might be something different about the gcode.
Can you share the .exe ? for those non coders :p
Perl isn't really a language that compiles to an executable. It's an interpreted script language. You just need to have a perl interpreter installed to run it.
Not being much of a windows users, I can't help you there.
Thanks, I'll give it a try. And let you know.
can this be used with gcode from any source, or Dimension printers' gcode only?
jag - in reply to bsg
By dimension, I meant the dimension plugin to skein forge. I should probably change it to 4d gcode. It just has to be gcode that specifies X,Y,Z
&
amp; E in the G1 moves instead of setting the RPM for the extruder and doing moves with just X, Y and Z.
Top