From f535ed29adb45a004951431071b503c21c71162c Mon Sep 17 00:00:00 2001 From: THeijmans Date: Wed, 7 Feb 2018 15:31:09 +0100 Subject: [PATCH 01/16] Slight meshfix resolution change By changing the meshfix resolution from 0.01 to 0.04 mm, we change the minimum out wall line pieces and can have a more continuous printhead movement. Also decreases Gcode size by around 30% for very high detail models. --- resources/definitions/ultimaker3.def.json | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/definitions/ultimaker3.def.json b/resources/definitions/ultimaker3.def.json index e7b9b6255e..76fa24b01c 100644 --- a/resources/definitions/ultimaker3.def.json +++ b/resources/definitions/ultimaker3.def.json @@ -109,6 +109,7 @@ "material_bed_temperature": { "maximum_value": "115" }, "material_bed_temperature_layer_0": { "maximum_value": "115" }, "material_standby_temperature": { "value": "100" }, + "meshfix_maximum_resolution": { "value": "0.04" }, "multiple_mesh_overlap": { "value": "0" }, "prime_tower_enable": { "default_value": true }, "raft_airgap": { "value": "0" }, From ca83089eff9f9ed3b8a37b1d593993662cb27e0c Mon Sep 17 00:00:00 2001 From: THeijmans Date: Wed, 7 Feb 2018 15:32:59 +0100 Subject: [PATCH 02/16] Combing to "No Skin" This will remove the lines "printed" on top of flat top surfaces. For all UM3(e) profiles. --- resources/definitions/ultimaker3.def.json | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/definitions/ultimaker3.def.json b/resources/definitions/ultimaker3.def.json index 76fa24b01c..cb8159b6b4 100644 --- a/resources/definitions/ultimaker3.def.json +++ b/resources/definitions/ultimaker3.def.json @@ -121,6 +121,7 @@ "raft_margin": { "value": "10" }, "raft_surface_layers": { "value": "1" }, "retraction_amount": { "value": "2" }, + "retraction_combing": { "default_value": "noskin" }, "retraction_count_max": { "value": "10" }, "retraction_extrusion_window": { "value": "1" }, "retraction_hop": { "value": "2" }, From bc0a4cdc1722b389e7fcea12834b2caaf0facf72 Mon Sep 17 00:00:00 2001 From: THeijmans Date: Wed, 7 Feb 2018 15:35:09 +0100 Subject: [PATCH 03/16] Initial layer line width increase Increasing the initial layer line width both increases print speed, and results in more reliable bed adhesion. --- resources/definitions/ultimaker3.def.json | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/definitions/ultimaker3.def.json b/resources/definitions/ultimaker3.def.json index cb8159b6b4..562a56d652 100644 --- a/resources/definitions/ultimaker3.def.json +++ b/resources/definitions/ultimaker3.def.json @@ -90,6 +90,7 @@ "infill_overlap": { "value": "0" }, "infill_pattern": { "value": "'triangles'" }, "infill_wipe_dist": { "value": "0" }, + "initial_layer_line_width_factor": { "value": "120" }, "jerk_enabled": { "value": "True" }, "jerk_layer_0": { "value": "jerk_topbottom" }, "jerk_prime_tower": { "value": "math.ceil(jerk_print * 15 / 25)" }, From 34c0a09047133c7e2b1758cd135c5aa80c6a1e1c Mon Sep 17 00:00:00 2001 From: THeijmans Date: Wed, 7 Feb 2018 15:37:05 +0100 Subject: [PATCH 04/16] Optimize wall printing order This setting will make a lot of more prints more logical in printing order, especially when many small features are printed. --- resources/definitions/ultimaker3.def.json | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/definitions/ultimaker3.def.json b/resources/definitions/ultimaker3.def.json index 562a56d652..a503cb7739 100644 --- a/resources/definitions/ultimaker3.def.json +++ b/resources/definitions/ultimaker3.def.json @@ -112,6 +112,7 @@ "material_standby_temperature": { "value": "100" }, "meshfix_maximum_resolution": { "value": "0.04" }, "multiple_mesh_overlap": { "value": "0" }, + "optimize_wall_printing_order": { "value": "True" }, "prime_tower_enable": { "default_value": true }, "raft_airgap": { "value": "0" }, "raft_base_thickness": { "value": "0.3" }, From 014c2628bb868d161816136d26b0db4c4669a195 Mon Sep 17 00:00:00 2001 From: THeijmans Date: Wed, 7 Feb 2018 15:57:33 +0100 Subject: [PATCH 05/16] PLA 0.4mm profiles Infill thickness change and Fast Quality Speedup Increasing the speed of the Fast Quality prints, and slightly reducing the Infill Line Width. --- .../quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg | 7 ++++--- .../quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg | 1 + .../quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg | 1 + .../ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg | 1 + 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg index 8c6e7bd782..a32d9268d3 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg @@ -13,6 +13,7 @@ setting_version = 4 [values] cool_fan_full_at_height = =layer_height_0 + 2 * layer_height cool_fan_speed_max = =cool_fan_speed +infill_line_width = =round(line_width * 0.42 / 0.35, 2) machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature + 5 @@ -20,9 +21,9 @@ material_standby_temperature = 100 prime_tower_enable = False skin_overlap = 20 speed_layer_0 = 20 -speed_topbottom = =math.ceil(speed_print * 35 / 70) -speed_wall = =math.ceil(speed_print * 50 / 70) -speed_wall_0 = =math.ceil(speed_wall * 35 / 50) +speed_topbottom = =math.ceil(speed_print * 40 / 70) +speed_wall = =math.ceil(speed_print * 55 / 70) +speed_wall_0 = =math.ceil(speed_wall * 45 / 50) top_bottom_thickness = 1 wall_thickness = 1 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg index db441015a8..30b7d44d4e 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg @@ -13,6 +13,7 @@ setting_version = 4 [values] cool_fan_full_at_height = =layer_height_0 + 2 * layer_height cool_fan_speed_max = =cool_fan_speed +infill_line_width = =round(line_width * 0.42 / 0.35, 2) machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_standby_temperature = 100 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg index 61807490e9..da62ce2e3f 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg @@ -14,6 +14,7 @@ setting_version = 4 cool_fan_full_at_height = =layer_height_0 + 2 * layer_height cool_fan_speed_max = =cool_fan_speed cool_min_speed = 10 +infill_line_width = =round(line_width * 0.42 / 0.35, 2) machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_print_temperature = =default_material_print_temperature - 5 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg index d7254b854d..04707735f5 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg @@ -14,6 +14,7 @@ setting_version = 4 cool_fan_full_at_height = =layer_height_0 + 2 * layer_height cool_fan_speed_max = =cool_fan_speed cool_min_speed = 7 +infill_line_width = =round(line_width * 0.42 / 0.35, 2) machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 material_standby_temperature = 100 From 97c96ab2da07e3c397f309d7501a1ec237c7d7f5 Mon Sep 17 00:00:00 2001 From: THeijmans Date: Wed, 7 Feb 2018 16:09:57 +0100 Subject: [PATCH 06/16] PLA 0.8mm Faster printing Optimization for faster printing with the 0.8mm profiles for PLA. Also removed retract at layer change for less artifacts, and changed infill pattern to triangular for more unity between profiles. --- .../quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg | 6 ++++-- .../ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg | 6 ++++-- .../ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg | 6 ++++-- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg index 3c4303e017..09e8539b03 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg @@ -15,8 +15,8 @@ cool_fan_full_at_height = =layer_height_0 + 2 * layer_height cool_fan_speed_max = =100 cool_min_speed = 2 gradual_infill_step_height = =3 * layer_height -infill_line_width = =round(line_width * 0.535 / 0.75, 2) -infill_pattern = cubic +infill_line_width = =round(line_width * 0.65 / 0.75, 2) +infill_pattern = triangles line_width = =machine_nozzle_size * 0.9375 machine_nozzle_cool_down_speed = 0.75 machine_nozzle_heat_up_speed = 1.6 @@ -25,6 +25,8 @@ material_initial_print_temperature = =max(-273.15, material_print_temperature - material_print_temperature = =default_material_print_temperature + 10 material_standby_temperature = 100 prime_tower_enable = True +retract_at_layer_change = False +speed_print = 45 support_angle = 70 support_line_width = =line_width * 0.75 support_pattern = ='triangles' diff --git a/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg index 5509f42aae..2217dee344 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg @@ -15,8 +15,8 @@ cool_fan_full_at_height = =layer_height_0 + 2 * layer_height cool_fan_speed_max = =100 cool_min_speed = 2 gradual_infill_step_height = =3 * layer_height -infill_line_width = =round(line_width * 0.535 / 0.75, 2) -infill_pattern = cubic +infill_line_width = =round(line_width * 0.65 / 0.75, 2) +infill_pattern = triangles layer_height = 0.4 line_width = =machine_nozzle_size * 0.9375 machine_nozzle_cool_down_speed = 0.75 @@ -27,6 +27,8 @@ material_print_temperature = =default_material_print_temperature + 15 material_standby_temperature = 100 prime_tower_enable = True raft_margin = 10 +retract_at_layer_change = False +speed_print = 45 support_angle = 70 support_line_width = =line_width * 0.75 support_pattern = ='triangles' diff --git a/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg index 645c3fe3ef..0bd3f9751a 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg @@ -15,8 +15,8 @@ cool_fan_full_at_height = =layer_height_0 + 2 * layer_height cool_fan_speed_max = =100 cool_min_speed = 2 gradual_infill_step_height = =3 * layer_height -infill_line_width = =round(line_width * 0.535 / 0.75, 2) -infill_pattern = cubic +infill_line_width = =round(line_width * 0.65 / 0.75, 2) +infill_pattern = triangles layer_height = 0.3 line_width = =machine_nozzle_size * 0.9375 machine_nozzle_cool_down_speed = 0.75 @@ -26,6 +26,8 @@ material_initial_print_temperature = =max(-273.15, material_print_temperature - material_print_temperature = =default_material_print_temperature + 10 material_standby_temperature = 100 prime_tower_enable = True +retract_at_layer_change = False +speed_print = 45 support_angle = 70 support_line_width = =line_width * 0.75 support_pattern = ='triangles' From ece88bd54dfb852cd86d28db1bb203ada748c7c1 Mon Sep 17 00:00:00 2001 From: THeijmans Date: Wed, 7 Feb 2018 16:14:00 +0100 Subject: [PATCH 07/16] Cross3D infill for TPU Flexibility Changed infill to Cross3D 10% (no gradual) for a more isotropic flexibility of parts. Cross3D also prints without travels (if possible) and looks great. --- .../quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg | 5 ++--- .../quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg | 5 ++--- .../quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg | 5 ++--- .../quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg | 5 ++--- .../ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg | 5 ++--- .../ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg | 5 ++--- 6 files changed, 12 insertions(+), 18 deletions(-) diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg index 6116dc1bda..f6828f88fb 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg @@ -18,11 +18,10 @@ cool_fan_speed_max = 100 cool_min_layer_time_fan_speed_max = 6 cool_min_speed = 4 gradual_infill_step_height = =5 * layer_height -gradual_infill_steps = 4 infill_line_width = =round(line_width * 0.38 / 0.38, 2) infill_overlap = 0 -infill_pattern = tetrahedral -infill_sparse_density = 96 +infill_pattern = cross_3d +infill_sparse_density = 10 infill_wipe_dist = 0.1 jerk_enabled = True jerk_print = 25 diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg index 1da5d0fec8..80be26d24c 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg @@ -18,11 +18,10 @@ cool_fan_speed_max = 100 cool_min_layer_time_fan_speed_max = 6 cool_min_speed = 4 gradual_infill_step_height = =5 * layer_height -gradual_infill_steps = 4 infill_line_width = =round(line_width * 0.38 / 0.38, 2) infill_overlap = 0 -infill_pattern = tetrahedral -infill_sparse_density = 96 +infill_pattern = cross_3d +infill_sparse_density = 10 infill_wipe_dist = 0.1 jerk_enabled = True jerk_print = 25 diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg index 1938e1c26c..53044e1805 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg @@ -18,11 +18,10 @@ cool_fan_speed_max = 100 cool_min_layer_time_fan_speed_max = 6 cool_min_speed = 4 gradual_infill_step_height = =5 * layer_height -gradual_infill_steps = 4 infill_line_width = =round(line_width * 0.38 / 0.38, 2) infill_overlap = 0 -infill_pattern = tetrahedral -infill_sparse_density = 96 +infill_pattern = cross_3d +infill_sparse_density = 10 infill_wipe_dist = 0.1 jerk_enabled = True jerk_print = 25 diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg index 726ab82867..d5d7479a0e 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg @@ -15,11 +15,10 @@ brim_width = 8.75 cool_min_layer_time_fan_speed_max = 6 top_skin_expand_distance = =line_width * 2 gradual_infill_step_height = =4 * layer_height -gradual_infill_steps = 5 infill_before_walls = True infill_line_width = =round(line_width * 0.7 / 0.8, 2) -infill_pattern = tetrahedral -infill_sparse_density = 80 +infill_pattern = cross_3d +infill_sparse_density = 10 jerk_prime_tower = =math.ceil(jerk_print * 25 / 25) jerk_support = =math.ceil(jerk_print * 25 / 25) jerk_wall_0 = =math.ceil(jerk_wall * 15 / 25) diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg index 269725daa9..86c6a3df77 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg @@ -15,11 +15,10 @@ brim_width = 8.75 cool_min_layer_time_fan_speed_max = 6 top_skin_expand_distance = =line_width * 2 gradual_infill_step_height = =4 * layer_height -gradual_infill_steps = 5 infill_before_walls = True infill_line_width = =round(line_width * 0.7 / 0.8, 2) -infill_pattern = tetrahedral -infill_sparse_density = 80 +infill_pattern = cross_3d +infill_sparse_density = 10 jerk_prime_tower = =math.ceil(jerk_print * 25 / 25) jerk_support = =math.ceil(jerk_print * 25 / 25) jerk_wall_0 = =math.ceil(jerk_wall * 15 / 25) diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg index dd1737433a..8af3edcddd 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg @@ -15,11 +15,10 @@ brim_width = 8.75 cool_min_layer_time_fan_speed_max = 6 top_skin_expand_distance = =line_width * 2 gradual_infill_step_height = =4 * layer_height -gradual_infill_steps = 5 infill_before_walls = True infill_line_width = =round(line_width * 0.7 / 0.8, 2) -infill_pattern = tetrahedral -infill_sparse_density = 80 +infill_pattern = cross_3d +infill_sparse_density = 10 jerk_prime_tower = =math.ceil(jerk_print * 25 / 25) jerk_support = =math.ceil(jerk_print * 25 / 25) jerk_wall_0 = =math.ceil(jerk_wall * 15 / 25) From 4f6362f3f527f01125cc3eef47b6a9d035465be1 Mon Sep 17 00:00:00 2001 From: THeijmans Date: Wed, 7 Feb 2018 16:51:49 +0100 Subject: [PATCH 08/16] PLA 0.8mm speeds respecified Fixed speeds after breaking them in the previous commit (97c96ab) --- .../quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg | 4 ++++ .../ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg | 4 ++++ .../quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg index 09e8539b03..8b3c3e56c6 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg @@ -27,6 +27,10 @@ material_standby_temperature = 100 prime_tower_enable = True retract_at_layer_change = False speed_print = 45 +speed_topbottom = =math.ceil(speed_print * 35 / 45) +speed_wall = =math.ceil(speed_print * 40 / 45) +speed_wall_x = =speed_wall +speed_wall_0 = =math.ceil(speed_wall * 35 / 40) support_angle = 70 support_line_width = =line_width * 0.75 support_pattern = ='triangles' diff --git a/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg index 2217dee344..2fe8f7c6f9 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg @@ -29,6 +29,10 @@ prime_tower_enable = True raft_margin = 10 retract_at_layer_change = False speed_print = 45 +speed_topbottom = =math.ceil(speed_print * 35 / 45) +speed_wall = =math.ceil(speed_print * 40 / 45) +speed_wall_x = =speed_wall +speed_wall_0 = =math.ceil(speed_wall * 35 / 40) support_angle = 70 support_line_width = =line_width * 0.75 support_pattern = ='triangles' diff --git a/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg index 0bd3f9751a..9072e0c60f 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg @@ -28,6 +28,10 @@ material_standby_temperature = 100 prime_tower_enable = True retract_at_layer_change = False speed_print = 45 +speed_topbottom = =math.ceil(speed_print * 35 / 45) +speed_wall = =math.ceil(speed_print * 40 / 45) +speed_wall_x = =speed_wall +speed_wall_0 = =math.ceil(speed_wall * 35 / 40) support_angle = 70 support_line_width = =line_width * 0.75 support_pattern = ='triangles' From b6c48e7fb9611968a33f355d4ec65284ce70d331 Mon Sep 17 00:00:00 2001 From: THeijmans Date: Thu, 8 Feb 2018 08:58:48 +0100 Subject: [PATCH 09/16] Replaced tabs by spaces Thanks Aldo! --- resources/definitions/ultimaker3.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/ultimaker3.def.json b/resources/definitions/ultimaker3.def.json index a503cb7739..826960a621 100644 --- a/resources/definitions/ultimaker3.def.json +++ b/resources/definitions/ultimaker3.def.json @@ -90,7 +90,7 @@ "infill_overlap": { "value": "0" }, "infill_pattern": { "value": "'triangles'" }, "infill_wipe_dist": { "value": "0" }, - "initial_layer_line_width_factor": { "value": "120" }, + "initial_layer_line_width_factor": { "value": "120" }, "jerk_enabled": { "value": "True" }, "jerk_layer_0": { "value": "jerk_topbottom" }, "jerk_prime_tower": { "value": "math.ceil(jerk_print * 15 / 25)" }, @@ -110,7 +110,7 @@ "material_bed_temperature": { "maximum_value": "115" }, "material_bed_temperature_layer_0": { "maximum_value": "115" }, "material_standby_temperature": { "value": "100" }, - "meshfix_maximum_resolution": { "value": "0.04" }, + "meshfix_maximum_resolution": { "value": "0.04" }, "multiple_mesh_overlap": { "value": "0" }, "optimize_wall_printing_order": { "value": "True" }, "prime_tower_enable": { "default_value": true }, From c508e77fe2e18152d4af056d7a6b835856955a44 Mon Sep 17 00:00:00 2001 From: Mark Date: Thu, 15 Feb 2018 15:49:06 +0100 Subject: [PATCH 10/16] Improved the text --- cura/CrashHandler.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cura/CrashHandler.py b/cura/CrashHandler.py index 4d8cb6f54d..24df54b74e 100644 --- a/cura/CrashHandler.py +++ b/cura/CrashHandler.py @@ -13,9 +13,8 @@ import ssl import urllib.request import urllib.error import shutil -import sys -from PyQt5.QtCore import QT_VERSION_STR, PYQT_VERSION_STR +from PyQt5.QtCore import QT_VERSION_STR, PYQT_VERSION_STR, QFile from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QVBoxLayout, QLabel, QTextEdit, QGroupBox, QCheckBox, QPushButton from UM.Application import Application @@ -23,6 +22,7 @@ from UM.Logger import Logger from UM.View.GL.OpenGL import OpenGL from UM.i18n import i18nCatalog from UM.Platform import Platform +from UM.Resources import Resources catalog = i18nCatalog("cura") @@ -91,6 +91,7 @@ class CrashHandler: label = QLabel() label.setText(catalog.i18nc("@label crash message", """

A fatal error has occurred.

Unfortunately, Cura encountered an unrecoverable error during start up. It was possibly caused by some incorrect configuration files. We suggest to backup and reset your configuration.

+

Your backup can be found in your Configuration folder.

Please send us this Crash Report to fix the problem.

""")) label.setWordWrap(True) From 86b31c3a6c31632af75b8a1071831081e4c38afb Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Fri, 16 Feb 2018 09:12:42 +0100 Subject: [PATCH 11/16] Fix: in 3.0 version we did not save quality type under extruder.cfg in project for custom fdm pritners. For this case during deserializing share quality stack between global and extruder's stacks CURA-4966 --- plugins/3MFReader/ThreeMFWorkspaceReader.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index a2e02fa9d4..8291ca3b52 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -775,6 +775,9 @@ class ThreeMFWorkspaceReader(WorkspaceReader): # Ensure a unique ID and name stack.setMetaDataEntry("id", new_id) + # Keep same quality between extruders and global stack + stack.quality = global_stack.quality + self._container_registry.addContainer(stack) extruder_stacks_added.append(stack) containers_added.append(stack) From 735dac6a4a9ee6572d4255eb237e1639c9ef78bf Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 16 Feb 2018 09:15:06 +0100 Subject: [PATCH 12/16] Modify debug message to show the correct/useful information --- cura/Settings/CuraContainerRegistry.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Settings/CuraContainerRegistry.py b/cura/Settings/CuraContainerRegistry.py index 148ed6fe59..e26dab7399 100644 --- a/cura/Settings/CuraContainerRegistry.py +++ b/cura/Settings/CuraContainerRegistry.py @@ -235,7 +235,7 @@ class CuraContainerRegistry(ContainerRegistry): if not expected_machine_definition: expected_machine_definition = global_container_stack.definition.getId() if expected_machine_definition is not None and profile_definition is not None and profile_definition != expected_machine_definition: - Logger.log("e", "Profile [%s] is for machine [%s] but the current active machine is [%s]. Will not import the profile", file_name) + Logger.log("e", "Profile [%s] is for machine [%s] but the current active machine is [%s]. Will not import the profile", file_name, profile_definition, expected_machine_definition) return { "status": "error", "message": catalog.i18nc("@info:status Don't translate the XML tags or !", "The machine defined in profile {0} doesn't match with your current machine, could not import it.", file_name)} From 85059882fedd73525ccae1a59287b3614bf7609a Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 16 Feb 2018 11:01:02 +0100 Subject: [PATCH 13/16] CURA-4959 Add buildplate information to the summary when saving a project file. - The activeVariantNames now returns only the names of the variants in the extruder stacks. --- cura/Settings/MachineManager.py | 3 ++- resources/qml/WorkspaceSummaryDialog.qml | 25 ++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 7e0e67a7e0..cc5c4aa539 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -559,7 +559,8 @@ class MachineManager(QObject): def activeVariantNames(self) -> List[str]: result = [] - active_stacks = ExtruderManager.getInstance().getActiveGlobalAndExtruderStacks() + # Just return the variants in the extruder stack(s). For the variant in the global stack, use activeVariantBuildplateName + active_stacks = ExtruderManager.getInstance().getActiveExtruderStacks() if active_stacks is not None: for stack in active_stacks: variant_container = stack.variant diff --git a/resources/qml/WorkspaceSummaryDialog.qml b/resources/qml/WorkspaceSummaryDialog.qml index d5cc416f39..a05dee5a9a 100644 --- a/resources/qml/WorkspaceSummaryDialog.qml +++ b/resources/qml/WorkspaceSummaryDialog.qml @@ -120,6 +120,31 @@ UM.Dialog width: (parent.width / 3) | 0 } } + Column + { + width: parent.width + visible: Cura.MachineManager.hasVariantBuildplates + Item // Spacer + { + height: spacerHeight + width: height + } + Row + { + width: parent.width + height: childrenRect.height + Label + { + text: catalog.i18nc("@action:label", "Build plate") + width: (parent.width / 3) | 0 + } + Label + { + text: Cura.MachineManager.activeVariantBuildplateName + width: (parent.width / 3) | 0 + } + } + } Repeater { From 4a0a9f521c1a0a2d957b18acbd60dcf3d66bc5b9 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 16 Feb 2018 11:13:40 +0100 Subject: [PATCH 14/16] Bumped the required version numbers down again, as they should specifcy a min version number. As the summary describes; We should use *min* version numbers. If we have a higher version installed as defined, it will have the bugfixes and not the features. Increasing version nr should therefore only be done if we want new features. --- resources/qml/PrintMonitor.qml | 2 +- resources/qml/SaveButton.qml | 2 +- resources/qml/Settings/SettingCheckBox.qml | 4 ++-- resources/qml/Settings/SettingItem.qml | 4 ++-- resources/qml/SidebarContents.qml | 2 +- resources/qml/SidebarHeader.qml | 2 +- resources/qml/SidebarTooltip.qml | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/resources/qml/PrintMonitor.qml b/resources/qml/PrintMonitor.qml index 95b17e9abe..0841144043 100644 --- a/resources/qml/PrintMonitor.qml +++ b/resources/qml/PrintMonitor.qml @@ -1,7 +1,7 @@ // Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.8 +import QtQuick 2.7 import QtQuick.Controls 1.1 import QtQuick.Controls.Styles 1.1 import QtQuick.Layouts 1.1 diff --git a/resources/qml/SaveButton.qml b/resources/qml/SaveButton.qml index bd43b25db7..0369f492b4 100644 --- a/resources/qml/SaveButton.qml +++ b/resources/qml/SaveButton.qml @@ -1,7 +1,7 @@ // Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.8 +import QtQuick 2.7 import QtQuick.Controls 1.1 import QtQuick.Controls.Styles 1.1 import QtQuick.Layouts 1.1 diff --git a/resources/qml/Settings/SettingCheckBox.qml b/resources/qml/Settings/SettingCheckBox.qml index d8105e2ae1..d37754d27c 100644 --- a/resources/qml/Settings/SettingCheckBox.qml +++ b/resources/qml/Settings/SettingCheckBox.qml @@ -1,9 +1,9 @@ // Copyright (c) 2018 Ultimaker B.V. // Uranium is released under the terms of the LGPLv3 or higher. -import QtQuick 2.8 +import QtQuick 2.7 import QtQuick.Layouts 1.2 -import QtQuick.Controls 2.1 +import QtQuick.Controls 2.0 import UM 1.2 as UM diff --git a/resources/qml/Settings/SettingItem.qml b/resources/qml/Settings/SettingItem.qml index b2535d6b41..013371e528 100644 --- a/resources/qml/Settings/SettingItem.qml +++ b/resources/qml/Settings/SettingItem.qml @@ -1,9 +1,9 @@ // Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.8 +import QtQuick 2.7 import QtQuick.Layouts 1.2 -import QtQuick.Controls 2.1 +import QtQuick.Controls 2.0 import UM 1.1 as UM import Cura 1.0 as Cura diff --git a/resources/qml/SidebarContents.qml b/resources/qml/SidebarContents.qml index e15fabd89b..0b19bfe3c1 100644 --- a/resources/qml/SidebarContents.qml +++ b/resources/qml/SidebarContents.qml @@ -1,7 +1,7 @@ // Copyright (c) 2016 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.8 +import QtQuick 2.7 import QtQuick.Controls 1.1 import QtQuick.Controls.Styles 1.1 import QtQuick.Layouts 1.1 diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml index 6c4731931e..d43b8d3752 100644 --- a/resources/qml/SidebarHeader.qml +++ b/resources/qml/SidebarHeader.qml @@ -1,7 +1,7 @@ // Copyright (c) 2017 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.8 +import QtQuick 2.7 import QtQuick.Controls 1.1 import QtQuick.Controls.Styles 1.1 diff --git a/resources/qml/SidebarTooltip.qml b/resources/qml/SidebarTooltip.qml index 6756763c8a..29199481f6 100644 --- a/resources/qml/SidebarTooltip.qml +++ b/resources/qml/SidebarTooltip.qml @@ -1,7 +1,7 @@ // Copyright (c) 2015 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.8 +import QtQuick 2.7 import QtQuick.Controls 1.1 import QtQuick.Controls.Styles 1.1 import QtQuick.Layouts 1.1 From f89793095078da6588941d005e35b3ace8e7495d Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Fri, 16 Feb 2018 11:48:08 +0100 Subject: [PATCH 15/16] Fix: Allow connection button for other printers CURA-4962 --- plugins/UM3NetworkPrinting/UM3InfoComponents.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/UM3InfoComponents.qml b/plugins/UM3NetworkPrinting/UM3InfoComponents.qml index 18b481a6ed..5a9cc096e7 100644 --- a/plugins/UM3NetworkPrinting/UM3InfoComponents.qml +++ b/plugins/UM3NetworkPrinting/UM3InfoComponents.qml @@ -10,7 +10,8 @@ Item { id: base - property bool isUM3: Cura.MachineManager.activeQualityDefinitionId == "ultimaker3" + property string activeQualityDefinitionId: Cura.MachineManager.activeQualityDefinitionId + property bool isUM3: activeQualityDefinitionId == "ultimaker3" || activeQualityDefinitionId.match("ultimaker_") != null property bool printerConnected: Cura.MachineManager.printerOutputDevices.length != 0 property bool printerAcceptsCommands: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands property bool authenticationRequested: printerConnected && (Cura.MachineManager.printerOutputDevices[0].authenticationState == 2 || Cura.MachineManager.printerOutputDevices[0].authenticationState == 5) // AuthState.AuthenticationRequested or AuthenticationReceived. From 744313af273ed34a5796d3970c3915f68abaedc7 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 16 Feb 2018 14:01:46 +0100 Subject: [PATCH 16/16] CURA-4946 Add the quality_definition metadata entry to the gcode so when parsing, the quality definition is taken into account instead of the definition. The message when importing a profile to a different machine, now shows the expected machine and the current machine definition id.!! --- cura/Settings/CuraContainerRegistry.py | 17 ++++++++++++----- plugins/GCodeWriter/GCodeWriter.py | 5 +++++ 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/cura/Settings/CuraContainerRegistry.py b/cura/Settings/CuraContainerRegistry.py index e26dab7399..be5a10e293 100644 --- a/cura/Settings/CuraContainerRegistry.py +++ b/cura/Settings/CuraContainerRegistry.py @@ -228,16 +228,23 @@ class CuraContainerRegistry(ContainerRegistry): Logger.log("e", "Incorrect profile [%s]. Could not find global profile", file_name) return { "status": "error", "message": catalog.i18nc("@info:status Don't translate the XML tags or !", "This profile {0} contains incorrect data, could not import it.", file_name)} - profile_definition = global_profile.getMetaDataEntry("definition") - expected_machine_definition = "fdmprinter" + + # In a profile we can have the quality_definition metadata, but if not, we get the definition + profile_definition = global_profile.getMetaDataEntry("quality_definition") + if not profile_definition: + profile_definition = global_profile.getMetaDataEntry("definition") + + # The expected machine definition may be the quality_definition if defined or the current definition id + expected_machine_definition = None if parseBool(global_container_stack.getMetaDataEntry("has_machine_quality", "False")): expected_machine_definition = global_container_stack.getMetaDataEntry("quality_definition") - if not expected_machine_definition: - expected_machine_definition = global_container_stack.definition.getId() + if not expected_machine_definition: + expected_machine_definition = global_container_stack.definition.getId() + if expected_machine_definition is not None and profile_definition is not None and profile_definition != expected_machine_definition: Logger.log("e", "Profile [%s] is for machine [%s] but the current active machine is [%s]. Will not import the profile", file_name, profile_definition, expected_machine_definition) return { "status": "error", - "message": catalog.i18nc("@info:status Don't translate the XML tags or !", "The machine defined in profile {0} doesn't match with your current machine, could not import it.", file_name)} + "message": catalog.i18nc("@info:status Don't translate the XML tags or !", "The machine defined in profile {0} ({1}) doesn't match with your current machine ({2}), could not import it.", file_name, profile_definition, expected_machine_definition)} name_seed = os.path.splitext(os.path.basename(file_name))[0] new_name = self.uniqueName(name_seed) diff --git a/plugins/GCodeWriter/GCodeWriter.py b/plugins/GCodeWriter/GCodeWriter.py index d06332bec1..368942fd08 100644 --- a/plugins/GCodeWriter/GCodeWriter.py +++ b/plugins/GCodeWriter/GCodeWriter.py @@ -5,6 +5,7 @@ from UM.Mesh.MeshWriter import MeshWriter from UM.Logger import Logger from UM.Application import Application from UM.Settings.InstanceContainer import InstanceContainer +from UM.Util import parseBool from cura.Settings.ExtruderManager import ExtruderManager @@ -120,6 +121,10 @@ class GCodeWriter(MeshWriter): if flat_global_container.getMetaDataEntry("quality_type", None) is None: flat_global_container.addMetaDataEntry("quality_type", stack.quality.getMetaDataEntry("quality_type", "normal")) + # Ensure that quality_definition is set. (Can happen if we have empty quality changes). + if parseBool(stack.getMetaDataEntry("has_machine_quality", "False")): + flat_global_container.addMetaDataEntry("quality_definition", stack.getMetaDataEntry("quality_definition")) + serialized = flat_global_container.serialize() data = {"global_quality": serialized}