diff --git a/PartPreviewWindow/ViewGcodeBasic.cs b/PartPreviewWindow/ViewGcodeBasic.cs index 5e2aefb9f..cf6ae0c5a 100644 --- a/PartPreviewWindow/ViewGcodeBasic.cs +++ b/PartPreviewWindow/ViewGcodeBasic.cs @@ -93,6 +93,26 @@ namespace MatterHackers.MatterControl.PartPreviewWindow this.printItem = printItem; CreateAndAddChildren(null); + + SliceSettingsWidget.PartPreviewSettingsChanged.RegisterEvent(RecreateBedAndPartPosition, ref unregisterEvents); + ActivePrinterProfile.Instance.ActivePrinterChanged.RegisterEvent(RecreateBedAndPartPosition, ref unregisterEvents); + } + + void RecreateBedAndPartPosition(object sender, EventArgs e) + { + viewerVolume = new Vector3(ActiveSliceSettings.Instance.BedSize, ActiveSliceSettings.Instance.BuildHeight); + bedShape = ActiveSliceSettings.Instance.BedShape; + bedCenter = ActiveSliceSettings.Instance.BedCenter; + + double buildHeight = ActiveSliceSettings.Instance.BuildHeight; + + UiThread.RunOnIdle((state) => + { + meshViewerWidget.CreatePrintBed( + viewerVolume, + bedCenter, + bedShape); + }); } void CreateAndAddChildren(object state) diff --git a/PrinterCommunication/PrinterConnectionAndCommunication.cs b/PrinterCommunication/PrinterConnectionAndCommunication.cs index 795d5232c..7231f937b 100644 --- a/PrinterCommunication/PrinterConnectionAndCommunication.cs +++ b/PrinterCommunication/PrinterConnectionAndCommunication.cs @@ -819,6 +819,7 @@ namespace MatterHackers.MatterControl.PrinterCommunication string lineToWrite = LinesToWriteQueue[0]; lineToWrite = KeepTrackOfPostionAndDestination(lineToWrite); + lineToWrite = RunPrintLevelingTranslations(lineToWrite); LinesToWriteQueue.RemoveAt(0); // remove the line first (in case we inject another command) WriteToPrinter(lineToWrite + "\r\n", lineToWrite); @@ -1501,16 +1502,22 @@ namespace MatterHackers.MatterControl.PrinterCommunication currentDestination = newDestination; DestinationChanged.CallEvents(this, null); } + } - if (ActivePrinter.DoPrintLeveling) - { - string inputLine = lineBeingSent; - lineBeingSent = PrintLevelingPlane.Instance.ApplyLeveling(currentDestination, movementMode, inputLine); - } + return lineBeingSent; + } + + string RunPrintLevelingTranslations(string lineBeingSent) + { + if (ActivePrinter.DoPrintLeveling + && lineBeingSent.StartsWith("G0 ") || lineBeingSent.StartsWith("G1 ")) + { + string inputLine = lineBeingSent; + lineBeingSent = PrintLevelingPlane.Instance.ApplyLeveling(currentDestination, movementMode, inputLine); } PrintLevelingData levelingData = PrintLevelingData.GetForPrinter(ActivePrinterProfile.Instance.ActivePrinter); - if(levelingData != null) + if (levelingData != null) { List linesToWrite = null; switch (levelingData.levelingSystem) @@ -1677,6 +1684,7 @@ namespace MatterHackers.MatterControl.PrinterCommunication lineToWrite = ApplyExtrusionMultiplier(lineToWrite); lineToWrite = ApplyFeedRateMultiplier(lineToWrite); lineToWrite = KeepTrackOfPostionAndDestination(lineToWrite); + lineToWrite = RunPrintLevelingTranslations(lineToWrite); string lineWithCount = "N" + (allCheckSumLinesSent.Count + 1).ToString() + " " + lineToWrite; string lineWithChecksum = lineWithCount + "*" + GCodeFile.CalculateChecksum(lineWithCount); diff --git a/StaticData/Translations/Master.txt b/StaticData/Translations/Master.txt index 52329b717..df3c818ec 100644 --- a/StaticData/Translations/Master.txt +++ b/StaticData/Translations/Master.txt @@ -2546,3 +2546,6 @@ Translated:Speeds English:Extrusion Translated:Extrusion +English:Clear +Translated:Clear +