Friday, November 26, 2010

Which GCode Generator to Use?

Once you have something cool to build in STL format, you have to convert it into GCode format. This is essentially the series of commands the printer needs to be able to print each layer, but there are several different options for tools, so which one should I use?


RepRap Host Software


The RepRap Host Software not only controls the printer, but it will also convert STL files into GCode format. I must admit I haven't spent too much time investigating this as an option for two reasons. Firstly, the host software doesn't appear to work with the Gen6 electronics. The Gen6 sends some messages that the Host Software doesn't understand and I haven't really spent any time trying to figure out what and why. The second reason is that there are lots of parameters to configure and the documentation and forum posts indicate that a lot of it is no longer used. I'm too keen to be printing to figure out what' used and what isn't. Perhaps one day I'll get round too it.


RepSnapper


RepSnapper is another tool that both controls the printer and generates the GCode. It is very quick at generating GCode, although I haven't had much success with build quality with this tool yet. I'm not sure I understand all the configuration options yet.


Skeinforge


A Thing from Thingiverse processed through Skeinforge
Skeinforge is just a GCode generator, but it is incredibly complex. There are lots of configuration parameters allowing you to tweak nearly everything about the build. I've had a lot of success with prints generated from Skeinforge, they are usually very high-quality. It just takes some tuning to get it right. 


My current selection is to use Skeinforge for the GCode generation as it gives me a lot of control and its written in Python, a language I'm much more comfortable manipulating if I need too.  The only downside is it needs some fiddling around to get set-up correctly and the GCode it generates has some commands that Mendel doesn't like, as it expects a PWM driven extruder, not a stepper controlled one. I haven't figured out how to stop it generating these duff commands yet, so I've written a script to remove them. I also don't like the start-up code it creates, so my script fixes that too. 


I then use RepSnapper to control the printer and print the object. Still plenty of tweaking to do, but the results are fairly pleasing so far using PLA.

3 comments:

  1. Could you please post the code you used to get the motors working with skeinforge code? Thank you!

    ReplyDelete
  2. If you are referring to the script I created to remove the unwanted commands from the Skeinforge output, you don't need it any more. Skeinforge has a feature now that allows you to specify commands you want it to remove from the output. If you look in the replace.csv file, you can add any commands you want removed or replaced here. In my installation it is in C:\Documents and Settings\\.skeinforge\alterations

    ReplyDelete
  3. Thanks for getting back to me. I was thrown on this project with NO programmimg skills. I'm still trying to teach myself (and not getting very far!) I need to convert m108 s to m108 r, right?

    ReplyDelete