From 7b2d95bbd9e2b069f71b0eeb189f1e32991cd58d Mon Sep 17 00:00:00 2001 From: LarsBrubaker Date: Fri, 1 May 2020 07:51:44 -0700 Subject: [PATCH] adding in C axis --- MatterControl.Printing/Settings/PrinterSettings.cs | 1 + MatterControl.Printing/Settings/SettingsKey.cs | 1 + .../Settings/SliceSettingsFields.cs | 13 +++++++++++++ .../PrinterCommunication/PrinterConnection.cs | 14 ++++++++++---- .../ControlWidgets/MovementControls.cs | 12 ++++++++++++ StaticData/SliceSettings/Layouts.txt | 1 + Submodules/agg-sharp | 2 +- 7 files changed, 39 insertions(+), 5 deletions(-) diff --git a/MatterControl.Printing/Settings/PrinterSettings.cs b/MatterControl.Printing/Settings/PrinterSettings.cs index 3e5de0133..60ae86dbe 100644 --- a/MatterControl.Printing/Settings/PrinterSettings.cs +++ b/MatterControl.Printing/Settings/PrinterSettings.cs @@ -176,6 +176,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration SettingsKey.filament_1_has_been_loaded, SettingsKey.filament_runout_sensor, SettingsKey.firmware_type, + SettingsKey.has_c_axis, SettingsKey.has_fan, SettingsKey.has_hardware_leveling, SettingsKey.has_heated_bed, diff --git a/MatterControl.Printing/Settings/SettingsKey.cs b/MatterControl.Printing/Settings/SettingsKey.cs index 60797da96..58ed4cae1 100644 --- a/MatterControl.Printing/Settings/SettingsKey.cs +++ b/MatterControl.Printing/Settings/SettingsKey.cs @@ -109,6 +109,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration public const string g0 = nameof(g0); public const string gcode_flavor = nameof(gcode_flavor); public const string gcode_output_type = nameof(gcode_output_type); + public const string has_c_axis = nameof(has_c_axis); public const string has_fan = nameof(has_fan); public const string has_hardware_leveling = nameof(has_hardware_leveling); public const string has_heated_bed = nameof(has_heated_bed); diff --git a/MatterControl.Printing/Settings/SliceSettingsFields.cs b/MatterControl.Printing/Settings/SliceSettingsFields.cs index ccaf70789..fb68dff93 100644 --- a/MatterControl.Printing/Settings/SliceSettingsFields.cs +++ b/MatterControl.Printing/Settings/SliceSettingsFields.cs @@ -723,6 +723,19 @@ namespace MatterHackers.MatterControl.SlicerConfiguration RebuildGCodeOnChange = false }, new SliceSettingData() + { + SlicerConfigName = SettingsKey.has_c_axis, + PresentationName = "Has C Axis".Localize(), + HelpText = "The printer has a c axis used by too changer (e3d quad extruder).".Localize(), + DataEditType = DataEditTypes.CHECK_BOX, + ShowAsOverride = true, + ShowIfSet = "!sla_printer", + ResetAtEndOfPrint = false, + DefaultValue = "0", + ReloadUiWhenChanged = true, + RebuildGCodeOnChange = false + }, + new SliceSettingData() { SlicerConfigName = SettingsKey.has_z_servo, PresentationName = "Has Z Servo".Localize(), diff --git a/MatterControlLib/PrinterCommunication/PrinterConnection.cs b/MatterControlLib/PrinterCommunication/PrinterConnection.cs index a02791c3e..d1db8b3b1 100644 --- a/MatterControlLib/PrinterCommunication/PrinterConnection.cs +++ b/MatterControlLib/PrinterCommunication/PrinterConnection.cs @@ -424,7 +424,8 @@ namespace MatterHackers.MatterControl.PrinterCommunication Y = 2, Z = 4, E = 8, - XYZ = X | Y | Z + XYZ = X | Y | Z, + C = 16, // used by e3d quad extruder } public double ActualBedTemperature @@ -1371,20 +1372,25 @@ Make sure that your printer is turned on. Some printers will appear to be connec // If we are homing everything we don't need to add any details if (!axis.HasFlag(Axis.XYZ)) { - if ((axis & Axis.X) == Axis.X) + if (axis.HasFlag(Axis.X)) { command += " X0"; } - if ((axis & Axis.Y) == Axis.Y) + if (axis.HasFlag(Axis.Y)) { command += " Y0"; } - if ((axis & Axis.Z) == Axis.Z) + if (axis.HasFlag(Axis.Z)) { command += " Z0"; } + + if (axis.HasFlag(Axis.C)) + { + command += " C0"; + } } QueueLine(command); diff --git a/MatterControlLib/PrinterControls/ControlWidgets/MovementControls.cs b/MatterControlLib/PrinterControls/ControlWidgets/MovementControls.cs index 8c5fd0c1d..57f40ca08 100644 --- a/MatterControlLib/PrinterControls/ControlWidgets/MovementControls.cs +++ b/MatterControlLib/PrinterControls/ControlWidgets/MovementControls.cs @@ -156,6 +156,18 @@ namespace MatterHackers.MatterControl.PrinterControls homeZButton.Click += (s, e) => printer.Connection.HomeAxis(PrinterConnection.Axis.Z); toolbar.AddChild(homeZButton); + if (printer.Settings.GetValue(SettingsKey.has_c_axis)) + { + var homeCButton = new TextButton("C", theme) + { + ToolTipText = "Home C".Localize(), + BackgroundColor = theme.MinimalShade, + Margin = theme.ButtonSpacing + }; + homeCButton.Click += (s, e) => printer.Connection.HomeAxis(PrinterConnection.Axis.C); + toolbar.AddChild(homeCButton); + } + int extruderCount = printer.Settings.GetValue(SettingsKey.extruder_count); // Display the current baby step offset stream values diff --git a/StaticData/SliceSettings/Layouts.txt b/StaticData/SliceSettings/Layouts.txt index cdc90445b..40446d325 100644 --- a/StaticData/SliceSettings/Layouts.txt +++ b/StaticData/SliceSettings/Layouts.txt @@ -206,6 +206,7 @@ Printer filament_runout_sensor has_z_probe has_z_servo + has_c_axis enable_network_printing enable_sailfish_communication sla_printer diff --git a/Submodules/agg-sharp b/Submodules/agg-sharp index 6daf0288a..9371fc13d 160000 --- a/Submodules/agg-sharp +++ b/Submodules/agg-sharp @@ -1 +1 @@ -Subproject commit 6daf0288a22655b275bea252caeb5264f003747e +Subproject commit 9371fc13d7e56ded89f67453578996a2dd79936d