mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-08-08 06:23:59 -06:00
Merge branch '3.1' into print_simulation_view
This commit is contained in:
commit
9337cc8a7f
17 changed files with 58 additions and 19 deletions
|
@ -264,10 +264,12 @@ class PrintInformation(QObject):
|
|||
def jobName(self):
|
||||
return self._job_name
|
||||
|
||||
def _updateJobName(self):
|
||||
def _updateJobName(self, empty_name = False):
|
||||
# if the project name is set, we use the project name as the job name, so the job name should not get updated
|
||||
# if a model file is loaded after that.
|
||||
if self._project_name != "":
|
||||
if empty_name:
|
||||
self._project_name = ""
|
||||
return
|
||||
|
||||
if self._base_name == "":
|
||||
|
@ -304,12 +306,13 @@ class PrintInformation(QObject):
|
|||
name = os.path.splitext(name)[0]
|
||||
|
||||
# name is "" when I first had some meshes and afterwards I deleted them so the naming should start again
|
||||
if name == "" or (self._base_name == "" and self._base_name != name):
|
||||
is_empty = name == ""
|
||||
if is_empty or (self._base_name == "" and self._base_name != name):
|
||||
# remove ".curaproject" suffix from (imported) the file name
|
||||
if name.endswith(".curaproject"):
|
||||
name = name[:name.rfind(".curaproject")]
|
||||
self._base_name = name
|
||||
self._updateJobName()
|
||||
self._updateJobName(empty_name = is_empty)
|
||||
|
||||
## Created an acronymn-like abbreviated machine name from the currently active machine name
|
||||
# Called each time the global stack is switched
|
||||
|
|
|
@ -301,6 +301,26 @@ class CuraEngineBackend(QObject, Backend):
|
|||
self.backendStateChange.emit(BackendState.NotStarted)
|
||||
return
|
||||
|
||||
elif job.getResult() == StartSliceJob.StartJobResult.ObjectSettingError:
|
||||
errors = {}
|
||||
for node in DepthFirstIterator(Application.getInstance().getController().getScene().getRoot()):
|
||||
stack = node.callDecoration("getStack")
|
||||
if not stack:
|
||||
continue
|
||||
for key in stack.getErrorKeys():
|
||||
definition = self._global_container_stack.getBottom().findDefinitions(key = key)
|
||||
if not definition:
|
||||
Logger.log("e", "When checking settings for errors, unable to find definition for key {key} in per-object stack.".format(key = key))
|
||||
continue
|
||||
definition = definition[0]
|
||||
errors[key] = definition.label
|
||||
error_labels = ", ".join(errors.values())
|
||||
self._error_message = Message(catalog.i18nc("@info:status", "Unable to slice due to some per-model settings. The following settings have errors on one or more models: {error_labels}").format(error_labels = error_labels),
|
||||
title = catalog.i18nc("@info:title", "Unable to slice"))
|
||||
self._error_message.show()
|
||||
self.backendStateChange.emit(BackendState.Error)
|
||||
return
|
||||
|
||||
if job.getResult() == StartSliceJob.StartJobResult.BuildPlateError:
|
||||
if Application.getInstance().platformActivity:
|
||||
self._error_message = Message(catalog.i18nc("@info:status", "Unable to slice because the prime tower or prime position(s) are invalid."),
|
||||
|
|
|
@ -26,6 +26,7 @@ class StartJobResult(IntEnum):
|
|||
NothingToSlice = 4
|
||||
MaterialIncompatible = 5
|
||||
BuildPlateError = 6
|
||||
ObjectSettingError = 7 #When an error occurs in per-object settings.
|
||||
|
||||
|
||||
## Formatter class that handles token expansion in start/end gcod
|
||||
|
@ -105,7 +106,7 @@ class StartSliceJob(Job):
|
|||
continue
|
||||
|
||||
if self._checkStackForErrors(node.callDecoration("getStack")):
|
||||
self.setResult(StartJobResult.SettingError)
|
||||
self.setResult(StartJobResult.ObjectSettingError)
|
||||
return
|
||||
|
||||
with self._scene.getSceneLock():
|
||||
|
|
|
@ -47,21 +47,24 @@
|
|||
"material_bed_temp_wait": { "default_value": false },
|
||||
"prime_tower_enable": { "default_value": true },
|
||||
"prime_tower_wall_thickness": { "resolve": 0.7 },
|
||||
"prime_tower_position_x": { "value": "50" },
|
||||
"prime_tower_position_y": { "value": "150" },
|
||||
"prime_tower_size": { "value": 24.0 },
|
||||
"prime_tower_position_x": { "value": 125 },
|
||||
"prime_tower_position_y": { "value": 70 },
|
||||
"prime_blob_enable": { "default_value": false },
|
||||
"machine_max_feedrate_z": { "default_value": 20 },
|
||||
"machine_disallowed_areas": { "default_value": [
|
||||
[[215, 135], [-215, 135], [-215, 75], [215, 75]]
|
||||
]},
|
||||
"machine_start_gcode": {
|
||||
"default_value": "\nM92 E159 ;2288 for V5 extruder\n\nM104 S120 T1\nM104 S120 T2\nM104 S120 T3\n\nG21\nG90\nM42 S255 P13 ;chamber lights\nM42 S255 P12 ;fume extraction\nM204 S300 ;default acceleration\nM205 X10 ;default jerk\n\nM117 Homing Y ......\nG28 Y\nM117 Homing X ......\nG28 X\nM117 Homing Z ......\nG28 Z F100\nG1 Z10 F600\nG1 X70 Y20 F9000;go to wipe point\n\nM190 S{material_bed_temperature_layer_0}\n\nM117 Heating for 50 sec.\nG4 S20\nM117 Heating for 30 sec.\nG4 S20\nM117 Heating for 10 sec.\nM300 S1200 P1000\nG4 S9\n\nM117 purging nozzle....\nT0\nG92 E0;set E\nG1 E10 F100\nG92 E0\nG1 E-1 F600\n\nM117 wiping nozzle....\nG1 X1 Y24 F3000\nG1 X70 F9000\nG1 Z10 F900\n\nM104 S21 T1\nM104 S21 T2\nM104 S21 T3\n\nM117 Printing .....\n"
|
||||
"default_value": "\nM92 E159 ;2288 for V5 extruder\n\nM140 S{material_bed_temperature_layer_0}\nM104 S120 T1\nM104 S120 T2\nM104 S120 T3\n\nG21\nG90\nM42 S255 P13 ;chamber lights\nM42 S255 P12 ;fume extraction\nM204 S300 ;default acceleration\nM205 X10 ;default jerk\n\nM117 Homing Y ......\nG28 Y\nM117 Homing X ......\nG28 X\nM117 Homing Z ......\nG28 Z F100\nG1 Z10 F600\nG1 X70 Y20 F9000;go to wipe point\n\nM190 S{material_bed_temperature_layer_0}\n\nM117 Heating for 50 sec.\nG4 S20\nM117 Heating for 30 sec.\nG4 S20\nM117 Heating for 10 sec.\nM300 S1200 P1000\nG4 S9\n\nM117 purging nozzle....\nT0\nG92 E0;set E\nG1 E10 F100\nG92 E0\nG1 E-1 F600\n\nM117 wiping nozzle....\nG1 X1 Y24 F3000\nG1 X70 F9000\nG1 Z10 F900\n\nM104 S21 T1\nM104 S21 T2\nM104 S21 T3\n\nM117 Printing .....\n"
|
||||
},
|
||||
"machine_end_gcode": {
|
||||
"default_value": "; -- END GCODE --\nM117 cooling down....\nM106 S255\nM140 S5\nM104 S5 T0\nM104 S5 T1\nM104 S5 T2\nM104 S5 T3\n\nG91\nG1 Z1 F900\nG90\n\nG1 X20.0 Y260.0 F6000\nG4 S7\nM84\nG4 S90\nM107\nM42 P12 S0\nM42 P13 S0\nM84\nT0\nM117 Finished.\n; -- end of GCODE --"
|
||||
},
|
||||
"layer_height": { "maximum_value": "(0.8 * min(extruderValues('machine_nozzle_size')))" },
|
||||
"layer_height_0": { "maximum_value": "(0.8 * min(extruderValues('machine_nozzle_size')))" },
|
||||
"retraction_extra_prime_amount": { "minimum_value_warning": "-2.0" },
|
||||
"optimize_wall_printing_order": { "default_value": true },
|
||||
"machine_nozzle_heat_up_speed": {"default_value": 20},
|
||||
"machine_nozzle_cool_down_speed": {"default_value": 20},
|
||||
"machine_min_cool_heat_time_window": {"default_value": 5}
|
||||
|
|
|
@ -4945,6 +4945,18 @@
|
|||
"default_value": false,
|
||||
"settable_per_mesh": true
|
||||
},
|
||||
"meshfix_maximum_resolution":
|
||||
{
|
||||
"label": "Maximum Resolution",
|
||||
"description": "The minimum size of a line segment after slicing. If you increase this, the mesh will have a lower resolution. This may allow the printer to keep up with the speed it has to process g-code and will increase slice speed by removing details of the mesh that it can't process anyway.",
|
||||
"type": "float",
|
||||
"unit": "mm",
|
||||
"default_value": 0.01,
|
||||
"minimum_value": "0.001",
|
||||
"minimum_value_warning": "0.005",
|
||||
"maximum_value_warning": "0.1",
|
||||
"settable_per_mesh": true
|
||||
},
|
||||
"multiple_mesh_overlap":
|
||||
{
|
||||
"label": "Merged Meshes Overlap",
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "cartesio_extruder_0",
|
||||
"version": 2,
|
||||
"name": "Extruder 0",
|
||||
"name": "Extruder 1",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata": {
|
||||
"machine": "cartesio",
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "cartesio_extruder_1",
|
||||
"version": 2,
|
||||
"name": "Extruder 1",
|
||||
"name": "Extruder 2",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata": {
|
||||
"machine": "cartesio",
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "cartesio_extruder_2",
|
||||
"version": 2,
|
||||
"name": "Extruder 2",
|
||||
"name": "Extruder 3",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata": {
|
||||
"machine": "cartesio",
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "cartesio_extruder_3",
|
||||
"version": 2,
|
||||
"name": "Extruder 3",
|
||||
"name": "Extruder 4",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata": {
|
||||
"machine": "cartesio",
|
||||
|
|
|
@ -31,7 +31,7 @@ switch_extruder_retraction_amount = 2
|
|||
switch_extruder_retraction_speeds = =retraction_speed
|
||||
switch_extruder_prime_speed = =retraction_prime_speed
|
||||
|
||||
speed_print = 50
|
||||
speed_print = 20
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = =round(speed_print / 5 * 4)
|
||||
speed_wall = =round(speed_print / 2)
|
||||
|
|
|
@ -31,7 +31,7 @@ switch_extruder_retraction_amount = 2
|
|||
switch_extruder_retraction_speeds = =retraction_speed
|
||||
switch_extruder_prime_speed = =retraction_prime_speed
|
||||
|
||||
speed_print = 50
|
||||
speed_print = 20
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = =round(speed_print / 5 * 4)
|
||||
speed_wall = =round(speed_print / 2)
|
||||
|
|
|
@ -31,7 +31,7 @@ switch_extruder_retraction_amount = 2
|
|||
switch_extruder_retraction_speeds = =retraction_speed
|
||||
switch_extruder_prime_speed = =retraction_prime_speed
|
||||
|
||||
speed_print = 50
|
||||
speed_print = 20
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = =round(speed_print / 5 * 4)
|
||||
speed_wall = =round(speed_print / 2)
|
||||
|
|
|
@ -31,7 +31,7 @@ switch_extruder_retraction_amount = 2
|
|||
switch_extruder_retraction_speeds = =retraction_speed
|
||||
switch_extruder_prime_speed = =retraction_prime_speed
|
||||
|
||||
speed_print = 50
|
||||
speed_print = 20
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = =round(speed_print / 5 * 4)
|
||||
speed_wall = =round(speed_print / 2)
|
||||
|
|
|
@ -31,7 +31,7 @@ switch_extruder_retraction_amount = 2
|
|||
switch_extruder_retraction_speeds = =retraction_speed
|
||||
switch_extruder_prime_speed = =retraction_prime_speed
|
||||
|
||||
speed_print = 30
|
||||
speed_print = 15
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = =round(speed_print / 5 * 4)
|
||||
speed_wall = =round(speed_print / 2)
|
||||
|
|
|
@ -31,7 +31,7 @@ switch_extruder_retraction_amount = 2
|
|||
switch_extruder_retraction_speeds = =retraction_speed
|
||||
switch_extruder_prime_speed = =retraction_prime_speed
|
||||
|
||||
speed_print = 25
|
||||
speed_print = 15
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = =round(speed_print / 5 * 4)
|
||||
speed_wall = =round(speed_print / 2)
|
||||
|
|
|
@ -31,7 +31,7 @@ switch_extruder_retraction_amount = 2
|
|||
switch_extruder_retraction_speeds = =retraction_speed
|
||||
switch_extruder_prime_speed = =retraction_prime_speed
|
||||
|
||||
speed_print = 50
|
||||
speed_print = 20
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = =round(speed_print / 5 * 4)
|
||||
speed_wall = =round(speed_print / 2)
|
||||
|
|
|
@ -31,7 +31,7 @@ switch_extruder_retraction_amount = 2
|
|||
switch_extruder_retraction_speeds = =retraction_speed
|
||||
switch_extruder_prime_speed = =retraction_prime_speed
|
||||
|
||||
speed_print = 50
|
||||
speed_print = 20
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = =round(speed_print / 5 * 4)
|
||||
speed_wall = =round(speed_print / 2)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue