Latest version Cura didn't optimize GCode generation that much. It generate tons of redundant M Code.
In most of the print, I noticed that it generate sub par tool path and use variable print speed for different types of section (inset and infill).
For sure, I can notice thate G code files size is bigger and print time is longer compared tot the legacy one. I have never seen any print quality improvement compared to old version.
Early optimization is the root of all evil.
See my version benchmark test: https://www.thingiverse.com/thing:2890860
Edited by Ricky
Recommended Posts
yellowshark 153
Interesting post! I do not have the benefit of your background or experiences but I am a long gone software developer, ranging from assembler to Cobol. Yes old stuff but the fundamentals of software development broadly remain the same, just the tools and audiences change.
The more complex one makes a subject, whether necessarily or unnecessarily, the more difficult it becomes to deliver clean code. Probably more importantly the more difficult it becomes to modify and deliver clean changed code. A generalisation would be that new functions work but bugs are introduced to existing code that was clean – it is just too complex to understand all ramifications of change and beyond one’s financial/operational capabilities to test everything that has not changed ( or so your thought!).
At the moment I am stuck on Cura 2.7 (which for me works fine) whilst I await a clean version of 3.n. Does 2.7 produce better models than 15.04? For the most part, for me, probably not. But, as you say, there are more options which give you more control and if nothing else should help one overcome problems more easily.
So is Cura now more complex than it needs to be? (Anyone from Ultimaker is welcome to shoot me down in flames for any wrong assumptions here).
There are some fundamentals.
The decision to create the new software (was it Pink Flamingo back then?) would have been driven by a variety of influences. There was a new printer in the labs to support, importantly with dual extruders. There was a new extruder system and coded reels of filament to support. Probably the architecture of the old Cura software did not lend itself to what Ultimaker wanted to do and the decision to throw away the old software was taken.
Maybe, above all of this, Ultimaker saw that the market needed to change. It was populated mainly by techies and difficult, without help and that level of technical capability, to produce decent quality results quickly without some considerable experience – the learning curve was quite steep.
Ultimaker wanted to move the market to a more plug ‘n play level; just compare laptops now to pre Windows or even early Windows PCs. I cannot remember the last time I reloaded the Windows O/S whereas with W95 it was every 6 months at least.
Just consider how much functionality they have added to try and make this goal achievable if you have an Ultimaker 3.
So yes the subject is more complex and no doubt so is the code, although hopefully better architected. I for one would not criticise them for this; indeed I applaud them for embarking on such a change. Just think of the increase in productivity if your engineers each had their own printer and with a few key depressions could produce their own prototype there and then, not having to rely on people like ourselves.
And whilst there are now all these additional settings to keep the techies happy, their challenge going forward will be to gradually automate everything, remove all those techie settings, so we are all just making a few key depressions!
Link to post
Share on other sites
Ricky 5
@yellowshark
Thanks for sharing your thoughts. I totally agree with your points: more feature you add in the code, more bugs you introduce. No matter how good the QA (if any) is or how smart the programmer is, this is a inconvenient truth.
I understood Ultimaker's strategy to split UI from engine. Let UI takes care of the complex setting for user. Hopefully in future some intelligence can tweak the optimal settings based on user's STL input model, compared to a simple rule-based driven setting check now we have.
But in reality engine itself gets overly complicated. When we patched something because of an X STL input model from you, it may break Y and Z STL input model from others. I did saw a couple unit test for QA purpose. But I didn't see any integration test which perform end to end or do a physical print test. Maybe it didn't release in Github or it may be difficult to benchmark this.
I didn't complain anything or anyone here. Cura is free and good stuff. I mean I can afford $150 for Simplify 3D. But there is no fun at all to poke around what is under the hood.
In any case, I just want this open source project getting better and go towards a right direction. No intention to offend anyone.
Edited by RickyLink to post
Share on other sites
yamaha26 0
Hi!
Im using Cura 14.07 and i tried the new cura 3.3.1. I use the same settings and the Print time with the 3.3.1 is bigger.
E.g. If the print time with cura 3.3.1 1 hour with 14.07 is about 38min. Some times the 14.07 is 2x time faster.
Link to post
Share on other sites