Moved the slice engine code to ActivePrinterProfile
This commit is contained in:
parent
0040895615
commit
aa50fd3722
7 changed files with 74 additions and 71 deletions
|
|
@ -21,6 +21,9 @@ namespace MatterHackers.MatterControl
|
|||
{
|
||||
public class ActivePrinterProfile
|
||||
{
|
||||
public enum SlicingEngine { Slic3r, CuraEngine, MatterSlice };
|
||||
|
||||
static readonly SlicingEngine defaultEngine = SlicingEngine.Slic3r;
|
||||
static ActivePrinterProfile globalInstance = null;
|
||||
|
||||
public RootedObjectEventHandler ActivePrinterChanged = new RootedObjectEventHandler();
|
||||
|
|
@ -55,6 +58,38 @@ namespace MatterHackers.MatterControl
|
|||
}
|
||||
}
|
||||
|
||||
public SlicingEngine ActiveSliceEngine
|
||||
{
|
||||
get
|
||||
{
|
||||
if (ActivePrinter != null)
|
||||
{
|
||||
foreach (SlicingEngine engine in SlicingEngine.GetValues(typeof(SlicingEngine)))
|
||||
{
|
||||
if (ActivePrinter.CurrentSlicingEngine == engine.ToString())
|
||||
{
|
||||
return engine;
|
||||
}
|
||||
}
|
||||
|
||||
// It is not set in the slice settings, so set it and save it.
|
||||
ActivePrinter.CurrentSlicingEngine = defaultEngine.ToString();
|
||||
ActivePrinter.Commit();
|
||||
}
|
||||
return defaultEngine;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (ActiveSliceEngine != value)
|
||||
{
|
||||
ActivePrinter.CurrentSlicingEngine = value.ToString();
|
||||
ActivePrinter.Commit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void OnActivePrinterChanged(EventArgs e)
|
||||
{
|
||||
ActivePrinterChanged.CallEvents(this, e);
|
||||
|
|
|
|||
|
|
@ -168,10 +168,10 @@ namespace MatterHackers.MatterControl.PrintQueue
|
|||
}
|
||||
|
||||
// check if there is a known line at the end of the file (this will let us know if slicer finished building the file).
|
||||
switch (PrinterCommunication.Instance.ActiveSliceEngine)
|
||||
switch (ActivePrinterProfile.Instance.ActiveSliceEngine)
|
||||
{
|
||||
case PrinterCommunication.SlicingEngine.CuraEngine:
|
||||
case PrinterCommunication.SlicingEngine.Slic3r:
|
||||
case ActivePrinterProfile.SlicingEngine.CuraEngine:
|
||||
case ActivePrinterProfile.SlicingEngine.Slic3r:
|
||||
if (gcodeFileContents.Contains("filament used ="))
|
||||
{
|
||||
gCodeFileIsComplete = true;
|
||||
|
|
@ -193,7 +193,7 @@ namespace MatterHackers.MatterControl.PrintQueue
|
|||
return FileLocation;
|
||||
}
|
||||
|
||||
string engineString = ((int)PrinterCommunication.Instance.ActiveSliceEngine).ToString();
|
||||
string engineString = ((int)ActivePrinterProfile.Instance.ActiveSliceEngine).ToString();
|
||||
|
||||
string gcodeFileName = this.StlFileHashCode.ToString() + "_" + engineString + "_" + ActiveSliceSettings.Instance.GetHashCode().ToString();
|
||||
string gcodePathAndFileName = Path.Combine(DataStorage.ApplicationDataStorage.Instance.GCodeOutputPath, gcodeFileName + ".gcode");
|
||||
|
|
|
|||
|
|
@ -341,39 +341,6 @@ namespace MatterHackers.MatterControl
|
|||
}
|
||||
}
|
||||
|
||||
public enum SlicingEngine { Slic3r, CuraEngine, MatterSlice };
|
||||
static readonly SlicingEngine defaultEngine = SlicingEngine.Slic3r;
|
||||
public SlicingEngine ActiveSliceEngine
|
||||
{
|
||||
get
|
||||
{
|
||||
if (ActivePrinter != null)
|
||||
{
|
||||
foreach (SlicingEngine engine in SlicingEngine.GetValues(typeof(SlicingEngine)))
|
||||
{
|
||||
if (ActivePrinter.CurrentSlicingEngine == engine.ToString())
|
||||
{
|
||||
return engine;
|
||||
}
|
||||
}
|
||||
|
||||
// It is not set in the slice settings, so set it and save it.
|
||||
ActivePrinter.CurrentSlicingEngine = defaultEngine.ToString();
|
||||
ActivePrinter.Commit();
|
||||
}
|
||||
return defaultEngine;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (ActiveSliceEngine != value)
|
||||
{
|
||||
ActivePrinter.CurrentSlicingEngine = value.ToString();
|
||||
ActivePrinter.Commit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private Printer ActivePrinter
|
||||
{
|
||||
get
|
||||
|
|
|
|||
|
|
@ -204,7 +204,7 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections
|
|||
string defaultSliceEngine;
|
||||
if (settingsDict.TryGetValue("default_slice_engine", out defaultSliceEngine))
|
||||
{
|
||||
if (Enum.IsDefined(typeof(PrinterCommunication.SlicingEngine), defaultSliceEngine))
|
||||
if (Enum.IsDefined(typeof(ActivePrinterProfile.SlicingEngine), defaultSliceEngine))
|
||||
{
|
||||
ActivePrinter.CurrentSlicingEngine = defaultSliceEngine;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -135,30 +135,30 @@ namespace MatterHackers.MatterControl
|
|||
StyledDropDownList engineMenuDropList = new StyledDropDownList("Engine ");
|
||||
engineMenuDropList.Margin = new BorderDouble(top: 3, left:0);
|
||||
{
|
||||
MenuItem slic3rMenuItem = engineMenuDropList.AddItem(PrinterCommunication.SlicingEngine.Slic3r.ToString());
|
||||
MenuItem slic3rMenuItem = engineMenuDropList.AddItem(ActivePrinterProfile.SlicingEngine.Slic3r.ToString());
|
||||
slic3rMenuItem.Selected += (sender, e) =>
|
||||
{
|
||||
PrinterCommunication.Instance.ActiveSliceEngine = PrinterCommunication.SlicingEngine.Slic3r;
|
||||
ActivePrinterProfile.Instance.ActiveSliceEngine = ActivePrinterProfile.SlicingEngine.Slic3r;
|
||||
MainSlidePanel.Instance.ReloadBackPanel();
|
||||
};
|
||||
|
||||
MenuItem curaEnginMenuItem = engineMenuDropList.AddItem(PrinterCommunication.SlicingEngine.CuraEngine.ToString());
|
||||
MenuItem curaEnginMenuItem = engineMenuDropList.AddItem(ActivePrinterProfile.SlicingEngine.CuraEngine.ToString());
|
||||
curaEnginMenuItem.Selected += (sender, e) =>
|
||||
{
|
||||
PrinterCommunication.Instance.ActiveSliceEngine = PrinterCommunication.SlicingEngine.CuraEngine;
|
||||
ActivePrinterProfile.Instance.ActiveSliceEngine = ActivePrinterProfile.SlicingEngine.CuraEngine;
|
||||
MainSlidePanel.Instance.ReloadBackPanel();
|
||||
};
|
||||
|
||||
#if false
|
||||
MenuItem matterSliceMenuItem = engineMenuDropList.AddItem(PrinterCommunication.SlicingEngine.MatterSlice.ToString());
|
||||
MenuItem matterSliceMenuItem = engineMenuDropList.AddItem(ActivePrinterProfile.SlicingEngine.MatterSlice.ToString());
|
||||
matterSliceMenuItem.Selected += (sender, e) =>
|
||||
{
|
||||
PrinterCommunication.Instance.ActiveSliceEngine = PrinterCommunication.SlicingEngine.MatterSlice;
|
||||
PrinterCommunication.Instance.ActiveSliceEngine = ActivePrinterProfile.SlicingEngine.MatterSlice;
|
||||
MainSlidePanel.Instance.ReloadBackPanel();
|
||||
};
|
||||
#endif
|
||||
|
||||
engineMenuDropList.SelectedValue = PrinterCommunication.Instance.ActiveSliceEngine.ToString();
|
||||
engineMenuDropList.SelectedValue = ActivePrinterProfile.Instance.ActiveSliceEngine.ToString();
|
||||
}
|
||||
engineMenuDropList.MinimumSize = new Vector2(engineMenuDropList.LocalBounds.Width, engineMenuDropList.LocalBounds.Height);
|
||||
return engineMenuDropList;
|
||||
|
|
|
|||
|
|
@ -144,7 +144,7 @@ namespace MatterHackers.MatterControl
|
|||
categoryPage.AddChild(sideTabs);
|
||||
}
|
||||
|
||||
if(showAllDetails.Checked && PrinterCommunication.Instance.ActiveSliceEngine == PrinterCommunication.SlicingEngine.Slic3r)
|
||||
if (showAllDetails.Checked && ActivePrinterProfile.Instance.ActiveSliceEngine == ActivePrinterProfile.SlicingEngine.Slic3r)
|
||||
{
|
||||
TabPage extraSettingsPage = new TabPage("Other");
|
||||
SimpleTextTabWidget extraSettingsTextTabWidget = new SimpleTextTabWidget(extraSettingsPage, 16,
|
||||
|
|
@ -295,7 +295,7 @@ namespace MatterHackers.MatterControl
|
|||
|
||||
foreach (OrganizerSettingsData settingInfo in subGroup.SettingDataList)
|
||||
{
|
||||
if (PrinterCommunication.Instance.ActiveSliceEngine == PrinterCommunication.SlicingEngine.Slic3r
|
||||
if (ActivePrinterProfile.Instance.ActiveSliceEngine == ActivePrinterProfile.SlicingEngine.Slic3r
|
||||
|| CuraEngineMappings.MapContains(settingInfo.SlicerConfigName))
|
||||
{
|
||||
addedSettingToSubGroup = true;
|
||||
|
|
|
|||
|
|
@ -77,9 +77,9 @@ namespace MatterHackers.MatterControl
|
|||
switch (MatterHackers.Agg.UI.WindowsFormsAbstract.GetOSType())
|
||||
{
|
||||
case Agg.UI.WindowsFormsAbstract.OSType.Windows:
|
||||
switch (PrinterCommunication.Instance.ActiveSliceEngine)
|
||||
switch (ActivePrinterProfile.Instance.ActiveSliceEngine)
|
||||
{
|
||||
case PrinterCommunication.SlicingEngine.Slic3r:
|
||||
case ActivePrinterProfile.SlicingEngine.Slic3r:
|
||||
{
|
||||
string slic3rRelativePath = Path.Combine("..", "Slic3r", "slic3r.exe");
|
||||
if (!File.Exists(slic3rRelativePath))
|
||||
|
|
@ -89,7 +89,7 @@ namespace MatterHackers.MatterControl
|
|||
return System.IO.Path.GetFullPath(slic3rRelativePath);
|
||||
}
|
||||
|
||||
case PrinterCommunication.SlicingEngine.CuraEngine:
|
||||
case ActivePrinterProfile.SlicingEngine.CuraEngine:
|
||||
{
|
||||
string curaEngineRelativePath = Path.Combine("..", "CuraEngine.exe");
|
||||
if (!File.Exists(curaEngineRelativePath))
|
||||
|
|
@ -99,7 +99,7 @@ namespace MatterHackers.MatterControl
|
|||
return System.IO.Path.GetFullPath(curaEngineRelativePath);
|
||||
}
|
||||
|
||||
case PrinterCommunication.SlicingEngine.MatterSlice:
|
||||
case ActivePrinterProfile.SlicingEngine.MatterSlice:
|
||||
{
|
||||
string materSliceRelativePath = Path.Combine(".", "MatterSlice.exe");
|
||||
return System.IO.Path.GetFullPath(materSliceRelativePath);
|
||||
|
|
@ -109,23 +109,24 @@ namespace MatterHackers.MatterControl
|
|||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
case Agg.UI.WindowsFormsAbstract.OSType.Mac:
|
||||
switch (PrinterCommunication.Instance.ActiveSliceEngine) {
|
||||
case PrinterCommunication.SlicingEngine.Slic3r:
|
||||
{
|
||||
//string parentLocation = Directory.GetParent (ApplicationDataStorage.Instance.ApplicationPath).ToString ();
|
||||
string applicationPath = System.IO.Path.Combine (ApplicationDataStorage.Instance.ApplicationPath, "Slic3r.app", "Contents", "MacOS", "slic3r");
|
||||
return applicationPath;
|
||||
}
|
||||
case PrinterCommunication.SlicingEngine.CuraEngine:
|
||||
{
|
||||
string applicationPath = System.IO.Path.Combine (ApplicationDataStorage.Instance.ApplicationPath, "CuraEngine");
|
||||
return applicationPath;
|
||||
}
|
||||
case Agg.UI.WindowsFormsAbstract.OSType.Mac:
|
||||
switch (ActivePrinterProfile.Instance.ActiveSliceEngine)
|
||||
{
|
||||
case ActivePrinterProfile.SlicingEngine.Slic3r:
|
||||
{
|
||||
//string parentLocation = Directory.GetParent (ApplicationDataStorage.Instance.ApplicationPath).ToString ();
|
||||
string applicationPath = System.IO.Path.Combine(ApplicationDataStorage.Instance.ApplicationPath, "Slic3r.app", "Contents", "MacOS", "slic3r");
|
||||
return applicationPath;
|
||||
}
|
||||
case ActivePrinterProfile.SlicingEngine.CuraEngine:
|
||||
{
|
||||
string applicationPath = System.IO.Path.Combine(ApplicationDataStorage.Instance.ApplicationPath, "CuraEngine");
|
||||
return applicationPath;
|
||||
}
|
||||
|
||||
default:
|
||||
throw new NotImplementedException ();
|
||||
}
|
||||
default:
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
default:
|
||||
throw new NotImplementedException();
|
||||
|
|
@ -152,18 +153,18 @@ namespace MatterHackers.MatterControl
|
|||
{
|
||||
slicerProcess = new Process();
|
||||
|
||||
switch (PrinterCommunication.Instance.ActiveSliceEngine)
|
||||
switch (ActivePrinterProfile.Instance.ActiveSliceEngine)
|
||||
{
|
||||
case PrinterCommunication.SlicingEngine.Slic3r:
|
||||
case ActivePrinterProfile.SlicingEngine.Slic3r:
|
||||
slicerProcess.StartInfo.Arguments = "--load \"" + currentConfigurationFileAndPath + "\" --output \"" + gcodePathAndFileName + "\" \"" + itemToSlice.PartToSlicePathAndFileName + "\"";
|
||||
break;
|
||||
|
||||
case PrinterCommunication.SlicingEngine.CuraEngine:
|
||||
case ActivePrinterProfile.SlicingEngine.CuraEngine:
|
||||
slicerProcess.StartInfo.Arguments = "-v -o \"" + gcodePathAndFileName + "\" " + CuraEngineMappings.GetCuraCommandLineSettings() + " \"" + itemToSlice.PartToSlicePathAndFileName + "\"";
|
||||
//Debug.Write(slicerProcess.StartInfo.Arguments);
|
||||
break;
|
||||
|
||||
case PrinterCommunication.SlicingEngine.MatterSlice:
|
||||
case ActivePrinterProfile.SlicingEngine.MatterSlice:
|
||||
slicerProcess.StartInfo.Arguments = "--load \"" + currentConfigurationFileAndPath + "\" --output \"" + gcodePathAndFileName + "\" \"" + itemToSlice.PartToSlicePathAndFileName + "\"";
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue