Ultimaker Cura is free, easy-to-use 3D printing software trusted by millions of users. Fine-tune your 3D model with 400+ settings for the best slicing and printing results. Posted April 2, 2019 Cura.exe has stopped working I can verify the exact same behavior on Win 8 64, Cura 2.3.1 will run and Cura 2.4 will not run Link to post.
This document explains in detail what goes into building Cura on Windows from scratch. We'll install all the needed tools and libraries and compile everything.
Guides on how to build on other operating systems or more technical implementation details can be found at https://github.com/Ultimaker/cura-build.
Python and libraries
To install Python on Windows, somply download the installer for Windows from https://www.python.org/downloads/windows/. You'll need version 3.6.x. Python 3.6 comes with pip
, a package manager for Python. We'll use pip
later on to install some dependencies.
PyQt5
Qt is a cross-platform native library for building user interfaces. Qt Quick is a UI abstraction layer and uses template files to define the user interface. These files have the .qml extension. We then use PyQt5 for binding these Qt components to the Python code so we move data around. We can install PyQT using pip:
This will also install Qt 5 and Qt Quick.
ZeroConf
ZeroConf is a library for zero configuration networking. It's used to detect networked printers in your local network automatically.
You might get a warning about missing some Visual Studio build tools. This warning contains a download URL. Simply follow this URL and install the build tools. After that, refresh your command prompt and re-run the command.
NumPy
Python numbers library. Download the library from http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy and then run pip3 install <your_whl_file>.whl
to install it.
SciPy
Python science library. Download the library from http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy and then run pip3 install <your_whl_file>.whl
to install it.
PySerial
Python serial library, used to communicate with printers over USB.
SIP
Python library for interfacing with native libraries written in C and c++.
NumPy-STL
Python library for importing STL files.
cx_Freeze
Python library for creating stand-alone executables from Python code. Download the library from https://pypi.python.org/pypi/cx_Freeze and then run pip3 install <your_whl_file>.whl
to install it. Last known working version is cx_Freeze-5.0-cp35-cp35m-win_amd64.whl
.
Tools & applications
You'll need the following tools and applications to build CuraEngine and Cura.
Microsoft Visual Studio 2017
You can download the install from https://www.visualstudio.com/downloads/. The community edition is good enough, but Ultimaker also provides the professional edition for employees. Simply follow the installation procedure, this can take a while.
Git
To install Git on Windows, simply download the installer for Windows from https://git-scm.org. Run the downloaded executable to install Git.
MSys2
MSys2 is a Unix terminal emulator for Windows. It makes it easier to work with tools like MinGW, Make, and others. We'll use MSys2 to install all the build toolchains as well. To install MSys2, simply download the installer from http://www.msys2.org. Be sure to select the one that fits your system architecture (probably x86_64).
MinGW
Cura Exellent
MinGW is a GCC compiler for Windows. You can download the 64 bit version by clicking on the Sourceforge link on this page: https://mingw-w64.org/doku.php/download/mingw-builds. When running the installer there are several options to choose from. Make sure you select the following configuration:
- Version: 7.1.0
- Architecture: x86_64
- Threads: posix
- Exception: seh
- Build revision: 2
Cura 3d Printer Software Download
Click through the setup until it finishes.
In order to use MinGW in for example CMake-gui you'll need to add it to your PATH environment variable. To do this, go to the Windows start menu (W10) and type 'environment'. That will give you a system config result you can navigate to. In there, click 'Environment Variables...', double click on 'Path' and click 'Browse'. You want to add the following paths to this list:
- C:msys64mingw64bin
- C:msys64mingw64x86_64-w64-mingw32bin
After this, restart any Command Prompt or CMake-gui innstances to refresh the environment.
NSIS 3
NSIS is a project that creates Windows installers. It's only needed when building new releases of Cura on your machine. Download the install from http://nsis.sourceforge.net/Main_Page and follow the installation instructions.
CMake
Cmake is a tool to generate Makefiles that are needed for compiling applications. It comes with a GUI that is handy for configuring your build (which compiler, build options, flags, etc.). Download the Windows installer from https://cmake.org/download/ and follow the installation steps.
Dependencies
Protobuf
Protobuf is a data serialization library with handlers to many languages. Download the GitHub repository and follow the compilication steps. Because CuraEngine will be compiled with MinGW, but Python is pre-compiled on Windows with Visual Studio (using NMake), we'll need to compile protobuf twice: once for CuraEngine and once for the Python library to use in Cura.
With MinGW
Run this in the MSys2 terminal.
This will place the build artifacts in a folder called C:workspaceinstallprotobufmingw3.2.1release
. These artifacts are needed for compiling libArcus and CuraEngine later on.
With NMake
Run this in the Visual Studio Native Tools Command Prompt. That will inject the needed environment.
This will place the build artifacts in a folder called C:workspaceinstallprotobufvs3.2.1release
. These artifacts are needed for compiling libArcus and Cura later on.
libArcus
LibArcus facilitates communication between Cura's front-end and the back-end engine. It uses protobuf to do this. LibArcus contains handles to both the front-end and the back-end of Cura. LibArcus has a similar build process to protobuf.
With MinGW
Run this in the MSys2 terminal.
This will place the build artifacts in a folder called C:workspaceinstallarcusmingwmasterrelease
. These artifacts are needed for compiling CuraEngine later on.
With NMake
Run this in the Visual Studio Native Tools Command Prompt. That will inject the needed environment.
This will place the build artifacts in a folder called C:workspaceinstallarcusvsmasterrelease
. These artifacts are needed for compiling Cura later on.
libSavitar
LibSavitar is a c++ library to import 3MF files into Cura. LibSavitar is only used on the front-end, so we only have to build for Visual Studio. Also libSavitar has a simular build process to libArcus and protobuf.
With NMake
Run this in the Visual Studio Native Tools Command Prompt. That will inject the needed environment.
This will place the build artifacts in a folder called C:workspaceinstallsavitarvsmasterrelease
. These artifacts are needed for compiling Cura later on
Uranium
Uranium is the UI framework that is the basis of the Cura UI. Uranium is written in Python and QT Quick so it does not have to be compiled. You need to clone the repository and link it as dependency in PyCharm when we're setting up Cura.
Building CuraEngine
The CuraEngine is a C++ console application for 3D printing GCode generation. It has been made as a better and faster alternative to the old Skeinforge engine.
With MinGW
Run this in the MSys2 terminal.
Cura Export Settings
Alternatively you can use the CMake GUI to configure the build process.
- Delete the cache.
- Set
MinGW Makefiles
as the generator. - Set the following key/value pairs in the UI
- Arcus_DIR=C:/workspace/install/arcus/mingw/master/release/Lib/cmake/Arcus
- CMAKE_INSTALL_PREFIX=C:/workspace/install/curaengine/mingw/master/release
- Protobuf_INCLUDE_DIR=C:/workspace/install/protobuf/mingw/master/release/include
- Profobuf_LIBRARY_DEBUG=C:/workspace/install/protobuf/mingw/master/release/lib/libprotobuf.a
- Profobuf_LIBRARY_RELEASE=C:/workspace/install/protobuf/mingw/master/release/lib/libprotobuf.a
- Profobuf_LITE_LIBRARY_DEBUG=C:/workspace/install/protobuf/mingw/master/release/lib/libprotobuf-lite.a
- Profobuf_LITE_LIBRARY_RELEASE=C:/workspace/install/protobuf/mingw/master/release/lib/libprotobuf-lite.a
- Profobuf_PROTOC_EXECUTABLE=C:/workspace/install/protobuf/mingw/master/release/bin/protoc.exe
- Profobuf_PROTOC_LIBRARY_DEBUG=C:/workspace/install/protobuf/mingw/master/release/lib/libprotoc.a
- Profobuf_PROTOC_LIBRARY_RELEASE=C:/workspace/install/protobuf/mingw/master/release/lib/libprotoc.a
- BUILD_TESTS=OFF
Cura.exe Has Stopped Working
From here continue with the mingw32-make
commands.
Once it's done, you have the compiled CuraEngine.exe ready for use in the folder C:/workspace/install/curaengine/mingw/master/release
. You can test if it's working well by running the following instructions in a terminal: