diff --git a/MatterControl.csproj b/MatterControl.csproj index 8260f478a..318387683 100644 --- a/MatterControl.csproj +++ b/MatterControl.csproj @@ -65,6 +65,10 @@ {93bebfdf-b81a-4344-ab82-0dbf58b234cd} MatterControlLib + + {b0aed568-8796-42b9-baa9-ebc796134e78} + MatterSlice + \ No newline at end of file diff --git a/MatterControlLib/CustomWidgets/ExportPrintItemPage.cs b/MatterControlLib/CustomWidgets/ExportPrintItemPage.cs index 3e668b31c..61589e646 100644 --- a/MatterControlLib/CustomWidgets/ExportPrintItemPage.cs +++ b/MatterControlLib/CustomWidgets/ExportPrintItemPage.cs @@ -50,8 +50,11 @@ namespace MatterHackers.MatterControl private IEnumerable libraryItems; - public ExportPrintItemPage(IEnumerable libraryItems) + bool centerOnBed; + + public ExportPrintItemPage(IEnumerable libraryItems, bool centerOnBed) { + this.centerOnBed = centerOnBed; this.WindowTitle = "Export File".Localize(); this.HeaderText = "Export selection to".Localize() + ":"; @@ -212,6 +215,10 @@ namespace MatterHackers.MatterControl if (activePlugin != null) { + if(activePlugin is GCodeExport gCodeExport) + { + gCodeExport.CenterOnBed = centerOnBed; + } succeeded = await activePlugin.Generate(libraryItems, savePath, reporter, cancellationToken); } diff --git a/MatterControlLib/Library/Export/GCodeExport.cs b/MatterControlLib/Library/Export/GCodeExport.cs index 3186c8002..7b5fe3c1e 100644 --- a/MatterControlLib/Library/Export/GCodeExport.cs +++ b/MatterControlLib/Library/Export/GCodeExport.cs @@ -121,8 +121,6 @@ namespace MatterHackers.MatterControl.Library.Export { IObject3D loadedItem = null; - bool centerOnBed = true; - var assetStream = firstItem as ILibraryAssetStream; if (assetStream?.ContentType == "gcode") { @@ -140,7 +138,7 @@ namespace MatterHackers.MatterControl.Library.Export // If item is bedplate, save any pending changes before starting the print await ApplicationController.Instance.Tasks.Execute("Saving".Localize(), printer.Bed.SaveChanges); loadedItem = printer.Bed.Scene; - centerOnBed = false; + CenterOnBed = false; } else if (firstItem is ILibraryObject3D object3DItem) { @@ -178,7 +176,7 @@ namespace MatterHackers.MatterControl.Library.Export if (ApplicationSettings.ValidFileExtensions.IndexOf(sourceExtension, StringComparison.OrdinalIgnoreCase) >= 0 || string.Equals(sourceExtension, ".mcx", StringComparison.OrdinalIgnoreCase)) { - if (centerOnBed) + if (CenterOnBed) { // Get Bounds var aabb = loadedItem.GetAxisAlignedBoundingBox(Matrix4X4.Identity); @@ -186,7 +184,6 @@ namespace MatterHackers.MatterControl.Library.Export // Move to bed center var bedCenter = printer.Bed.BedCenter; loadedItem.Matrix *= Matrix4X4.CreateTranslation((double)-aabb.Center.X, (double)-aabb.Center.Y, (double)-aabb.minXYZ.Z) * Matrix4X4.CreateTranslation(bedCenter.X, bedCenter.Y, 0); - loadedItem.Color = loadedItem.Color; } string originalSpiralVase = printer.Settings.GetValue(SettingsKey.spiral_vase); @@ -231,6 +228,7 @@ namespace MatterHackers.MatterControl.Library.Export } public bool ApplyLeveling { get; set; } = true; + public bool CenterOnBed { get; set; } private void ApplyStreamPipelineAndExport(GCodeFileStream gCodeFileStream, string outputPath) { diff --git a/MatterControlLib/Library/Widgets/PrintLibraryWidget.cs b/MatterControlLib/Library/Widgets/PrintLibraryWidget.cs index d6f51d6e9..a9b0e1716 100644 --- a/MatterControlLib/Library/Widgets/PrintLibraryWidget.cs +++ b/MatterControlLib/Library/Widgets/PrintLibraryWidget.cs @@ -922,7 +922,7 @@ namespace MatterHackers.MatterControl.PrintLibrary private void exportButton_Click(object sender, EventArgs e) { //Open export options - var exportPage = new ExportPrintItemPage(libraryView.SelectedItems.Select(item => item.Model)); + var exportPage = new ExportPrintItemPage(libraryView.SelectedItems.Select(item => item.Model), true); DialogWindow.Show(exportPage); } diff --git a/MatterControlLib/PartPreviewWindow/View3D/View3DWidget.cs b/MatterControlLib/PartPreviewWindow/View3D/View3DWidget.cs index 7e3e14f83..9980e374f 100644 --- a/MatterControlLib/PartPreviewWindow/View3D/View3DWidget.cs +++ b/MatterControlLib/PartPreviewWindow/View3D/View3DWidget.cs @@ -1232,7 +1232,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow new ExportPrintItemPage(new[] { new InMemoryLibraryItem(selectedItem) - })); + }, false)); }); } }}; diff --git a/MatterControlLib/PartPreviewWindow/ViewControls3D.cs b/MatterControlLib/PartPreviewWindow/ViewControls3D.cs index ba77f2f60..bb15e5bc4 100644 --- a/MatterControlLib/PartPreviewWindow/ViewControls3D.cs +++ b/MatterControlLib/PartPreviewWindow/ViewControls3D.cs @@ -579,7 +579,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow new ExportPrintItemPage(new[] { new InMemoryLibraryItem(sceneContext.Scene) - })); + }, false)); }); }, IsEnabled = () => sceneContext.EditableScene diff --git a/Submodules/MatterSlice b/Submodules/MatterSlice index 97d32fc17..c295f6117 160000 --- a/Submodules/MatterSlice +++ b/Submodules/MatterSlice @@ -1 +1 @@ -Subproject commit 97d32fc172fd5ec45023c9b515673105950f76f0 +Subproject commit c295f6117eee8ad1f3728cd7810bbf9052f22677