From 48cb8927cd5a65ce6e9aa9081ecbee4e85a7cf48 Mon Sep 17 00:00:00 2001 From: Gregory Diaz Date: Mon, 30 Nov 2015 16:19:32 -0800 Subject: [PATCH] Pause on layer semi-completed --- MatterControlApplication.cs | 5 ++++- .../PrinterConnectionAndCommunication.cs | 5 +++++ SlicerConfiguration/ActiveSliceSettings.cs | 12 ++++++++++++ .../SlicerMapping/EngineMappingMatterSlice.cs | 9 +++++---- StaticData/PrinterSettings/config.ini | 1 + StaticData/SliceSettings/Layouts.txt | 1 + StaticData/SliceSettings/Properties.json | 11 +++++++++-- Submodules/agg-sharp | 2 +- 8 files changed, 38 insertions(+), 8 deletions(-) diff --git a/MatterControlApplication.cs b/MatterControlApplication.cs index 856158ed6..1a59d73f3 100644 --- a/MatterControlApplication.cs +++ b/MatterControlApplication.cs @@ -46,6 +46,7 @@ using System; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; +using System.Linq; using System.IO; using System.Text.RegularExpressions; using System.Threading; @@ -758,7 +759,9 @@ namespace MatterHackers.MatterControl private bool PauseOnLayer(string layer) { - if (layer == "2") + int layerNumber; + + if (int.TryParse(layer, out layerNumber) && ActiveSliceSettings.Instance.LayerToPauseOn.Contains(layerNumber)) { return true; } diff --git a/PrinterCommunication/PrinterConnectionAndCommunication.cs b/PrinterCommunication/PrinterConnectionAndCommunication.cs index 7f869652e..d61f2119a 100644 --- a/PrinterCommunication/PrinterConnectionAndCommunication.cs +++ b/PrinterCommunication/PrinterConnectionAndCommunication.cs @@ -1917,6 +1917,7 @@ namespace MatterHackers.MatterControl.PrinterCommunication return; } + var x = lineToWrite; lineToWrite = lineToWrite.Split(';')[0].Trim(); if (lineToWrite.Trim().Length > 0) { @@ -1949,6 +1950,10 @@ namespace MatterHackers.MatterControl.PrinterCommunication } } } + else + { + Console.WriteLine(); + } } } diff --git a/SlicerConfiguration/ActiveSliceSettings.cs b/SlicerConfiguration/ActiveSliceSettings.cs index 5f36e523e..e5330d909 100644 --- a/SlicerConfiguration/ActiveSliceSettings.cs +++ b/SlicerConfiguration/ActiveSliceSettings.cs @@ -39,6 +39,7 @@ using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; +using System.Linq; using System.Text; namespace MatterHackers.MatterControl.SlicerConfiguration @@ -300,6 +301,17 @@ namespace MatterHackers.MatterControl.SlicerConfiguration } } + public int[] LayerToPauseOn + { + get + { + string[] userValues = GetActiveValue("layer_to_pause").Split(';'); + + int temp; + return userValues.Where(v => int.TryParse(v, out temp)).Select(v => int.Parse(v)).ToArray(); + } + } + public double ProbePaperWidth { get diff --git a/SlicerConfiguration/SlicerMapping/EngineMappingMatterSlice.cs b/SlicerConfiguration/SlicerMapping/EngineMappingMatterSlice.cs index 7956d3f72..828faf2d9 100644 --- a/SlicerConfiguration/SlicerMapping/EngineMappingMatterSlice.cs +++ b/SlicerConfiguration/SlicerMapping/EngineMappingMatterSlice.cs @@ -69,7 +69,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration } private static MapItem[] matterSliceToDefaultMapping = - { + { //avoidCrossingPerimeters=True # Avoid crossing any of the perimeters of a shape while printing its parts. new MapItemToBool("avoidCrossingPerimeters", "avoid_crossing_perimeters"), @@ -87,13 +87,13 @@ namespace MatterHackers.MatterControl.SlicerConfiguration //doCoolHeadLift=False # Will cause the head to be raised in z until the min layer time is reached. new MapItemToBool("doCoolHeadLift", "cool_extruder_lift"), - new VisibleButNotMappedToEngine("extruder_count"), - new VisibleButNotMappedToEngine("extruders_share_temperature"), + new VisibleButNotMappedToEngine("extruder_count"), + new VisibleButNotMappedToEngine("extruders_share_temperature"), //endCode=M104 S0 new GCodeForSlicer("endCode", "end_gcode"), - new MapItem("zOffset", "z_offset"), + new MapItem("zOffset", "z_offset"), //extruderOffsets=[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]] new ExtruderOffsets("extruderOffsets", "extruder_offset"), @@ -108,6 +108,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration new VisibleButNotMappedToEngine("print_leveling_required_to_print"), //new VisibleButNotMappedToEngine("print_leveling_method"), new VisibleButNotMappedToEngine("manual_probe_paper_width"), + new VisibleButNotMappedToEngine("layer_to_pause"), //fanSpeedMinPercent=100 new MapItem("fanSpeedMinPercent", "min_fan_speed"), diff --git a/StaticData/PrinterSettings/config.ini b/StaticData/PrinterSettings/config.ini index 8dd3c5021..3b8cacb88 100644 --- a/StaticData/PrinterSettings/config.ini +++ b/StaticData/PrinterSettings/config.ini @@ -72,6 +72,7 @@ infill_speed = 60 infill_type = TRIANGLES layer_gcode = layer_height = 0.4 +layer_to_pause = max_fan_speed = 100 min_extrusion_before_retract = .1 min_fan_speed = 35 diff --git a/StaticData/SliceSettings/Layouts.txt b/StaticData/SliceSettings/Layouts.txt index 07fb5a20a..d876d051b 100644 --- a/StaticData/SliceSettings/Layouts.txt +++ b/StaticData/SliceSettings/Layouts.txt @@ -66,6 +66,7 @@ Advanced layer_height first_layer_height bottom_clip_amount + layer_to_pause Outer Surface - Perimeters perimeters avoid_crossing_perimeters diff --git a/StaticData/SliceSettings/Properties.json b/StaticData/SliceSettings/Properties.json index 540c06d1d..51eba663c 100644 --- a/StaticData/SliceSettings/Properties.json +++ b/StaticData/SliceSettings/Properties.json @@ -38,8 +38,15 @@ "SlicerConfigName": "bottom_solid_layers", "PresentationName": "Bottom Solid Layers:", "HelpText": "How many layers, or the distance, that will be solid filled on the bottom surfaces of the object. Add mm to the end of the number to specify distance.", - "DataEditType": "INT_OR_MM", - "ExtraSettings": "count or mm" + "DataEditType": "INT", + "ExtraSettings": "count" + }, + { + "SlicerConfigName": "layer_to_pause", + "PresentationName": "Select Layer To Pause:", + "HelpText": "If you want to select a layer to pause your print on do so here (for changing filament)", + "DataEditType": "STRING", + "ExtraSettings": "" }, { "SlicerConfigName": "bridge_acceleration", diff --git a/Submodules/agg-sharp b/Submodules/agg-sharp index 0e0d6372f..d61c14c08 160000 --- a/Submodules/agg-sharp +++ b/Submodules/agg-sharp @@ -1 +1 @@ -Subproject commit 0e0d6372f0c9ecfd59094ca24716b13996e28625 +Subproject commit d61c14c08d244c68291aa935c065a9c0bbc80e8a