From 1a434b638846a46731d6e3c2139a597129cd2a55 Mon Sep 17 00:00:00 2001 From: Lars Brubaker Date: Tue, 4 Dec 2018 13:28:38 -0800 Subject: [PATCH] Moved extruder offsets from passing to MS to being part of stream processing Made '; NO_PROCESSING' track printer position correctly issue: MatterHackers/MCCentral#4658 Create setting for ZOffset for extruder 2 --- .../GCodeRenderer/GCodeRenderInfo.cs | 15 ---- .../GCodeRenderer/GCodeRenderer.cs | 1 - .../RenderFeatures/RenderFeatureRetract.cs | 12 --- .../RenderFeatures/RenderFeatureTravel.cs | 20 ----- MatterControlLib/ApplicationView/BedConfig.cs | 9 -- .../ApplicationView/View3DConfig.cs | 22 ----- .../Library/Export/GCodeExport.cs | 14 ++-- .../PartPreviewWindow/GCode2DWidget.cs | 1 - .../PartPreviewWindow/GCode3DWidget.cs | 13 --- .../GCodeDetails/GCodeOptionsPanel.cs | 5 -- .../PrinterCommunication/Io/OffsetStream.cs | 52 ++++++++++-- .../PrinterCommunication/PrinterConnection.cs | 12 ++- .../SettingsManagement/UserSettings.cs | 1 - .../EngineMappingMatterSlice.cs | 2 +- .../MappingClasses/ExtruderOffsets.cs | 84 ------------------- StaticData/SliceSettings/Properties.json | 8 +- Submodules/MatterSlice | 2 +- 17 files changed, 68 insertions(+), 205 deletions(-) delete mode 100644 MatterControlLib/SlicerConfiguration/MappingClasses/ExtruderOffsets.cs diff --git a/MatterControl.OpenGL/GCodeRenderer/GCodeRenderInfo.cs b/MatterControl.OpenGL/GCodeRenderer/GCodeRenderInfo.cs index 7e40e14fa..dc789280d 100644 --- a/MatterControl.OpenGL/GCodeRenderer/GCodeRenderInfo.cs +++ b/MatterControl.OpenGL/GCodeRenderer/GCodeRenderInfo.cs @@ -36,19 +36,6 @@ namespace MatterHackers.GCodeVisualizer { public class GCodeRenderInfo { - public Vector3[] extruderOffsets; - - public Vector3 GetExtruderOffset(int index) - { - if (extruderOffsets != null - && extruderOffsets.Length > index) - { - return extruderOffsets[index]; - } - - return Vector3.Zero; - } - public Func GetMaterialColor { get; } public int StartLayerIndex { get; set; } @@ -74,7 +61,6 @@ namespace MatterHackers.GCodeVisualizer public GCodeRenderInfo(int startLayerIndex, int endLayerIndex, Affine transform, double layerScale, double featureToStartOnRatio0To1, double featureToEndOnRatio0To1, - Vector3[] extruderOffsets, Func getRenderType, Func getMaterialColor) { @@ -92,7 +78,6 @@ namespace MatterHackers.GCodeVisualizer this.FeatureToStartOnRatio0To1 = featureToStartOnRatio0To1; this.FeatureToEndOnRatio0To1 = featureToEndOnRatio0To1; - this.extruderOffsets = extruderOffsets; } public void RefreshRenderType() diff --git a/MatterControl.OpenGL/GCodeRenderer/GCodeRenderer.cs b/MatterControl.OpenGL/GCodeRenderer/GCodeRenderer.cs index c9bf9d6ba..481d05f93 100644 --- a/MatterControl.OpenGL/GCodeRenderer/GCodeRenderer.cs +++ b/MatterControl.OpenGL/GCodeRenderer/GCodeRenderer.cs @@ -46,7 +46,6 @@ namespace MatterHackers.GCodeVisualizer Retractions = 4, SpeedColors = 8, SimulateExtrusion = 16, - HideExtruderOffsets = 32, TransparentExtrusion = 64, GrayColors = 128 }; diff --git a/MatterControl.OpenGL/GCodeRenderer/RenderFeatures/RenderFeatureRetract.cs b/MatterControl.OpenGL/GCodeRenderer/RenderFeatures/RenderFeatureRetract.cs index 8dda16820..f117bd02e 100644 --- a/MatterControl.OpenGL/GCodeRenderer/RenderFeatures/RenderFeatureRetract.cs +++ b/MatterControl.OpenGL/GCodeRenderer/RenderFeatures/RenderFeatureRetract.cs @@ -68,12 +68,6 @@ namespace MatterHackers.GCodeVisualizer { Vector3 position = new Vector3(this.position); - if (renderInfo.CurrentRenderType.HasFlag(RenderType.HideExtruderOffsets)) - { - Vector3 offset = renderInfo.GetExtruderOffset(extruderIndex); - position = position + offset; - } - // retract and unretract are the extruder color Color color = renderInfo.GetMaterialColor(extruderIndex); // except for extruder 0 where they are the red and blue we are familiar with @@ -108,12 +102,6 @@ namespace MatterHackers.GCodeVisualizer double radius = Radius(renderInfo.LayerScale); Vector2 position = new Vector2(this.position.x, this.position.y); - if (renderInfo.CurrentRenderType.HasFlag(RenderType.HideExtruderOffsets)) - { - Vector3 offset = renderInfo.GetExtruderOffset(extruderIndex); - position = position + new Vector2(offset); - } - renderInfo.Transform.transform(ref position); Color retractionColor = new Color(Color.Red, 200); diff --git a/MatterControl.OpenGL/GCodeRenderer/RenderFeatures/RenderFeatureTravel.cs b/MatterControl.OpenGL/GCodeRenderer/RenderFeatures/RenderFeatureTravel.cs index 0ee2ae307..ff17db354 100644 --- a/MatterControl.OpenGL/GCodeRenderer/RenderFeatures/RenderFeatureTravel.cs +++ b/MatterControl.OpenGL/GCodeRenderer/RenderFeatures/RenderFeatureTravel.cs @@ -42,31 +42,11 @@ namespace MatterHackers.GCodeVisualizer protected Vector3Float GetStart(GCodeRenderInfo renderInfo) { - if (renderInfo.CurrentRenderType.HasFlag(RenderType.HideExtruderOffsets)) - { - Vector3Float start = this.start; - Vector3 offset = renderInfo.GetExtruderOffset(extruderIndex); - start.x += (float)offset.X; - start.y += (float)offset.Y; - start.z += (float)offset.Z; - return start; - } - return this.start; } protected Vector3Float GetEnd(GCodeRenderInfo renderInfo) { - if (renderInfo.CurrentRenderType.HasFlag(RenderType.HideExtruderOffsets)) - { - Vector3Float end = this.end; - Vector3 offset = renderInfo.GetExtruderOffset(extruderIndex); - end.x += (float)offset.X; - end.y += (float)offset.Y; - end.z += (float)offset.Z; - return end; - } - return this.end; } diff --git a/MatterControlLib/ApplicationView/BedConfig.cs b/MatterControlLib/ApplicationView/BedConfig.cs index 578ee3338..52fc528f4 100644 --- a/MatterControlLib/ApplicationView/BedConfig.cs +++ b/MatterControlLib/ApplicationView/BedConfig.cs @@ -481,10 +481,6 @@ namespace MatterHackers.MatterControl { renderType |= RenderType.TransparentExtrusion; } - if (options.HideExtruderOffsets) - { - renderType |= RenderType.HideExtruderOffsets; - } return renderType; } @@ -517,11 +513,6 @@ namespace MatterHackers.MatterControl 1, 0, 1, - new Vector3[] - { - settings.Helpers.ExtruderOffset(0), - settings.Helpers.ExtruderOffset(1) - }, this.GetRenderType, MeshViewerWidget.GetExtruderColor); diff --git a/MatterControlLib/ApplicationView/View3DConfig.cs b/MatterControlLib/ApplicationView/View3DConfig.cs index bd8b8606a..93f83e0ea 100644 --- a/MatterControlLib/ApplicationView/View3DConfig.cs +++ b/MatterControlLib/ApplicationView/View3DConfig.cs @@ -144,28 +144,6 @@ namespace MatterHackers.MatterControl } } - public bool HideExtruderOffsets - { - get - { - string value = UserSettings.Instance.get(UserSettingsKey.GcodeViewerHideExtruderOffsets); - if (value == null) - { - return true; - } - return (value == "True"); - } - set - { - if (this.HideExtruderOffsets != value) - { - UserSettings.Instance.set(UserSettingsKey.GcodeViewerHideExtruderOffsets, value.ToString()); - this.IsDirty = true; - this.OnPropertyChanged(nameof(HideExtruderOffsets)); - } - } - } - public bool SyncToPrint { get => UserSettings.Instance.get(UserSettingsKey.LayerViewSyncToPrint) == "True"; diff --git a/MatterControlLib/Library/Export/GCodeExport.cs b/MatterControlLib/Library/Export/GCodeExport.cs index 015ea785d..65303669a 100644 --- a/MatterControlLib/Library/Export/GCodeExport.cs +++ b/MatterControlLib/Library/Export/GCodeExport.cs @@ -251,13 +251,17 @@ namespace MatterHackers.MatterControl.Library.Export var queueStream = new QueuedCommandsStream(printer, gCodeFileStream); GCodeStream accumulatedStream = queueStream; - if(printer.Settings.GetValue(SettingsKey.print_leveling_enabled) && this.ApplyLeveling) + if (printer.Settings.GetValue(SettingsKey.enable_line_splitting)) { - if (printer.Settings.GetValue(SettingsKey.enable_line_splitting)) - { - accumulatedStream = new BabyStepsStream(printer, accumulatedStream, 1); - } + accumulatedStream = new BabyStepsStream(printer, accumulatedStream, 1); + } + else + { + accumulatedStream = new BabyStepsStream(printer, accumulatedStream, 1000); + } + if (printer.Settings.GetValue(SettingsKey.print_leveling_enabled) && this.ApplyLeveling) + { accumulatedStream = new PrintLevelingStream(printer, accumulatedStream, false); } diff --git a/MatterControlLib/PartPreviewWindow/GCode2DWidget.cs b/MatterControlLib/PartPreviewWindow/GCode2DWidget.cs index 87628eb06..f233f4853 100644 --- a/MatterControlLib/PartPreviewWindow/GCode2DWidget.cs +++ b/MatterControlLib/PartPreviewWindow/GCode2DWidget.cs @@ -161,7 +161,6 @@ namespace MatterHackers.MatterControl.PartPreviewWindow layerScale, options.FeatureToStartOnRatio0To1, options.FeatureToEndOnRatio0To1, - options.extruderOffsets, options.GetRenderType, options.GetMaterialColor); diff --git a/MatterControlLib/PartPreviewWindow/GCode3DWidget.cs b/MatterControlLib/PartPreviewWindow/GCode3DWidget.cs index 75ad778f6..e7ad29f7f 100644 --- a/MatterControlLib/PartPreviewWindow/GCode3DWidget.cs +++ b/MatterControlLib/PartPreviewWindow/GCode3DWidget.cs @@ -95,22 +95,10 @@ namespace MatterHackers.MatterControl.PartPreviewWindow firstSection.BorderColor = Color.Transparent; // Disable top border on first item to produce a more flat, dark top edge // Register listeners - printer.Settings.SettingChanged += Printer_SettingChanged; printer.Bed.LoadedGCodeChanged += Bed_LoadedGCodeChanged; printer.Bed.RendererOptions.PropertyChanged += RendererOptions_PropertyChanged; } - private void Printer_SettingChanged(object s, EventArgs e) - { - if (e is StringEventArgs stringEvent) - { - if (stringEvent.Data == SettingsKey.extruder_offset) - { - printer.Bed.GCodeRenderer?.Clear3DGCode(); - } - } - } - private void RefreshGCodeDetails(PrinterConfig printer) { loadedGCodeSection.CloseAllChildren(); @@ -215,7 +203,6 @@ namespace MatterHackers.MatterControl.PartPreviewWindow public override void OnClosed(EventArgs e) { // Unregister listeners - printer.Settings.SettingChanged -= Printer_SettingChanged; printer.Bed.RendererOptions.PropertyChanged -= RendererOptions_PropertyChanged; printer.Bed.LoadedGCodeChanged -= Bed_LoadedGCodeChanged; diff --git a/MatterControlLib/PartPreviewWindow/GCodeDetails/GCodeOptionsPanel.cs b/MatterControlLib/PartPreviewWindow/GCodeDetails/GCodeOptionsPanel.cs index ea224a892..36eb3eecc 100644 --- a/MatterControlLib/PartPreviewWindow/GCodeDetails/GCodeOptionsPanel.cs +++ b/MatterControlLib/PartPreviewWindow/GCodeDetails/GCodeOptionsPanel.cs @@ -132,11 +132,6 @@ namespace MatterHackers.MatterControl.PartPreviewWindow "Transparent".Localize(), () => gcodeOptions.TransparentExtrusion, (value) => gcodeOptions.TransparentExtrusion = value), - new BoolOption( - "Hide Offsets".Localize(), - () => gcodeOptions.HideExtruderOffsets, - (value) => gcodeOptions.HideExtruderOffsets = value, - () => printer.Settings.GetValue(SettingsKey.extruder_count) > 1), new BoolOption( "Sync To Print".Localize(), () => gcodeOptions.SyncToPrint, diff --git a/MatterControlLib/PrinterCommunication/Io/OffsetStream.cs b/MatterControlLib/PrinterCommunication/Io/OffsetStream.cs index 2da7e3100..54289943c 100644 --- a/MatterControlLib/PrinterCommunication/Io/OffsetStream.cs +++ b/MatterControlLib/PrinterCommunication/Io/OffsetStream.cs @@ -28,8 +28,10 @@ either expressed or implied, of the FreeBSD Project. */ using MatterControl.Printing; +using MatterHackers.Agg; using MatterHackers.MatterControl.SlicerConfiguration; using MatterHackers.VectorMath; +using System; namespace MatterHackers.MatterControl.PrinterCommunication.Io { @@ -38,20 +40,56 @@ namespace MatterHackers.MatterControl.PrinterCommunication.Io private int extruderIndex = 0; private PrinterMove lastDestination = new PrinterMove(); + Vector3[] extruderOffsets = new Vector3[4]; + public OffsetStream(GCodeStream internalStream, PrinterConfig printer, Vector3 offset) : base(printer, internalStream) { this.Offset = offset; + + printer.Settings.SettingChanged += Settings_SettingChanged; + + extruderIndex = printer.Connection.ActiveExtruderIndex; + + ReadExtruderOffsets(); + } + + private void Settings_SettingChanged(object sender, EventArgs e) + { + if (e is StringEventArgs stringEvent) + { + // if the offsets change update them (unless we are actively printing) + if (stringEvent.Data == SettingsKey.extruder_offset + && !printer.Connection.PrinterIsPrinting + && !printer.Connection.PrinterIsPaused) + { + ReadExtruderOffsets(); + } + } + } + + private void ReadExtruderOffsets() + { + for (int i = 0; i < 4; i++) + { + extruderOffsets[i] = printer.Settings.Helpers.ExtruderOffset(i); + } + } + + public override void Dispose() + { + printer.Settings.SettingChanged -= Settings_SettingChanged; + + base.Dispose(); } public override void SetPrinterPosition(PrinterMove position) { lastDestination = position; lastDestination.position -= Offset; - if(extruderIndex == 1) + if (extruderIndex < 4) { - var offset = printer.Settings.Helpers.ExtruderOffset(1); - lastDestination.position.Z -= offset.Z; + lastDestination.position += extruderOffsets[extruderIndex]; } internalStream.SetPrinterPosition(lastDestination); } @@ -72,10 +110,9 @@ namespace MatterHackers.MatterControl.PrinterCommunication.Io && lineToSend.StartsWith("T")) { int extruder = 0; - if(GCodeFile.GetFirstNumberAfter("T", lineToSend, ref extruder)) + if (GCodeFile.GetFirstNumberAfter("T", lineToSend, ref extruder)) { extruderIndex = extruder; - // correct where we think the extruder is } } @@ -86,10 +123,9 @@ namespace MatterHackers.MatterControl.PrinterCommunication.Io PrinterMove moveToSend = currentMove; moveToSend.position += Offset; - if (extruderIndex == 1) + if (extruderIndex < 4) { - var offset = printer.Settings.Helpers.ExtruderOffset(1); - moveToSend.position.Z += offset.Z; + moveToSend.position -= extruderOffsets[extruderIndex]; } lineToSend = CreateMovementLine(moveToSend, lastDestination); diff --git a/MatterControlLib/PrinterCommunication/PrinterConnection.cs b/MatterControlLib/PrinterCommunication/PrinterConnection.cs index ef5ddd92e..3880fe071 100644 --- a/MatterControlLib/PrinterCommunication/PrinterConnection.cs +++ b/MatterControlLib/PrinterCommunication/PrinterConnection.cs @@ -154,7 +154,7 @@ namespace MatterHackers.MatterControl.PrinterCommunication private double actualBedTemperature; - private int currentlyActiveExtruderIndex = 0; + public int ActiveExtruderIndex { get; private set; } private double[] actualHotendTemperature = new double[MAX_EXTRUDERS]; @@ -323,7 +323,7 @@ namespace MatterHackers.MatterControl.PrinterCommunication double extruderBeingSet = 0; if (GCodeFile.GetFirstNumberAfter("T", line, ref extruderBeingSet)) { - currentlyActiveExtruderIndex = (int)extruderBeingSet; + ActiveExtruderIndex = (int)extruderBeingSet; } } @@ -1081,7 +1081,7 @@ namespace MatterHackers.MatterControl.PrinterCommunication else { // we set the private variable so that we don't get the callbacks called and get in a loop of setting the temp - targetHotendTemperature[currentlyActiveExtruderIndex] = tempBeingSet; + targetHotendTemperature[ActiveExtruderIndex] = tempBeingSet; } } } @@ -2339,6 +2339,12 @@ namespace MatterHackers.MatterControl.PrinterCommunication if (currentSentLine != null) { + if (currentSentLine.EndsWith("; NO_PROCESSING")) + { + // make sure our processing pipe knows the translated position after a NO_PROCESSING + ReadPosition(true); + } + if (currentSentLine.Contains("M114") && this.IsConnected) { diff --git a/MatterControlLib/SettingsManagement/UserSettings.cs b/MatterControlLib/SettingsManagement/UserSettings.cs index 1aed8bf20..52a552939 100644 --- a/MatterControlLib/SettingsManagement/UserSettings.cs +++ b/MatterControlLib/SettingsManagement/UserSettings.cs @@ -30,7 +30,6 @@ namespace MatterHackers.MatterControl public const string FavoritesBarExpansion= nameof(FavoritesBarExpansion); public const string GCodeLineColorStyle = nameof(GCodeLineColorStyle); public const string GcodeModelView = nameof(GcodeModelView); - public const string GcodeViewerHideExtruderOffsets = nameof(GcodeViewerHideExtruderOffsets); public const string GcodeViewerRenderGrid = nameof(GcodeViewerRenderGrid); public const string GcodeViewerRenderMoves = nameof(GcodeViewerRenderMoves); public const string GcodeViewerRenderRetractions = nameof(GcodeViewerRenderRetractions); diff --git a/MatterControlLib/SlicerConfiguration/EngineMappingMatterSlice.cs b/MatterControlLib/SlicerConfiguration/EngineMappingMatterSlice.cs index b88b2e651..919bd6374 100644 --- a/MatterControlLib/SlicerConfiguration/EngineMappingMatterSlice.cs +++ b/MatterControlLib/SlicerConfiguration/EngineMappingMatterSlice.cs @@ -96,6 +96,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration SettingsKey.make, SettingsKey.model, SettingsKey.number_of_first_layers, + SettingsKey.extruder_offset, SettingsKey.pause_gcode, SettingsKey.print_center, SettingsKey.print_leveling_probe_start, @@ -149,7 +150,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration new OverrideSpeedOnSlaPrinters(printer, SettingsKey.top_solid_infill_speed, "topInfillSpeed", "infill_speed"), new AsPercentOfReferenceOrDirect(printer, SettingsKey.first_layer_extrusion_width, "firstLayerExtrusionWidth", SettingsKey.nozzle_diameter), new AsPercentOfReferenceOrDirect(printer, SettingsKey.first_layer_height, "firstLayerThickness", SettingsKey.layer_height), - new ExtruderOffsets(printer, SettingsKey.extruder_offset, "extruderOffsets"), new GCodeForSlicer(printer, SettingsKey.end_gcode, "endCode"), new GCodeForSlicer(printer, "before_toolchange_gcode", "beforeToolchangeCode"), new GCodeForSlicer(printer, "toolchange_gcode", "toolChangeCode"), diff --git a/MatterControlLib/SlicerConfiguration/MappingClasses/ExtruderOffsets.cs b/MatterControlLib/SlicerConfiguration/MappingClasses/ExtruderOffsets.cs deleted file mode 100644 index 74068b85b..000000000 --- a/MatterControlLib/SlicerConfiguration/MappingClasses/ExtruderOffsets.cs +++ /dev/null @@ -1,84 +0,0 @@ -/* -Copyright (c) 2016, Lars Brubaker -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -The views and conclusions contained in the software and documentation are those -of the authors and should not be interpreted as representing official policies, -either expressed or implied, of the FreeBSD Project. -*/ - -using System.Text; - -namespace MatterHackers.MatterControl.SlicerConfiguration.MappingClasses -{ - public class ExtruderOffsets : MappedSetting - { - public ExtruderOffsets(PrinterConfig printer, string canonicalSettingsName, string exportedName) - : base(printer, canonicalSettingsName, exportedName) - { - } - - public override string Value - { - get - { - // map from 0x0,0x0,0x0 - // to [[0,0],[0,0]] - StringBuilder final = new StringBuilder("["); - string[] offsets = base.Value.Split(','); - bool first = true; - int count = 0; - foreach (string offset in offsets) - { - if (!first) - { - final.Append(","); - } - string[] xy = offset.Split('x'); - if (xy.Length == 2 || xy.Length == 3) - { - double x = 0; - double.TryParse(xy[0], out x); - double y = 0; - double.TryParse(xy[1], out y); - final.Append($"[{x},{y}]"); - first = false; - count++; - } - else - { - final.Append("[0,0]"); - } - } - while (count < 16) - { - final.Append(",[0,0]"); - count++; - } - final.Append("]"); - - return final.ToString(); - } - } - } -} \ No newline at end of file diff --git a/StaticData/SliceSettings/Properties.json b/StaticData/SliceSettings/Properties.json index fc8043c14..e35115dc0 100644 --- a/StaticData/SliceSettings/Properties.json +++ b/StaticData/SliceSettings/Properties.json @@ -1670,7 +1670,7 @@ { "SlicerConfigName": "before_toolchange_gcode", "PresentationName": "Before Tool Change G-Code", - "HelpText": "G-Code to be run before every tool change. You can use [wipe_tower_x] [wipe_tower_y] & [wipe_tower_z] to set the extruder position if needed.", + "HelpText": "G-Code to be run before every tool change. You can use [wipe_tower_x] [wipe_tower_y] & [wipe_tower_z] to set the extruder position if needed. You can also use '; WRITE_RAW' to skip checksums or '; NO_PROCESSING' to skip position offseting.", "DataEditType": "MULTI_LINE_TEXT", "ShowIfSet": "!sla_printer&extruder_count>1", "DefaultValue": "" @@ -1678,7 +1678,7 @@ { "SlicerConfigName": "toolchange_gcode", "PresentationName": "After Tool Change G-Code", - "HelpText": "G-Code to be run after every tool change. You can use [wipe_tower_x] [wipe_tower_y] & [wipe_tower_z] to set the extruder position if needed.", + "HelpText": "G-Code to be run after every tool change. You can use [wipe_tower_x] [wipe_tower_y] & [wipe_tower_z] to set the extruder position if needed. You can also use '; WRITE_RAW' to skip checksums or '; NO_PROCESSING' to skip position offseting.", "ShowIfSet": "!sla_printer&extruder_count>1", "DataEditType": "MULTI_LINE_TEXT", "DefaultValue": "" @@ -1686,7 +1686,7 @@ { "SlicerConfigName": "before_toolchange_gcode_1", "PresentationName": "Before Tool Change G-Code 2", - "HelpText": "G-Code to be run before switching to extruder 2. Will use standard before G-Code if not set. You can use [wipe_tower_x] [wipe_tower_y] & [wipe_tower_z] to set the extruder position if needed.", + "HelpText": "G-Code to be run before switching to extruder 2. Will use standard before G-Code if not set. You can use [wipe_tower_x] [wipe_tower_y] & [wipe_tower_z] to set the extruder position if needed. You can also use '; WRITE_RAW' to skip checksums or '; NO_PROCESSING' to skip position offseting.", "DataEditType": "MULTI_LINE_TEXT", "ShowIfSet": "!sla_printer&extruder_count>1", "DefaultValue": "" @@ -1694,7 +1694,7 @@ { "SlicerConfigName": "toolchange_gcode_1", "PresentationName": "After Tool Change G-Code 2", - "HelpText": "G-Code to be run after switching to extruder 2. Will use standard after G-Code if not set. You can use [wipe_tower_x] [wipe_tower_y] & [wipe_tower_z] to set the extruder position if needed.", + "HelpText": "G-Code to be run after switching to extruder 2. Will use standard after G-Code if not set. You can use [wipe_tower_x] [wipe_tower_y] & [wipe_tower_z] to set the extruder position if needed. You can also use '; WRITE_RAW' to skip checksums or '; NO_PROCESSING' to skip position offseting.", "ShowIfSet": "!sla_printer&extruder_count>1", "DataEditType": "MULTI_LINE_TEXT", "DefaultValue": "" diff --git a/Submodules/MatterSlice b/Submodules/MatterSlice index d622147cc..3b0f4710b 160000 --- a/Submodules/MatterSlice +++ b/Submodules/MatterSlice @@ -1 +1 @@ -Subproject commit d622147cca7e624c572d80750ea59809c95e1496 +Subproject commit 3b0f4710bf8f500d8bc803b2d4bea6c84a3dcd7a