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;
+ }
}
}
}