diff --git a/MatterControl.csproj b/MatterControl.csproj index 66a7bd814..73bf9e588 100644 --- a/MatterControl.csproj +++ b/MatterControl.csproj @@ -287,6 +287,10 @@ {A526DC5D-65F3-461B-805F-D3AC9665F5C9} WindowsFileDialogs + + {C46CA728-DD2F-4DD1-971A-AAA89D9DFF95} + MatterSlice + {F1653F20-D47D-4F29-8C55-3C835542AF5F} Community.CsharpSqlite diff --git a/MatterControl.sln b/MatterControl.sln index 10d7a9189..e0ac77f0b 100644 --- a/MatterControl.sln +++ b/MatterControl.sln @@ -56,6 +56,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TextCreator", "..\MatterCon EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OutlineCreator", "..\MatterControlPlugins\OutlineCreator\OutlineCreator.csproj", "{BEC6FD13-C765-4B90-836B-53823AC12E20}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MatterSlice", "..\MatterSlice\MatterSlice.csproj", "{C46CA728-DD2F-4DD1-971A-AAA89D9DFF95}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -216,6 +218,12 @@ Global {BEC6FD13-C765-4B90-836B-53823AC12E20}.Release|Any CPU.ActiveCfg = Release|Any CPU {BEC6FD13-C765-4B90-836B-53823AC12E20}.Release|Any CPU.Build.0 = Release|Any CPU {BEC6FD13-C765-4B90-836B-53823AC12E20}.Release|x86.ActiveCfg = Release|Any CPU + {C46CA728-DD2F-4DD1-971A-AAA89D9DFF95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C46CA728-DD2F-4DD1-971A-AAA89D9DFF95}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C46CA728-DD2F-4DD1-971A-AAA89D9DFF95}.Debug|x86.ActiveCfg = Debug|Any CPU + {C46CA728-DD2F-4DD1-971A-AAA89D9DFF95}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C46CA728-DD2F-4DD1-971A-AAA89D9DFF95}.Release|Any CPU.Build.0 = Release|Any CPU + {C46CA728-DD2F-4DD1-971A-AAA89D9DFF95}.Release|x86.ActiveCfg = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/PartPreviewWindow/CreateDiscreteMeshes.cs b/PartPreviewWindow/CreateDiscreteMeshes.cs index 773478545..ff3fc9c2e 100644 --- a/PartPreviewWindow/CreateDiscreteMeshes.cs +++ b/PartPreviewWindow/CreateDiscreteMeshes.cs @@ -237,8 +237,8 @@ namespace MatterHackers.MatterControl // now clip the polygons to get the inside and outside polys Clipper clipper = new Clipper(); - clipper.AddPolygons(lineLoops, PolyType.ptSubject); - clipper.AddPolygon(boundingPoly, PolyType.ptClip); + clipper.AddPaths(lineLoops, PolyType.ptSubject, true); + clipper.AddPath(boundingPoly, PolyType.ptClip, true); PolyTree polyTreeForPlate = new PolyTree(); clipper.Execute(ClipType.ctIntersection, polyTreeForPlate); diff --git a/PrintQueue/PrintItemWrapper.cs b/PrintQueue/PrintItemWrapper.cs index 2e3365c16..a8ff7bf80 100644 --- a/PrintQueue/PrintItemWrapper.cs +++ b/PrintQueue/PrintItemWrapper.cs @@ -180,6 +180,7 @@ namespace MatterHackers.MatterControl.PrintQueue switch (ActivePrinterProfile.Instance.ActiveSliceEngineType) { case ActivePrinterProfile.SlicingEngineTypes.CuraEngine: + case ActivePrinterProfile.SlicingEngineTypes.MatterSlice: case ActivePrinterProfile.SlicingEngineTypes.Slic3r: if (gcodeFileContents.Contains("filament used =")) { diff --git a/PrinterCommunication/ActivePrinterProfile.cs b/PrinterCommunication/ActivePrinterProfile.cs index 203e61888..107cc6150 100644 --- a/PrinterCommunication/ActivePrinterProfile.cs +++ b/PrinterCommunication/ActivePrinterProfile.cs @@ -129,12 +129,15 @@ namespace MatterHackers.MatterControl { switch (ActiveSliceEngineType) { - case SlicingEngineTypes.Slic3r: - return Slic3rEngineMappings.Instance; - case SlicingEngineTypes.CuraEngine: return CuraEngineMappings.Instance; + case SlicingEngineTypes.MatterSlice: + return CuraEngineMappings.Instance; + + case SlicingEngineTypes.Slic3r: + return Slic3rEngineMappings.Instance; + default: return null; } diff --git a/SlicerConfiguration/SettingsControlBar.cs b/SlicerConfiguration/SettingsControlBar.cs index b91278c08..96e2b0b3f 100644 --- a/SlicerConfiguration/SettingsControlBar.cs +++ b/SlicerConfiguration/SettingsControlBar.cs @@ -149,14 +149,12 @@ namespace MatterHackers.MatterControl.SlicerConfiguration ApplicationWidget.Instance.ReloadBackPanel(); }; -#if false - MenuItem matterSliceMenuItem = engineMenuDropList.AddItem(ActivePrinterProfile.SlicingEngine.MatterSlice.ToString()); + MenuItem matterSliceMenuItem = engineMenuDropList.AddItem(ActivePrinterProfile.SlicingEngineTypes.MatterSlice.ToString()); matterSliceMenuItem.Selected += (sender, e) => { - PrinterCommunication.Instance.ActiveSliceEngine = ActivePrinterProfile.SlicingEngine.MatterSlice; - MainSlidePanel.Instance.ReloadBackPanel(); + ActivePrinterProfile.Instance.ActiveSliceEngineType = ActivePrinterProfile.SlicingEngineTypes.MatterSlice; + ApplicationWidget.Instance.ReloadBackPanel(); }; -#endif engineMenuDropList.SelectedValue = ActivePrinterProfile.Instance.ActiveSliceEngineType.ToString(); } diff --git a/SlicerConfiguration/SlicingQueue.cs b/SlicerConfiguration/SlicingQueue.cs index ea0df6488..c5216f3d0 100644 --- a/SlicerConfiguration/SlicingQueue.cs +++ b/SlicerConfiguration/SlicingQueue.cs @@ -152,6 +152,11 @@ namespace MatterHackers.MatterControl.SlicerConfiguration string applicationPath = System.IO.Path.Combine(ApplicationDataStorage.Instance.ApplicationPath, "CuraEngine"); return applicationPath; } + case ActivePrinterProfile.SlicingEngineTypes.MatterSlice: + { + string applicationPath = System.IO.Path.Combine(ApplicationDataStorage.Instance.ApplicationPath, "MatterSlice"); + return applicationPath; + } default: throw new NotImplementedException(); @@ -197,7 +202,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration break; case ActivePrinterProfile.SlicingEngineTypes.MatterSlice: - slicerProcess.StartInfo.Arguments = "--load \"" + currentConfigurationFileAndPath + "\" --output \"" + gcodePathAndFileName + "\" \"" + itemToSlice.PartToSlicePathAndFileName + "\""; + slicerProcess.StartInfo.Arguments = "-v -o \"" + gcodePathAndFileName + "\" " + CuraEngineMappings.GetCuraCommandLineSettings() + " \"" + itemToSlice.PartToSlicePathAndFileName + "\""; break; } @@ -229,15 +234,23 @@ namespace MatterHackers.MatterControl.SlicerConfiguration } }; - slicerProcess.Start(); - - slicerProcess.BeginOutputReadLine(); - string stdError = slicerProcess.StandardError.ReadToEnd(); - - slicerProcess.WaitForExit(); - using (TimedLock.Lock(slicerProcess, "SlicingProcess")) +#if DEBUG + if (ActivePrinterProfile.Instance.ActiveSliceEngineType == ActivePrinterProfile.SlicingEngineTypes.MatterSlice) { - slicerProcess = null; + MatterSlice.MatterSlice.ProcessArgs(slicerProcess.StartInfo.Arguments); + } + else +#endif + { + slicerProcess.Start(); + slicerProcess.BeginOutputReadLine(); + string stdError = slicerProcess.StandardError.ReadToEnd(); + + slicerProcess.WaitForExit(); + using (TimedLock.Lock(slicerProcess, "SlicingProcess")) + { + slicerProcess = null; + } } } }