diff --git a/MatterControl.Printing/Settings/SettingsKey.cs b/MatterControl.Printing/Settings/SettingsKey.cs index 67eac70b4..c2a3ec5ae 100644 --- a/MatterControl.Printing/Settings/SettingsKey.cs +++ b/MatterControl.Printing/Settings/SettingsKey.cs @@ -62,6 +62,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration public const string cool_extruder_lift = nameof(cool_extruder_lift); public const string cooling = nameof(cooling); public const string create_brim = nameof(create_brim); + public const string create_per_layer_support = nameof(create_per_layer_support); + public const string create_per_layer_internal_support = nameof(create_per_layer_internal_support); public const string create_raft = nameof(create_raft); public const string create_skirt = nameof(create_skirt); public const string created_date = nameof(created_date); @@ -215,6 +217,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration public const string start_perimeters_at_concave_points = nameof(start_perimeters_at_concave_points); public const string start_perimeters_at_non_overhang = nameof(start_perimeters_at_non_overhang); public const string support_air_gap = nameof(support_air_gap); + public const string support_grab_distance = nameof(support_grab_distance); public const string support_material_create_perimeter = nameof(support_material_create_perimeter); public const string support_material_extruder = nameof(support_material_extruder); public const string support_material_infill_angle = nameof(support_material_infill_angle); @@ -223,6 +226,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration public const string support_material_spacing = nameof(support_material_spacing); public const string support_material_speed = nameof(support_material_speed); public const string support_material_xy_distance = nameof(support_material_xy_distance); + public const string support_percent = nameof(support_percent); public const string support_type = nameof(support_type); public const string t1_extrusion_move_speed_multiplier = nameof(t1_extrusion_move_speed_multiplier); public const string temperature = nameof(temperature); diff --git a/MatterControl.Printing/Settings/SliceSettingsFields.cs b/MatterControl.Printing/Settings/SliceSettingsFields.cs index 393d56411..e9edff673 100644 --- a/MatterControl.Printing/Settings/SliceSettingsFields.cs +++ b/MatterControl.Printing/Settings/SliceSettingsFields.cs @@ -1742,6 +1742,49 @@ namespace MatterHackers.MatterControl.SlicerConfiguration Converter = new MappedToBoolString(), }, new SliceSettingData() + { + SlicerConfigName = SettingsKey.create_per_layer_support, + PresentationName = "Analyze Every Layer".Localize(), + HelpText = "Evaluate every layer for support requirements. Support will be algorithmically generated and not user editable. NOTE: If there is any user generated support no algorithmic support will be generated.".Localize(), + ShowIfSet = "!sla_printer", + DataEditType = DataEditTypes.CHECK_BOX, + DefaultValue = "0", + Converter = new MappedToBoolString(), + ReloadUiWhenChanged = true + }, + new SliceSettingData() + { + SlicerConfigName = SettingsKey.create_per_layer_internal_support, + PresentationName = "Generate Everywhere".Localize(), + HelpText = "When generating per layer support, evaluate all surfaces rather than only those above the bed.".Localize(), + ShowIfSet = "!sla_printer&create_per_layer_support", + DataEditType = DataEditTypes.CHECK_BOX, + DefaultValue = "1", + Converter = new MappedToBoolString(), + }, + new SliceSettingData() + { + SlicerConfigName = SettingsKey.support_percent, + PresentationName = "Line Support Overlap".Localize(), + HelpText = "The percentage overlap a given printed line must have over the layer below to be supported.".Localize(), + DataEditType = DataEditTypes.POSITIVE_DOUBLE, + Units = "%".Localize(), + ShowIfSet = "!sla_printer&create_per_layer_support", + DefaultValue = "50", + Converter = new ValueConverter(), + }, + new SliceSettingData() + { + SlicerConfigName = SettingsKey.support_grab_distance, + PresentationName = "Support Expand Distance".Localize(), + HelpText = "The amount to expand the support so it is easy to grab.".Localize(), + DataEditType = DataEditTypes.POSITIVE_DOUBLE, + Units = "mm".Localize(), + ShowIfSet = "!sla_printer&create_per_layer_support", + DefaultValue = "1", + Converter = new ValueConverter(), + }, + new SliceSettingData() { SlicerConfigName = SettingsKey.support_material_extruder, PresentationName = "Support Material Extruder".Localize(), diff --git a/MatterControlLib/SlicerConfiguration/EngineMappingsMatterSlice.cs b/MatterControlLib/SlicerConfiguration/EngineMappingsMatterSlice.cs index 71807f8e8..bda65bbd2 100644 --- a/MatterControlLib/SlicerConfiguration/EngineMappingsMatterSlice.cs +++ b/MatterControlLib/SlicerConfiguration/EngineMappingsMatterSlice.cs @@ -141,6 +141,10 @@ namespace MatterHackers.MatterControl.SlicerConfiguration [SettingsKey.output_only_first_layer] = new ExportField("outputOnlyFirstLayer"), [SettingsKey.retract_when_changing_islands] = new ExportField("retractWhenChangingIslands"), [SettingsKey.support_material_create_perimeter] = new ExportField("generateSupportPerimeter"), + [SettingsKey.create_per_layer_support] = new ExportField("generateSupport"), + [SettingsKey.create_per_layer_internal_support] = new ExportField("generateInternalSupport"), + [SettingsKey.support_grab_distance] = new ExportField("supportGrabDistance"), + [SettingsKey.support_percent] = new ExportField("supportPercent"), [SettingsKey.expand_thin_walls] = new ExportField("expandThinWalls"), [SettingsKey.merge_overlapping_lines] = new ExportField("MergeOverlappingLines"), [SettingsKey.fill_thin_gaps] = new ExportField("fillThinGaps"), diff --git a/StaticData/SliceSettings/Layouts.txt b/StaticData/SliceSettings/Layouts.txt index 9589a53de..72fc61beb 100644 --- a/StaticData/SliceSettings/Layouts.txt +++ b/StaticData/SliceSettings/Layouts.txt @@ -71,6 +71,10 @@ Advanced Support Support Support Options + create_per_layer_support + create_per_layer_internal_support + support_percent + support_grab_distance support_material_create_perimeter support_material_interface_layers support_material_xy_distance diff --git a/Submodules/MatterSlice b/Submodules/MatterSlice index 05653d16d..b9abfcc4e 160000 --- a/Submodules/MatterSlice +++ b/Submodules/MatterSlice @@ -1 +1 @@ -Subproject commit 05653d16d208b5fb04a7640268a9874750002b08 +Subproject commit b9abfcc4e4175fa8560b8732c7b9d833548b7ec5