diff --git a/PrinterCommunication/PrinterConnection.cs b/PrinterCommunication/PrinterConnection.cs index 78aca240c..b19aab52a 100644 --- a/PrinterCommunication/PrinterConnection.cs +++ b/PrinterCommunication/PrinterConnection.cs @@ -1712,9 +1712,13 @@ namespace MatterHackers.MatterControl.PrinterCommunication serialPort.DtrEnable = true; } - public void ReleaseMotors() + public void ReleaseMotors(bool forceRelease = false) { - SendLineToPrinterNow("M84"); + if (forceRelease + || this.printer.Settings.GetValue(SettingsKey.auto_release_motors)) + { + SendLineToPrinterNow("M84"); + } } public void RequestPause() diff --git a/PrinterControls/ControlWidgets/MovementControls.cs b/PrinterControls/ControlWidgets/MovementControls.cs index 2435146ed..60fcc2c0c 100644 --- a/PrinterControls/ControlWidgets/MovementControls.cs +++ b/PrinterControls/ControlWidgets/MovementControls.cs @@ -184,7 +184,7 @@ namespace MatterHackers.MatterControl.PrinterControls disableMotors.Margin = new BorderDouble(0); disableMotors.Click += (s, e) => { - printer.Connection.ReleaseMotors(); + printer.Connection.ReleaseMotors(true); }; homeButtonBar.AddChild(homeIconImageWidget); diff --git a/SlicerConfiguration/Settings/SettingsHelpers.cs b/SlicerConfiguration/Settings/SettingsHelpers.cs index 0a0e5c13b..76fd0f735 100644 --- a/SlicerConfiguration/Settings/SettingsHelpers.cs +++ b/SlicerConfiguration/Settings/SettingsHelpers.cs @@ -117,6 +117,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration public const string number_of_first_layers = nameof(number_of_first_layers); public const string recover_is_enabled = nameof(recover_is_enabled); public const string recover_position_before_z_home = nameof(recover_position_before_z_home); + public const string auto_release_motors = nameof(auto_release_motors); public const string resume_gcode = nameof(resume_gcode); public const string show_reset_connection = nameof(show_reset_connection); public const string sla_printer = nameof(sla_printer); diff --git a/SlicerConfiguration/SlicerMapping/EngineMapingBase.cs b/SlicerConfiguration/SlicerMapping/EngineMapingBase.cs index 97a189be0..9e1a3b7e5 100644 --- a/SlicerConfiguration/SlicerMapping/EngineMapingBase.cs +++ b/SlicerConfiguration/SlicerMapping/EngineMapingBase.cs @@ -79,6 +79,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration SettingsKey.number_of_first_layers, SettingsKey.recover_is_enabled, SettingsKey.recover_position_before_z_home, + SettingsKey.auto_release_motors, SettingsKey.resume_gcode, SettingsKey.temperature, SettingsKey.enable_retractions, diff --git a/StaticData/SliceSettings/Layouts.txt b/StaticData/SliceSettings/Layouts.txt index 96278fedd..8dfc14039 100644 --- a/StaticData/SliceSettings/Layouts.txt +++ b/StaticData/SliceSettings/Layouts.txt @@ -298,6 +298,7 @@ Advanced Behavior z_homes_to_max heat_extruder_before_homing + auto_release_motors validate_layer_height send_with_checksum reset_long_extrusion diff --git a/StaticData/SliceSettings/Properties.json b/StaticData/SliceSettings/Properties.json index 4e230e716..531a8f098 100644 --- a/StaticData/SliceSettings/Properties.json +++ b/StaticData/SliceSettings/Properties.json @@ -481,6 +481,14 @@ "ShowIfSet": "!sla_printer", "DefaultValue": "205" }, + { + "SlicerConfigName": "auto_release_motors", + "PresentationName": "Auto Release Motors", + "HelpText": "Turn off motor current at end of print or after cancel print.", + "DataEditType": "CHECK_BOX", + "ShowIfSet": "!sla_printer", + "DefaultValue": "1" + }, { "SlicerConfigName": "g0", "PresentationName": "Use G0", diff --git a/Submodules/agg-sharp b/Submodules/agg-sharp index c68eeaea4..3d9c6a089 160000 --- a/Submodules/agg-sharp +++ b/Submodules/agg-sharp @@ -1 +1 @@ -Subproject commit c68eeaea48151c0c10328f704d73ead0e95005db +Subproject commit 3d9c6a089683cc71a9eefd5241f91531928e6317