prusa3d / libbgcode

Prusa Block & Binary G-code reader / writer / converter
GNU Affero General Public License v3.0
48 stars 15 forks source link

libbgcode

Prusa Block & Binary G-code reader / writer / converter

Description

A new G-code file format featuring the following improvements over the legacy G-code: 1) Block structure with distinct blocks for metadata vs. G-code 2) Faster navigation 3) Coding & compression for smaller file size 4) Checksum for data validity 5) Extensivity through new (custom) blocks. For example, a file signature block may be welcome by corporate customers.

libbgcode library is split into three API:

core API

core api contains the basic definitions and functionality which allow to read a G-code file in binary format as defined into SPECIFICATIONS.

See src/LibBGCode/core/core.hpp

binarize API

binarize api contains the definitions and functionality which allow to write a G-code file in binary format as defined into SPECIFICATIONS.

See src/LibBGCode/binarize/binarize.hpp

convert API

convert api contains the functionality which allow to convert G-code files to/from binary format as defined into SPECIFICATIONS.

See src/LibBGCode/convert/convert.hpp

Specifications

See SPECIFICATIONS for file format specifications.

Building

See BUILDING for building instructions.

Command line application

See BGCODE for instructions.

References

We would like to thank Scott Vokes (@atomicobject) for his work on heatshrink and Scott Mudge (@scottmudge) for developing and maintaining MeatPack.