From 02d8f259e2dec8f6fd3b3d4fd4de8e2735fc55a8 Mon Sep 17 00:00:00 2001 From: Mark Burton Date: Sat, 29 Jul 2017 09:19:47 +0100 Subject: [PATCH 1/7] Add z_offset_layer_0 and z_offset_taper_layers settings. --- resources/definitions/fdmprinter.def.json | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 7f57875650..e218a7180f 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4088,6 +4088,28 @@ "settable_per_extruder": true, "limit_to_extruder": "adhesion_extruder_nr" }, + "z_offset_layer_0": + { + "label": "Initial Layer Z Offset.", + "description": "The extruder is offset from the height of the first layer by this amount. It can be positive or negative. Some filament types adhere to the build plate better if the extruder is raised slightly.", + "unit": "mm", + "type": "float", + "default_value": 0, + "enabled": "resolveOrValue('adhesion_type') != 'raft'", + "settable_per_mesh": false, + "settable_per_extruder": false + }, + "z_offset_taper_layers": + { + "label": "Z Offset Taper Layers", + "description": "Number of layers over which the Z offset is reduced to 0. A value of 0 means that the Z offset is not changed.", + "type": "int", + "default_value": 0, + "minimum_value": "0", + "enabled": "resolveOrValue('adhesion_type') != 'raft'", + "settable_per_mesh": false, + "settable_per_extruder": false + }, "raft_margin": { "label": "Raft Extra Margin", From d0922e90072b481e784b57b78e3694e407640ea6 Mon Sep 17 00:00:00 2001 From: Mark Burton Date: Sat, 29 Jul 2017 09:32:55 +0100 Subject: [PATCH 2/7] Removed trailing . --- resources/definitions/fdmprinter.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index e218a7180f..f136a6d93e 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4090,7 +4090,7 @@ }, "z_offset_layer_0": { - "label": "Initial Layer Z Offset.", + "label": "Initial Layer Z Offset", "description": "The extruder is offset from the height of the first layer by this amount. It can be positive or negative. Some filament types adhere to the build plate better if the extruder is raised slightly.", "unit": "mm", "type": "float", From b97e42bc55c5f824fb13774f799aa0296ee355d3 Mon Sep 17 00:00:00 2001 From: Mark Burton Date: Sat, 29 Jul 2017 14:02:24 +0100 Subject: [PATCH 3/7] Tweak descriptions of z_offset_layer_0 and z_offset_taper_layers. --- resources/definitions/fdmprinter.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index f136a6d93e..0f00095cac 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4091,7 +4091,7 @@ "z_offset_layer_0": { "label": "Initial Layer Z Offset", - "description": "The extruder is offset from the height of the first layer by this amount. It can be positive or negative. Some filament types adhere to the build plate better if the extruder is raised slightly.", + "description": "The extruder is offset from the normal height of the first layer by this amount. It can be positive (raised) or negative (lowered). Some filament types adhere to the build plate better if the extruder is raised slightly.", "unit": "mm", "type": "float", "default_value": 0, @@ -4102,7 +4102,7 @@ "z_offset_taper_layers": { "label": "Z Offset Taper Layers", - "description": "Number of layers over which the Z offset is reduced to 0. A value of 0 means that the Z offset is not changed.", + "description": "When non-zero, the Z offset is reduced to 0 over that many layers. A value of 0 means that the Z offset remains constant for all the layers in the print.", "type": "int", "default_value": 0, "minimum_value": "0", From d3e45e689216471ee9326f0623c663c6da76a8eb Mon Sep 17 00:00:00 2001 From: Mark Burton Date: Sat, 29 Jul 2017 14:02:52 +0100 Subject: [PATCH 4/7] Only enable z_offset_taper_layers if z_offset_layer_0 is non-zero. --- resources/definitions/fdmprinter.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 0f00095cac..e9471fb922 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4106,7 +4106,7 @@ "type": "int", "default_value": 0, "minimum_value": "0", - "enabled": "resolveOrValue('adhesion_type') != 'raft'", + "enabled": "resolveOrValue('adhesion_type') != 'raft' and z_offset_layer_0 != 0", "settable_per_mesh": false, "settable_per_extruder": false }, From 5cbead512803b4dafdddb5ac13f44ee37bd37fbd Mon Sep 17 00:00:00 2001 From: Mark Burton Date: Wed, 23 Aug 2017 21:52:21 +0100 Subject: [PATCH 5/7] Add some value constraints to z_offset_layer_0. Now the offset cannot be such that the first layer would be less than 1/2 of its normal height. Warnings shown when first layer is less than 80% or more than 200% of its normal height. --- resources/definitions/fdmprinter.def.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index e9471fb922..da6e43622b 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4095,6 +4095,9 @@ "unit": "mm", "type": "float", "default_value": 0, + "minimum_value": "-layer_height_0 * 0.5", + "minimum_value_warning": "-layer_height_0 * 0.2", + "maximum_value_warning": "layer_height_0", "enabled": "resolveOrValue('adhesion_type') != 'raft'", "settable_per_mesh": false, "settable_per_extruder": false From 2c13f5dc75230e3e6c5ffe849e2a6da5bd04a1f8 Mon Sep 17 00:00:00 2001 From: Mark Burton Date: Wed, 23 Aug 2017 22:32:11 +0100 Subject: [PATCH 6/7] Add minimum_value to z_offset_taper_layers. It now constrains the value to be no less than 0 when z_offset_layer_0 is negative or z_offset_taper_layers is 0, otherwise the value must be such that the gap between subsequent layers is not less than 80% of the normal layer height. If the print head was lowered for the first layer, the tapering will always cause the subsequent layers to be at least the normal layer height above the previous layer so the tapering can occur over any number of layers. On the other hand, if the print head was raised for the first layer, we demand that either tapering is not used (value is 0) or that the tapering occurs over sufficient layers so that the inter-layer gaps are not too small. --- resources/definitions/fdmprinter.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index da6e43622b..115c1069aa 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4108,7 +4108,7 @@ "description": "When non-zero, the Z offset is reduced to 0 over that many layers. A value of 0 means that the Z offset remains constant for all the layers in the print.", "type": "int", "default_value": 0, - "minimum_value": "0", + "minimum_value": "0 if z_offset_layer_0 <= 0 or z_offset_taper_layers == 0 else max(1, round(5 * z_offset_layer_0 / layer_height + 0.5))", "enabled": "resolveOrValue('adhesion_type') != 'raft' and z_offset_layer_0 != 0", "settable_per_mesh": false, "settable_per_extruder": false From 2db96f02f43699c8e38bf0e05c2f65cde6473433 Mon Sep 17 00:00:00 2001 From: Mark Burton Date: Thu, 24 Aug 2017 15:24:10 +0100 Subject: [PATCH 7/7] Revised minimum_value and minimum_value_warning values. Now just constrains z_offset_taper_layers to be >= 0 as that needs to be positive. --- resources/definitions/fdmprinter.def.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 115c1069aa..13068c386a 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4095,8 +4095,7 @@ "unit": "mm", "type": "float", "default_value": 0, - "minimum_value": "-layer_height_0 * 0.5", - "minimum_value_warning": "-layer_height_0 * 0.2", + "minimum_value_warning": "0", "maximum_value_warning": "layer_height_0", "enabled": "resolveOrValue('adhesion_type') != 'raft'", "settable_per_mesh": false, @@ -4108,7 +4107,7 @@ "description": "When non-zero, the Z offset is reduced to 0 over that many layers. A value of 0 means that the Z offset remains constant for all the layers in the print.", "type": "int", "default_value": 0, - "minimum_value": "0 if z_offset_layer_0 <= 0 or z_offset_taper_layers == 0 else max(1, round(5 * z_offset_layer_0 / layer_height + 0.5))", + "minimum_value": "0", "enabled": "resolveOrValue('adhesion_type') != 'raft' and z_offset_layer_0 != 0", "settable_per_mesh": false, "settable_per_extruder": false