Added first pass at support for SLA printers

Took out unused slice settings
This commit is contained in:
Lars Brubaker 2017-10-30 13:08:28 -07:00
parent 61dda454db
commit b0fa37b2a4
11 changed files with 218 additions and 214 deletions

View file

@ -55,7 +55,7 @@ namespace MatterHackers.MatterControl
public override void OnLoad(EventArgs args)
{
if (!pluginsQueuedToAdd && printer.Settings.GetValue("include_firmware_updater") == "Simple Arduino")
if (!pluginsQueuedToAdd && printer.Settings.GetValue(SettingsKey.include_firmware_updater) == "Simple Arduino")
{
UiThread.RunOnIdle(() =>
{

View file

@ -1088,7 +1088,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
if (!ValidateGoodSpeedSettingGreaterThan0("bridge_speed", normalSpeedLocation)) return false;
if (!ValidateGoodSpeedSettingGreaterThan0("external_perimeter_speed", normalSpeedLocation)) return false;
if (!ValidateGoodSpeedSettingGreaterThan0(SettingsKey.first_layer_speed, normalSpeedLocation)) return false;
if (!ValidateGoodSpeedSettingGreaterThan0("gap_fill_speed", normalSpeedLocation)) return false;
if (!ValidateGoodSpeedSettingGreaterThan0("infill_speed", normalSpeedLocation)) return false;
if (!ValidateGoodSpeedSettingGreaterThan0("perimeter_speed", normalSpeedLocation)) return false;
if (!ValidateGoodSpeedSettingGreaterThan0("small_perimeter_speed", normalSpeedLocation)) return false;

View file

@ -85,6 +85,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
public const string has_power_control = nameof(has_power_control);
public const string has_sd_card_reader = nameof(has_sd_card_reader);
public const string heat_extruder_before_homing = nameof(heat_extruder_before_homing);
public const string include_firmware_updater = nameof(include_firmware_updater);
public const string ip_address = nameof(ip_address);
public const string ip_port = nameof(ip_port);
public const string layer_gcode = nameof(layer_gcode);
@ -101,6 +102,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
public const string oem_profile_token = nameof(oem_profile_token);
public const string pause_gcode = nameof(pause_gcode);
public const string perimeter_start_end_overlap = nameof(perimeter_start_end_overlap);
public const string laser_speed_025 = nameof(laser_speed_025);
public const string laser_speed_100 = nameof(laser_speed_100);
public const string print_center = nameof(print_center);
public const string print_leveling_data = nameof(print_leveling_data);
public const string print_leveling_enabled = nameof(print_leveling_enabled);
@ -115,6 +118,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
public const string recover_position_before_z_home = nameof(recover_position_before_z_home);
public const string resume_gcode = nameof(resume_gcode);
public const string show_reset_connection = nameof(show_reset_connection);
public const string sla_printer = nameof(sla_printer);
public const string validate_layer_height = nameof(validate_layer_height);
public const string spiral_vase = nameof(spiral_vase);
public const string start_gcode = nameof(start_gcode);

View file

@ -86,7 +86,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
SettingsKey.bed_remove_part_temperature,
"extruder_wipe_temperature",
SettingsKey.heat_extruder_before_homing,
"include_firmware_updater",
SettingsKey.include_firmware_updater,
SettingsKey.sla_printer,
"layer_to_pause",
SettingsKey.show_reset_connection,
SettingsKey.validate_layer_height,

View file

@ -57,11 +57,11 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
new AsCountOrDistance("top_solid_layers", "numberOfTopLayers", SettingsKey.layer_height),
new AsCountOrDistance("brims", "numberOfBrimLoops", SettingsKey.nozzle_diameter),
new AsPercentOfReferenceOrDirect(SettingsKey.external_perimeter_extrusion_width, "outsidePerimeterExtrusionWidth", SettingsKey.nozzle_diameter),
new AsPercentOfReferenceOrDirect("external_perimeter_speed", "outsidePerimeterSpeed", "perimeter_speed"),
new OverrideSpeedOnSlaPrinters("external_perimeter_speed", "outsidePerimeterSpeed", "perimeter_speed"),
new AsPercentOfReferenceOrDirect(SettingsKey.first_layer_speed, "firstLayerSpeed", "infill_speed"),
new AsCountOrDistance(SettingsKey.number_of_first_layers, "numberOfFirstLayers", SettingsKey.layer_height),
new AsPercentOfReferenceOrDirect("raft_print_speed", "raftPrintSpeed", "infill_speed"),
new AsPercentOfReferenceOrDirect("top_solid_infill_speed", "topInfillSpeed", "infill_speed"),
new OverrideSpeedOnSlaPrinters("top_solid_infill_speed", "topInfillSpeed", "infill_speed"),
new AsPercentOfReferenceOrDirect(SettingsKey.first_layer_extrusion_width, "firstLayerExtrusionWidth", SettingsKey.nozzle_diameter),
new AsPercentOfReferenceOrDirect(SettingsKey.first_layer_height, "firstLayerThickness", SettingsKey.layer_height),
new ExtruderOffsets("extruder_offset", "extruderOffsets"),
@ -75,18 +75,18 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
new MapFirstValue("retract_restart_extra_time_to_apply", "retractRestartExtraTimeToApply"),
new MapFirstValue("retract_speed", "retractionSpeed"),
new MappedSetting("bridge_fan_speed", "bridgeFanSpeedPercent"),
new MappedSetting("bridge_speed", "bridgeSpeed"),
new OverrideSpeedOnSlaPrinters("bridge_speed", "bridgeSpeed", "infill_speed"),
new MappedSetting("disable_fan_first_layers", "firstLayerToAllowFan"),
new MappedSetting("extrusion_multiplier", "extrusionMultiplier"),
new MappedSetting("fill_angle", "infillStartingAngle"),
new MappedSetting("infill_overlap_perimeter", "infillExtendIntoPerimeter"),
new MappedSetting("infill_speed", "infillSpeed"),
new OverrideSpeedOnSlaPrinters("infill_speed", "infillSpeed", "infill_speed"),
new MappedSetting("infill_type", "infillType"),
new MappedSetting("max_fan_speed", "fanSpeedMaxPercent"),
new MappedSetting("min_extrusion_before_retract", "minimumExtrusionBeforeRetraction"),
new MappedSetting("min_fan_speed", "fanSpeedMinPercent"),
new MappedSetting("min_print_speed", "minimumPrintingSpeed"),
new MappedSetting("perimeter_speed", "insidePerimetersSpeed"),
new OverrideSpeedOnSlaPrinters("perimeter_speed", "insidePerimetersSpeed", "infill_speed"),
new MappedSetting("raft_air_gap", "raftAirGap"),
new MappedSetting("raft_fan_speed_percent", "raftFanSpeedPercent"),
new MappedSetting("retract_length_tool_change", "retractionOnExtruderSwitch"),
@ -97,7 +97,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
new MappedSetting("support_material_infill_angle", "supportInfillStartingAngle"),
new MappedSetting("support_material_percent", "supportPercent"),
new MappedSetting("support_material_spacing", "supportLineSpacing"),
new MappedSetting("support_material_speed", "supportMaterialSpeed"),
new OverrideSpeedOnSlaPrinters("support_material_speed", "supportMaterialSpeed", "infill_speed"),
new MappedSetting("support_material_xy_distance", "supportXYDistanceFromObject"),
new MappedSetting("support_type", "supportType"),
new MappedSetting("travel_speed", "travelSpeed"),
@ -133,6 +133,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
new VisibleButNotMappedToEngine("extruders_share_temperature"),
new VisibleButNotMappedToEngine("g0"),
new VisibleButNotMappedToEngine("solid_shell"),
new VisibleButNotMappedToEngine(SettingsKey.laser_speed_025),
new VisibleButNotMappedToEngine(SettingsKey.laser_speed_100),
};
matterSliceSettingNames = new HashSet<string>(mappedSettings.Select(m => m.CanonicalSettingsName));

View file

@ -520,6 +520,37 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
}
}
public class OverrideSpeedOnSlaPrinters : AsPercentOfReferenceOrDirect
{
public OverrideSpeedOnSlaPrinters(string canonicalSettingsName, string exportedName, string originalReference, double scale = 1)
: base(canonicalSettingsName, exportedName, originalReference, scale)
{
}
public override string Value
{
get
{
if (ActiveSliceSettings.Instance.GetValue<bool>(SettingsKey.sla_printer))
{
// return the speed based on the layer height
var speedAt025 = ActiveSliceSettings.Instance.GetValue<double>(SettingsKey.laser_speed_025);
var speedAt100 = ActiveSliceSettings.Instance.GetValue<double>(SettingsKey.laser_speed_100);
var deltaSpeed = speedAt100 - speedAt025;
var layerHeight = ActiveSliceSettings.Instance.GetValue<double>(SettingsKey.layer_height);
var deltaHeight = .1 - .025;
var heightRatio = (layerHeight - .025) / deltaHeight;
return (speedAt025 + deltaSpeed * heightRatio).ToString();
}
else
{
return base.Value;
}
}
}
}
public class AsPercentOfReferenceOrDirect : MappedSetting
{
string originalReference;

Binary file not shown.

View file

@ -101,7 +101,6 @@ Advanced
top_solid_layers
bottom_solid_layers
Quality
extra_perimeters
start_perimeters_at_concave_points
start_perimeters_at_non_overhang
thin_walls
@ -112,15 +111,13 @@ Advanced
infill_type
solid_fill_pattern
Advanced
infill_every_layers
infill_only_where_needed
solid_infill_every_layers
fill_angle
solid_infill_below_area
infill_first
infill_overlap_perimeter
fill_thin_gaps
Speed
Printing Speed
laser_speed_025
laser_speed_100
Speed for Infill
infill_speed
solid_infill_speed
@ -133,19 +130,12 @@ Advanced
Speeds for Other Printing
support_material_speed
bridge_speed
gap_fill_speed
Speed for Non-Print Moves
travel_speed
Modifiers
first_layer_speed
number_of_first_layers
Acceleration Control
perimeter_acceleration
infill_acceleration
bridge_acceleration
first_layer_acceleration
default_acceleration
Raft / Priming
Raft / Skirt / Brim
Raft
create_raft
raft_extra_distance_around_part
@ -160,7 +150,6 @@ Advanced
min_skirt_length
Brim
brims
brim_width
Support Material
Support Material
support_material
@ -197,17 +186,9 @@ Advanced
g0
Sequential Printing
complete_objects
extruder_clearance_height
extruder_clearance_radius
Output File
gcode_comments
output_filename_format
Post-Processing Scripts
post_process
Multiple Extruders
Extruders
perimeter_extruder
infill_extruder
Extruder Change
wipe_shield_distance
wipe_tower_size
@ -218,7 +199,6 @@ Advanced
Other
threads
resolution
extrusion_axis
overhangs
Single Print
Settings Will Clear at End of Print
@ -258,7 +238,6 @@ Advanced
Extrusion
Flow
extrusion_multiplier
bridge_flow_ratio
Extrusion Width
extrusion_width
first_layer_extrusion_width
@ -302,6 +281,7 @@ Advanced
bed_shape
Features
Interface
sla_printer
show_reset_connection
include_firmware_updater
Hardware

View file

@ -4,6 +4,7 @@
"PresentationName": "Avoid Crossing Perimeters",
"HelpText": "Forces the slicer to attempt to avoid having the perimeter line cross over existing perimeter lines. This can help with oozing or strings.",
"DataEditType": "CHECK_BOX",
"ShowIfSet": "!sla_printer",
"DefaultValue": "1"
},
{
@ -45,17 +46,10 @@
"PresentationName": "Layer(s) To Pause",
"HelpText": "The layer(s) at which the print will pause, allowing for a change in filament. Leave blank to disable. To pause on multiple layers, separate the layer numbers with semicolons. For example: \"16; 37\".",
"DataEditType": "STRING",
"ShowIfSet": "!sla_printer",
"ResetAtEndOfPrint": true,
"DefaultValue": ""
},
{
"SlicerConfigName": "bridge_acceleration",
"PresentationName": "Bridge",
"HelpText": "Acceleration to during bridging. Set to 0 to disable changing the printer's acceleration.",
"DataEditType": "POSITIVE_DOUBLE",
"ExtraSettings": "mm/s<>",
"DefaultValue": "0"
},
{
"SlicerConfigName": "bridge_fan_speed",
"PresentationName": "Bridging Fan Speed",
@ -65,29 +59,15 @@
"ShowIfSet": "has_fan",
"DefaultValue": "100"
},
{
"SlicerConfigName": "bridge_flow_ratio",
"PresentationName": "Bridge Flow Ratio",
"HelpText": "This controls the ratio of material extruded during bridging. Reducing this slightly can help bridging by stretching the filament more, and using a fan can also help greatly.",
"DataEditType": "POSITIVE_DOUBLE",
"DefaultValue": "1"
},
{
"SlicerConfigName": "bridge_speed",
"PresentationName": "Bridges",
"HelpText": "The speed at which bridging between walls will print.",
"DataEditType": "POSITIVE_DOUBLE",
"ExtraSettings": "mm/s",
"ShowIfSet": "!sla_printer",
"DefaultValue": "20"
},
{
"SlicerConfigName": "brim_width",
"PresentationName": "Brim Width",
"HelpText": "The amount of brim that will be drawn around each object, in millimeters. This can be useful to ensure that parts stay affixed to the bed.",
"DataEditType": "POSITIVE_DOUBLE",
"ExtraSettings": "mm",
"DefaultValue": "0"
},
{
"SlicerConfigName": "build_height",
"PresentationName": "Build Height",
@ -102,6 +82,7 @@
"PresentationName": "Cancel G-Code",
"HelpText": "G-Code to run when a print is canceled.",
"DataEditType": "MULTI_LINE_TEXT",
"ShowIfSet": "!sla_printer",
"DefaultValue": "",
"RebuildGCodeOnChange": false
},
@ -110,12 +91,14 @@
"PresentationName": "Complete Individual Objects",
"HelpText": "Each individual part is printed to completion then the nozzle is lowered back to the bed and the next part is printed.",
"DataEditType": "CHECK_BOX",
"ShowIfSet": "!sla_printer",
"DefaultValue": "0"
},
{
"SlicerConfigName": "connect_gcode",
"PresentationName": "On Connect G-Code",
"HelpText": "G-Code to run upon successful connection to a printer. This can be useful to set settings specific to a given printer.",
"ShowIfSet": "!sla_printer",
"DataEditType": "MULTI_LINE_TEXT",
"DefaultValue": ""
},
@ -124,6 +107,7 @@
"PresentationName": "Enable Extruder Lift",
"HelpText": "Moves the nozzle up and off the part to allow cooling.",
"DataEditType": "CHECK_BOX",
"ShowIfSet": "!sla_printer",
"DefaultValue": "0"
},
{
@ -131,6 +115,7 @@
"PresentationName": "Enable Auto Cooling",
"HelpText": "Turns on and off all cooling settings (all settings below this one).",
"DataEditType": "CHECK_BOX",
"ShowIfSet": "!sla_printer",
"DefaultValue": "1"
},
{
@ -138,6 +123,7 @@
"PresentationName": "Create Raft",
"HelpText": "Creates a raft under the printed part. Useful to prevent warping when printing ABS (and other warping-prone plastics) as it helps parts adhere to the bed.",
"DataEditType": "CHECK_BOX",
"ShowIfSet": "!sla_printer",
"DefaultValue": "0"
},
{
@ -146,6 +132,7 @@
"HelpText": "The extra distance the raft will extend around the edge of the part.",
"DataEditType": "INT_OR_MM",
"ExtraSettings": "count or mm",
"ShowIfSet": "!sla_printer",
"DefaultValue": "5"
},
{
@ -154,6 +141,7 @@
"HelpText": "The distance between the top of the raft and the bottom of the model. 0.6 mm is a good starting point for PLA and 0.4 mm is a good starting point for ABS. Lower values give a smoother surface, higher values make the print easier to remove.",
"DataEditType": "POSITIVE_DOUBLE",
"ExtraSettings": "mm",
"ShowIfSet": "!sla_printer",
"DefaultValue": ".2"
},
{
@ -171,16 +159,9 @@
"HelpText": "The speed at which the layers of the raft (other than the first layer) will print. This can be set explicitly or as a percentage of the Infill speed.",
"DataEditType": "DOUBLE_OR_PERCENT",
"ExtraSettings": "mm/s or %",
"ShowIfSet": "!sla_printer",
"DefaultValue": "100%"
},
{
"SlicerConfigName": "default_acceleration",
"PresentationName": "Default",
"HelpText": "Acceleration to use on all moves not defined above. Set to 0 to disable changing the printer's acceleration.",
"DataEditType": "POSITIVE_DOUBLE",
"ExtraSettings": "mm/s<>",
"DefaultValue": "0"
},
{
"SlicerConfigName": "disable_fan_first_layers",
"PresentationName": "Disable Fan For The First",
@ -202,6 +183,7 @@
"PresentationName": "Outside Perimeter",
"HelpText": "The speed at which outside, external, or the otherwise visible perimeters will print.",
"DataEditType": "DOUBLE_OR_PERCENT",
"ShowIfSet": "!sla_printer",
"ExtraSettings": "mm/s or %",
"DefaultValue": "70%"
},
@ -210,37 +192,16 @@
"PresentationName": "External Perimeters First",
"HelpText": "Forces external perimeters to be printed first. By default, they will print last.",
"DataEditType": "CHECK_BOX",
"ShowIfSet": "!sla_printer",
"DefaultValue": "0"
},
{
"SlicerConfigName": "extra_perimeters",
"PresentationName": "Generate Extra Perimeters When Needed",
"HelpText": "Allow slicer to generate extra perimeters when needed for sloping walls.",
"DataEditType": "CHECK_BOX",
"DefaultValue": "1"
},
{
"SlicerConfigName": "extruder_clearance_height",
"PresentationName": "Extruder Clearance Height",
"HelpText": "This is used to figure out how far apart individual parts must be printed to allow them to be completed before printing the next part.",
"DataEditType": "POSITIVE_DOUBLE",
"ExtraSettings": "mm",
"DefaultValue": "20"
},
{
"SlicerConfigName": "extruder_clearance_radius",
"PresentationName": "Extruder Clearance Radius",
"HelpText": "This is used to figure out how far apart individual parts must be printed to allow them to be completed before printing the next part.",
"DataEditType": "POSITIVE_DOUBLE",
"ExtraSettings": "mm",
"DefaultValue": "20"
},
{
"SlicerConfigName": "extruder_count",
"PresentationName": "Extruder Count",
"HelpText": "The number of extruders the printer has.",
"DataEditType": "INT",
"DefaultValue": "1",
"ShowIfSet": "!sla_printer",
"ReloadUiWhenChanged": true
},
{
@ -249,6 +210,7 @@
"HelpText": "The offset of each nozzle relative to the first nozzle. Only useful for multiple extruder machines.",
"DataEditType": "OFFSET2",
"ExtraSettings": "mm",
"ShowIfSet": "!sla_printer",
"DefaultValue": "0x0,0x0,0x0,0x0"
},
{
@ -258,6 +220,7 @@
"DataEditType": "DOUBLE",
"ExtraSettings": "mm",
"DefaultValue": "0",
"ShowIfSet": "!sla_printer",
"RebuildGCodeOnChange": false
},
{
@ -266,6 +229,7 @@
"HelpText": "Used to specify if more than one extruder share a common heater cartridge.",
"DataEditType": "CHECK_BOX",
"DefaultValue": "0",
"ShowIfSet": "!sla_printer",
"ReloadUiWhenChanged": true
},
{
@ -273,6 +237,7 @@
"PresentationName": "Heat Before Homing",
"HelpText": "Forces the printer to heat the nozzle before homing.",
"DataEditType": "CHECK_BOX",
"ShowIfSet": "!sla_printer",
"DefaultValue": "0"
},
{
@ -280,6 +245,7 @@
"PresentationName": "Merge Overlapping Lines",
"HelpText": "Detect perimeters that cross over themselves and combine them.",
"DataEditType": "CHECK_BOX",
"ShowIfSet": "!sla_printer",
"DefaultValue": "1"
},
{
@ -287,20 +253,15 @@
"PresentationName": "Expand Thin Walls",
"HelpText": "Detects sections of the model that would be too thin to print and expands them to make them printable.",
"DataEditType": "CHECK_BOX",
"ShowIfSet": "!sla_printer",
"DefaultValue": "1"
},
{
"SlicerConfigName": "extrusion_axis",
"PresentationName": "Extrusion Axis",
"HelpText": "This is the identifier used in the G-Code to specify the extruder.",
"DataEditType": "STRING",
"DefaultValue": "E"
},
{
"SlicerConfigName": "extrusion_multiplier",
"PresentationName": "Extrusion Multiplier",
"HelpText": "All extrusions are multiplied by this value. Increasing it above 1 will increase the amount of filament being extruded (1.1 is a good max value); decreasing it will decrease the amount being extruded (.9 is a good minimum value).",
"DataEditType": "POSITIVE_DOUBLE",
"ShowIfSet": "!sla_printer",
"DefaultValue": "1"
},
{
@ -365,6 +326,7 @@
"PresentationName": "Diameter",
"HelpText": "The actual diameter of the filament used for printing.",
"DataEditType": "POSITIVE_DOUBLE",
"ShowIfSet": "!sla_printer",
"ExtraSettings": "mm",
"DefaultValue": "3"
},
@ -410,16 +372,9 @@
"PresentationName": "Fill Thin Gaps",
"HelpText": "Detect gaps between perimeters that are too thin to fill with normal infill and attempt to fill them.",
"DataEditType": "CHECK_BOX",
"ShowIfSet": "!sla_printer",
"DefaultValue": "1"
},
{
"SlicerConfigName": "first_layer_acceleration",
"PresentationName": "First Layer",
"HelpText": "Acceleration to use while printing the first layer. Set to 0 to use the default first layer acceleration.",
"DataEditType": "DOUBLE",
"ExtraSettings": "mm/s",
"DefaultValue": "0"
},
{
"SlicerConfigName": "first_layer_bed_temperature",
"PresentationName": "Bed First Layer",
@ -435,6 +390,7 @@
"HelpText": "A modifier of the width of the extrusion for the first layer of the print. A value greater than 100% can help with adhesion to the print bed.",
"DataEditType": "DOUBLE_OR_PERCENT",
"ExtraSettings": "mm or %",
"ShowIfSet": "!sla_printer",
"DefaultValue": "100%"
},
{
@ -488,6 +444,7 @@
"ExtraSettings": "",
"ShowAsOverride": true,
"DefaultValue": "1",
"ShowIfSet": "!sla_printer",
"RebuildGCodeOnChange": false
},
{
@ -516,6 +473,7 @@
"HelpText": "The temperature to which the nozzle will be heated before printing the first layer of a part. The printer will wait until this temperature has been reached before printing.",
"DataEditType": "POSITIVE_DOUBLE",
"ExtraSettings": "°C",
"ShowIfSet": "!sla_printer",
"DefaultValue": "205"
},
{
@ -523,28 +481,7 @@
"PresentationName": "Use G0",
"HelpText": "Use G0 for moves rather than G1.",
"DataEditType": "CHECK_BOX",
"DefaultValue": "0"
},
{
"SlicerConfigName": "gap_fill_speed",
"PresentationName": "Gap Fill",
"HelpText": "Speed to fill small gaps. Keep low to avoid vibration. Set to 0 to skip filling small gaps.",
"DataEditType": "POSITIVE_DOUBLE",
"ExtraSettings": "mm/s",
"DefaultValue": "20"
},
{
"SlicerConfigName": "gcode_arcs",
"PresentationName": "Use Arcs",
"HelpText": "Use firmware arcs rather than multiple segments for curves.",
"DataEditType": "CHECK_BOX",
"DefaultValue": "0"
},
{
"SlicerConfigName": "gcode_comments",
"PresentationName": "Verbose G-Code",
"HelpText": "Include detailed comments in the G-Code.",
"DataEditType": "CHECK_BOX",
"ShowIfSet": "!sla_printer",
"DefaultValue": "0"
},
{
@ -567,8 +504,8 @@
"SlicerConfigName": "has_fan",
"PresentationName": "Has Fan",
"HelpText": "The printer has a layer-cooling fan.",
"DataEditType": "HARDWARE_PRESENT",
"ExtraSettings": "bridge_fan_speed,disable_fan_first_layers,fan_always_on,fan_below_layer_time,max_fan_speed,min_fan_speed",
"DataEditType": "CHECK_BOX",
"ShowIfSet": "!sla_printer",
"DefaultValue": "1",
"ReloadUiWhenChanged": true
},
@ -576,9 +513,9 @@
"SlicerConfigName": "has_z_probe",
"PresentationName": "Has Z Probe",
"HelpText": "The printer has a z probe for measuring bed level.",
"DataEditType": "HARDWARE_PRESENT",
"DataEditType": "CHECK_BOX",
"ShowAsOverride": true,
"ShowIfSet": null,
"ShowIfSet": "!sla_printer",
"ResetAtEndOfPrint": false,
"DefaultValue": "0",
"ReloadUiWhenChanged": true,
@ -590,7 +527,7 @@
"SlicerConfigName": "has_z_servo",
"PresentationName": "Has Z Servo",
"HelpText": "The printer has a servo for lowering and rasing the z probe.",
"DataEditType": "HARDWARE_PRESENT",
"DataEditType": "CHECK_BOX",
"ShowAsOverride": true,
"ShowIfSet": "has_z_probe",
"ResetAtEndOfPrint": false,
@ -604,7 +541,8 @@
"SlicerConfigName": "has_hardware_leveling",
"PresentationName": "Has Hardware Leveling",
"HelpText": "The printer has its own auto bed leveling probe and procedure which can be called using a G29 command during Start G-Code.",
"DataEditType": "HARDWARE_PRESENT",
"DataEditType": "CHECK_BOX",
"ShowIfSet": "!sla_printer",
"DefaultValue": "0",
"ReloadUiWhenChanged": true
},
@ -612,10 +550,20 @@
"SlicerConfigName": "has_heated_bed",
"PresentationName": "Has Heated Bed",
"HelpText": "The printer has a heated bed.",
"DataEditType": "HARDWARE_PRESENT",
"DataEditType": "CHECK_BOX",
"ShowIfSet": "!sla_printer",
"DefaultValue": "1",
"ReloadUiWhenChanged": true
},
{
"SlicerConfigName": "sla_printer",
"PresentationName": "Printer is SLA",
"HelpText": "Switch the settings interface to one intended for SLA printers.",
"DataEditType": "CHECK_BOX",
"DefaultValue": "0",
"ReloadUiWhenChanged": true,
"RebuildGCodeOnChange": false
},
{
"SlicerConfigName": "include_firmware_updater",
"PresentationName": "Show Firmware Updater",
@ -623,6 +571,7 @@
"DataEditType": "LIST",
"ExtraSettings": "None,Simple Arduino",
"DefaultValue": "None",
"ShowIfSet": "!sla_printer",
"ReloadUiWhenChanged": true,
"RebuildGCodeOnChange": false
},
@ -630,8 +579,9 @@
"SlicerConfigName": "has_power_control",
"PresentationName": "Has Power Control",
"HelpText": "The printer has the ability to control the power supply. Enable this function to show the ATX Power Control section on the Controls pane.",
"DataEditType": "HARDWARE_PRESENT",
"DataEditType": "CHECK_BOX",
"DefaultValue": "0",
"ShowIfSet": "!sla_printer",
"ReloadUiWhenChanged": true,
"RebuildGCodeOnChange": false
},
@ -639,9 +589,10 @@
"SlicerConfigName": "has_sd_card_reader",
"PresentationName": "Has SD Card Reader",
"HelpText": "The printer has a SD card reader.",
"DataEditType": "HARDWARE_PRESENT",
"DataEditType": "CHECK_BOX",
"ExtraSettings": "bed_temperature,first_layer_bed_temperature",
"DefaultValue": "0",
"ShowIfSet": "!sla_printer",
"ReloadUiWhenChanged": true,
"RebuildGCodeOnChange": false
},
@ -649,33 +600,11 @@
"SlicerConfigName": "show_reset_connection",
"PresentationName": "Show Reset Connection",
"HelpText": "Shows a button at the right side of the Printer Connection Bar used to reset the USB connection to the printer. This can be used on printers that support it as an emergency stop.",
"DataEditType": "HARDWARE_PRESENT",
"DataEditType": "CHECK_BOX",
"ShowIfSet": "!sla_printer",
"ReloadUiWhenChanged": true,
"DefaultValue": "0"
},
{
"SlicerConfigName": "infill_acceleration",
"PresentationName": "Infill",
"HelpText": "Acceleration to use when printing infill. Set to 0 to disable changing the printer's acceleration.",
"DataEditType": "POSITIVE_DOUBLE",
"ExtraSettings": "mm/s",
"DefaultValue": "0"
},
{
"SlicerConfigName": "infill_every_layers",
"PresentationName": "Infill Every",
"HelpText": "Sets which layers will receive infill. This should normally stay set to 1 to make strong parts.",
"DataEditType": "INT",
"ExtraSettings": "layers",
"DefaultValue": "1"
},
{
"SlicerConfigName": "infill_extruder",
"PresentationName": "Infill Extruder",
"HelpText": "The index of the extruder to use for infill.",
"DataEditType": "INT",
"DefaultValue": "1"
},
{
"SlicerConfigName": "infill_extrusion_width",
"PresentationName": "Infill",
@ -684,20 +613,6 @@
"ExtraSettings": "mm or %",
"DefaultValue": "0"
},
{
"SlicerConfigName": "infill_first",
"PresentationName": "Do Infill Before Perimeters",
"HelpText": "Sets infill to happen before perimeters are created.",
"DataEditType": "CHECK_BOX",
"DefaultValue": "0"
},
{
"SlicerConfigName": "infill_only_where_needed",
"PresentationName": "Only Infill Where Needed",
"HelpText": "Creates infill only where it will be used as internal support.",
"DataEditType": "CHECK_BOX",
"DefaultValue": "0"
},
{
"SlicerConfigName": "infill_overlap_perimeter",
"PresentationName": "Infill Overlap",
@ -706,11 +621,30 @@
"ExtraSettings": "mm",
"DefaultValue": ".1"
},
{
"SlicerConfigName": "laser_speed_025",
"PresentationName": "Speed at 0.025 Height",
"HelpText": "The speed to move the laser when the layer height is 0.025mm. Speed will be ajusted linearly at other heights.",
"DataEditType": "POSITIVE_DOUBLE",
"ExtraSettings": "mm/s",
"ShowIfSet": "sla_printer",
"DefaultValue": "100"
},
{
"SlicerConfigName": "laser_speed_100",
"PresentationName": "Speed at 0.1 Height",
"HelpText": "The speed to move the laser when the layer height is 0.1mm. Speed will be ajusted linearly at other heights.",
"DataEditType": "POSITIVE_DOUBLE",
"ShowIfSet": "sla_printer",
"ExtraSettings": "mm/s",
"DefaultValue": "85"
},
{
"SlicerConfigName": "infill_speed",
"PresentationName": "Infill",
"HelpText": "The speed at which infill will print.",
"DataEditType": "POSITIVE_DOUBLE",
"ShowIfSet": "!sla_printer",
"ExtraSettings": "mm/s",
"DefaultValue": "60"
},
@ -756,6 +690,7 @@
"HelpText": "Specifies that the firmware has support for ros_0 endstop reporting on M119. TRIGGERED state defines filament has runout. If runout is detected the printers pause G-Code is run.",
"DataEditType": "CHECK_BOX",
"ShowAsOverride": true,
"ShowIfSet": "!sla_printer",
"ResetAtEndOfPrint": false,
"DefaultValue": "0",
"RebuildGCodeOnChange": false
@ -930,7 +865,9 @@
"HelpText": "The minimum length of filament that must be extruded before a retraction can occur.",
"DataEditType": "POSITIVE_DOUBLE",
"ExtraSettings": "mm",
"ShowIfSet": "!sla_printer",
"EnableIfSet": "enable_retractions",
"ShowIfSet": "!sla_printer",
"DefaultValue": ".1"
},
{
@ -948,6 +885,7 @@
"HelpText": "The minimum speed to which the printer will reduce to in order to attempt to make the layer print time long enough to satisfy the minimum layer time.",
"DataEditType": "POSITIVE_DOUBLE",
"ExtraSettings": "mm/s",
"ShowIfSet": "!sla_printer",
"DefaultValue": "10"
},
{
@ -955,6 +893,7 @@
"PresentationName": "Minimum Extrusion Length",
"HelpText": "The minimum length of filament to use printing the skirt loops. Enough skirt loops will be drawn to use this amount of filament, overriding the value set in Loops if the value in Loops will produce a skirt shorter than this value.",
"DataEditType": "POSITIVE_DOUBLE",
"ShowIfSet": "!sla_printer",
"ExtraSettings": "mm",
"DefaultValue": "0"
},
@ -987,13 +926,6 @@
"DataEditType": "CHECK_BOX",
"DefaultValue": "1"
},
{
"SlicerConfigName": "output_filename_format",
"PresentationName": "Output File Name Format",
"HelpText": "Sets the way that slicer creates file names (this is not used by MatterControl).",
"DataEditType": "STRING",
"DefaultValue": "[input_filename_base].gcode"
},
{
"SlicerConfigName": "calibration_files",
"PresentationName": "Calibration Files",
@ -1006,6 +938,7 @@
"PresentationName": "First Layer Only",
"HelpText": "Output only the first layer of the print. Especially useful for outputting gcode data for applications like engraving or cutting.",
"DataEditType": "CHECK_BOX",
"ShowIfSet": "!sla_printer",
"DefaultValue": "0"
},
{
@ -1013,27 +946,10 @@
"PresentationName": "Pause G-Code",
"HelpText": "G-Code to run when the printer is paused.",
"DataEditType": "MULTI_LINE_TEXT",
"ShowIfSet": "!sla_printer",
"DefaultValue": "",
"RebuildGCodeOnChange": false
},
{
"SlicerConfigName": "perimeter_acceleration",
"PresentationName": "Perimeters",
"HelpText": "Acceleration to use on perimeters. Set to 0 to disable changing the printer's acceleration.",
"DataEditType": "POSITIVE_DOUBLE",
"ExtraSettings": "mm/s",
"ShowAsOverride": true,
"ShowIfSet": null,
"ResetAtEndOfPrint": false,
"DefaultValue": "0"
},
{
"SlicerConfigName": "perimeter_extruder",
"PresentationName": "Perimeter Extruder",
"HelpText": "The index of the extruder to use for perimeters.",
"DataEditType": "INT",
"DefaultValue": "1"
},
{
"SlicerConfigName": "perimeter_extrusion_width",
"PresentationName": "Perimeters",
@ -1048,6 +964,7 @@
"HelpText": "A modifier of the width of the extrusion when printing outside perimeters. Can be useful to fine-adjust actual print size when objects print larger or smaller than specified in the digital model.",
"DataEditType": "DOUBLE_OR_PERCENT",
"ExtraSettings": "mm or %",
"ShowIfSet": "!sla_printer",
"DefaultValue": "100%"
},
{
@ -1055,6 +972,7 @@
"PresentationName": "Inside Perimeters",
"HelpText": "The speed at which inside perimeters will print.",
"DataEditType": "POSITIVE_DOUBLE",
"ShowIfSet": "!sla_printer",
"ExtraSettings": "mm/s",
"DefaultValue": "30"
},
@ -1109,6 +1027,7 @@
"PresentationName": "Resume G-Code",
"HelpText": "G-Code to be run when the print resumes after a pause.",
"DataEditType": "MULTI_LINE_TEXT",
"ShowIfSet": "!sla_printer",
"DefaultValue": "",
"RebuildGCodeOnChange": false
},
@ -1118,6 +1037,7 @@
"HelpText": "The minimum distance of a non-print move which will trigger a retraction.",
"DataEditType": "POSITIVE_DOUBLE",
"ExtraSettings": "mm",
"ShowIfSet": "!sla_printer",
"EnableIfSet": "enable_retractions",
"DefaultValue": "20"
},
@ -1126,6 +1046,7 @@
"PresentationName": "Enable Retractions",
"HelpText": "Turn retractions on and off.",
"DataEditType": "CHECK_BOX",
"ShowIfSet": "!sla_printer",
"DefaultValue": "1",
"ReloadUiWhenChanged": true
},
@ -1136,6 +1057,7 @@
"DataEditType": "POSITIVE_DOUBLE",
"ExtraSettings": "mm",
"DefaultValue": "1",
"ShowIfSet": "!sla_printer",
"EnableIfSet": "enable_retractions"
},
{
@ -1143,6 +1065,7 @@
"PresentationName": "Length on Tool Change",
"HelpText": "When using multiple extruders, the distance filament will reverse before changing to a different extruder.",
"DataEditType": "POSITIVE_DOUBLE",
"ShowIfSet": "!sla_printer",
"ExtraSettings": "mm",
"DefaultValue": "10"
},
@ -1151,6 +1074,7 @@
"PresentationName": "Retract When Changing Islands",
"HelpText": "Force a retraction when moving between islands (distinct parts on the layer).",
"DataEditType": "CHECK_BOX",
"ShowIfSet": "!sla_printer",
"EnableIfSet": "enable_retractions",
"DefaultValue": "1"
},
@ -1160,6 +1084,7 @@
"HelpText": "The distance the nozzle will lift after each retraction.",
"DataEditType": "POSITIVE_DOUBLE",
"ExtraSettings": "mm",
"ShowIfSet": "!sla_printer",
"EnableIfSet": "enable_retractions",
"DefaultValue": "0"
},
@ -1168,6 +1093,7 @@
"PresentationName": "Extra Length After Tool Change",
"HelpText": "Length of extra filament to extrude after a complete tool change (in addition to the re-extrusion of the tool change retraction distance).",
"DataEditType": "POSITIVE_DOUBLE",
"ShowIfSet": "!sla_printer",
"ExtraSettings": "mm zero to disable",
"DefaultValue": "0"
},
@ -1177,6 +1103,7 @@
"HelpText": "Length of filament to extrude after a complete retraction (in addition to the re-extrusion of the Length on Move distance).",
"DataEditType": "DOUBLE",
"ExtraSettings": "mm",
"ShowIfSet": "!sla_printer",
"EnableIfSet": "enable_retractions",
"DefaultValue": "0"
},
@ -1186,6 +1113,7 @@
"HelpText": "The time over which to increase the Extra Length On Restart to its maximum value. Below this time only a portion of the extra length will be applied. Leave 0 to apply the entire amount all the time.",
"DataEditType": "DOUBLE",
"ExtraSettings": "s",
"ShowIfSet": "!sla_printer",
"EnableIfSet": "enable_retractions",
"DefaultValue": "0"
},
@ -1195,6 +1123,7 @@
"HelpText": "The speed at which filament will retract and re-extrude.",
"DataEditType": "POSITIVE_DOUBLE",
"ExtraSettings": "mm/s",
"ShowIfSet": "!sla_printer",
"EnableIfSet": "enable_retractions",
"DefaultValue": "30"
},
@ -1239,6 +1168,7 @@
"PresentationName": "Distance From Object",
"HelpText": "The distance from the model at which the first skirt loop is drawn. Make this 0 to create an anchor for the part to the bed, also known as a brim.",
"DataEditType": "POSITIVE_DOUBLE",
"ShowIfSet": "!sla_printer",
"ExtraSettings": "mm",
"DefaultValue": "6"
},
@ -1255,6 +1185,7 @@
"PresentationName": "Distance or Loops",
"HelpText": "The number of loops to draw around all the parts on the bed before starting on the parts. Used mostly to prime the nozzle so the flow is even when the actual print begins.",
"DataEditType": "INT_OR_MM",
"ShowIfSet": "!sla_printer",
"ExtraSettings": "count or mm",
"DefaultValue": "1"
},
@ -1272,6 +1203,7 @@
"HelpText": "The minimum amount of time a layer must take to print. If a layer will take less than this amount of time, the movement speed is reduced so the layer print time will match this value, down to the minimum print speed at the slowest.",
"DataEditType": "INT",
"ExtraSettings": "seconds",
"ShowIfSet": "!sla_printer",
"DefaultValue": "30"
},
{
@ -1290,22 +1222,6 @@
"ExtraSettings": "rectilinear,concentric,hilbertcurve,achimedeancords,octagramspiral",
"DefaultValue": "rectilinear"
},
{
"SlicerConfigName": "solid_infill_below_area",
"PresentationName": "Solid Infill Threshold Area",
"HelpText": "Forces solid infill for any area less than this amount.",
"DataEditType": "POSITIVE_DOUBLE",
"ExtraSettings": "mm2",
"DefaultValue": "70"
},
{
"SlicerConfigName": "solid_infill_every_layers",
"PresentationName": "Solid Infill Every",
"HelpText": "Sets how often a layer will be forced to be solid infilled. Zero will result in normal infill throughout.",
"DataEditType": "INT",
"ExtraSettings": "layers",
"DefaultValue": "0"
},
{
"SlicerConfigName": "solid_infill_extrusion_width",
"PresentationName": "Solid Infill",
@ -1327,6 +1243,7 @@
"PresentationName": "Spiral Vase",
"HelpText": "Forces the print to have only one extrusion and gradually increase the Z height during the print. Only one part will print at a time with this feature.",
"DataEditType": "CHECK_BOX",
"ShowIfSet": "!sla_printer",
"ResetAtEndOfPrint": true,
"DefaultValue": "0"
},
@ -1391,6 +1308,7 @@
"HelpText": "The distance between the top of the support and the bottom of the model. A good value depends on the type of material. For ABS and PLA a value between 0.4 and 0.6 works well, respectively.",
"DataEditType": "POSITIVE_DOUBLE",
"EnableIfSet": "support_material",
"ShowIfSet": "!sla_printer",
"ExtraSettings": "mm",
"DefaultValue": ".3"
},
@ -1422,6 +1340,7 @@
"HelpText": "The percent of the extrusion width that can be overlapped and still generate.",
"DataEditType": "POSITIVE_DOUBLE",
"EnableIfSet": "support_material",
"ShowIfSet": "!sla_printer",
"ExtraSettings": "%",
"DefaultValue": "50"
},
@ -1431,6 +1350,7 @@
"HelpText": "The angle at which the support material lines will be drawn.",
"DataEditType": "POSITIVE_DOUBLE",
"EnableIfSet": "support_material",
"ShowIfSet": "!sla_printer",
"ExtraSettings": "°",
"DefaultValue": "45"
},
@ -1439,6 +1359,7 @@
"PresentationName": "Support Everywhere",
"HelpText": "Generates support material starting on top of internal surfaces. If unchecked support will only generate starting on the bed.",
"EnableIfSet": "support_material",
"ShowIfSet": "!sla_printer",
"DataEditType": "CHECK_BOX",
"DefaultValue": "1"
},
@ -1447,6 +1368,7 @@
"PresentationName": "Create Perimeter",
"HelpText": "Generates an outline around the support material to improve strength and hold up interface layers.",
"EnableIfSet": "support_material",
"ShowIfSet": "!sla_printer",
"DataEditType": "CHECK_BOX",
"DefaultValue": "1"
},
@ -1462,6 +1384,7 @@
"SlicerConfigName": "support_material_extruder",
"PresentationName": "Support Material Extruder",
"EnableIfSet": "support_material",
"ShowIfSet": "!sla_printer",
"HelpText": "The index of the extruder to use for printing support material. Applicable only when Extruder Count is set to a value more than 1.",
"DataEditType": "INT",
"DefaultValue": "1"
@ -1470,6 +1393,7 @@
"SlicerConfigName": "raft_extruder",
"PresentationName": "Raft Extruder",
"HelpText": "The index of the extruder to use to print the raft. Set to 0 to use the support extruder index.",
"ShowIfSet": "!sla_printer",
"DataEditType": "INT",
"DefaultValue": "0"
},
@ -1479,6 +1403,7 @@
"HelpText": "A modifier of the width of the extrusion when printing support material. Set to 0 for automatic calculation.",
"DataEditType": "DOUBLE_OR_PERCENT",
"ExtraSettings": "mm or %",
"ShowIfSet": "!sla_printer",
"DefaultValue": "0"
},
{
@ -1486,6 +1411,7 @@
"PresentationName": "Support Interface Extruder",
"HelpText": "The index of the extruder to use for support material interface layer(s).",
"EnableIfSet": "support_material",
"ShowIfSet": "!sla_printer",
"DataEditType": "INT",
"DefaultValue": "1"
},
@ -1495,6 +1421,7 @@
"HelpText": "The number of layers or the distance to print solid material between the supports and the part. Add mm to the end of the number to specify distance.",
"DataEditType": "INT_OR_MM",
"EnableIfSet": "support_material",
"ShowIfSet": "!sla_printer",
"ExtraSettings": "layers or mm",
"DefaultValue": ".9mm"
},
@ -1521,6 +1448,7 @@
"DataEditType": "POSITIVE_DOUBLE",
"ExtraSettings": "mm",
"EnableIfSet": "support_material",
"ShowIfSet": "!sla_printer",
"DefaultValue": "2.5"
},
{
@ -1528,6 +1456,7 @@
"PresentationName": "Support Material",
"HelpText": "The speed at which support material structures will print.",
"DataEditType": "POSITIVE_DOUBLE",
"ShowIfSet": "!sla_printer",
"ExtraSettings": "mm/s",
"DefaultValue": "60"
},
@ -1559,6 +1488,7 @@
"HelpText": "The distance the support material will be from the object in the X and Y directions.",
"DataEditType": "POSITIVE_DOUBLE",
"EnableIfSet": "support_material",
"ShowIfSet": "!sla_printer",
"ExtraSettings": "mm",
"DefaultValue": "0.7"
},
@ -1583,6 +1513,7 @@
"PresentationName": "Generate Support Material",
"HelpText": "Generates support material under areas of the part which may be too steep to support themselves.",
"DataEditType": "CHECK_BOX",
"ShowIfSet": "!sla_printer",
"ReloadUiWhenChanged": true,
"DefaultValue": "0"
},
@ -1592,6 +1523,7 @@
"HelpText": "The pattern to draw for the generation of support material.",
"DataEditType": "LIST",
"EnableIfSet": "support_material",
"ShowIfSet": "!sla_printer",
"ExtraSettings": "GRID,LINES",
"DefaultValue": "LINES"
},
@ -1601,6 +1533,7 @@
"HelpText": "The target temperature the extruder will attempt to reach during the print.",
"DataEditType": "POSITIVE_DOUBLE",
"ExtraSettings": "°C",
"ShowIfSet": "!sla_printer",
"DefaultValue": "200"
},
{
@ -1608,6 +1541,7 @@
"PresentationName": "Extruder Wipe Temperature",
"HelpText": "The temperature at which the extruder will wipe the nozzle, as specified by Custom G-Code.",
"DataEditType": "POSITIVE_DOUBLE",
"ShowIfSet": "!sla_printer",
"ExtraSettings": "°C",
"DefaultValue": "0"
},
@ -1639,6 +1573,7 @@
"SlicerConfigName": "toolchange_gcode",
"PresentationName": "After Tool Change G-Code",
"HelpText": "G-Code to be run after every tool change.",
"ShowIfSet": "!sla_printer",
"DataEditType": "MULTI_LINE_TEXT",
"DefaultValue": ""
},
@ -1647,6 +1582,7 @@
"PresentationName": "Before Tool Change G-Code",
"HelpText": "G-Code to be run before every tool change.",
"DataEditType": "MULTI_LINE_TEXT",
"ShowIfSet": "!sla_printer",
"DefaultValue": ""
},
{
@ -1663,6 +1599,7 @@
"HelpText": "The speed at which the top solid layers will print. Can be set explicitly or as a percentage of the Infill speed.",
"DataEditType": "DOUBLE_OR_PERCENT",
"ExtraSettings": "mm/s or %",
"ShowIfSet": "!sla_printer",
"DefaultValue": "50"
},
{
@ -1757,6 +1694,7 @@
"PresentationName": "Wipe Before Retract",
"HelpText": "The extruder will wipe the nozzle over the last up to 10 mm of tool path after retracting.",
"DataEditType": "CHECK_BOX",
"ShowIfSet": "!sla_printer",
"EnableIfSet": "enable_retractions",
"DefaultValue": "0"
},
@ -1765,6 +1703,7 @@
"PresentationName": "Wipe Shield Distance",
"HelpText": "Creates a perimeter around the part on which to wipe the other nozzle when printing using dual extrusion. Set to 0 to disable.",
"DataEditType": "POSITIVE_DOUBLE",
"ShowIfSet": "!sla_printer",
"ExtraSettings": "mm",
"DefaultValue": "0"
},
@ -1774,6 +1713,7 @@
"HelpText": "The length and width of a tower created at the back left of the print used for wiping the next nozzle when changing between multiple extruders. Set to 0 to disable.",
"DataEditType": "POSITIVE_DOUBLE",
"ExtraSettings": "mm",
"ShowIfSet": "!sla_printer",
"DefaultValue": "0"
},
{
@ -1786,6 +1726,7 @@
"SlicerConfigName": "enable_network_printing",
"PresentationName": "Networked Printing",
"HelpText": "Sets MatterControl to attempt to connect to a printer over the network. (You must disconnect and reconnect for this to take effect)",
"ShowIfSet": "!sla_printer",
"DataEditType": "CHECK_BOX",
"SetSettingsOnChange": [
{
@ -1802,6 +1743,7 @@
"SlicerConfigName": "enable_sailfish_communication",
"PresentationName": "Sailfish Communication",
"HelpText": "Sets MatterControl to use s3g communication method. (You must disconnect and reconnect for this to take effect)",
"ShowIfSet": "!sla_printer",
"DataEditType": "CHECK_BOX",
"SetSettingsOnChange": [
{

@ -1 +1 @@
Subproject commit 2f1b6dd6c029f699e380018a29f153e51a1202ee
Subproject commit 4cb63c518884e936a3ebed5375c057d5a93e43ea

View file

@ -247,6 +247,27 @@ namespace MatterHackers.MatterControl.Tests.Automation
testRunner.NavigateToFolder("Calibration Parts Row Item Collection");
/*
// test un-group single mesh
RunDoUndoTest(testRunner, scene1, (scene) =>
{
testRunner.AddItemToBedplate(partName: "Row Item MH Logo.stl");
testRunner.Delay(.1);
testRunner.ClickByName("MH Logo.stl");
Assert.IsNotNull(scene.SelectedItem);
},
(scene) =>
{
testRunner.ClickByName("View3DWidget"); // place focus back in the scene
testRunner.Type("^a"); // select all
testRunner.ClickByName("3D View Ungroup");
testRunner.ClickByName("View3DWidget"); // place focus back in the scene
testRunner.Type(" "); // select none
testRunner.Delay(() => scene1.Children.Count() == 3, .5);
Assert.AreEqual(3, scene1.Children.Count());
});
*/
// test group 2 objects
RunDoUndoTest(testRunner, scene1, (scene) =>
{
@ -265,6 +286,30 @@ namespace MatterHackers.MatterControl.Tests.Automation
testRunner.Delay(() => scene.SelectedItem == null, .5);
});
// test un-group 2 grouped objects
RunDoUndoTest(testRunner, scene1, (scene) =>
{
AddBoxABoxBToBed(testRunner, scene);
Assert.AreEqual(2, scene1.Children.Count());
testRunner.ClickByName("View3DWidget"); // place focus back in the scene
testRunner.Type("^a"); // select all
testRunner.ClickByName("3D View Group");
testRunner.ClickByName("View3DWidget"); // place focus back in the scene
testRunner.Type(" "); // select none
testRunner.Delay(() => scene1.Children.Count() == 1, .5);
Assert.AreEqual(1, scene1.Children.Count());
},
(scene) =>
{
testRunner.ClickByName("View3DWidget"); // place focus back in the scene
testRunner.Type("^a"); // select all
testRunner.ClickByName("3D View Ungroup");
testRunner.ClickByName("View3DWidget"); // place focus back in the scene
testRunner.Type(" "); // select none
testRunner.Delay(() => scene1.Children.Count() == 2, .5);
Assert.AreEqual(2, scene1.Children.Count());
});
// test mirror operations
TestMirrorDoUndo(testRunner, scene1, "Mirror Button X");
TestMirrorDoUndo(testRunner, scene1, "Mirror Button Y");