The engine processes the plugins based on the order they were given in. By ordering them beforehand, we ensure that they will always be processed with the same logic.
CURA-10914
When the printer settings say they should be disabled, they could previously be enabled if the start GCode didn't contain temperature commands. Now we can only enable them if initially enabled.
CURA-11967
Following the removal of the get/setMessage methods in the Job class, the StartSliceJob has not been updated and still used them. We now use a specific variable for storing the disabled extruders and properly display them.
CURA-11904
User tracking has been added to the 'slice_message' method in the 'StartSliceJob.py' file. A unique, anonymous UUID is generated for each user, stripping away identifiable data with a bitmask operation. The user's Cura version is also included in the message. This facilitates more robust analysis of crash reports and user behaviors.
Contributes to CURA-11482
Example of issues we had is that parsing floating point numbers would parse the dot as an attribute syntax and trying to retrieve both sides of the attributes to the get_value resolve. E.g `3.14` would be interpreted as getting the `14` property of the object `3`, which ofcourse throws an error.
CURA-11347
With previous implementation we lost support for these variables in start/end gcode
"filament_cost", "print_time", "filament_amount", "filament_weight", "jobname"
CURA-11347
The following properties are not settings-names, but could previously be used as template variables
- material_id
- time
- date
- day
- initial_extruder_nr
- material_id
- material_name
- material_type
- material_brand
- time
- date
- day
- initial_extruder_nr
These properties are _awkwardly_ propogated through the kwargs of the `get_value` method of `GcodeStartEndFormatter`. I don't quite like implementing it like this, but to avoid API breaks I couldn't change abusing the kwargs arg for this purpose.
CURA-11155
Modified BackendPlugin.py and StartSliceJob.py to allow plugins to decide when they should be used. The 'usePlugin'
method was added to enable a plugin to return a boolean indicating if it should be used or not, e.q.: start up and
connect to the services.
Contributes to CURA-11031
This can currently be done by setting the environment variables:
- SIMPLIFY_ENABLE: default disabled, setting this to any value will enable the plugin
- SIMPLIFY_ADDRESS: defaults to localhost
- SIMPLIFY_PORT: defaults to 33700
- POSTPROCESS_ENABLE: default disabled, setting this to any value will enable the plugin
- POSTPROCESS_ADDRESS: defaults to localhost
- POSTPROCESS_PORT: defaults to 33701
Hacky for now
Contributes to CURA-10475
Because we had to rename our Python bindings module from Arcus to pyArcus
we also changed our import downstream (Cura and Uranium). But in order
to limit the changes on our existing code we decided during the review
that we should just import pyArcus as Arcus.
Contributes to CURA-7924
Extruders has been deprecated.
This also allows us to use integers for a while longer (until it needs to be serialised to a message with the .join() function).
Done during Turbo Testing and Tooling to reduce the number of warnings in our log.