diff --git a/CustomWidgets/SolidSlider.cs b/CustomWidgets/SolidSlider.cs index be7d69f7d..c3fd9b270 100644 --- a/CustomWidgets/SolidSlider.cs +++ b/CustomWidgets/SolidSlider.cs @@ -167,16 +167,20 @@ namespace MatterHackers.MatterControl } set { - double newPosition0To1 = Math.Max(0, Math.Min((value - Minimum) / (Maximum - Minimum), 1)); - if (newPosition0To1 != Position0To1) - { - Position0To1 = newPosition0To1; - if (ValueChanged != null) - { - ValueChanged(this, null); - } - Invalidate(); - } + double newPosition0To1 = Minimum; + if (Maximum - Minimum != 0) + { + newPosition0To1 = Math.Max(0, Math.Min((value - Minimum) / (Maximum - Minimum), 1)); + } + if (newPosition0To1 != Position0To1) + { + Position0To1 = newPosition0To1; + if (ValueChanged != null) + { + ValueChanged(this, null); + } + Invalidate(); + } } } diff --git a/PrinterCommunication/PrinterConnectionAndCommunication.cs b/PrinterCommunication/PrinterConnectionAndCommunication.cs index ec965a3c9..345b57fb4 100644 --- a/PrinterCommunication/PrinterConnectionAndCommunication.cs +++ b/PrinterCommunication/PrinterConnectionAndCommunication.cs @@ -129,6 +129,8 @@ namespace MatterHackers.MatterControl.PrinterCommunication static PrinterConnectionAndCommunication globalInstance; string connectionFailureMessage = "Unknown Reason"; + bool waitingForPosition = false; + public string ConnectionFailureMessage { get { return connectionFailureMessage; } } public RootedObjectEventHandler ActivePrintItemChanged = new RootedObjectEventHandler(); @@ -1193,6 +1195,8 @@ namespace MatterHackers.MatterControl.PrinterCommunication } PositionRead.CallEvents(this, null); + + waitingForPosition = false; } double currentSdBytes = 0; @@ -1590,11 +1594,6 @@ namespace MatterHackers.MatterControl.PrinterCommunication readFromPrinterThread.Name = "Read From Printer"; readFromPrinterThread.IsBackground = true; readFromPrinterThread.Start(); - - // let's check if the printer will talk to us - ReadPosition(); - SendLineToPrinterNow("M105"); - SendLineToPrinterNow("M115"); } catch (System.ArgumentOutOfRangeException) { @@ -2097,7 +2096,7 @@ namespace MatterHackers.MatterControl.PrinterCommunication bool pauseRequested = false; using (TimedLock.Lock(this, "WriteNextLineFromGCodeFile2")) { - if (printerCommandQueueIndex < loadedGCode.Count) + if (printerCommandQueueIndex < loadedGCode.Count) { if (firstLineToResendIndex < allCheckSumLinesSent.Count) { @@ -2105,9 +2104,21 @@ namespace MatterHackers.MatterControl.PrinterCommunication } else { - string lineToWrite = loadedGCode.Instruction(printerCommandQueueIndex).Line; + if (waitingForPosition) + { + // we are wating for a postion response don't print more + return; + } + + string lineToWrite = loadedGCode.Instruction(printerCommandQueueIndex).Line; string[] splitOnSemicolon = lineToWrite.Split(';'); string trimedLine = splitOnSemicolon[0].Trim().ToUpper(); + + if (lineToWrite.Contains("M114")) + { + waitingForPosition = true; + } + if (trimedLine.Length > 0) { if (lineToWrite == "MH_PAUSE") @@ -2431,6 +2442,7 @@ namespace MatterHackers.MatterControl.PrinterCommunication ExtrusionRatio = 1; FeedRateRatio = 1; + waitingForPosition = false; LinesToWriteQueue.Clear(); ClearQueuedGCode(); @@ -2477,7 +2489,7 @@ namespace MatterHackers.MatterControl.PrinterCommunication string lastLineRead = ""; public void ReadFromPrinter() { - Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; + Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; timeSinceLastReadAnything.Restart(); // we want this while loop to be as fast as possible. Don't allow any significant work to happen in here while (CommunicationState == CommunicationStates.AttemptingToConnect @@ -2487,7 +2499,7 @@ namespace MatterHackers.MatterControl.PrinterCommunication && PrinterIsConnected && CommunicationState != CommunicationStates.PrintingFromSd) { - TryWriteNextLineFromGCodeFile(); + TryWriteNextLineFromGCodeFile(); } try diff --git a/StaticData/PrinterSettings/Lulzbot/TAZ Mini MH/config.ini b/StaticData/PrinterSettings/Lulzbot/TAZ Mini MH/config.ini new file mode 100644 index 000000000..45f701cf7 --- /dev/null +++ b/StaticData/PrinterSettings/Lulzbot/TAZ Mini MH/config.ini @@ -0,0 +1,151 @@ +avoid_crossing_perimeters = 1 +bed_shape = rectangular +bed_size = 158,158 +bed_temperature = 65 +bottom_clip_amount = 0 +bottom_solid_layers = 4 +bridge_acceleration = 0 +bridge_fan_speed = 100 +bridge_flow_ratio = 1 +bridge_speed = 20 +brim_width = 0 +build_height = 150 +cancel_gcode = +center_part_on_bed = 1 +complete_objects = 0 +cool_extruder_lift = 0 +cooling = 0 +create_raft = 1 +default_acceleration = 0 +disable_fan_first_layers = 2 +end_gcode = M104 S0 ; turn off temperature\nG1 X20Y155 F3000\nG28 Z0\nM84 ; disable motors +external_perimeter_speed = 50 +external_perimeters_first = 0 +extra_perimeters = 1 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extruder_count = 1 +extruder_offset = 0x0 +extruders_share_temperature = 0 +extrusion_axis = E +extrusion_multiplier = 1 +extrusion_width = 0 +fan_always_on = 1 +fan_below_layer_time = 60 +filament_diameter = 3 +fill_angle = 45 +fill_density = 30% +fill_pattern = rectilinear +first_layer_acceleration = 0 +first_layer_bed_temperature = 65 +first_layer_extrusion_width = 0 +first_layer_height = 0.25 +first_layer_speed = 15 +first_layer_temperature = 185 +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 +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 = .06 +infill_speed = 60 +infill_type = TRIANGLES +layer_gcode = +layer_height = 0.2 +max_fan_speed = 100 +min_extrusion_before_retract = .1 +min_fan_speed = 100 +min_print_speed = 10 +min_skirt_length = 5 +notes = +nozzle_diameter = 0.5 +only_retract_when_crossing_perimeters = 0 +ooze_prevention = 0 +output_filename_format = [input_filename_base].gcode +overhangs = 1 +pause_gcode = +perimeter_acceleration = 0 +perimeter_extruder = 1 +perimeter_extrusion_width = 0 +perimeter_speed = 60 +perimeters = 3 +post_process = +print_center = 79,79 +raft_air_gap = 0.22 +raft_extruder = 0 +raft_extra_distance_around_part = 5 +raft_fan_speed_percent = 100 +raft_layers = 0 +raft_print_speed = 100% +randomize_start = 1 +repair_outlines_extensive_stitching = 0 +repair_outlines_keep_open = 0 +resolution = 0 +resume_gcode = +retract_before_travel = 20 +retract_layer_change = 1 +retract_length = 3 +retract_length_tool_change = 10 +retract_lift = 0.2 +retract_restart_extra = 0 +retract_restart_extra_toolchange = 0 +retract_speed = 30 +skirt_distance = 3 +skirt_height = 1 +skirts = 1 +slowdown_below_layer_time = 30 +small_perimeter_speed = 35 +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 = M140 S[bed_temperature] ; start heating the bed\nG28 ; home all axes\nM190 S[bed_temperature] ; wait for bed to heat\nM104 S[temperature] ; start heating extruder\nG1 X79Y20Z5 F5000 ; move close to bed\n +start_perimeters_at_concave_points = 0 +start_perimeters_at_non_overhang = 0 +support_material = 0 +support_material_angle = 0 +support_material_create_internal_support = 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 = 3 +support_material_interface_spacing = 0 +support_material_pattern = rectilinear +support_material_spacing = 3 +support_material_speed = 60 +support_material_threshold = 30 +support_material_xy_distance = 0.7 +support_material_z_distance = 0.15 +support_material_z_gap_layers = 1 +support_type = LINES +temperature = 185 +thin_walls = 1 +threads = 2 +toolchange_gcode = +top_infill_extrusion_width = 0 +top_solid_infill_speed = 50 +top_solid_layers = 3 +travel_speed = 90 +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 \ No newline at end of file diff --git a/StaticData/PrinterSettings/Lulzbot/TAZ Mini MH/setup.ini b/StaticData/PrinterSettings/Lulzbot/TAZ Mini MH/setup.ini new file mode 100644 index 000000000..983a7331a --- /dev/null +++ b/StaticData/PrinterSettings/Lulzbot/TAZ Mini MH/setup.ini @@ -0,0 +1,5 @@ +baud_rate = 115200 +default_material_presets = PLA +windows_driver = MHSerial.inf +default_movement_speeds = x,3000,y,3000,z,500,e0,150 +needs_print_leveling = true \ No newline at end of file