5 releases (3 breaking)
new 0.4.0 | Mar 26, 2025 |
---|---|
0.3.0 | Mar 17, 2025 |
0.2.0 | Feb 15, 2025 |
0.1.1 | Dec 27, 2024 |
0.1.0 | Dec 26, 2024 |
#131 in Visualization
169 downloads per month
3.5MB
2.5K
SLoC
gcodeToObj
Rust 2021 Edition.
A G-code visualization tool written in rust
A nom based parser, outputs a "Wavefront Obj" file which can be imported into blender for visualization.
Both .gcode files and binary .bgcode files are accepted.
How to use
Pass the gcode file in as 'StdIn' and the program will send the obj file to 'StdOut' :-
cargo run --release -- < ../assets/benchy.gcode > benchy.obj
Binary ".bgcode" files must be passed in by filename :-
## Binary bgcoode files must be passed in as an argument because they are not utf-8 encoded
cargo run --release -- ../assets/both\ parts.bgcode > both.obj
Here the obj files are imported in to blender and processed.
Within blender :-
- This obj has been "Imported".
- Converted into a "Curve".
- Finally a circular bevel object has been applied to make the object solid [ A circle to represent a 0.1mm fibre].
Performance
Currently 9.9MByte bgcode file can be processed into a 16MBytes obj file in 1m13secs.
[ See the git repository associated with this project... assets/gear-holder-print-in-place_04n_022mm_pla_mk4_6h49m.bgcode ]
Future work
-
Make this nom-parser a "streaming / zero copy" parser. So only a small fragment of the large files is memory.
-
I have only tested against gcode files that use absolute positioning.
-
I must test with code than uses relative positioning.