diff --git a/MatterControlLib/DesignTools/SupportGenerator.cs b/MatterControlLib/DesignTools/SupportGenerator.cs index fd03fb81d..2def7afaa 100644 --- a/MatterControlLib/DesignTools/SupportGenerator.cs +++ b/MatterControlLib/DesignTools/SupportGenerator.cs @@ -131,7 +131,7 @@ namespace MatterHackers.MatterControl.DesignTools } } - public static ITraceable CreateTraceData(FaceList faceList, List vertexList, BvhCreationOptions bvhCreationOptions = BvhCreationOptions.FavorFastTracing) + public static ITraceable CreateTraceData(FaceList faceList, List vertexList, BvhCreationOptions bvhCreationOptions = BvhCreationOptions.LegacySlowConstructionFastTracing) { var allPolys = new List(); diff --git a/MatterControlLib/PartPreviewWindow/View3D/Actions/CombineObject3D_2.cs b/MatterControlLib/PartPreviewWindow/View3D/Actions/CombineObject3D_2.cs index f3e1d139f..7df4d37bb 100644 --- a/MatterControlLib/PartPreviewWindow/View3D/Actions/CombineObject3D_2.cs +++ b/MatterControlLib/PartPreviewWindow/View3D/Actions/CombineObject3D_2.cs @@ -72,7 +72,45 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D private ProcessingResolution InputResolution { get; set; } = ProcessingResolution._64; #endif public bool IsBuilding => this.cancellationToken != null; - + + public static void CheckManifoldData(CombineObject3D_2 item, IObject3D result) + { + bool IsManifold(Mesh mesh) + { + var meshEdgeList = mesh.NewMeshEdges(); + + foreach (var meshEdge in meshEdgeList) + { + if (meshEdge.Faces.Count() != 2) + { + return false; + } + } + + return true; + } + + if (!IsManifold(result.Mesh)) + { + // create a new combine of a and b and add it to the root + var combine = new CombineObject3D_2(); + + var participants = item.SourceContainer.VisibleMeshes().Where(m => m.WorldOutputType(item.SourceContainer) != PrintOutputTypes.Hole); + // all participants are manifold + foreach (var participant in participants) + { + combine.SourceContainer.Children.Add(new Object3D() + { + Mesh = participant.Mesh.Copy(new CancellationToken()), + Matrix = participant.Matrix + }); + } + + var scene = result.Parents().Last(); + scene.Children.Add(combine); + } + } + public override Task Rebuild() { this.DebugDepth("Rebuild"); @@ -91,6 +129,22 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D try { Combine(cancellationTokenSource.Token, reporter); + + if (cancellationToken.IsCancellationRequested) + { + // the combine was canceled set our children to the source object children + SourceContainer.Visible = true; + RemoveAllButSource(); + Children.Modify((list) => + { + foreach (var child in SourceContainer.Children) + { + list.Add(child); + } + }); + + SourceContainer.Visible = false; + } } catch { @@ -183,7 +237,12 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D resultsItem.CopyProperties(participants.First(), Object3DPropertyFlags.All & (~Object3DPropertyFlags.Matrix)); this.Children.Add(resultsItem); - SourceContainer.Visible = false; +#if DEBUG + //resultsItem.Mesh.MergeVertices(.01); + //resultsItem.Mesh.CleanAndMerge(); + //CheckManifoldData(this, resultsItem); +#endif + SourceContainer.Visible = false; } public void UpdateControls(PublicPropertyChange change) diff --git a/MatterControlLib/PartPreviewWindow/View3D/View3DWidget.cs b/MatterControlLib/PartPreviewWindow/View3D/View3DWidget.cs index 6d0cc89a2..5059fa9d6 100644 --- a/MatterControlLib/PartPreviewWindow/View3D/View3DWidget.cs +++ b/MatterControlLib/PartPreviewWindow/View3D/View3DWidget.cs @@ -1483,129 +1483,138 @@ namespace MatterHackers.MatterControl.PartPreviewWindow public override void OnMouseDown(MouseEventArgs mouseEvent) { - var selectedItem = Scene.SelectedItem; - mouseDownPositon = mouseEvent.Position; - worldMatrixOnMouseDown = sceneContext.World.GetTransform4X4(); - // Show transform override - if (activeButtonBeforeMouseOverride == null - && (mouseEvent.Button == MouseButtons.Right || Keyboard.IsKeyDown(Keys.Control))) + using (new QuickTimer("View3DWidget_OnMouseDown", .3)) { - if (Keyboard.IsKeyDown(Keys.Shift)) + var selectedItem = Scene.SelectedItem; + mouseDownPositon = mouseEvent.Position; + worldMatrixOnMouseDown = sceneContext.World.GetTransform4X4(); + // Show transform override + if (activeButtonBeforeMouseOverride == null + && (mouseEvent.Button == MouseButtons.Right || Keyboard.IsKeyDown(Keys.Control))) + { + if (Keyboard.IsKeyDown(Keys.Shift)) + { + activeButtonBeforeMouseOverride = viewControls3D.ActiveButton; + viewControls3D.ActiveButton = ViewControls3DButtons.Translate; + } + else if (Keyboard.IsKeyDown(Keys.Alt)) + { + activeButtonBeforeMouseOverride = viewControls3D.ActiveButton; + viewControls3D.ActiveButton = ViewControls3DButtons.Scale; + } + else + { + activeButtonBeforeMouseOverride = viewControls3D.ActiveButton; + viewControls3D.ActiveButton = ViewControls3DButtons.Rotate; + } + } + else if (activeButtonBeforeMouseOverride == null && mouseEvent.Button == MouseButtons.Middle) { activeButtonBeforeMouseOverride = viewControls3D.ActiveButton; viewControls3D.ActiveButton = ViewControls3DButtons.Translate; } - else if (Keyboard.IsKeyDown(Keys.Alt)) + + if (mouseEvent.Button == MouseButtons.Right || + mouseEvent.Button == MouseButtons.Middle) { - activeButtonBeforeMouseOverride = viewControls3D.ActiveButton; - viewControls3D.ActiveButton = ViewControls3DButtons.Scale; + this.Object3DControlLayer.SuppressObject3DControls = true; } - else + + base.OnMouseDown(mouseEvent); + + if (TrackballTumbleWidget.UnderMouseState == UnderMouseState.FirstUnderMouse + && sceneContext.ViewState.ModelView) { - activeButtonBeforeMouseOverride = viewControls3D.ActiveButton; - viewControls3D.ActiveButton = ViewControls3DButtons.Rotate; - } - } - else if (activeButtonBeforeMouseOverride == null && mouseEvent.Button == MouseButtons.Middle) - { - activeButtonBeforeMouseOverride = viewControls3D.ActiveButton; - viewControls3D.ActiveButton = ViewControls3DButtons.Translate; - } - - if (mouseEvent.Button == MouseButtons.Right || - mouseEvent.Button == MouseButtons.Middle) - { - this.Object3DControlLayer.SuppressObject3DControls = true; - } - - base.OnMouseDown(mouseEvent); - - if (TrackballTumbleWidget.UnderMouseState == UnderMouseState.FirstUnderMouse - && sceneContext.ViewState.ModelView) - { - if ((mouseEvent.Button == MouseButtons.Left - && viewControls3D.ActiveButton == ViewControls3DButtons.PartSelect - && ModifierKeys == Keys.Shift) - || (TrackballTumbleWidget.TransformState == TrackBallTransformType.None - && ModifierKeys != Keys.Control - && ModifierKeys != Keys.Alt)) - { - if (!this.Object3DControlLayer.MouseDownOnObject3DControlVolume) + if ((mouseEvent.Button == MouseButtons.Left + && viewControls3D.ActiveButton == ViewControls3DButtons.PartSelect + && ModifierKeys == Keys.Shift) + || (TrackballTumbleWidget.TransformState == TrackBallTransformType.None + && ModifierKeys != Keys.Control + && ModifierKeys != Keys.Alt)) { - this.Object3DControlLayer.SuppressObject3DControls = true; - - IObject3D hitObject = FindHitObject3D(mouseEvent.Position, out IntersectInfo info); - if (hitObject == null) + if (!this.Object3DControlLayer.MouseDownOnObject3DControlVolume) { - if (selectedItem != null) + this.Object3DControlLayer.SuppressObject3DControls = true; + + IObject3D hitObject = null; + IntersectInfo info = null; + using (new QuickTimer("View3DWidget_OnMouseDown_FindHitObject3D", .3)) { - Scene.ClearSelection(); + hitObject = FindHitObject3D(mouseEvent.Position, out info); } - // start a selection rect - DragSelectionStartPosition = mouseEvent.Position - OffsetToMeshViewerWidget(); - DragSelectionEndPosition = DragSelectionStartPosition; - DragSelectionInProgress = true; - } - else - { - CurrentSelectInfo.HitPlane = new PlaneShape(Vector3.UnitZ, CurrentSelectInfo.PlaneDownHitPos.Z, null); - - if (hitObject != selectedItem) + if (hitObject == null) { - if (selectedItem == null) + if (selectedItem != null) { - // No selection exists - Scene.SelectedItem = hitObject; - } - else if ((ModifierKeys == Keys.Shift || ModifierKeys == Keys.Control) - && !selectedItem.Children.Contains(hitObject)) - { - expandSelection = !(selectedItem is SelectionGroupObject3D); - Scene.AddToSelection(hitObject); - } - else if (selectedItem == hitObject || selectedItem.Children.Contains(hitObject)) - { - // Selection should not be cleared and drag should occur - } - else if (ModifierKeys != Keys.Shift) - { - Scene.SelectedItem = hitObject; + Scene.ClearSelection(); } - // Selection may have changed, update local reference to current value - selectedItem = Scene.SelectedItem; - - Invalidate(); - } - - TransformOnMouseDown = selectedItem.Matrix; - - Invalidate(); - CurrentSelectInfo.DownOnPart = true; - - AxisAlignedBoundingBox selectedBounds = selectedItem.GetAxisAlignedBoundingBox(); - - if (info.HitPosition.X < selectedBounds.Center.X) - { - if (info.HitPosition.Y < selectedBounds.Center.Y) - { - CurrentSelectInfo.HitQuadrant = HitQuadrant.LB; - } - else - { - CurrentSelectInfo.HitQuadrant = HitQuadrant.LT; - } + // start a selection rect + DragSelectionStartPosition = mouseEvent.Position - OffsetToMeshViewerWidget(); + DragSelectionEndPosition = DragSelectionStartPosition; + DragSelectionInProgress = true; } else { - if (info.HitPosition.Y < selectedBounds.Center.Y) + CurrentSelectInfo.HitPlane = new PlaneShape(Vector3.UnitZ, CurrentSelectInfo.PlaneDownHitPos.Z, null); + + if (hitObject != selectedItem) { - CurrentSelectInfo.HitQuadrant = HitQuadrant.RB; + if (selectedItem == null) + { + // No selection exists + Scene.SelectedItem = hitObject; + } + else if ((ModifierKeys == Keys.Shift || ModifierKeys == Keys.Control) + && !selectedItem.Children.Contains(hitObject)) + { + expandSelection = !(selectedItem is SelectionGroupObject3D); + Scene.AddToSelection(hitObject); + } + else if (selectedItem == hitObject || selectedItem.Children.Contains(hitObject)) + { + // Selection should not be cleared and drag should occur + } + else if (ModifierKeys != Keys.Shift) + { + Scene.SelectedItem = hitObject; + } + + // Selection may have changed, update local reference to current value + selectedItem = Scene.SelectedItem; + + Invalidate(); + } + + TransformOnMouseDown = selectedItem.Matrix; + + Invalidate(); + CurrentSelectInfo.DownOnPart = true; + + AxisAlignedBoundingBox selectedBounds = selectedItem.GetAxisAlignedBoundingBox(); + + if (info.HitPosition.X < selectedBounds.Center.X) + { + if (info.HitPosition.Y < selectedBounds.Center.Y) + { + CurrentSelectInfo.HitQuadrant = HitQuadrant.LB; + } + else + { + CurrentSelectInfo.HitQuadrant = HitQuadrant.LT; + } } else { - CurrentSelectInfo.HitQuadrant = HitQuadrant.RT; + if (info.HitPosition.Y < selectedBounds.Center.Y) + { + CurrentSelectInfo.HitQuadrant = HitQuadrant.RB; + } + else + { + CurrentSelectInfo.HitQuadrant = HitQuadrant.RT; + } } } } diff --git a/MatterControlLib/SettingsManagement/UpdateSettingsPage.cs b/MatterControlLib/SettingsManagement/UpdateSettingsPage.cs index 96f340402..4037bcbb7 100644 --- a/MatterControlLib/SettingsManagement/UpdateSettingsPage.cs +++ b/MatterControlLib/SettingsManagement/UpdateSettingsPage.cs @@ -113,8 +113,8 @@ namespace MatterHackers.MatterControl var make = printer.Settings.GetValue(SettingsKey.make); var model = printer.Settings.GetValue(SettingsKey.model); var message = $"The default settings for the {make} {model} have been updated."; - message += "\nBelow you can find a list of each setting that has changed.".Localize(); - message += "\nUpdating a default setting will not change any override that you have applied.".Localize(); + message += "\n" + "Below you can find a list of each setting that has changed.".Localize(); + message += "\n" + "Updating a default setting will not change any override that you have applied.".Localize(); generalPanel.AddChild(new WrappedTextWidget(message, pointSize: 11) { Margin = new BorderDouble(5, 15), diff --git a/StaticData/Translations/Master.txt b/StaticData/Translations/Master.txt index 580461830..0d8845bdd 100644 --- a/StaticData/Translations/Master.txt +++ b/StaticData/Translations/Master.txt @@ -34,12 +34,6 @@ Translated:(Press 'Skip' to setup connection later) English:\"{0}\" already exists.\nDo you want to replace it? Translated:\"{0}\" already exists.\nDo you want to replace it? -English:\nBelow you can find a list of each setting that has changed. -Translated:\nBelow you can find a list of each setting that has changed. - -English:\nUpdating a default setting will not change any override that you have applied. -Translated:\nUpdating a default setting will not change any override that you have applied. - English:{0} (Update Available) Translated:{0} (Update Available) @@ -400,9 +394,6 @@ Translated:Are you sure you want to delete printer '{0}'? English:Are you sure you want to exit while a print is running from SD Card?\n\nNote: If you exit, it is recommended you wait until the print is completed before running MatterControl again. Translated:Are you sure you want to exit while a print is running from SD Card?\n\nNote: If you exit, it is recommended you wait until the print is completed before running MatterControl again. -English:Are you sure you want to exit while a print is running from SD Card?\n\nNote: If you exit, it is recommended you wait until the print is completed before running MatterControl again. -Translated:Are you sure you want to exit while a print is running from SD Card?\n\nNote: If you exit, it is recommended you wait until the print is completed before running MatterControl again. - English:Are you sure you want to remove the currently selected items? Translated:Are you sure you want to remove the currently selected items? @@ -1591,9 +1582,6 @@ Translated:Error: Could not create file for saving. Original error English:Error: Could not read file from disk. Original error: Translated:Error: Could not read file from disk. Original error: -English:Error: Could not read file from disk. Original error: -Translated:Error: Could not read file from disk. Original error: - English:Estimated Cost Translated:Estimated Cost @@ -1969,9 +1957,6 @@ Translated:Forums English:Found a line that is {0} characters long.\n{1}... Translated:Found a line that is {0} characters long.\n{1}... -English:Found a line that is {0} characters long.\n{1}... -Translated:Found a line that is {0} characters long.\n{1}... - English:Furthest Back Translated:Furthest Back @@ -2467,9 +2452,6 @@ Translated:IP Finder English:It appears your last print failed to complete.\n\nWould your like to attempt to recover from the last know position? Translated:It appears your last print failed to complete.\n\nWould your like to attempt to recover from the last know position? -English:It appears your last print failed to complete.\n\nWould your like to attempt to recover from the last know position? -Translated:It appears your last print failed to complete.\n\nWould your like to attempt to recover from the last know position? - English:It is currently set to {0}. Translated:It is currently set to {0}. @@ -3232,6 +3214,9 @@ Translated:Number of Samples English:Number Printed Translated:Number Printed +English:Object Actions +Translated:Object Actions + English:of Translated:of @@ -3811,6 +3796,9 @@ Translated:Printer Options English:Printer Paused Translated:Printer Paused +English:Printer Settings +Translated:Printer Settings + English:Printer Setup Translated:Printer Setup @@ -4111,9 +4099,6 @@ Translated:Reset View English:Resetting to default values will remove your current overrides and restore your original printer settings.\nAre you sure you want to continue? Translated:Resetting to default values will remove your current overrides and restore your original printer settings.\nAre you sure you want to continue? -English:Resetting to default values will remove your current overrides and restore your original printer settings.\nAre you sure you want to continue? -Translated:Resetting to default values will remove your current overrides and restore your original printer settings.\nAre you sure you want to continue? - English:Reshape Translated:Reshape @@ -4957,12 +4942,6 @@ Translated:Success!\n\nYour filament should now be loaded English:Success!\n\nYour filament should now be unloaded Translated:Success!\n\nYour filament should now be unloaded -English:Success!\n\nYour filament should now be loaded -Translated:Success!\n\nYour filament should now be loaded - -English:Success!\n\nYour filament should now be unloaded -Translated:Success!\n\nYour filament should now be unloaded - English:Support Translated:Support @@ -5188,9 +5167,6 @@ Translated:The extra distance the raft will extend around the edge of the part. English:The extruder is currently heating and its target temperature cannot be changed until it reaches {0}°C.\n\nYou can set the starting extruder temperature in 'Slice Settings' -> 'Filament'.\n\n{1} Translated:The extruder is currently heating and its target temperature cannot be changed until it reaches {0}°C.\n\nYou can set the starting extruder temperature in 'Slice Settings' -> 'Filament'.\n\n{1} -English:The extruder is currently heating and its target temperature cannot be changed until it reaches {0}°C.\n\nYou can set the starting extruder temperature in 'Slice Settings' -> 'Filament'.\n\n{1} -Translated:The extruder is currently heating and its target temperature cannot be changed until it reaches {0}°C.\n\nYou can set the starting extruder temperature in 'Slice Settings' -> 'Filament'.\n\n{1} - English:The extruder to use for support material. Default will use whichever extruder active at the time. Translated:The extruder to use for support material. Default will use whichever extruder active at the time. @@ -5206,9 +5182,6 @@ Translated:The extruder to use to print the raft. Default will use extruder 1. English:The file you are attempting to print is a GCode file.\n\nIt is recommended that you only print Gcode files known to match your printer's configuration.\n\nAre you sure you want to print this GCode file? Translated:The file you are attempting to print is a GCode file.\n\nIt is recommended that you only print Gcode files known to match your printer's configuration.\n\nAre you sure you want to print this GCode file? -English:The file you are attempting to print is a GCode file.\n\nIt is recommended that you only print Gcode files known to match your printer's configuration.\n\nAre you sure you want to print this GCode file? -Translated:The file you are attempting to print is a GCode file.\n\nIt is recommended that you only print Gcode files known to match your printer's configuration.\n\nAre you sure you want to print this GCode file? - English:The firmware being used by the printer. Allows for improvements based on firmware such as optimized G-Code output. Translated:The firmware being used by the printer. Allows for improvements based on firmware such as optimized G-Code output. @@ -5230,9 +5203,6 @@ Translated:The ideal resistance is when the paper first begins to bend, but can English:The inset amount for each side of the bed.\n- As a % of the width or depth\n- Ordered: Left, Front, Right, Back\n- NOTE: The probe offset is added on top of this Translated:The inset amount for each side of the bed.\n- As a % of the width or depth\n- Ordered: Left, Front, Right, Back\n- NOTE: The probe offset is added on top of this -English:The inset amount for each side of the bed.\n- As a % of the width or depth\n- Ordered: Left, Front, Right, Back\n- NOTE: The probe offset is added on top of this -Translated:The inset amount for each side of the bed.\n- As a % of the width or depth\n- Ordered: Left, Front, Right, Back\n- NOTE: The probe offset is added on top of this - English:The inset amount for nozzle 1 from the bed (Left, Front, Right, Back). Translated:The inset amount for nozzle 1 from the bed (Left, Front, Right, Back). @@ -5482,9 +5452,6 @@ Translated:The serial port communication speed of the printers firmware. English:The 'Serial Port' section lists all available serial\nports on your device. Changing which USB port the printer\nis connected to may change the associated serial port.\n\nTip: If you are uncertain, unplug/plug in your printer\nand hit refresh. The new port that appears should be\nyour printer. Translated:The 'Serial Port' section lists all available serial\nports on your device. Changing which USB port the printer\nis connected to may change the associated serial port.\n\nTip: If you are uncertain, unplug/plug in your printer\nand hit refresh. The new port that appears should be\nyour printer. -English:The 'Serial Port' section lists all available serial\nports on your device. Changing which USB port the printer\nis connected to may change the associated serial port.\n\nTip: If you are uncertain, unplug/plug in your printer\nand hit refresh. The new port that appears should be\nyour printer. -Translated:The 'Serial Port' section lists all available serial\nports on your device. Changing which USB port the printer\nis connected to may change the associated serial port.\n\nTip: If you are uncertain, unplug/plug in your printer\nand hit refresh. The new port that appears should be\nyour printer. - English:The serial port to use while connecting to this printer. Translated:The serial port to use while connecting to this printer. @@ -5644,9 +5611,6 @@ Translated:The temperature to which the nozzle will be heated before printing th English:The term 'Baud Rate' roughly means the speed at which\ndata is transmitted. Baud rates may differ from printer to\nprinter. Refer to your printer manual for more info.\n\nTip: If you are uncertain - try 250000. Translated:The term 'Baud Rate' roughly means the speed at which\ndata is transmitted. Baud rates may differ from printer to\nprinter. Refer to your printer manual for more info.\n\nTip: If you are uncertain - try 250000. -English:The term 'Baud Rate' roughly means the speed at which\ndata is transmitted. Baud rates may differ from printer to\nprinter. Refer to your printer manual for more info.\n\nTip: If you are uncertain - try 250000. -Translated:The term 'Baud Rate' roughly means the speed at which\ndata is transmitted. Baud rates may differ from printer to\nprinter. Refer to your printer manual for more info.\n\nTip: If you are uncertain - try 250000. - English:The thickness of each layer of the print, except the base layers. A smaller number will create more layers and more vertical accuracy but also a slower print. Translated:The thickness of each layer of the print, except the base layers. A smaller number will create more layers and more vertical accuracy but also a slower print. @@ -6142,6 +6106,9 @@ Translated:Velocity Paint English:Version Translated:Version +English:View +Translated:View + English:View Icons Translated:View Icons @@ -6247,12 +6214,6 @@ Translated:Warning, very short print English:WARNING: Disconnecting will stop the current print.\n\nAre you sure you want to disconnect? Translated:WARNING: Disconnecting will stop the current print.\n\nAre you sure you want to disconnect? -English:WARNING: Disconnecting will stop the current print.\n\nAre you sure you want to disconnect? -Translated:WARNING: Disconnecting will stop the current print.\n\nAre you sure you want to disconnect? - -English:WARNING: In order to perform print recovery, your printer must move down to reach its home position.\nIf your print is too large, part of your printer may collide with it when moving down.\nMake sure it is safe to perform this operation before proceeding. -Translated:WARNING: In order to perform print recovery, your printer must move down to reach its home position.\nIf your print is too large, part of your printer may collide with it when moving down.\nMake sure it is safe to perform this operation before proceeding. - English:WARNING: In order to perform print recovery, your printer must move down to reach its home position.\nIf your print is too large, part of your printer may collide with it when moving down.\nMake sure it is safe to perform this operation before proceeding. Translated:WARNING: In order to perform print recovery, your printer must move down to reach its home position.\nIf your print is too large, part of your printer may collide with it when moving down.\nMake sure it is safe to perform this operation before proceeding. @@ -6406,9 +6367,6 @@ Translated:You are connected to the Emulator not an actual printer. English:You are switching to a different thumbnail rendering mode. If you want, your current thumbnails can be removed and recreated in the new style. You can switch back and forth at any time. There will be some processing overhead while the new thumbnails are created.\n\nDo you want to rebuild your existing thumbnails now? Translated:You are switching to a different thumbnail rendering mode. If you want, your current thumbnails can be removed and recreated in the new style. You can switch back and forth at any time. There will be some processing overhead while the new thumbnails are created.\n\nDo you want to rebuild your existing thumbnails now? -English:You are switching to a different thumbnail rendering mode. If you want, your current thumbnails can be removed and recreated in the new style. You can switch back and forth at any time. There will be some processing overhead while the new thumbnails are created.\n\nDo you want to rebuild your existing thumbnails now? -Translated:You are switching to a different thumbnail rendering mode. If you want, your current thumbnails can be removed and recreated in the new style. You can switch back and forth at any time. There will be some processing overhead while the new thumbnails are created.\n\nDo you want to rebuild your existing thumbnails now? - English:You can also Translated:You can also @@ -6460,12 +6418,6 @@ Translated:You should select the 'Material' your are printing with under the 'Ho English:Your 3D print has been auto-paused.\n\nLayer {0} reached. Translated:Your 3D print has been auto-paused.\n\nLayer {0} reached. -English:Your 3D print has been auto-paused.\n\nLayer {0} reached. -Translated:Your 3D print has been auto-paused.\n\nLayer {0} reached. - -English:Your 3D print has been paused.\n\nOut of filament, or jam, detected. Please load more filament or clear the jam. -Translated:Your 3D print has been paused.\n\nOut of filament, or jam, detected. Please load more filament or clear the jam. - English:Your 3D print has been paused.\n\nOut of filament, or jam, detected. Please load more filament or clear the jam. Translated:Your 3D print has been paused.\n\nOut of filament, or jam, detected. Please load more filament or clear the jam. diff --git a/Submodules/MatterSlice b/Submodules/MatterSlice index d30433b04..aed14d8ae 160000 --- a/Submodules/MatterSlice +++ b/Submodules/MatterSlice @@ -1 +1 @@ -Subproject commit d30433b04424d0af57fa22e0bf8cec077ac41b2a +Subproject commit aed14d8ae6c0d2576271b4f48178686863ea19cc diff --git a/Submodules/agg-sharp b/Submodules/agg-sharp index 4af60a982..0454a13bb 160000 --- a/Submodules/agg-sharp +++ b/Submodules/agg-sharp @@ -1 +1 @@ -Subproject commit 4af60a9822345f3bf6800ede7d5b6c6948ea0dc9 +Subproject commit 0454a13bb0f6761f582350157ac9fed7f2934861