Plugin: Cura

Phil Hord edited this page Aug 2, 2016 · 21 revisions

The OctoPrint Cura plugin comes bundled with OctoPrint (starting with 1.2.0).

It allows slicing of STL files uploaded to OctoPrint directly via the CuraEngine up to and including version 15.04 and supersedes the slicing support integrated into OctoPrint so far.


Note: The current development version of CuraEngine has changed its calling parameters in such a way that the current implementation of the Cura plugin is not compatible to it. Since also the profile format changed, a new plugin will be provided once the new version of Cura and CuraEngine becomes stable (it is still considered Beta at the time of writing this and the interface is still changing). Until this becomes available please use only CuraEngine versions up to and including 15.04 (or the legacy branch in the CuraEngine repository).


The plugin offers a settings module that allows configuring the path to the CuraEngine executable to use, as well as importing and managing Cura slicing profiles to be used (.ini files as can be exported from Cura up to and including version 15.04). Please note that the Cura Plugin will use the printer parameters you configured within OctoPrint (meaning bed size and extruder count and offsets) for slicing, not those included within the profile.

Cura plugin settings dialog

Importing an existing Cura profile

Initial setup

Before OctoPrint allows you to slice uploaded STL files through the Cura plugin you need to make sure some initial setup has been done:

  1. Configure the full path to your copy of the CuraEngine binary.

    This needs to be the absolute path to the actual CuraEngine binary, version up to and including 15.04. Make sure the binary is executable. Please see below for more information.

    Note: If you are running OctoPi >= 0.12 then this has already been taken care of for you.

  2. Import at least one Cura slicing profile to use.

    Please be aware that the profile import accepts only Cura .ini profiles from versions up to 15.04. Neither the .json profile format from Cura versions starting with 15.06 is supported, nor are the custom Cura profile formats that third party tools like e.g. Repetier create.

These steps can be performed in the settings dialog of the plugin within OctoPrint.

Installing CuraEngine


Note: If you are running OctoPi >= 0.12, a working CuraEngine binary of version 15.04 is already included as /usr/local/bin/cura_engine and the plugin is pre-configured to use that, so you shouldn't have to do anything here.


You'll need a current build of CuraEngine in order to be able to use the Cura OctoPrint plugin. You can take this from a full install of Cura (you'll find it in the installation directory) or alternatively compile it yourself.

If you previously used the old variant of the Cura integration, you probably still have a fully functional binary lying around in the installation folder of the full install of Cura you used then -- just put the path to that in the plugin settings.

Compiling for Raspbian


Note: A binary of CuraEngine 14.12 precompiled on Raspbian 2015-01-31 is available here. Don't forget to make it executable after copying it to your preferred destination on your Pi (suggestion: /usr/local/bin) with chmod +x cura_engine. Use at your own risk.


If your g++ version is 4.8 or later, the build is straightforward:

sudo apt-get -y install gcc g++
git clone -b legacy https://github.com/Ultimaker/CuraEngine.git
make -C CuraEngine

After the build has completed, you'll find your shiny new build of CuraEngine in the build folder (full path for above example: ~/CuraEngine/build/CuraEngine).


Note: If you have trouble with the build, it may be due to your compiler version. Install the 4.7 version of gcc and g++ and patch CuraEngine's Makefile (see this post) in order for the compilation to work on Raspbian builds circa 2014 (e.g. OctoPi):

 sudo apt-get -y install gcc-4.7 g++-4.7
 git clone -b legacy https://github.com/Ultimaker/CuraEngine.git
 cd CuraEngine
 wget http://bit.ly/curaengine_makefile_patch -O CuraEngine.patch
 patch < CuraEngine.patch
 make CXX=g++-4.7

Note: If you are having issues getting gcc and g++ to update, you can also follow the instructions set out in the pre-1.2 OctoPrint instructions using the Jesse stream. Once you get to the point in the old instructions where you can successfully run "Make", resume with the rest of the steps above.


Configuration options

plugins:
  cura:
    # path to the CuraEngine <= 15.04 binary to use
    cura_engine: /path/to/CuraEngine

    # whether to log the slicing output to plugin_cura_engine.log
    debug_logging: false

    # identifier of the default profile to use for slicing
    default_profile: some_profile

Source code

The source of the Cura plugin is bundled with OctoPrint and can be found in its source repository under src/octoprint/plugins/cura.