Skip to content

Latest commit

 

History

History
37 lines (24 loc) · 1.85 KB

Preprocessor.md

File metadata and controls

37 lines (24 loc) · 1.85 KB

#Preprocessor There are many flavors of gcode created by many programs. To keep makerbot_driver manageable, we can only handle a subset of those commands well. In order to allow greater compatiblity, makerbot_driver has a set of preprocessors to convert many common gcode flavors into a gcode twhich makerbot_driver can easily use.

##Adding Preprocessors e encourage users to add preprocessors of their own into s3g. We will accept any preprocessor with 'example_' as a name, with or without tests. We will only accept as preprocessor as'PreProcessorX' if it has excellent unit test coverage, comparbile to otuer PreProcessors.

##List of Preprocessors We have provided an array of common Preprocessors for older MakerBot variants of gcode, as well as some common slicing engines.

###Preprocessor An interface that all preprocessors inherit from.

###Skeinforge 50 Preprocessor A preprocessor that is meant to be run on a .gcode file skeined by skeinforge-50 WITHOUT start and end gcodes.

* Removes M104 commands if they do not include a T code
* Removes M105
* Removes M101
* Removes M103
* Replaces M108 with M135

##Architecture All preprocessors should inherit from the Preprocessor python class in makerbot_driver/Preprocessors/. For processors without strong test coverage, please name them example_PreProcessorXYZ. With complete coverage, we will upgrade them to simply PreProcessorXYZ. See tests directory for unit test examples.

The preprocessor class has only two functions which all inheritors must implement:

###init(self) The main constructor.

###process_file(self, input_path, output_path) The main function for a Preprocessor. Takes two parameters, an input_path and an output_path.

* input_path: The filepath to the gcode file that needes to get processed
* output_path: The filepath to the soon-to-be processed gcode file