Make sure we arrange parts on print if they will not fit

This commit is contained in:
Lars Brubaker 2018-10-23 13:46:27 -07:00
parent 2bd6763443
commit 2e086a0e87
2 changed files with 17 additions and 2 deletions

View file

@ -172,7 +172,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
}
}
public static async void AutoArrangeChildren(this InteractiveScene scene, View3DWidget view3DWidget)
public static async Task AutoArrangeChildren(this InteractiveScene scene, View3DWidget view3DWidget)
{
await Task.Run(() =>
{

View file

@ -45,6 +45,7 @@ using MatterHackers.MatterControl.Library;
using MatterHackers.MatterControl.PrinterControls.PrinterConnections;
using MatterHackers.MatterControl.PrintLibrary;
using MatterHackers.MatterControl.SlicerConfiguration;
using MatterHackers.MeshVisualizer;
using MatterHackers.VectorMath;
namespace MatterHackers.MatterControl.PartPreviewWindow
@ -325,12 +326,26 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
await printer.Bed.LoadContent(editContext);
bool allInBounds = true;
foreach (var item in printer.Bed.Scene.Children)
{
allInBounds &= printer.InsideBuildVolume(item);
}
if(!allInBounds)
{
await printer.Bed.Scene.AutoArrangeChildren(view3DWidget);
}
// Switch to printer
ApplicationController.Instance.AppView.TabControl.SelectedTabKey = printer.Settings.GetValue(SettingsKey.printer_name);
// Slice and print
// Save any pending changes before starting print operation
await ApplicationController.Instance.Tasks.Execute("Saving Changes".Localize(), printer.Bed.SaveChanges);
await ApplicationController.Instance.PrintPart(
editContext,
printer.Bed.EditContext,
printer,
null,
CancellationToken.None);