How to build Cura on Windows?
I am interested in doing development on Cura. Initially I want to start with the UI rather than the Engine. I have found the repository and have cloned it to my PC. I have also looked over the Wiki and searched the web. For such a popular open-source product, I was surprised I couldn't find a build guide.
Can someone direct me on how to get started. I have a LOT of experience in Software Development (more years and languages than I want to admit to); but, I have never used Python. Consider that in your instructions.
For a similar saga see https://www.bountysource.com/issues/28750036-can-t-build-32-bit-cura-windows-10-32-bit.
I would LOVE to hear from someone that has actually gotten this to work! In nearly 50 years of programming, I have never seen such a tangled mess (though I have seen some close).
The repository's README.md includes a section titled "Build Scripts", with a link to another repository: https://github.com/Ultimaker/cura-build
This includes dependencies and instructions for building Cura on Windows.
OK, instructions get a bit dicy when you get to numpi and scipy plugins. I installed 64-bit Python 3.5 and I have an Intel processor, I cannot find a match for that for numpy. Best I could find in cp35m-win32. When I try that I get unsupported wheel. Only 64bit they have is amd. What do I do? Anyone done this?
Note: The cp35-win_amd64 versions install ... whether they will actually work or not is still a mystery. Well, the 64-bit version of Cura up on the Ultimaker website had to have been built somehow....
OK, so it seems that the "cura-build" is intended to do everything in the README.md; but, there are no instructions on how to run it either. Cura may be a nice application; but, their build instructions and environment is HIDEOUS. Maybe that is why 8 contributors are responsible for 93% of the commits. Seems more open source in concept than in reality.
As you are an experienced developer, these links should help:
This is a related question, but for Ubuntu How to build CuraEngine?
Wikipedia has an informative page on Cura, which lists the Github development pages:
- Cura Github development page
- Cura Github legacy (pre-Ultimaker) development page
- Cura slicing engine Github development page
Reading the development pages is a good place to start. The Cura Github development page does contain resources for Windows.
The top level Ultimaker Github page contains links to all of the relevant repositories, amongst other useful resources, including:
- CuraEngine - CuraEngine is a powerful, fast and robust engine for processing 3D models into 3D printing instruction for Ultimaker
and other GCode based 3D printers. It is part of the larger open
source project called "Cura".
- Cura - 3D printer / slicing GUI built on top of the Uranium framework
- cura-build - Build scripts for Cura
With respect to Python, I, myself, am slowly making my way through this Python tutorial, Python Code Academy. However, there are a many other good Python tutorials out there, the best resource is probably Python.org.
One thing to note is that Python 2.x and 3.x are markedly different (see Should I use Python 2 or Python 3 for my development activity?). What should I learn as a beginner: Python 2 OR Python 3? is also an interesting read.
I have been writing computer programs since 1971 and their build environment seems near impossible to figure out.
@markshancock - I feel your pain. With *certain* projects, I find that instead of trying to fix an issue yourself and submitting the change, in fact, it can be a lot more efficient to just report the bug that you wish to be fixed and just let the developers get around to it, rather than having to wade through the output of someone else's (badly commented) mind. Obviously, if you are looking to fix more that just a few bugs, and make a wholesale change/contribution then that approach is no longer valid... Good luck :-)
Interesting quote from one for the Cura developers discussing building Cura. "I "jerry-rigged" a setup that lets me run Cura from source, on windows.". Not very inspiring. Another quote in the same discussion mentioned that all or the developers at Ultimaker have their own buid environment. Reminds me of another product where the developer's version control approach was to keep a separate laptop with the last stable build on it. My goal is to be in a position to be one of the developers (if I chose to be).