Merge pull request #5277 from larsbrubaker/main

main
This commit is contained in:
Lars Brubaker 2022-03-14 08:27:46 -07:00 committed by GitHub
commit 6ff1c4fdf8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
25 changed files with 215 additions and 1477 deletions

View file

@ -169,6 +169,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
SettingsKey.material_color_1,
SettingsKey.material_color_2,
SettingsKey.material_color_3,
SettingsKey.material_sku,
SettingsKey.material_url,
SettingsKey.measure_probe_offset_conductively,
SettingsKey.model,
SettingsKey.number_of_first_layers,

View file

@ -164,6 +164,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
public const string material_color_1 = nameof(material_color_1);
public const string material_color_2 = nameof(material_color_2);
public const string material_color_3 = nameof(material_color_3);
public const string material_sku = nameof(material_sku);
public const string material_url = nameof(material_url);
public const string max_acceleration = nameof(max_acceleration);
public const string max_fan_speed = nameof(max_fan_speed);
public const string max_fan_speed_layer_time = nameof(max_fan_speed_layer_time);

View file

@ -63,7 +63,6 @@
<None Include="App.config" />
<None Include="appsettings.json" />
<None Include="StaticData\License\license.json" />
<None Include="StaticData\OEMSettings\ExploreFeed.json" />
<None Include="StaticData\OEMSettings\OEMUrls.json" />
<None Include="StaticData\OEMSettings\Printers.json" />
<None Include="StaticData\OEMSettings\Settings.json" />

View file

@ -86,7 +86,7 @@ namespace MatterHackers.MatterControl.PrintLibrary
rootNode.TreeView = treeView;
rootNode.Load += (s, e) =>
{
var image = OemSettings.Instance.GetIcon(oem.Key);
var image = OemSettings.Instance.GetIcon(oem.Key, theme);
SetImage(rootNode, image);
};
@ -130,7 +130,7 @@ namespace MatterHackers.MatterControl.PrintLibrary
printerInfo = new FlowLayoutWidget()
{
HAnchor = HAnchor.Stretch,
VAnchor = VAnchor.Fit
VAnchor = VAnchor.Stretch
};
nameSection.BackgroundColor = theme.MinimalShade;
@ -144,20 +144,10 @@ namespace MatterHackers.MatterControl.PrintLibrary
Margin = new BorderDouble(top: 3)
});
var scrollable = new ScrollableWidget(autoScroll: true)
{
HAnchor = HAnchor.Stretch,
VAnchor = VAnchor.Stretch,
};
scrollable.ScrollArea.HAnchor = HAnchor.Stretch;
// Padding allows space for scrollbar
printerInfo.Padding = new BorderDouble(right: theme.DefaultContainerPadding + 2);
scrollable.AddChild(printerInfo);
panel2Column.AddChild(scrollable);
panel2Column.AddChild(printerInfo);
horizontalSplitter.Panel2.Padding = horizontalSplitter.Panel2.Padding.Clone(right: 0, bottom: 0);
@ -361,7 +351,7 @@ namespace MatterHackers.MatterControl.PrintLibrary
ShowHeadingRow = false,
StoreID = storePrinterID?.SID,
HAnchor = HAnchor.Stretch,
VAnchor = VAnchor.Fit
VAnchor = VAnchor.Stretch
});
}

View file

@ -40,6 +40,7 @@ using MatterHackers.MatterControl.ConfigurationPage;
using MatterHackers.MatterControl.CustomWidgets;
using MatterHackers.MatterControl.SettingsManagement;
using MatterHackers.MatterControl.SlicerConfiguration;
using MatterHackers.VectorMath;
using Newtonsoft.Json;
namespace MatterHackers.MatterControl.Library.Widgets.HardwarePage
@ -49,7 +50,7 @@ namespace MatterHackers.MatterControl.Library.Widgets.HardwarePage
private ThemeConfig theme;
private GuiWidget headingRow;
private PrinterInfo printerInfo;
private FlowLayoutWidget productDataContainer;
private GuiWidget productDataContainer;
public PrinterDetails(PrinterInfo printerInfo, ThemeConfig theme, bool showOpenButton)
: base(FlowDirection.TopToBottom)
@ -58,7 +59,7 @@ namespace MatterHackers.MatterControl.Library.Widgets.HardwarePage
this.theme = theme;
headingRow = this.AddHeading(
OemSettings.Instance.GetIcon(printerInfo.Make),
OemSettings.Instance.GetIcon(printerInfo.Make, theme),
printerInfo.Name);
headingRow.AddChild(new HorizontalSpacer());
@ -103,6 +104,19 @@ namespace MatterHackers.MatterControl.Library.Widgets.HardwarePage
if (!string.IsNullOrWhiteSpace(StoreID))
{
// add a section to hold the data about the printer
var contentScroll = new ScrollableWidget(true);
contentScroll.ScrollArea.HAnchor |= HAnchor.Stretch;
contentScroll.ScrollArea.VAnchor = VAnchor.Fit;
contentScroll.AnchorAll();
contentScroll.AddChild(productDataContainer = new FlowLayoutWidget(FlowDirection.TopToBottom)
{
HAnchor = HAnchor.Stretch
});
this.AddChild(contentScroll);
try
{
// put in controls from the feed that show relevant printer information
@ -133,6 +147,11 @@ namespace MatterHackers.MatterControl.Library.Widgets.HardwarePage
}
CreateProductDataWidgets(result.ProductSku);
contentScroll.Width += 1;
contentScroll.Width -= 1;
contentScroll.TopLeftOffset = new Vector2(0, 0);
});
});
}
@ -140,12 +159,6 @@ namespace MatterHackers.MatterControl.Library.Widgets.HardwarePage
{
Trace.WriteLine("Error collecting or loading printer details: " + ex.Message);
}
// add a section to hold the data about the printer
this.AddChild(productDataContainer = new FlowLayoutWidget(FlowDirection.TopToBottom)
{
HAnchor = HAnchor.Stretch
});
}
headingRow.Visible = this.ShowHeadingRow;

View file

@ -27,49 +27,24 @@ of the authors and should not be interpreted as representing official policies,
either expressed or implied, of the FreeBSD Project.
*/
using System.Linq;
using MatterHackers.Agg;
using MatterHackers.Agg.UI;
using MatterHackers.Localizations;
using MatterHackers.MatterControl.CustomWidgets;
using MatterHackers.MatterControl.Library.Widgets.HardwarePage;
using MatterHackers.MatterControl.PartPreviewWindow;
using MatterHackers.MatterControl.SlicerConfiguration;
using MatterHackers.VectorMath;
namespace MatterHackers.MatterControl.PrintLibrary
{
public class HardwareTabPage : FlowLayoutWidget
public class PrintersTabPage : FlowLayoutWidget
{
private ThemeConfig theme;
public HardwareTabPage(ThemeConfig theme)
public PrintersTabPage(ThemeConfig theme)
: base (FlowDirection.TopToBottom)
{
this.theme = theme;
this.Padding = 0;
this.HAnchor = HAnchor.Stretch;
this.VAnchor = VAnchor.Stretch;
var toolbar = new Toolbar(theme.TabbarPadding, theme.CreateSmallResetButton())
{
HAnchor = HAnchor.Stretch,
VAnchor = VAnchor.Fit,
Padding = theme.ToolbarPadding
};
theme.ApplyBottomBorder(toolbar);
toolbar.AddChild(new TextButton("Inventory".Localize(), theme)
{
Padding = new BorderDouble(6, 0),
MinimumSize = new Vector2(0, theme.ButtonHeight),
Selectable = false
});
this.AddChild(toolbar);
var horizontalSplitter = new Splitter()
{
SplitterDistance = UserSettings.Instance.LibraryViewWidth,

View file

@ -127,17 +127,6 @@ namespace MatterHackers.MatterControl.PrintLibrary
HardwareTreeView.CreatePrinterProfilesTree(printersNode, theme);
this.Invalidate();
// Filament
var materialsNode = new TreeNode(theme)
{
Text = "Materials".Localize(),
AlwaysExpandable = true,
Image = StaticData.Instance.LoadIcon("filament.png", 16, 16).SetToColor(theme.TextColor)
};
materialsNode.TreeView = this;
rootColumn.AddChild(materialsNode);
// Register listeners
PrinterSettings.AnyPrinterSettingChanged += Printer_SettingChanged;
@ -170,7 +159,7 @@ namespace MatterHackers.MatterControl.PrintLibrary
printerNode.Load += (s, e) =>
{
printerNode.Image = OemSettings.Instance.GetIcon(printer.Make);
printerNode.Image = OemSettings.Instance.GetIcon(printer.Make, theme);
};
printersNode.Nodes.Add(printerNode);
@ -202,7 +191,7 @@ namespace MatterHackers.MatterControl.PrintLibrary
printerNode.Load += (s, e) =>
{
printerNode.Image = OemSettings.Instance.GetIcon(printer.Settings.GetValue(SettingsKey.make));
printerNode.Image = OemSettings.Instance.GetIcon(printer.Settings.GetValue(SettingsKey.make), theme);
};
printersNode.Nodes.Add(printerNode);

View file

@ -309,9 +309,9 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
tabControl.AddTab(
tab = new ChromeTab(
"Hardware",
"Hardware".Localize(),
"Printers".Localize(),
tabControl,
new HardwareTabPage(theme)
new PrintersTabPage(theme)
{
BackgroundColor = theme.BackgroundColor
},

View file

@ -28,9 +28,11 @@ either expressed or implied, of the FreeBSD Project.
*/
using System;
using System.Linq;
using MatterHackers.Agg;
using MatterHackers.Agg.UI;
using MatterHackers.Agg.VertexSource;
using MatterHackers.VectorMath;
namespace MatterHackers.MatterControl.CustomWidgets
{
@ -74,8 +76,16 @@ namespace MatterHackers.MatterControl.CustomWidgets
Checked = expanded,
Padding = 0
};
checkbox.CheckedStateChanged += (s, e) =>
{
var scrollable = this.Parents<ScrollableWidget>().First();
var topPosition = Vector2.Zero;
if (scrollable != null)
{
topPosition = scrollable.TopLeftOffset;
}
if (expandingContent)
{
ContentPanel.Visible = checkbox.Checked;
@ -84,6 +94,11 @@ namespace MatterHackers.MatterControl.CustomWidgets
// TODO: Remove this Height = 10 and figure out why the layout engine is not sizing these correctly without this.
ContentPanel.Height = 10 * GuiWidget.DeviceScale;
if (scrollable != null)
{
scrollable.TopLeftOffset = topPosition;
}
};
if (serializationKey != null)

View file

@ -329,8 +329,19 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
field.Content.Descendants<InternalNumberEdit>().First().MaxDecimalsPlaces = 3;
field.ValueChanged += (s, e) =>
{
cell.Expression = field.Value;
firtSheet.SheetData.Recalculate();
var oldValue = cell.Expression;
var newValue = field.Value;
undoBuffer.AddAndDo(new UndoRedoActions(() =>
{
cell.Expression = oldValue;
firtSheet.SheetData.Recalculate();
},
() =>
{
cell.Expression = newValue;
firtSheet.SheetData.Recalculate();
}));
};
var row = new SettingsRow(cell.Name == null ? cellId : cell.Name, null, field.Content, theme);

View file

@ -43,7 +43,10 @@ namespace MatterHackers.MatterControl.DesignTools
public SheetData SheetData { get; private set; }
Point2D selectedCell = new Point2D(-1, -1);
Dictionary<(int, int), GuiWidget> CellWidgetsByLocation = new Dictionary<(int, int), GuiWidget>();
private ThemeConfig theme;
public UndoBuffer UndoBuffer { get; }
private ThemeConfig theme;
private MHTextEditWidget editSelectedName;
public MHTextEditWidget EditSelectedExpression { get; private set; }
private GridWidget gridWidget;
@ -51,11 +54,11 @@ namespace MatterHackers.MatterControl.DesignTools
public SheetEditorWidget(SheetData sheetData, SheetObject3D sheetObject, UndoBuffer undoBuffer, ThemeConfig theme)
: base(FlowDirection.TopToBottom)
{
this.UndoBuffer = undoBuffer;
this.theme = theme;
HAnchor = HAnchor.MaxFitOrStretch;
this.SheetData = sheetData;
var countWidth = 10 * GuiWidget.DeviceScale;
var cellEditNameWidth = 80 * GuiWidget.DeviceScale;
// put in the edit row

View file

@ -138,7 +138,7 @@ namespace MatterHackers.MatterControl.DesignTools
}
}
// this must be called first to ensure we get the correct Handled state
base.OnKeyDown(keyEvent);
@ -270,12 +270,29 @@ namespace MatterHackers.MatterControl.DesignTools
{
if (this.content.Text != undoContent)
{
// make sure the is a sheet update
SheetData[x, y].Expression = this.content.Text;
SheetData.Recalculate();
var newValue = this.content.Text;
var oldValue = SheetData[x, y].Expression;
// this needs to support undo buffer
sheetEditorWidget.UndoBuffer.AddAndDo(new UndoRedoActions(() =>
{
this.content.Text = oldValue;
// make sure the is a sheet update
SheetData[x, y].Expression = this.content.Text;
SheetData.Recalculate();
undoContent = this.content.Text;
},
() =>
{
this.content.Text = newValue;
// make sure the is a sheet update
SheetData[x, y].Expression = this.content.Text;
SheetData.Recalculate();
undoContent = this.content.Text;
}));
}
EditMode = EditModes.Unknown;
undoContent = this.content.Text;
}
private void Navigate(int xOffset, int yOffset)

View file

@ -36,6 +36,8 @@ using MatterHackers.Agg;
using MatterHackers.Agg.Image;
using MatterHackers.Agg.Platform;
using MatterHackers.Agg.UI;
using MatterHackers.Agg.VertexSource;
using MatterHackers.ImageProcessing;
using MatterHackers.MatterControl.SlicerConfiguration;
using Newtonsoft.Json;
@ -75,7 +77,7 @@ namespace MatterHackers.MatterControl.SettingsManagement
public List<ManufacturerNameMapping> ManufacturerNameMappings { get; set; }
public ImageBuffer GetIcon(string oemName)
public ImageBuffer GetIcon(string oemName, ThemeConfig theme)
{
var size = (int)(16 * GuiWidget.DeviceScale);
var imageBuffer = new ImageBuffer(size, size);
@ -92,6 +94,15 @@ namespace MatterHackers.MatterControl.SettingsManagement
graphics.Clear(AppContext.Theme.SlightShade);
}
if (theme.IsDarkTheme)
{
// put the icon on a light background
var background = new ImageBuffer(size, size);
background.NewGraphics2D().Render(new RoundedRect(background.GetBoundingRect(), 1), theme.TextColor);
background.NewGraphics2D().Render(imageBuffer, 0, 0);
imageBuffer.CopyFrom(background);
}
return imageBuffer;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 984 B

After

Width:  |  Height:  |  Size: 17 KiB

Before After
Before After

View file

@ -27,7 +27,8 @@
"bed_temperature_glass": "100",
"bed_temperature_kapton": "100",
"bed_temperature_pei": "100",
"bed_temperature_pp": "100"
"bed_temperature_pp": "100",
"material_url": "https://www.matterhackers.com/store/c/ABS"
}
],
"OemLayer": null,

View file

@ -19,7 +19,8 @@
"bed_temperature_pei": "70",
"bed_temperature_pp": "50",
"layer_etag": "",
"layer_source": ""
"layer_source": "",
"material_url": "https://www.matterhackers.com/store/c/3d-printer-filament/Nylon"
}
],
"OemLayer": null,

View file

@ -23,7 +23,8 @@
"bed_temperature_glass": "75",
"bed_temperature_kapton": "75",
"bed_temperature_pei": "75",
"bed_temperature_pp": "55"
"bed_temperature_pp": "55",
"material_url": "https://www.matterhackers.com/store/c/3d-printer-filament/PET"
}
],
"OemLayer": null,

View file

@ -24,7 +24,8 @@
"bed_temperature_glass": "75",
"bed_temperature_kapton": "50",
"bed_temperature_pei": "75",
"bed_temperature_pp": "75"
"bed_temperature_pp": "75",
"material_url": "https://www.matterhackers.com/store/c/PLA"
}
],
"OemLayer": null,

View file

@ -23,7 +23,7 @@
"bed_temperature_pei": "70",
"bed_temperature_pp": "55",
"material_sku": "MY6C8H7E",
"material_url": "https://www.matterhackers.com/store/c/pro-series-filament/pro-series-pla"
"material_url": "https://www.matterhackers.com/store/c/3d-printer-filament/tough-pla-filament"
}
],
"OemLayer": null,

View file

@ -0,0 +1,37 @@
{
"DocumentVersion": 201606271,
"ID": null,
"Macros": [],
"MaterialLayers": [
{
"layer_name": "Quantum PLA",
"filament_density": "1.24",
"layer_id": "b08a04f9-8d00-4753-b802-3745ffcf5c51",
"bed_temperature": "55",
"temperature": "225",
"min_fan_speed": "70",
"max_fan_speed": "100",
"bridge_fan_speed": "100",
"retract_restart_extra": "0",
"retract_restart_extra_time_to_apply": "0",
"min_fan_speed_layer_time": "180",
"max_fan_speed_layer_time": "60",
"filament_cost": "42",
"disable_fan_first_layers": "5",
"extrusion_multiplier": "0.97",
"layer_etag": "",
"layer_source": "",
"bed_temperature_buildtak": "55",
"bed_temperature_garolite": "75",
"bed_temperature_glass": "75",
"bed_temperature_kapton": "55",
"bed_temperature_pei": "75",
"bed_temperature_pp": "55",
"material_url": "https://www.matterhackers.com/store/c/3d-printer-filament/matterhackers-quantum-pla?s=quantum&ref=search"
}
],
"OemLayer": null,
"QualityLayers": [],
"StagedUserSettings": {},
"UserLayer": {}
}

File diff suppressed because it is too large Load diff

View file

@ -3,13 +3,15 @@
"3D Factory": "http://www.3dfactory.com/",
"3D Stuffmaker": "http://www.3dstuffmakers.com/",
"Airwolf 3D": "https://airwolf3d.com/",
"BCN3D": "https://www.bcn3dtechnologies.com/",
"Anet": "https://anet3d.com/",
"Anycubic": "https://www.anycubic.com/",
"BCN3D": "https://www.bcn3d.com/",
"BeeVeryCreative": "https://beeverycreative.com/",
"Blue Eagle Labs": "https://www.blueeaglelabs.com/",
"CraftUnique": "https://craftbot.com/",
"Creality": "https://www.creality3d.cn/",
"Creality": "https://www.creality.com/",
"Dremel": "http://www.dremel.com/",
"FlashForge": "http://www.flashforge.com/",
"FlashForge": "https://www.flashforge.com/",
"gCreate": "http://www.gcreate.com/",
"Genkei": "http://magnarecta.com/",
"GorillaMaker": "https://gorillamaker.com/",
@ -21,7 +23,8 @@
"Maker's Tool Works": "http://makerstoolworks.com/",
"MakerBot": "https://www.makerbot.com/",
"MakerGear": "https://www.makergear.com/",
"Me3D": "https://me3dstore.com/",
"Me3D": "https://me3d.com.au/",
"Monoprice": "https://www.monoprice.com/",
"ORD Solutions": "https://www.ordsolutions.com/",
"Peopoly": "https://peopoly.net/",
"PrintSpace": "https://www.printspace3d.com/",
@ -36,6 +39,7 @@
"Tosingraf": "http://www.tosingraf.com/",
"Type A Machines": "https://www.typeamachines.com/",
"Ultimaker": "https://ultimaker.com/",
"Velleman": "http://www.vellemanusa.com/",
"ZYYX": "http://www.zyyx3dprinter.com/"
"Wanhao": "https://www.usawanhao.com/",
"Velleman": "https://www.velleman.eu/",
"ZYYX": "https://www.zyyxlabs.com/"
}

View file

@ -1,8 +1,8 @@
{
"Airwolf 3D-Axiom": { "SID": "ML3DTSYL" },
"Airwolf 3D-HD": { "SID": "MW46VP7T" },
"BCN-Sigma": { "SID": "MCN1YNVE" },
"BCN3D-Sigma": { "SID": "MCN1YNVE" },
"BCN-Sigma": { "SID": "MCN1YNVE" },
"Creality-CR-10 300": { "AltInfoUrl": "https://www.matterhackers.com/store/c/creality-3d-printers" },
"Creality-CR-10 400": { "AltInfoUrl": "https://www.matterhackers.com/store/c/creality-3d-printers" },
"Creality-CR-10 500": { "AltInfoUrl": "https://www.matterhackers.com/store/c/creality-3d-printers" },
@ -79,20 +79,39 @@
"Pulse-D-232": { "SID": "MUY6R1P5" },
"Pulse-D-233": { "SID": "MUY6R1P5" },
"Pulse-D-434": { "SID": "MUY6R1P5" },
"Pulse-D-435": { "SID": "MUY6R1P5" },
"Pulse-D-435 Advanced": { "SID": "MUY6R1P5" },
"Pulse-D-435": { "SID": "MUY6R1P5" },
"Pulse-E-111": { "SID": "MH4C92XW" },
"Pulse-E-111S": { "SID": "MH4C92XW" },
"Pulse-E-112": { "SID": "MH4C92XW" },
"Pulse-E-112M": { "SID": "MH4C92XW" },
"Pulse-E-113": { "SID": "MH4C92XW" },
"Pulse-E-114": { "SID": "MH4C92XW" },
"Pulse-E-114M": { "SID": "MH4C92XW" },
"Pulse-E-223": { "SID": "MEHA2GS7" },
"Pulse-E-223DS": { "SID": "MTA2JNPM" },
"Pulse-E-223S": { "SID": "MEHA2GS7" },
"Pulse-E-224": { "SID": "MEHA2GS7" },
"Pulse-E-224M": { "SID": "MTF2MW2W" },
"Pulse-E-233": { "SID": "MTF2MW2W" },
"Pulse-E-243S": { "SID": "MTF2MW2W" },
"Pulse-E-253": { "SID": "MTF2MW2W" },
"Pulse-E-421": { "SID": "MH4C92XW" },
"Pulse-E-421M": { "SID": "MZFJ9XRG" },
"Pulse-E-422": { "SID": "M21FDL8Q" },
"Pulse-E-422M": { "SID": "M6SU0GQK" },
"Pulse-E-423": { "SID": "ME9TU58K" },
"Pulse-E-423S": { "SID": "ME9TU58K" },
"Pulse-E-424": { "SID": "ME9TU58K" },
"Pulse-E-424M": { "SID": "MFN2SP2N" },
"Pulse-E-444": { "SID": "M0DQ8818" },
"Pulse-E-442": { "SID": "ML2Q97EY" },
"Pulse-E-442M": { "SID": "M2TWERCJ" },
"Pulse-E-443": { "SID": "MSSWKLK5" },
"Pulse-E-443S": { "SID": "MSSWKLK5" },
"Pulse-E-444": { "SID": "M0DQ8818" },
"Pulse-E-444M": { "SID": "MSSWKLK5" },
"Pulse-E-452": { "SID": "MSSWKLK5" },
"Pulse-E-512": { "SID": "MSSWKLK5" },
"Pulse-S-111": { "SID": "MFG0HF92" },
"Pulse-S-112": { "SID": "MFG0HF92" },
"Pulse-S-212": { "SID": "MFG0HF92" },
@ -106,10 +125,10 @@
"SeeMeCNC-Rostock MAX v2": { "AltInfoUrl": "https://www.matterhackers.com/store/c/SeeMeCNC" },
"SeeMeCNC-Rostock MAX v3": { "SID": "MGFTLKAA" },
"SeeMeCNC-Rostock MAX": { "AltInfoUrl": "https://www.matterhackers.com/store/c/SeeMeCNC" },
"Ultimaker-2 Extended+": { "SID": "M0T2WS4H" },
"Ultimaker-2 Extended": { "SID": "M0T2WS4H" },
"Ultimaker-2+": { "SID": "ME7R89S4" },
"Ultimaker-2 Extended+": { "SID": "M0T2WS4H" },
"Ultimaker-2": { "SID": "ME7R89S4" },
"Ultimaker-2+": { "SID": "ME7R89S4" },
"Ultimaker-Original+": { "SID": "MZZKP1YY" }
}

@ -1 +1 @@
Subproject commit 7f6033fc815e18b58ef52a3eb84e1e588c27feed
Subproject commit 0ea5548c2bdd91e3daa3769609ead4554e193ea2

View file

@ -148,6 +148,18 @@ M300 S3000 P30 ; Resume Tone";
printerSettings.SetValue(SettingsKey.bed_temperature_kapton, "55");
printerSettings.SetValue(SettingsKey.bed_temperature_pei, "75");
printerSettings.SetValue(SettingsKey.bed_temperature_pp, "55");
var zHeight = 215;
// check the build height based on the extruder type
switch (printerModel[3])
{
case '3': // Volcano
case '6': // LGX E3Dv6
zHeight = 205;
break;
}
printerSettings.SetValue(SettingsKey.build_height, zHeight.ToString());
}
// 32 bit settings
@ -169,6 +181,26 @@ M300 S3000 P30 ; Resume Tone";
int a = 0;
}
[Test, RunInApplicationDomain]
public void AllMaterialsHaveSkuOrUrlSet()
{
var materialSettingsDirectory = TestContext.CurrentContext.ResolveProjectPath(4, "StaticData", "Materials");
var directoryInfo = new DirectoryInfo(materialSettingsDirectory);
var files = directoryInfo.GetFiles("*.material", SearchOption.AllDirectories);
var profiles = files.Select(f => PrinterSettings.LoadFile(f.FullName)).ToList();
foreach(var profile in profiles)
{
Assert.AreEqual(1, profile.MaterialLayers.Count, "Each material profile should have 1 material in it");
var material = profile.MaterialLayers[0];
profile.ActiveMaterialKey = material.LayerID;
var hasSku = !string.IsNullOrEmpty(profile.GetValue(SettingsKey.material_sku));
var hasUrl = !string.IsNullOrEmpty(profile.GetValue(SettingsKey.material_url));
Assert.IsTrue(hasSku || hasUrl);
}
}
[Test, RunInApplicationDomain]
public void LayerGCodeHasExpectedValue()
{