/CuraByDagoma

Cura by Dagoma was originally forked from Legacy Cura. It is a UI to generate gcodes from 3d objects.

Primary LanguagePython

Cura by Dagoma

Before releasing a new version, please read the CHECK file.

About

Cura by Dagoma was originally forked from Legacy Cura. It is built with the following components:

Windows only :

Introduction

The slicer binary is built on the fly. It is a full C++ project. The compilation process is based on standard Makefile.

Using WinPython for Windows

WinPython is used for production. In development, we use a python virtual environment (see below).

First download WinPython according to your architecture system. In this project, we are using Python 3.9.10.

After extracting it, open the WinPython Command Prompt.exe in the WinPython folder. Download the necessary dependencies using pip :

pip install wheel setuptools pyserial wxPython

Then download the two following wheels from this website, according to your OS :

  • Windows 64-bits : PyOpenGL-3.1.6-cp39-cp39-win_amd64.whl and PyOpenGL_accelerate-3.1.6-cp39-cp39-win_amd64.whl
  • Windows 32-bits : PyOpenGL‑3.1.6‑cp39‑cp39‑win32.whl and PyOpenGL_accelerate‑3.1.6‑cp310‑cp310‑win32.whl

Finally copy the python-3.9.10.amd64 folder (python-3.9.10 for Windows 32-bits) and paste it in your project root. After packaging, this folder will be renamed to python.

Using a virtual Python environment

Virtual Python environments have been used only during development. In production, for Windows, we use WinPython (see section above).

Download and use a Python3.x universal installer from Python website. In this project, we are using Python3.9.10.

Windows

In the project folder, open a terminate and, to create a virtual environment ("venv") with the python version you've just installed, execute :

python -m venv venv

If you have several python versions installed on your computer, instead of python, please write the exact path to your python.exe file.

To activate your venv, type :

./venv/Scripts/activate

Notice that you must activate your venv before every modification of the venv.

Linux

  • Install required packages
$ sudo apt install python3-venv libsdl2-2.0-0
  • Set up and activate the virtual environment
$ python -m venv venv
$ ./venv/bin/activate

Installing the python modules

If necesary, upgrade pip with :

pip install --upgrade pip

On Windows, please download the two following wheels from this website, according to your OS :

  • Windows 64-bits : PyOpenGL-3.1.6-cp39-cp39-win_amd64.whl and PyOpenGL_accelerate-3.1.6-cp39-cp39-win_amd64.whl
  • Windows 32-bits : PyOpenGL‑3.1.6‑cp39‑cp39‑win32.whl and PyOpenGL_accelerate‑3.1.6‑cp310‑cp310‑win32.whl

To install the necesary python modules, we will use python wheels. Please use the requirements file linked to your OS, among the following list :

  • requirements_win_amd64.txt for Windows 64-bits
  • requirements_win32.txt for Windows 32-bits
  • requirements_ubuntu.txt for Ubuntu
  • requirements_macos.txt for MacOs

For example, if you are on Windows 64-bits, type :

pip install -r ./requirements_win_amd64.txt

Packaging

To create a package, execute from your project folder :

./package.sh <os> <architecture>

For example, on Windows, with a 64bits-architecture, write :

./package.sh windows 64 1

1 is a default parameter which means that you also want to build CuraEngine. Replace it by 0 if you've already built it once before.

Windows

Here are the needed requirement:

  • A gcc compiler (from mingw64)
  • Nsis 3.08
  • 7zip 9.20 as extraction is handled differently with newer versions.

The needed binaries (eg. PortablePython) are retrieved and used during the packaging process so it must work pretty flawlessly.

Linux

For linux, two types of packages can be built:

  • A debian package for Debian based distributions.
  • A generic tar.gz archive for other distributions.

Nothing special is required for linux packaging, it should work natively.

Migration from python2 to python3

The migration_python3 branch is still in development.

For now, the only available distribution package is the debian one: https://drive.google.com/file/d/1M4feXfi3IyKtdsA5HAFySgIrI7Vo4CHA/view?usp=sharing

To install it :

$ sudo dpkg -i ./CuraByDagoma_amd64.deb
$ sudo apt install -f

or

$ sudo apt install ./CuraByDagoma_amd64.deb
  • Get CuraEngine binary file and make it executable
(venv)$ wget github.com/dagoma3d/CuraEngine/releases/latest/download/CuraEngine-linux_x86_64 -O CuraEngine
(venv)$ chmod +x CuraEngine
  • All is ready, you just have to launch the app entry point
(venv)$ python cura.py

About spiralize mode

Bottom layer: Ultimaker/CuraEngine#51

Stutter: Ultimaker/CuraEngine#214 Ultimaker/CuraEngine#424