Making it possible to set a bed surface and have settings for bed temperature / material

This commit is contained in:
Lars Brubaker 2022-01-17 11:33:22 -08:00
parent 2266428005
commit fa86c58a7c
18 changed files with 429 additions and 43 deletions

View file

@ -100,6 +100,15 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
SettingsKey.bed_shape,
SettingsKey.bed_size,
SettingsKey.bed_temperature,
SettingsKey.bed_temperature_blue_tape,
SettingsKey.bed_temperature_buildtak,
SettingsKey.bed_temperature_garolite,
SettingsKey.bed_temperature_glass,
SettingsKey.bed_temperature_kapton,
SettingsKey.bed_temperature_pei,
SettingsKey.bed_temperature_pp,
SettingsKey.has_swappable_bed,
SettingsKey.bed_surface,
SettingsKey.before_toolchange_gcode,
SettingsKey.before_toolchange_gcode_1,
SettingsKey.before_toolchange_gcode_2,
@ -1030,7 +1039,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
if (setting == SettingsKey.first_layer_bed_temperature
&& !this.Slicer.Exports.ContainsKey(SettingsKey.first_layer_bed_temperature))
{
value = $"{this.GetValue<double>(SettingsKey.bed_temperature)}";
value = $"{this.Helpers.ActiveBedTemperature}";
}
// braces then brackets replacement
@ -1348,9 +1357,9 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
string value = this.GetValue(settingsKey);
if (SettingsData.TryGetValue(settingsKey, out SliceSettingData settingsData)
&& settingsData.Converter is ValueConverter resolver)
&& settingsData.Converter != null)
{
return resolver.Convert(value, this);
return settingsData.Converter.Convert(value, this);
}
return value;

View file

@ -204,8 +204,62 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
}
}
public double ActiveBedTemperature
{
get
{
var temp = printerSettings.GetValue<double>(ActiveBedTemperatureSetting);
// check if it might be trying to use the default
if (temp == 0)
{
// it is either the default (actual bed_temperature) or a 0. This will get the true temp requested
return printerSettings.GetValue<double>(SettingsKey.bed_temperature);
}
public void DoPrintLeveling(bool doLeveling)
// fonud a good temp return it
return temp;
}
}
public string ActiveBedTemperatureSetting
{
get
{
if (!printerSettings.GetValue<bool>(SettingsKey.has_swappable_bed))
{
return SettingsKey.bed_temperature;
}
switch(printerSettings.GetValue(SettingsKey.bed_surface))
{
case "Blue Tape":
return SettingsKey.bed_temperature_blue_tape;
case "BuildTak":
return SettingsKey.bed_temperature_buildtak;
case "Garolite":
return SettingsKey.bed_temperature_garolite;
case "Glass":
return SettingsKey.bed_temperature_glass;
case "Kapton":
return SettingsKey.bed_temperature_kapton;
case "PEI":
return SettingsKey.bed_temperature_pei;
case "Polypropylene":
return SettingsKey.bed_temperature_pp;
default:
return SettingsKey.bed_temperature;
}
}
}
public void DoPrintLeveling(bool doLeveling)
{
// Early exit if already set
if (doLeveling == printerSettings.GetValue<bool>(SettingsKey.print_leveling_enabled))

View file

@ -46,6 +46,15 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
public const string bed_shape = nameof(bed_shape);
public const string bed_size = nameof(bed_size);
public const string bed_temperature = nameof(bed_temperature);
public const string bed_temperature_blue_tape = nameof(bed_temperature_blue_tape);
public const string bed_temperature_buildtak = nameof(bed_temperature_buildtak);
public const string bed_temperature_garolite = nameof(bed_temperature_garolite);
public const string bed_temperature_glass = nameof(bed_temperature_glass);
public const string bed_temperature_kapton = nameof(bed_temperature_kapton);
public const string bed_temperature_pei = nameof(bed_temperature_pei);
public const string bed_temperature_pp = nameof(bed_temperature_pp);
public const string has_swappable_bed = nameof(has_swappable_bed);
public const string bed_surface = nameof(bed_surface);
public const string before_toolchange_gcode = nameof(before_toolchange_gcode);
public const string before_toolchange_gcode_1 = nameof(before_toolchange_gcode_1);
public const string before_toolchange_gcode_2 = nameof(before_toolchange_gcode_2);

View file

@ -136,6 +136,97 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
DefaultValue = "70"
},
new SliceSettingData()
{
SlicerConfigName = SettingsKey.bed_temperature_blue_tape,
PresentationName = "Blue Tape Bed Temperature".Localize(),
HelpText = "The temperature to print when the bed is coverd with blue tape. Set to 0 to use default.".Localize(),
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
Units = "°C".Localize(),
ShowIfSet = "has_heated_bed&has_swappable_bed",
DefaultValue = "0"
},
new SliceSettingData()
{
SlicerConfigName = SettingsKey.bed_temperature_buildtak,
PresentationName = "BuildTak Bed Temperature".Localize(),
HelpText = "The temperature to print when the bed is using BuildTak. Set to 0 to use default.".Localize(),
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
Units = "°C".Localize(),
ShowIfSet = "has_heated_bed&has_swappable_bed",
DefaultValue = "0"
},
new SliceSettingData()
{
SlicerConfigName = SettingsKey.bed_temperature_garolite,
PresentationName = "Garolite Bed Temperature".Localize(),
HelpText = "The temperature to print when the bed is using garolite. Set to 0 to use default.".Localize(),
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
Units = "°C".Localize(),
ShowIfSet = "has_heated_bed&has_swappable_bed",
DefaultValue = "0"
},
new SliceSettingData()
{
SlicerConfigName = SettingsKey.bed_temperature_glass,
PresentationName = "Glass Bed Temperature".Localize(),
HelpText = "The temperature to print when the bed is using glass. Set to 0 to use default.".Localize(),
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
Units = "°C".Localize(),
ShowIfSet = "has_heated_bed&has_swappable_bed",
DefaultValue = "0"
},
new SliceSettingData()
{
SlicerConfigName = SettingsKey.bed_temperature_kapton,
PresentationName = "Kapton Bed Temperature".Localize(),
HelpText = "The temperature to print when the bed is coverd in kapton tape. Set to 0 to use default.".Localize(),
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
Units = "°C".Localize(),
ShowIfSet = "has_heated_bed&has_swappable_bed",
DefaultValue = "0"
},
new SliceSettingData()
{
SlicerConfigName = SettingsKey.bed_temperature_pei,
PresentationName = "PEI Bed Temperature".Localize(),
HelpText = "The temperature to print when the bed is using PEI. Set to 0 to use default.".Localize(),
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
Units = "°C".Localize(),
ShowIfSet = "has_heated_bed&has_swappable_bed",
DefaultValue = "0"
},
new SliceSettingData()
{
SlicerConfigName = SettingsKey.bed_temperature_pp,
PresentationName = "Polypropylene Bed Temperature".Localize(),
HelpText = "The temperature to print when the bed is polypropylene. Set to 0 to use default.".Localize(),
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
Units = "°C".Localize(),
ShowIfSet = "has_heated_bed&has_swappable_bed",
DefaultValue = "0"
},
new SliceSettingData()
{
SlicerConfigName = SettingsKey.has_swappable_bed,
PresentationName = "Has Swappable Bed".Localize(),
HelpText = "This should be checked if the printer supports multiple bed surfaces and the bed temperature for the different surfaces needs to vary.".Localize(),
DataEditType = DataEditTypes.CHECK_BOX,
RequiredDisplayDetail = DisplayDetailRequired.Advanced,
ShowIfSet = "has_heated_bed",
UiUpdate = UiUpdateRequired.Application,
DefaultValue = "0"
},
new SliceSettingData()
{
SlicerConfigName = SettingsKey.bed_surface,
PresentationName = "Bed Surface".Localize(),
HelpText = "The current bed surfaces that the printer is using. This is used to set the correct bed temperature for a given material.".Localize(),
DataEditType = DataEditTypes.LIST,
ShowIfSet = "has_heated_bed&has_swappable_bed",
ListValues = "Default,Blue Tape,BuildTak,Garolite,Glass,Kapton,PEI,Polypropylene",
DefaultValue = "Default"
},
new SliceSettingData()
{
SlicerConfigName = SettingsKey.first_layer_bed_temperature,
PresentationName = "First Layer Bed Temperature".Localize(),

View file

@ -137,6 +137,10 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
}),
("Adhesion", new[]
{
("Bed", new []
{
SettingsKey.bed_surface,
}),
("Skirt", new[]
{
SettingsKey.create_skirt,
@ -209,6 +213,13 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
SettingsKey.temperature2,
SettingsKey.temperature3,
SettingsKey.bed_temperature,
SettingsKey.bed_temperature_blue_tape,
SettingsKey.bed_temperature_buildtak,
SettingsKey.bed_temperature_garolite,
SettingsKey.bed_temperature_glass,
SettingsKey.bed_temperature_kapton,
SettingsKey.bed_temperature_pei,
SettingsKey.bed_temperature_pp,
SettingsKey.inactive_cool_down,
SettingsKey.seconds_to_reheat,
}),
@ -350,6 +361,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
SettingsKey.has_fan_per_extruder,
SettingsKey.has_hardware_leveling,
SettingsKey.has_heated_bed,
SettingsKey.has_swappable_bed,
SettingsKey.has_sd_card_reader,
SettingsKey.has_power_control,
SettingsKey.filament_runout_sensor,

View file

@ -74,7 +74,7 @@ namespace MatterHackers.MatterControl.ActionBar
{
var widget = new IgnoredPopupWidget()
{
Width = 300 * GuiWidget.DeviceScale,
Width = 340 * GuiWidget.DeviceScale,
HAnchor = HAnchor.Absolute,
VAnchor = VAnchor.Fit,
Padding = new BorderDouble(12, 0),
@ -88,9 +88,9 @@ namespace MatterHackers.MatterControl.ActionBar
};
widget.AddChild(container);
GuiWidget hotendRow;
GuiWidget heatedBedSettingItem;
container.AddChild(hotendRow = new SettingsItem(
container.AddChild(heatedBedSettingItem = new SettingsItem(
"Heated Bed".Localize(),
menuTheme,
new SettingsItem.ToggleSwitchConfig()
@ -98,13 +98,13 @@ namespace MatterHackers.MatterControl.ActionBar
Checked = printer.Connection.TargetBedTemperature > 0,
ToggleAction = (itemChecked) =>
{
var goalTemp = itemChecked ? printer.Settings.GetValue<double>(SettingsKey.bed_temperature) : 0;
var goalTemp = itemChecked ? printer.Settings.Helpers.ActiveBedTemperature : 0;
printer.Connection.TargetBedTemperature = goalTemp;
}
},
enforceGutter: false));
var toggleWidget = hotendRow.Children.Where(o => o is ICheckbox).FirstOrDefault();
var toggleWidget = heatedBedSettingItem.Children.Where(o => o is ICheckbox).FirstOrDefault();
toggleWidget.Name = "Toggle Heater";
heatToggle = toggleWidget as ICheckbox;
@ -112,14 +112,6 @@ namespace MatterHackers.MatterControl.ActionBar
int tabIndex = 0;
var settingsContext = new SettingsContext(printer, null, NamedSettingsLayers.All);
var settingsData = PrinterSettings.SettingsData[SettingsKey.bed_temperature];
var temperatureRow = SliceSettingsTabView.CreateItemRow(settingsData, settingsContext, printer, menuTheme, ref tabIndex, allUiFields);
container.AddChild(temperatureRow);
// Add the temperature row to the always enabled list ensuring the field can be set when disconnected
alwaysEnabled.Add(temperatureRow);
alwaysEnabled.Add(hotendRow);
// add in the temp graph
var graph = new DataViewGraph()
{
@ -127,20 +119,74 @@ namespace MatterHackers.MatterControl.ActionBar
MinValue = 0,
ShowGoal = true,
GoalColor = menuTheme.PrimaryAccentColor,
GoalValue = printer.Settings.GetValue<double>(SettingsKey.bed_temperature),
GoalValue = printer.Settings.Helpers.ActiveBedTemperature,
MaxValue = 150, // could come from some profile value in the future
Width = widget.Width - 20 * GuiWidget.DeviceScale,
Height = 35 * GuiWidget.DeviceScale, // this works better if it is a common multiple of the Width
Margin = new BorderDouble(0, 5, 0, 0),
};
var temperatureRow = new FlowLayoutWidget()
{
HAnchor = HAnchor.Stretch
};
var bedSettingBeingEdited = printer.Settings.Helpers.ActiveBedTemperatureSetting;
void SettingChanged(object s, StringEventArgs stringEvent)
{
if (stringEvent.Data == SettingsKey.bed_temperature
|| stringEvent.Data == bedSettingBeingEdited)
{
graph.GoalValue = printer.Settings.Helpers.ActiveBedTemperature;
}
else if (stringEvent.Data == SettingsKey.bed_surface)
{
AddTemperatureControlForBedSurface();
graph.GoalValue = printer.Settings.Helpers.ActiveBedTemperature;
}
}
void AddTemperatureControlForBedSurface()
{
temperatureRow.CloseChildren();
bedSettingBeingEdited = printer.Settings.Helpers.ActiveBedTemperatureSetting;
var settingsData = PrinterSettings.SettingsData[bedSettingBeingEdited];
var bedTemperature = SliceSettingsTabView.CreateItemRow(settingsData, settingsContext, printer, menuTheme, ref tabIndex, allUiFields);
var settingsRow = bedTemperature.DescendantsAndSelf<SliceSettingsRow>().FirstOrDefault();
// make sure we are not still connected when changing settings
printer.Settings.SettingChanged -= SettingChanged;
// connect it
printer.Settings.SettingChanged += SettingChanged;
// and make sure we dispose when done
printer.Disposed += (s, e) => printer.Settings.SettingChanged -= SettingChanged;
temperatureRow.AddChild(bedTemperature);
}
AddTemperatureControlForBedSurface();
container.AddChild(temperatureRow);
// Add the temperature row to the always enabled list ensuring the field can be set when disconnected
alwaysEnabled.Add(temperatureRow);
alwaysEnabled.Add(heatedBedSettingItem);
var bedSurfaceChanger = CreateBedSurfaceSelector(printer, menuTheme, ref tabIndex);
if (bedSurfaceChanger != null)
{
container.AddChild(bedSurfaceChanger);
alwaysEnabled.Add(bedSurfaceChanger);
}
runningInterval = UiThread.SetInterval(() =>
{
graph.AddData(this.ActualTemperature);
}, 1);
var settingsRow = temperatureRow.DescendantsAndSelf<SliceSettingsRow>().FirstOrDefault();
void Printer_SettingChanged(object s, StringEventArgs stringEvent)
{
if (stringEvent != null)
@ -156,14 +202,6 @@ namespace MatterHackers.MatterControl.ActionBar
userInitiated: false);
}
}
if (stringEvent.Data == SettingsKey.bed_temperature)
{
var temp = printer.Settings.GetValue<double>(SettingsKey.bed_temperature);
graph.GoalValue = temp;
settingsRow.UpdateStyle();
}
}
}
@ -175,6 +213,21 @@ namespace MatterHackers.MatterControl.ActionBar
return widget;
}
public static GuiWidget CreateBedSurfaceSelector(PrinterConfig printer, ThemeConfig theme, ref int tabIndex)
{
if (!printer.Settings.GetValue<bool>(SettingsKey.has_heated_bed)
|| !printer.Settings.GetValue<bool>(SettingsKey.has_swappable_bed))
{
return null;
}
var settingsContext = new SettingsContext(printer, null, NamedSettingsLayers.All);
var settingsData = PrinterSettings.SettingsData[SettingsKey.bed_surface];
var surfaceSelector = SliceSettingsTabView.CreateItemRow(settingsData, settingsContext, printer, theme, ref tabIndex);
return surfaceSelector;
}
public override void OnClosed(EventArgs e)
{
// Unregister listeners

View file

@ -271,7 +271,7 @@ namespace MatterHackers.MatterControl
bool heatedBed = printer.Settings.GetValue<bool>(SettingsKey.has_heated_bed);
double bedTemperature = printer.Settings.GetValue<double>(SettingsKey.bed_temperature);
double bedTemperature = printer.Settings.Helpers.ActiveBedTemperature;
if (heatedBed
&& printer.Connection.IsConnected

View file

@ -143,7 +143,7 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
// check that the bed temperature at probe time was close enough to the current print bed temp
double requiredLevelingTemp = printer.Settings.GetValue<bool>(SettingsKey.has_heated_bed) ?
printer.Settings.GetValue<double>(SettingsKey.bed_temperature)
printer.Settings.Helpers.ActiveBedTemperature
: 0;
// check that the number of points sampled is correct for the solution

View file

@ -189,7 +189,7 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
// start heating up now so it has more time to heat
var bedTemperature = printer.Settings.GetValue<bool>(SettingsKey.has_heated_bed) ?
printer.Settings.GetValue<double>(SettingsKey.bed_temperature)
printer.Settings.Helpers.ActiveBedTemperature
: 0;
if (bedTemperature > 0)
{
@ -207,7 +207,7 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
double targetHotendTemp = 0;
if (printer.Settings.GetValue<bool>(SettingsKey.has_heated_bed))
{
targetBedTemp = printer.Settings.GetValue<double>(SettingsKey.bed_temperature);
targetBedTemp = printer.Settings.Helpers.ActiveBedTemperature;
}
if (!printer.Settings.Helpers.ProbeBeingUsed)

View file

@ -157,7 +157,7 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
{
// start heating up the bed as that will be needed next
var bedTemperature = printer.Settings.GetValue<bool>(SettingsKey.has_heated_bed) ?
printer.Settings.GetValue<double>(SettingsKey.bed_temperature)
printer.Settings.Helpers.ActiveBedTemperature
: 0;
if (bedTemperature > 0)
{

View file

@ -68,7 +68,7 @@ namespace MatterHackers.MatterControl.ConfigurationPage.PrintLeveling
levelingData.CreationDate = DateTime.Now;
// record the temp the bed was when we measured it (or 0 if no heated bed)
levelingData.BedTemperature = printer.Settings.GetValue<bool>(SettingsKey.has_heated_bed) ?
printer.Settings.GetValue<double>(SettingsKey.bed_temperature)
printer.Settings.Helpers.ActiveBedTemperature
: 0;
levelingData.IssuedLevelingTempWarning = false;

View file

@ -98,7 +98,7 @@ namespace MatterHackers.MatterControl.PrinterCommunication.Io
queuedCommands.Add("M82; use absolute distance for extrusion");
bool hasHeatedBed = printer.Settings.GetValue<bool>(SettingsKey.has_heated_bed);
double bedTemp = printer.Settings.GetValue<double>(SettingsKey.bed_temperature);
double bedTemp = printer.Settings.Helpers.ActiveBedTemperature;
if (hasHeatedBed && bedTemp > 0)
{
// start heating the bed

View file

@ -66,7 +66,7 @@ namespace MatterHackers.MatterControl.PrinterCommunication.Io
printer.Connection.CanceleRequested += Connection_PrintCanceled;
if (!printer.Settings.GetValue<bool>(SettingsKey.has_heated_bed)
|| printer.Settings.GetValue<double>(SettingsKey.bed_temperature) == 0)
|| printer.Settings.Helpers.ActiveBedTemperature == 0)
{
// If we don't have a bed or we are not going to set the temperature
// do not wait for an M190
@ -311,7 +311,7 @@ namespace MatterHackers.MatterControl.PrinterCommunication.Io
levelingData.CreationDate = DateTime.Now;
// record the temp the bed was when we measured it (or 0 if no heated bed)
levelingData.BedTemperature = printer.Settings.GetValue<bool>(SettingsKey.has_heated_bed) ?
printer.Settings.GetValue<double>(SettingsKey.bed_temperature)
printer.Settings.Helpers.ActiveBedTemperature
: 0;
levelingData.IssuedLevelingTempWarning = false;

View file

@ -383,7 +383,9 @@ namespace MatterHackers.MatterControl.PrinterCommunication
}
}
if (stringEvent.Data == SettingsKey.bed_temperature)
if (stringEvent.Data == Printer.Settings.Helpers.ActiveBedTemperatureSetting
|| stringEvent.Data == SettingsKey.bed_temperature
|| stringEvent.Data == SettingsKey.bed_surface)
{
if (this.Printing
&& this.DetailedPrintingState == DetailedPrintingState.HeatingBed)
@ -394,7 +396,7 @@ namespace MatterHackers.MatterControl.PrinterCommunication
double goalTemp = this.TargetBedTemperature;
if (goalTemp > 0)
{
var newGoal = printer.Settings.GetValue<double>(SettingsKey.bed_temperature);
var newGoal = printer.Settings.Helpers.ActiveBedTemperature;
this.TargetBedTemperature = newGoal;
}
}

View file

@ -98,7 +98,7 @@ namespace MatterHackers.MatterControl.PrinterControls
preHeatButton.Click += (s, e) =>
{
// turn on the bed
printer.Connection.TargetBedTemperature = printer.Settings.GetValue<double>(SettingsKey.bed_temperature);
printer.Connection.TargetBedTemperature = printer.Settings.Helpers.ActiveBedTemperature;
for (int extruderIndex = 0; extruderIndex < hotendCount; extruderIndex++)
{
printer.Connection.SetTargetHotendTemperature(extruderIndex, printer.Settings.Helpers.ExtruderTargetTemperature(extruderIndex));

View file

@ -678,7 +678,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
};
AddDefaultIfNotPresent(preStartGCode, "G21", startGCodeLines, "set units to millimeters");
AddDefaultIfNotPresent(preStartGCode, "M107", startGCodeLines, "fan off");
double bed_temperature = settings.GetValue<double>(SettingsKey.bed_temperature);
double bed_temperature = settings.Helpers.ActiveBedTemperature;
if (bed_temperature > 0
&& settings.GetValue<bool>(SettingsKey.has_heated_bed))
{
@ -747,7 +747,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
"; automatic settings after start_gcode"
};
double bed_temperature = settings.GetValue<double>(SettingsKey.bed_temperature);
double bed_temperature = settings.Helpers.ActiveBedTemperature;
if (bed_temperature > 0
&& settings.GetValue<bool>(SettingsKey.has_heated_bed)
&& !startGCode.Contains("M109"))

View file

@ -64,6 +64,9 @@ Translated:5x5 Mesh
English:7 Point Disk
Translated:7 Point Disk
English:A comma separated list of bed names and temperatures (e.g. "Glass,70,PEI,65,Kapton,55"). When selected the bed temperature will be set to the chosen value.
Translated:A comma separated list of bed names and temperatures (e.g. "Glass,70,PEI,65,Kapton,55"). When selected the bed temperature will be set to the chosen value.
English:A component must be selected
Translated:A component must be selected
@ -256,6 +259,9 @@ Translated:At least 1 part must be selected
English:At least 2 parts must be selected
Translated:At least 2 parts must be selected
English:Attempting to connect
Translated:Attempting to connect
English:Attempting to connect again may address the issue.
Translated:Attempting to connect again may address the issue.
@ -337,6 +343,12 @@ Translated:Bed Shape
English:Bed Size
Translated:Bed Size
English:Bed Surface
Translated:Bed Surface
English:Bed Surface Temperatures
Translated:Bed Surface Temperatures
English:Bed Temperature
Translated:Bed Temperature
@ -367,6 +379,12 @@ Translated:Bevel Steps
English:Bevel Top
Translated:Bevel Top
English:Blue Tape
Translated:Blue Tape
English:Blue Tape Bed Temperature
Translated:Blue Tape Bed Temperature
English:Bottom Inset
Translated:Bottom Inset
@ -391,6 +409,12 @@ Translated:Brim Extruder
English:Build Height
Translated:Build Height
English:BuildTak
Translated:BuildTak
English:BuildTak Bed Temperature
Translated:BuildTak Bed Temperature
English:Calculate and transmit a standard rep-rap checksum for all commands.
Translated:Calculate and transmit a standard rep-rap checksum for all commands.
@ -463,6 +487,9 @@ Translated:Check For Update
English:Checking Cloud Services
Translated:Checking Cloud Services
English:Checking with webservice
Translated:Checking with webservice
English:Checks before each print that the layer height is less than the nozzle diameter (important for filament adhesion)
Translated:Checks before each print that the layer height is less than the nozzle diameter (important for filament adhesion)
@ -574,6 +601,9 @@ Translated:Connect to the currently selected printer
English:Connect to your printer to continue
Translated:Connect to your printer to continue
English:Connect your printer to check for firmware updates.
Translated:Connect your printer to check for firmware updates.
English:Connected
Translated:Connected
@ -583,6 +613,9 @@ Translated:Connected to Emulator
English:Connection Failed
Translated:Connection Failed
English:Connection succeeded
Translated:Connection succeeded
English:Continue
Translated:Continue
@ -709,6 +742,9 @@ Translated:Cube
English:Current Default
Translated:Current Default
English:Currently available serial ports.
Translated:Currently available serial ports.
English:Curve
Translated:Curve
@ -778,6 +814,9 @@ Translated:Detect gaps between perimeters that are too thin to fill with normal
English:Detect perimeters that cross over themselves and combine them.
Translated:Detect perimeters that cross over themselves and combine them.
English:Detecting device firmware...
Translated:Detecting device firmware...
English:Detects sections of the model that would be too thin to print and expands them to make them printable.
Translated:Detects sections of the model that would be too thin to print and expands them to make them printable.
@ -841,6 +880,9 @@ Translated:Downloading
English:Downloads
Translated:Downloads
English:Dual Contouring
Translated:Dual Contouring
English:Dual Extrusion Align
Translated:Dual Extrusion Align
@ -1192,6 +1234,12 @@ Translated:Furthest Back
English:g/cm³
Translated:g/cm³
English:Garolite
Translated:Garolite
English:Garolite Bed Temperature
Translated:Garolite Bed Temperature
English:G-Code
Translated:G-Code
@ -1255,6 +1303,12 @@ Translated:Generates an outline around the support material to improve strength
English:GitHub Personal Access Token
Translated:GitHub Personal Access Token
English:Glass
Translated:Glass
English:Glass Bed Temperature
Translated:Glass Bed Temperature
English:Good
Translated:Good
@ -1309,6 +1363,9 @@ Translated:Has Power Control
English:Has SD Card Reader
Translated:Has SD Card Reader
English:Has Swappable Bed
Translated:Has Swappable Bed
English:Has Z Probe
Translated:Has Z Probe
@ -1564,6 +1621,12 @@ Translated:Iterations
English:Jerk Velocity
Translated:Jerk Velocity
English:Kapton
Translated:Kapton
English:Kapton Bed Temperature
Translated:Kapton Bed Temperature
English:Keys
Translated:Keys
@ -1759,6 +1822,9 @@ Translated:Make Selection
English:Make the first layer on top of partial infill use the speed and fan for bridging.
Translated:Make the first layer on top of partial infill use the speed and fan for bridging.
English:Manual Z Calibration complete.
Translated:Manual Z Calibration complete.
English:Manually Configure Connection
Translated:Manually Configure Connection
@ -1813,6 +1879,9 @@ Translated:Max Velocity
English:Maximum Speed
Translated:Maximum Speed
English:Measure the nozzle offset
Translated:Measure the nozzle offset
English:Measure Tool
Translated:Measure Tool
@ -2215,6 +2284,12 @@ Translated:Pause G-Code
English:Pause Print
Translated:Pause Print
English:PEI
Translated:PEI
English:PEI Bed Temperature
Translated:PEI Bed Temperature
English:Percentage of
Translated:Percentage of
@ -2311,6 +2386,12 @@ Translated:Point Size
English:Polygons
Translated:Polygons
English:Polypropylene
Translated:Polypropylene
English:Polypropylene Bed Temperature
Translated:Polypropylene Bed Temperature
English:Port In Use
Translated:Port In Use
@ -2386,6 +2467,9 @@ Translated:Print Leveling is an optional feature for this printer that can help
English:Print Leveling measures the plane of the bed.
Translated:Print Leveling measures the plane of the bed.
English:Print Leveling will run automatically at the start of each print.
Translated:Print Leveling will run automatically at the start of each print.
English:Print Leveling Wizard
Translated:Print Leveling Wizard
@ -2476,6 +2560,9 @@ Translated:Pro Tools
English:Probe
Translated:Probe
English:Probe at bed center
Translated:Probe at bed center
English:Probe Offset
Translated:Probe Offset
@ -2572,6 +2659,9 @@ Translated:Reduced Width
English:Re-enter Password
Translated:Re-enter Password
English:Refresh
Translated:Refresh
English:Refresh Folder
Translated:Refresh Folder
@ -2599,6 +2689,9 @@ Translated:Remove Mode
English:Remove Subtract Objects
Translated:Remove Subtract Objects
English:Remove the paper
Translated:Remove the paper
English:Rename
Translated:Rename
@ -2788,6 +2881,9 @@ Translated:s
English:Sailfish Communication
Translated:Sailfish Communication
English:Sample the bed center position to determine the probe distance to the bed
Translated:Sample the bed center position to determine the probe distance to the bed
English:Save
Translated:Save
@ -2902,6 +2998,9 @@ Translated:Sets MatterControl to attempt to connect to a printer over the networ
English:Sets MatterControl to use s3g communication method. (You must disconnect and reconnect for this to take effect)
Translated:Sets MatterControl to use s3g communication method. (You must disconnect and reconnect for this to take effect)
English:Setting Name
Translated:Setting Name
English:Settings
Translated:Settings
@ -3073,6 +3172,9 @@ Translated:Slice Engine
English:Slice Height
Translated:Slice Height
English:Slice Presets Editor
Translated:Slice Presets Editor
English:Slice Settings
Translated:Slice Settings
@ -3325,6 +3427,9 @@ Translated:The color of the first material.
English:The color of the second material (extruder 2).
Translated:The color of the second material (extruder 2).
English:The current bed surfaces that the printer is using. This is used to set the correct bed temperature for a given material.
Translated:The current bed surfaces that the printer is using. This is used to set the correct bed temperature for a given material.
English:The date this file was originally created.
Translated:The date this file was originally created.
@ -3556,6 +3661,9 @@ Translated:The semaphore timeout period has expired.
English:The serial port communication speed of the printers firmware.
Translated:The serial port communication speed of the printers firmware.
English:The 'Serial Port' section lists all available serial\nports on your device. Changing which USB port the printer\nis connected to may change the associated serial port.\n\nTip: If you are uncertain, unplug/plug in your printer\nand hit refresh. The new port that appears should be\nyour printer.
Translated:The 'Serial Port' section lists all available serial\nports on your device. Changing which USB port the printer\nis connected to may change the associated serial port.\n\nTip: If you are uncertain, unplug/plug in your printer\nand hit refresh. The new port that appears should be\nyour printer.
English:The serial port to use while connecting to this printer.
Translated:The serial port to use while connecting to this printer.
@ -3619,6 +3727,45 @@ Translated:The target temperature the extruder will attempt to reach during the
English:The temperature at which the extruder will wipe the nozzle, as specified by Custom G-Code.
Translated:The temperature at which the extruder will wipe the nozzle, as specified by Custom G-Code.
English:The temperature to print when the bed is coverd in kapton tape. Set to 0 to disable.
Translated:The temperature to print when the bed is coverd in kapton tape. Set to 0 to disable.
English:The temperature to print when the bed is coverd in kapton tape. Set to 0 to use default.
Translated:The temperature to print when the bed is coverd in kapton tape. Set to 0 to use default.
English:The temperature to print when the bed is coverd with blue tape. Set to 0 to disable.
Translated:The temperature to print when the bed is coverd with blue tape. Set to 0 to disable.
English:The temperature to print when the bed is coverd with blue tape. Set to 0 to use default.
Translated:The temperature to print when the bed is coverd with blue tape. Set to 0 to use default.
English:The temperature to print when the bed is polypropylene. Set to 0 to disable.
Translated:The temperature to print when the bed is polypropylene. Set to 0 to disable.
English:The temperature to print when the bed is polypropylene. Set to 0 to use default.
Translated:The temperature to print when the bed is polypropylene. Set to 0 to use default.
English:The temperature to print when the bed is using BuildTak. Set to 0 to disable.
Translated:The temperature to print when the bed is using BuildTak. Set to 0 to disable.
English:The temperature to print when the bed is using BuildTak. Set to 0 to use default.
Translated:The temperature to print when the bed is using BuildTak. Set to 0 to use default.
English:The temperature to print when the bed is using garolite. Set to 0 to disable.
Translated:The temperature to print when the bed is using garolite. Set to 0 to disable.
English:The temperature to print when the bed is using garolite. Set to 0 to use default.
Translated:The temperature to print when the bed is using garolite. Set to 0 to use default.
English:The temperature to print when the bed is using glass. Set to 0 to use default.
Translated:The temperature to print when the bed is using glass. Set to 0 to use default.
English:The temperature to print when the bed is using PEI. Set to 0 to disable.
Translated:The temperature to print when the bed is using PEI. Set to 0 to disable.
English:The temperature to print when the bed is using PEI. Set to 0 to use default.
Translated:The temperature to print when the bed is using PEI. Set to 0 to use default.
English:The temperature to which the bed will be set for the duration of the print. Set to 0 to disable.
Translated:The temperature to which the bed will be set for the duration of the print. Set to 0 to disable.
@ -3682,6 +3829,9 @@ Translated:This is the name of your printer that will be displayed in the choose
English:This is used to increase the number of downloads allowed when browsing GitHub repositories
Translated:This is used to increase the number of downloads allowed when browsing GitHub repositories
English:This should be checked if the printer supports multiple bed surfaces and the bed temperature for the different surfaces needs to vary.
Translated:This should be checked if the printer supports multiple bed surfaces and the bed temperature for the different surfaces needs to vary.
English:This will ensure that no filament is stuck to your nozzle.
Translated:This will ensure that no filament is stuck to your nozzle.
@ -4024,6 +4174,9 @@ Translated:What to do when there is not a good place to hide the seam.
English:What went wrong?
Translated:What went wrong?
English:What's this?
Translated:What's this?
English:wheel
Translated:wheel
@ -4054,6 +4207,9 @@ Translated:Wipe Shield Distance
English:Wipe Tower Size
Translated:Wipe Tower Size
English:Wizard
Translated:Wizard
English:Write Filter
Translated:Write Filter

@ -1 +1 @@
Subproject commit b307efd64007c2bf6ed9d1d1b7b2605e0c80eb38
Subproject commit 0a76ef80eeab6ec0f17ef3e23c81e635434e2f10