Make sure we arrange parts on print if they will not fit
This commit is contained in:
parent
2bd6763443
commit
2e086a0e87
2 changed files with 17 additions and 2 deletions
|
|
@ -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(() =>
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue