From b37b6b4e8a39d5f3260b541fc40cbcd9766942eb Mon Sep 17 00:00:00 2001 From: Lars Brubaker Date: Thu, 17 Dec 2020 17:30:19 -0800 Subject: [PATCH] creating new test --- .../Library/Widgets/CloneSettingsPage.cs | 3 +- .../ExportItemWindowTests.cs | 84 ++- .../MatterControl/MatterControlUtilities.cs | 30 + .../No Retraction after Purge.printer | 545 ++++++++++++++++++ 4 files changed, 646 insertions(+), 16 deletions(-) create mode 100644 Tests/TestData/TestProfiles/No Retraction after Purge.printer diff --git a/MatterControlLib/Library/Widgets/CloneSettingsPage.cs b/MatterControlLib/Library/Widgets/CloneSettingsPage.cs index d586acf37..ff8a84dfa 100644 --- a/MatterControlLib/Library/Widgets/CloneSettingsPage.cs +++ b/MatterControlLib/Library/Widgets/CloneSettingsPage.cs @@ -77,7 +77,8 @@ namespace MatterHackers.MatterControl.PrintLibrary var openButton = new IconButton(StaticData.Instance.LoadIcon("fa-folder-open_16.png", 16, 16, theme.InvertIcons), theme) { BackgroundColor = theme.MinimalShade, - Margin = new BorderDouble(left: 8) + Margin = new BorderDouble(left: 8), + Name = "Open File Button" }; openButton.Click += (s, e) => { diff --git a/Tests/MatterControl.AutomationTests/ExportItemWindowTests.cs b/Tests/MatterControl.AutomationTests/ExportItemWindowTests.cs index bfacb421a..c724ae472 100644 --- a/Tests/MatterControl.AutomationTests/ExportItemWindowTests.cs +++ b/Tests/MatterControl.AutomationTests/ExportItemWindowTests.cs @@ -1,6 +1,7 @@ using System.IO; using System.Threading; using System.Threading.Tasks; +using MatterHackers.MatterControl.SlicerConfiguration; using NUnit.Framework; namespace MatterHackers.MatterControl.Tests.Automation @@ -23,24 +24,21 @@ namespace MatterHackers.MatterControl.Tests.Automation //Get parts to add string rowItemPath = MatterControlUtilities.GetTestItemPath("Batman.stl"); - - //Add STL part items to Downloads and then type paths into file dialog - testRunner.Delay(1); - testRunner.Type(MatterControlUtilities.GetTestItemPath("Batman.stl")); - testRunner.Delay(1); - testRunner.Type("{Enter}"); + testRunner.Delay(1) + .Type(MatterControlUtilities.GetTestItemPath("Batman.stl")) + .Delay(1) + .Type("{Enter}"); //Get test results - testRunner.ClickByName("Row Item Batman.stl"); + testRunner.ClickByName("Row Item Batman.stl") + .ClickByName("Print Library Overflow Menu") + .ClickByName("Export Menu Item") + .Delay(2) + .WaitForName("Export Item Window"); - testRunner.ClickByName("Print Library Overflow Menu"); - testRunner.ClickByName("Export Menu Item"); - testRunner.Delay(2); - - testRunner.WaitForName("Export Item Window"); - testRunner.ClickByName("Machine File (G-Code) Button"); - testRunner.ClickByName("Export Button"); - testRunner.Delay(2); + testRunner.ClickByName("Machine File (G-Code) Button") + .ClickByName("Export Button") + .Delay(2); string gcodeOutputPath = MatterControlUtilities.PathToExportGcodeFolder; @@ -57,5 +55,61 @@ namespace MatterHackers.MatterControl.Tests.Automation return Task.FromResult(0); }); } + + [Test] + public async Task ExportStreamG92HandlingTest() + { + var startGCode = "G28\\nM109 S[Temperature]\\nG1 Y5 X5 Z0.8 F1800\\nG92 E0\\nG1 X100 Z0.3 E25 F900\\nG92 E0\\nG1 E-2 F2400\\nG92 E0\\nG1 E1 F900"; + + await MatterControlUtilities.RunTest(testRunner => + { + testRunner.WaitForFirstDraw(); + + testRunner.CloneAndSelectPrinter("No Retraction after Purge.printer"); + + var printer = testRunner.FirstPrinter(); + printer.Settings.SetValue(SettingsKey.start_gcode, startGCode); + + //Navigate to Downloads Library Provider + testRunner.NavigateToFolder("Print Queue Row Item Collection"); + testRunner.InvokeLibraryAddDialog(); + + //Get parts to add + string rowItemPath = MatterControlUtilities.GetTestItemPath("Batman.stl"); + testRunner.Delay(1) + .Type(MatterControlUtilities.GetTestItemPath("Batman.stl")) + .Delay(1) + .Type("{Enter}"); + + //Get test results + testRunner.ClickByName("Row Item Batman.stl") + .ClickByName("Print Library Overflow Menu") + .ClickByName("Export Menu Item") + .Delay(2) + .WaitForName("Export Item Window"); + + testRunner.ClickByName("Machine File (G-Code) Button") + .ClickByName("Export Button") + .Delay(2); + + string gcodeOutputPath = MatterControlUtilities.PathToExportGcodeFolder; + + Directory.CreateDirectory(gcodeOutputPath); + + string fullPathToGcodeFile = Path.Combine(gcodeOutputPath, "Batman"); + testRunner.Type(fullPathToGcodeFile); + testRunner.Type("{Enter}"); + + var filename = fullPathToGcodeFile + ".gcode"; + testRunner.WaitFor(() => File.Exists(filename), 10) + .Delay(2); + + var gcode = File.ReadAllLines(filename); + + // make sure the file has the expected header + + return Task.FromResult(0); + }); + } } } diff --git a/Tests/MatterControl.Tests/MatterControl/MatterControlUtilities.cs b/Tests/MatterControl.Tests/MatterControl/MatterControlUtilities.cs index 46284fbb8..4425c9f5c 100644 --- a/Tests/MatterControl.Tests/MatterControl/MatterControlUtilities.cs +++ b/Tests/MatterControl.Tests/MatterControl/MatterControlUtilities.cs @@ -430,6 +430,36 @@ namespace MatterHackers.MatterControl.Tests.Automation return testRunner; } + public static AutomationRunner CloneAndSelectPrinter(this AutomationRunner testRunner, string profileName) + { + testRunner.GetWidgetByName("PartPreviewContent", out SystemWindow systemWindow, 10); + + testRunner.WaitforDraw(systemWindow) // make sure we wait for MC to be up and running + .EnsureWelcomePageClosed(); // close the welcome message + + if (testRunner.NamedWidgetExists("Cancel Wizard Button")) + { + testRunner.ClickByName("Cancel Wizard Button"); + } + + // go to the start page + testRunner.ClickByName("Hardware Tab") + .ClickByName("Import Printer Button"); + + string profilePath = TestContext.CurrentContext.ResolveProjectPath(4, "Tests", "TestData", "TestProfiles", profileName); + + // Apply filter + testRunner.ClickByName("Open File Button") + .Type(Path.GetFullPath(profilePath)) // open the right file + .ClickByName("Import Button") // Continue to next page + .Delay() + .Type("{Enter}") + .ClickByName("Next Button") // Continue to next page + .Delay(); + + return testRunner; + } + public static AutomationRunner EnsureWelcomePageClosed(this AutomationRunner testRunner) { // Close the WelcomePage window if active diff --git a/Tests/TestData/TestProfiles/No Retraction after Purge.printer b/Tests/TestData/TestProfiles/No Retraction after Purge.printer new file mode 100644 index 000000000..c74cebba1 --- /dev/null +++ b/Tests/TestData/TestProfiles/No Retraction after Purge.printer @@ -0,0 +1,545 @@ +{ + "DocumentVersion": 201606271, + "ID": "E-223-4666503325286400", + "Macros": [ + { + "Name": "Deploy Probe", + "GCode": "M280 P0 S10", + "LastModified": "0001-01-01T00:00:00" + }, + { + "Name": "Retract Probe", + "GCode": "M280 P0 S90", + "LastModified": "0001-01-01T00:00:00" + }, + { + "Name": "Release Probe Alarm", + "GCode": "M280 P0 S160", + "LastModified": "0001-01-01T00:00:00" + }, + { + "Name": "Test Probe", + "GCode": "M280 P0 S60", + "LastModified": "0001-01-01T00:00:00" + } + ], + "MaterialLayers": [ + { + "layer_name": "PRO Series PLA (w/Buildtak bed)", + "filament_density": "1.24", + "layer_id": "09e848d1-7f40-4344-aae0-b449f60caee7", + "bed_temperature": "55", + "temperature": "210", + "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_name": "PRO Series RYNO", + "layer_id": "267fe79f-73cf-4096-8cf2-ef32f02b4deb", + "temperature": "245", + "filament_density": "1.28", + "bed_temperature": "55", + "bridge_fan_speed": "50", + "max_fan_speed": "100", + "min_fan_speed": "35", + "min_fan_speed_layer_time": "15", + "max_fan_speed_layer_time": "10", + "filament_cost": "64", + "extrusion_multiplier": "0.95", + "disable_fan_first_layers": "3" + }, + { + "layer_name": "Build Series PLA (w/LayerLock PEI bed)", + "filament_density": "1.24", + "layer_id": "4870359d-72b8-49c8-b179-fbbdc485e405", + "bed_temperature": "75", + "temperature": "205", + "min_fan_speed": "70", + "max_fan_speed": "100", + "bridge_fan_speed": "100", + "layer_etag": "", + "layer_source": "", + "filament_cost": "19.99", + "min_fan_speed_layer_time": "180", + "max_fan_speed_layer_time": "60", + "extrusion_multiplier": "0.97", + "disable_fan_first_layers": "5" + }, + { + "layer_name": "PRO Series Nylon", + "layer_id": "6197509f-948d-4940-8e0d-f457fa61b85c", + "temperature": "250", + "bed_temperature": "55", + "retract_restart_extra": "0", + "retract_restart_extra_time_to_apply": "0", + "filament_density": "1.1", + "filament_cost": "73.3" + }, + { + "layer_name": "NylonX", + "layer_id": "72a66f1c-2c30-43d8-8748-2a5ab2035143", + "retract_restart_extra_time_to_apply": "0", + "retract_restart_extra": "0", + "temperature": "255", + "bed_temperature": "60", + "filament_density": "1.01", + "filament_cost": "116", + "min_fan_speed": "35", + "max_fan_speed": "100", + "raft_fan_speed_percent": "0", + "bridge_fan_speed": "50", + "min_fan_speed_layer_time": "10", + "max_fan_speed_layer_time": "10" + }, + { + "layer_name": "NylonG", + "layer_id": "adfe9a38-6a4c-401f-945d-f4c041d282ac", + "retract_restart_extra_time_to_apply": "0", + "retract_restart_extra": "0", + "temperature": "255", + "bed_temperature": "60", + "filament_density": "1.01", + "filament_cost": "128", + "min_fan_speed": "35", + "max_fan_speed": "100", + "raft_fan_speed_percent": "0", + "bridge_fan_speed": "50", + "min_fan_speed_layer_time": "10", + "max_fan_speed_layer_time": "10", + "layer_etag": "", + "layer_source": "" + }, + { + "layer_name": "Build Series PETg (w/LayerLock PEI bed)", + "layer_id": "d605aeba-d45d-4c50-a77b-23356aa22e34", + "temperature": "245", + "filament_density": "1.28", + "bed_temperature": "75", + "bridge_fan_speed": "25", + "max_fan_speed": "100", + "min_fan_speed": "35", + "min_fan_speed_layer_time": "25", + "max_fan_speed_layer_time": "10", + "layer_etag": "", + "layer_source": "", + "extrusion_multiplier": "0.95", + "filament_cost": "24.99" + }, + { + "layer_name": "Build Series ABS", + "filament_density": "1.04", + "layer_id": "4133af8d-7a86-44d4-9457-75dd67b3930b", + "bed_temperature": "100", + "temperature": "235", + "min_fan_speed": "70", + "max_fan_speed": "100", + "bridge_fan_speed": "50", + "merge_overlapping_lines": "1", + "enable_fan": "1", + "layer_etag": "", + "layer_source": "", + "min_fan_speed_layer_time": "8", + "max_fan_speed_layer_time": "8", + "create_skirt": "0", + "create_brim": "1", + "brims": "5mm", + "filament_cost": "19.99" + }, + { + "layer_name": "PRO Series ABS", + "filament_density": "1.04", + "layer_id": "2fcdc1dc-3741-4ed7-b252-563a6342cec6", + "bed_temperature": "100", + "temperature": "240", + "min_fan_speed": "70", + "max_fan_speed": "100", + "bridge_fan_speed": "50", + "merge_overlapping_lines": "1", + "enable_fan": "1", + "layer_etag": "", + "layer_source": "", + "filament_cost": "42", + "min_fan_speed_layer_time": "8", + "max_fan_speed_layer_time": "8", + "disable_fan_first_layers": "5" + }, + { + "layer_name": "Build Series PETg (w/Buildtak bed)", + "layer_id": "f81ed578-eb8b-4f51-9320-db3988734864", + "temperature": "245", + "filament_density": "1.28", + "bed_temperature": "55", + "bridge_fan_speed": "25", + "max_fan_speed": "100", + "min_fan_speed": "35", + "min_fan_speed_layer_time": "25", + "max_fan_speed_layer_time": "10", + "layer_etag": "", + "layer_source": "", + "extrusion_multiplier": "0.95", + "filament_cost": "24.99" + }, + { + "layer_name": "Build Series PLA (w/Buildtak bed)", + "filament_density": "1.24", + "layer_id": "658c5cea-a363-460a-ab6e-fe881604b972", + "bed_temperature": "55", + "temperature": "205", + "min_fan_speed": "70", + "max_fan_speed": "100", + "bridge_fan_speed": "100", + "layer_etag": "", + "layer_source": "", + "filament_cost": "19.99", + "min_fan_speed_layer_time": "180", + "max_fan_speed_layer_time": "60", + "extrusion_multiplier": "0.97", + "disable_fan_first_layers": "5" + }, + { + "layer_name": "PRO Series Tough PLA (w/LayerLock PEI bed)", + "layer_id": "c9a009f8-c99e-4bce-a9a7-f33c55065a26", + "temperature": "215", + "bed_temperature": "75", + "min_fan_speed_layer_time": "180", + "max_fan_speed_layer_time": "60", + "min_fan_speed": "60", + "disable_fan_first_layers": "5", + "extrusion_multiplier": "0.97", + "filament_cost": "52" + }, + { + "layer_name": "PRO Series Tough PLA (w/Buildtak bed)", + "layer_id": "d7b0e9eb-36e2-46ea-809e-5eb1c09b6043", + "temperature": "215", + "bed_temperature": "55", + "min_fan_speed_layer_time": "180", + "max_fan_speed_layer_time": "60", + "min_fan_speed": "60", + "disable_fan_first_layers": "5", + "extrusion_multiplier": "0.97", + "filament_cost": "52", + "layer_etag": "", + "layer_source": "" + }, + { + "layer_name": "PRO Series PLA (w/LayerLock PEI bed)", + "filament_density": "1.24", + "layer_id": "67f2259e-bb58-4563-b824-513cb4267e39", + "bed_temperature": "65", + "temperature": "210", + "min_fan_speed": "100", + "max_fan_speed": "100", + "bridge_fan_speed": "100", + "retract_restart_extra": "0", + "retract_restart_extra_time_to_apply": "0", + "min_fan_speed_layer_time": "300", + "max_fan_speed_layer_time": "60", + "filament_cost": "42", + "disable_fan_first_layers": "5", + "extrusion_multiplier": "0.97", + "layer_etag": "", + "layer_source": "" + } + ], + "OemLayer": { + "avoid_crossing_perimeters": "1", + "bed_shape": "rectangular", + "bed_size": "250,220", + "bed_temperature": "55", + "bottom_clip_amount": "0", + "bridge_acceleration": "0", + "bridge_fan_speed": "100", + "bridge_flow_ratio": "1", + "bridge_speed": "15", + "brim_width": "0", + "build_height": "210", + "cancel_gcode": "M77 ; stop print timer\\nG28 Z0\\nG28 Y0\\nG0 X5 Y215 F[travel_speed]\\nM106 S0\\n\\n\\nM300 S2400 P30 ; Cancel Tone\\nM300 S2000 P30 ; Cancel Tone\\nM300 S2400 P30 ; Cancel Tone\\nM300 S2000 P30 ; Cancel Tone\\nM300 S2400 P30 ; Cancel Tone\\nM300 S2000 P30 ; Cancel Tone\\nM300 S2400 P30 ; Cancel Tone\\nM300 S2000 P30 ; Cancel Tone\\nM300 S1600 P30 ; Cancel Tone\\nM300 S2000 P30 ; Cancel Tone\\nM300 S1600 P30 ; Cancel Tone\\nM300 S2000 P30 ; Cancel Tone\\nM300 S1600 P30 ; Cancel Tone\\nM300 S2000 P30 ; Cancel Tone\\nM300 S1600 P30 ; Cancel Tone\\nM300 S1200 P30 ; Cancel Tone\\nM300 S1600 P30 ; Cancel Tone\\nM300 S1200 P30 ; Cancel Tone\\nM300 S1600 P30 ; Cancel Tone\\nM300 S1200 P30 ; Cancel Tone\\nM300 S1600 P30 ; Cancel Tone\\nM300 S1200 P30 ; Cancel Tone\\nM300 S800 P30 ; Cancel Tone\\nM300 S1200 P30 ; Cancel Tone\\nM300 S800 P30 ; Cancel Tone\\nM300 S1200 P30 ; Cancel Tone\\nM300 S800 P30 ; Cancel Tone\\nM300 S1200 P30 ; Cancel Tone\\nM300 S800 P30 ; Cancel Tone\\nM300 S800 P30 ; Cancel Tone\\nM300 S1200 P30 ; Cancel Tone\\nM300 S800 P30 ; Cancel Tone\\nM300 S1200 P30 ; Cancel Tone\\nM300 S800 P30 ; Cancel Tone\\nM300 S1200 P30 ; Cancel Tone\\nM300 S800 P30 ; Cancel Tone\\n\\n", + "center_part_on_bed": "1", + "complete_objects": "0", + "cool_extruder_lift": "0", + "cooling": "1", + "create_raft": "0", + "default_acceleration": "1300", + "disable_fan_first_layers": "1", + "end_gcode": "M77 ; stop print timer\\nG91\\nG1 E-[retract_length] F[retract_speed]\\nG90\\nG0 X5 Y215 F[travel_speed]\\nG28 Z0 ; Retract and move away, then home Z axis\\n\\nM104 S0 ; turn off temperature\\nM140 S0 ; turn off heat bed\\nM106 S0 ; turn off layer fan\\nM84 ; disable motors\\n\\nM300 S1760 P20 ; End Tone\\nM300 S880 P20 ; End Tone\\nM300 S1760 P20 ; End Tone\\nM300 S880 P20 ; End Tone\\nM300 S1760 P20 ; End Tone\\nM300 S880 P20 ; End Tone\\nM300 S1760 P20 ; End Tone\\nM300 S880 P20 ; End Tone\\nM300 S2217 P20 ; End Tone\\nM300 S1108 P20 ; End Tone\\nM300 S2217 P20 ; End Tone\\nM300 S1108 P20 ; End Tone\\nM300 S2217 P20 ; End Tone\\nM300 S1108 P20 ; End Tone\\nM300 S2217 P20 ; End Tone\\nM300 S1108 P20 ; End Tone\\nM300 S2637 P20 ; End Tone\\nM300 S1318 P20 ; End Tone\\nM300 S2637 P20 ; End Tone\\nM300 S1318 P20 ; End Tone\\nM300 S2637 P20 ; End Tone\\nM300 S1318 P20 ; End Tone\\nM300 S2637 P20 ; End Tone\\nM300 S1318 P20 ; End Tone\\nM300 S2794 P20 ; End Tone\\nM300 S1397 P20 ; End Tone\\nM300 S2794 P20 ; End Tone\\nM300 S1397 P20 ; End Tone\\nM300 S2794 P20 ; End Tone\\nM300 S1397 P20 ; End Tone\\nM300 S2794 P20 ; End Tone\\nM300 S1397 P20 ; End Tone\\nM300 S2637 P20 ; End Tone\\nM300 S1318 P20 ; End Tone\\nM300 S2637 P20 ; End Tone\\nM300 S1318 P20 ; End Tone\\nM300 S2637 P20 ; End Tone\\nM300 S1318 P20 ; End Tone\\nM300 S2637 P20 ; End Tone\\nM300 S1318 P20 ; End Tone\\nM300 S2217 P20 ; End Tone\\nM300 S1108 P20 ; End Tone\\nM300 S2217 P20 ; End Tone\\nM300 S1108 P20 ; End Tone\\nM300 S2217 P20 ; End Tone\\nM300 S1108 P20 ; End Tone\\nM300 S2217 P20 ; End Tone\\nM300 S1108 P20 ; End Tone\\nM300 S3520 P20 ; End Tone\\nM300 S1760 P20 ; End Tone\\nM300 S3520 P20 ; End Tone\\nM300 S1760 P20 ; End Tone\\nM300 S3520 P20 ; End Tone\\nM300 S1760 P20 ; End Tone\\nM300 S3520 P20 ; End Tone\\nM300 S1760 P20 ; End Tone\\nM300 S3520 P20 ; End Tone\\nM300 S1760 P20 ; End Tone\\nM300 S3520 P20 ; End Tone\\nM300 S1760 P20 ; End Tone\\nM300 S3520 P20 ; End Tone\\nM300 S1760 P20 ; End Tone\\nM300 S3520 P20 ; End Tone\\nM300 S1760 P20 ; End Tone", + "external_perimeter_speed": "25", + "external_perimeters_first": "0", + "extra_perimeters": "1", + "extruder_clearance_height": "20", + "extruder_clearance_radius": "20", + "extruder_count": "1", + "extruder_offset": "0x0,0x0,0x0,0x0", + "extruders_share_temperature": "0", + "extrusion_axis": "E", + "extrusion_multiplier": "1", + "extrusion_width": "0", + "fan_always_on": "0", + "fan_below_layer_time": "60", + "filament_diameter": "1.73", + "fill_angle": "90", + "fill_density": "25%", + "fill_pattern": "honeycomb", + "first_layer_acceleration": "0", + "first_layer_bed_temperature": "75", + "first_layer_height": "0.25", + "first_layer_speed": "18", + "first_layer_temperature": "205", + "g0": "0", + "gap_fill_speed": "20", + "gcode_arcs": "0", + "gcode_comments": "0", + "gcode_flavor": "reprap", + "gcode_output_type": "REPRAP", + "has_fan": "1", + "has_heated_bed": "1", + "has_sd_card_reader": "0", + "include_firmware_updater": "Simple Arduino", + "infill_acceleration": "0", + "infill_every_layers": "1", + "infill_extruder": "1", + "infill_extrusion_width": "0", + "infill_first": "0", + "infill_only_where_needed": "0", + "infill_overlap_perimeter": "70%", + "infill_speed": "60", + "infill_type": "TRIANGLES", + "layer_height": "0.2", + "max_fan_speed": "100", + "min_extrusion_before_retract": "0", + "min_fan_speed": "100", + "min_print_speed": "20", + "min_skirt_length": "5", + "notes": "", + "nozzle_diameter": "0.4", + "only_retract_when_crossing_perimeters": "1", + "ooze_prevention": "0", + "output_filename_format": "[input_filename_base].gcode", + "overhangs": "1", + "pause_gcode": "M76 ; pause print timer\\nG91\\nG1 Z10 E-5.0 F1800\\nG90\\n\\nM300 S3000 P30 ; Pause Tone\\nM300 S1500 P30 ; Pause Tone\\nM300 S3000 P30 ; Pause Tone\\nM300 S1500 P30 ; Pause Tone\\nM300 S3000 P30 ; Pause Tone\\nM300 S1500 P30 ; Pause Tone\\nM300 S3000 P30 ; Pause Tone\\nM300 S1500 P30 ; Pause Tone\\nM300 S750 P30 ; Pause Tone\\nM300 S1500 P30 ; Pause Tone\\nM300 S750 P30 ; Pause Tone\\nM300 S1500 P30 ; Pause Tone\\nM300 S750 P30 ; Pause Tone\\nM300 S1500 P30 ; Pause Tone\\nM300 S750 P30 ; Pause Tone", + "perimeter_acceleration": "800", + "perimeter_extruder": "1", + "perimeter_extrusion_width": "0", + "perimeter_speed": "55", + "perimeters": "3", + "post_process": "", + "print_center": "125,110", + "raft_air_gap": "0.25", + "raft_extra_distance_around_part": "5", + "raft_extruder": "0", + "raft_fan_speed_percent": "100", + "raft_layers": "0", + "raft_print_speed": "40", + "randomize_start": "0", + "repair_outlines_extensive_stitching": "0", + "repair_outlines_keep_open": "0", + "resolution": "0", + "resume_gcode": "M75 ; start print timer \\nG91\\nG1 Z-10 F1800\\nG90\\n\\nM300 S750 P30 ; Resume Tone\\nM300 S1500 P30 ; Resume Tone\\nM300 S750 P30 ; Resume Tone\\nM300 S1500 P30 ; Resume Tone\\nM300 S750 P30 ; Resume Tone\\nM300 S1500 P30 ; Resume Tone\\nM300 S750 P30 ; Resume Tone\\nM300 S1500 P30 ; Resume Tone\\nM300 S3000 P30 ; Resume Tone\\nM300 S1500 P30 ; Resume Tone\\nM300 S3000 P30 ; Resume Tone\\nM300 S1500 P30 ; Resume Tone\\nM300 S3000 P30 ; Resume Tone\\nM300 S1500 P30 ; Resume Tone\\nM300 S3000 P30 ; Resume Tone", + "retract_before_travel": "5", + "retract_layer_change": "1", + "retract_length": "4", + "retract_length_tool_change": "10", + "retract_lift": "0", + "retract_restart_extra": "0", + "retract_restart_extra_toolchange": "0", + "retract_speed": "40", + "skirt_distance": "3", + "skirt_height": "1", + "skirts": "2", + "slowdown_below_layer_time": "20", + "small_perimeter_speed": "30", + "solid_fill_pattern": "rectilinear", + "solid_infill_below_area": "70", + "solid_infill_every_layers": "0", + "solid_infill_extrusion_width": "0", + "solid_infill_speed": "60", + "spiral_vase": "0", + "standby_temperature_delta": "-5", + "start_gcode": "G28 ; home all axes\\nM109 S[temperature]\\n\\nG1 Y5 X5 Z0.8 F1800 ; Purge line\\nG92 E0 ; Purge line\\nG1 X100 Z0.3 E25 F900 ; Purge line\\nG92 E0 ; Purge line\\nG1 E-2 F2400 ; Purge line\\nM75 ; start print timer ", + "start_perimeters_at_concave_points": "0", + "start_perimeters_at_non_overhang": "0", + "support_material": "0", + "support_material_angle": "45", + "support_material_create_perimeter": "0", + "support_material_enforce_layers": "0", + "support_material_extruder": "1", + "support_material_extrusion_width": "0", + "support_material_infill_angle": "45", + "support_material_interface_extruder": "1", + "support_material_interface_layers": "1mm", + "support_material_interface_spacing": "0", + "support_material_pattern": "honeycomb", + "support_material_spacing": "3", + "support_material_speed": "40", + "support_material_threshold": "0", + "support_material_xy_distance": "2", + "support_material_z_distance": "0.15", + "support_material_z_gap_layers": "1", + "support_type": "LINES", + "temperature": "210", + "thin_walls": "1", + "threads": "2", + "toolchange_gcode": "", + "top_infill_extrusion_width": "0", + "top_solid_infill_speed": "30", + "top_solid_layers": "1mm", + "travel_speed": "200", + "use_firmware_retraction": "0", + "use_relative_e_distances": "0", + "vibration_limit": "0", + "wipe": "0", + "wipe_shield_distance": "0", + "wipe_tower_size": "0", + "z_can_be_negative": "1", + "z_offset": "0", + "make": "Pulse", + "model": "E-223", + "created_date": "08/31/2020 19:06:28", + "baud_rate": "250000", + "default_material_presets": "PLA", + "windows_driver": "MHSerial.inf", + "calibration_files": "Calibration - Box.stl", + "active_theme_name": "Blue - Light", + "show_reset_connection": "0", + "z_homes_to_max": "1", + "filament_cost": "0", + "bottom_solid_layers": "1mm", + "print_leveling_required_to_print": "1", + "manual_probe_paper_width": "0.1", + "recover_is_enabled": "1", + "z_offset_after_home": "2", + "printer_z_after_home": "178", + "manual_movement_speeds": "x,5400,y,5400,z,1200,e0,210", + "baby_step_z_offset": "0", + "print_leveling_solution": "5x5 Mesh", + "expand_thin_walls": "1", + "merge_overlapping_lines": "1", + "active_quality_key": "", + "auto_connect": "1", + "has_z_probe": "1", + "use_z_probe": "1", + "has_z_servo": "1", + "z_servo_depolyed_angle": "10", + "z_servo_retracted_angle": "90", + "z_probe_samples": "1", + "feedrate_ratio": "1", + "print_leveling_probe_start": "10", + "retract_restart_extra_time_to_apply": "0", + "write_regex": "\"^(G28)\",\"G28,M280 P0 S160,G4 P400,M280 P0 S90\"\\n\"^(M106)\", \"M106 P1\"", + "slicing_engine": "MatterSlice", + "filament_runout_sensor": "1", + "support_air_gap": "0.4", + "probe_has_been_calibrated": "0", + "load_filament_length": "598", + "load_filament_speed": "35", + "unload_filament_length": "700", + "driver_type": "RepRap", + "enable_network_printing": "0", + "enable_retractions": "1", + "retract_when_changing_islands": "1", + "create_skirt": "1", + "enable_fan": "1", + "perimeter_start_end_overlap": "25", + "max_velocity": "200", + "max_acceleration": "3000", + "min_fan_speed_layer_time": "15", + "max_fan_speed_layer_time": "10", + "jerk_velocity": "10", + "layer_to_pause": "", + "filament_has_been_loaded": "0", + "xy_offsets_have_been_calibrated": "0", + "filament_1_has_been_loaded": "0", + "probe_offset": "23,0,-1.6", + "coast_at_end_distance": "0.4", + "air_gap_speed": "40", + "interface_layer_speed": "40", + "connect_gcode": "M300 S800 P20 ; Connect Tone\\nM300 S900 P30 ; Connect Tone\\nM300 S800 P20 ; Connect Tone\\nM300 S1000 P30 ; Connect Tone\\nM300 S800 P20 ; Connect Tone\\nM300 S1100 P30 ; Connect Tone\\nM300 S800 P20 ; Connect Tone\\nM300 S1200 P30 ; Connect Tone\\nM300 S800 P20 ; Connect Tone\\nM300 S1300 P30 ; Connect Tone\\nM300 S800 P20 ; Connect Tone\\nM300 S1400 P30 ; Connect Tone\\nM300 S800 P20 ; Connect Tone\\nM300 S1500 P30 ; Connect Tone\\nM300 S800 P20 ; Connect Tone\\nM300 S1600 P30 ; Connect Tone\\nM300 S800 P20 ; Connect Tone\\nM300 S1600 P30 ; Connect Tone\\nM300 S800 P20 ; Connect Tone\\nM300 S1600 P30 ; Connect Tone\\nM300 S800 P20 ; Connect Tone\\nM300 S1600 P30 ; Connect Tone\\nM300 S800 P20 ; Connect Tone\\nM300 S1600 P30 ; Connect Tone\\nM300 S800 P20 ; Connect Tone\\nM300 S1600 P30 ; Connect Tone\\nM300 S800 P20 ; Connect Tone\\nM300 S1600 P30 ; Connect Tone\\nM300 S800 P20 ; Connect Tone\\nM300 S1600 P30 ; Connect Tone", + "progress_reporting": "M73", + "firmware_type": "Marlin", + "active_material_key": "67f2259e-bb58-4563-b824-513cb4267e39", + "print_leveling_data": "", + "print_leveling_enabled": "0", + "baby_step_z_offset_t1": "0", + "baby_step_z_offset_t2": "0", + "baby_step_z_offset_t3": "0", + "oem_profile_token": "ag9zfm1hdHRlcmNvbnRyb2xyQwsSCUFmZmlsaWF0ZRiAgKDWiK6yCAwLEgZEZXZpY2UYgIDQv6mjpwkMCxINRGV2aWNlUHJvZmlsZRiAgLCgv-nSCAw" + }, + "QualityLayers": [ + { + "external_perimeter_speed": "12", + "fill_density": "15%", + "perimeter_speed": "20", + "layer_name": "High - 0.2mm", + "layer_id": "16cf98d7-2eb6-4a7c-8656-20e58e434ed0" + }, + { + "external_perimeter_speed": "12", + "fill_density": "15%", + "layer_height": "0.1", + "perimeter_speed": "20", + "layer_name": "High - 0.1mm", + "layer_id": "068f4328-1ce4-42fd-9768-dea0cac51ef8" + }, + { + "fill_density": "15%", + "layer_name": "Standard - 0.2mm", + "layer_id": "beb4aaa4-edd2-4219-84ac-07fcc42dcc3f" + }, + { + "bottom_solid_layers": "1.2mm", + "fill_density": "8%", + "first_layer_height": "0.3", + "infill_type": "GYROID", + "layer_height": "0.3", + "perimeters": "2", + "top_solid_layers": "1.5mm", + "layer_name": "Draft - 0.3mm", + "layer_id": "888cb6ab-8c77-407e-87aa-457990148892" + } + ], + "StagedUserSettings": { + "bed_temperature": "55", + "retract_restart_extra": "0", + "retract_restart_extra_time_to_apply": "0" + }, + "UserLayer": { + "printer_name": "Pulse E-423S - Marlin", + "device_token": "ag9zfm1hdHRlcmNvbnRyb2xyFAsSB1ByaW50ZXIYgICwyI-FpQgM", + "support_air_gap": "0.5", + "retract_speed": "40", + "manual_movement_speeds": "x,4800,y,4800,z,1200,e0,210", + "baby_step_z_offset": "-0.16", + "DESKTOP-J3CFEL1_com_port": "COM5", + "temperature": "205", + "print_leveling_probe_start": "7", + "filament_has_been_loaded": "1", + "print_leveling_data": "{\"SampledPositions\":[{\"X\":25.0,\"Y\":22.0,\"Z\":3.25},{\"X\":69.25,\"Y\":22.0,\"Z\":3.12},{\"X\":113.5,\"Y\":22.0,\"Z\":2.89},{\"X\":157.75,\"Y\":22.0,\"Z\":2.74},{\"X\":202.0,\"Y\":22.0,\"Z\":2.6},{\"X\":202.0,\"Y\":66.0,\"Z\":2.77},{\"X\":157.75,\"Y\":66.0,\"Z\":2.87},{\"X\":113.5,\"Y\":66.0,\"Z\":2.98},{\"X\":69.25,\"Y\":66.0,\"Z\":3.19},{\"X\":25.0,\"Y\":66.0,\"Z\":3.28},{\"X\":25.0,\"Y\":110.0,\"Z\":3.26},{\"X\":69.25,\"Y\":110.0,\"Z\":3.12},{\"X\":113.5,\"Y\":110.0,\"Z\":2.95},{\"X\":157.75,\"Y\":110.0,\"Z\":2.87},{\"X\":202.0,\"Y\":110.0,\"Z\":2.81},{\"X\":202.0,\"Y\":154.0,\"Z\":2.81},{\"X\":157.75,\"Y\":154.0,\"Z\":2.89},{\"X\":113.5,\"Y\":154.0,\"Z\":2.96},{\"X\":69.25,\"Y\":154.0,\"Z\":3.1},{\"X\":25.0,\"Y\":154.0,\"Z\":3.17},{\"X\":25.0,\"Y\":198.0,\"Z\":3.05},{\"X\":69.25,\"Y\":198.0,\"Z\":2.97},{\"X\":113.5,\"Y\":198.0,\"Z\":2.87},{\"X\":157.75,\"Y\":198.0,\"Z\":2.81},{\"X\":202.0,\"Y\":198.0,\"Z\":2.77}],\"LevelingSystem\":\"Probe5x5Mesh\",\"CreationDate\":\"2020-12-14T09:32:55.3033031-08:00\",\"BedTemperature\":65.0,\"IssuedLevelingTempWarning\":false}", + "print_leveling_enabled": "1", + "probe_offset": "23,0,-0.79", + "probe_has_been_calibrated": "1", + "avoid_crossing_perimeters": "1", + "merge_overlapping_lines": "1", + "expand_thin_walls": "1", + "bridge_speed": "20", + "first_layer_speed": "25", + "extrusion_ratio": "1", + "feedrate_ratio": "1", + "external_perimeter_speed": "45", + "slowdown_below_layer_time": "20", + "create_brim": "0", + "validate_leveling": "1", + "top_solid_infill_speed": "40", + "support_material_xy_distance": "1", + "spiral_vase": "0", + "perimeter_acceleration": "0", + "default_acceleration": "0" + } +} \ No newline at end of file