Slicer based time estimation
-
Hi,
I'm wondering how the silcer based time estimation in DWC works.
I think that it uses the name of the gcode file and takes it, but I would like to know that for sure and use this estimation at my workflow.
For example I slice something with prusaslicer and let it add the time to the file name.
It will generate something like Testprint_24m52s.gcode and takes that time as the slicer based estimation (I think).
But when I do bigger prints which takes several days, the naming is like Testprint_2d16h27m.gcode.
This file then gives the slicer based time estimation of 1s.Maybe I am lucky, but even on a 3days print the slicer print time estimation is really accurate and just around 10min off.
So I would like to make the slicer based print time estimation to beeing used and shown in DWC all the time.I hope you can give me more insights of how this estimation works, where it is taken from and why it takes _24m52s but not _2d16h27m.
Thanks a lot!
-
@phil333 the slicer estimates are actually read from comments within the gcode file. Unfortunately, all slicers do this differently and sometimes change the format so this can break. I did a series of tests across a dozen slicers a year back (posts can be found here on the forum) and at that time both standalone and SBC methods to read slicer estimates were improved to support all of them.
Which slicer are you currently using that doesn't show the slicer estimate?
-
@oliof Thanks for your post.
My last slice was with the latest Superslicer Version.
It generated a gcode with comment, which was not recognized:; estimated printing time (normal mode) = 2d 18h 36m 25s
-
What firmware and DWC version are you using?
Can you provide an example gcode file for one of your really long prints? -
@phaedrux
This machine is currently running on
Duet Web Control 3.4.0-b5The example gcode cant be uploaded, because its ~43Mb and the limit it 4Mb
But I can show some copied snippets.
Start:; generated by SuperSlicer 2.3.57 on 2021-11-29 at 16:50:27 UTC ; ; external perimeters extrusion width = 0.45mm ; perimeters extrusion width = 0.45mm ; infill extrusion width = 0.45mm ; solid infill extrusion width = 0.45mm ; top infill extrusion width = 0.40mm ; support material extrusion width = 0.40mm ; first layer extrusion width = 0.42mm ; object:{"name":"Prototypli","id":"Prototypli.stl id:0 copy 0","object_center":[217.670244,305.000001,0.000000],"boundingbox_center":[217.670244,305.000001,15.627051],"boundingbox_size":[53.634032,560.000000,31.254103]} ; object:{"name":"Prototypre","id":"Prototypre.stl id:1 copy 0","object_center":[277.304286,305.000001,0.000000],"boundingbox_center":[277.304286,305.000001,15.627062],"boundingbox_size":[53.634054,560.000000,31.254124]} ; object:{"name":"Prototyprere","id":"Prototyprere.stl id:2 copy 0","object_center":[393.390408,305.000000,0.000000],"boundingbox_center":[393.390408,305.000000,14.584077],"boundingbox_size":[51.512729,560.000000,29.168155]} ; object:{"name":"Prototyplili","id":"Prototyplili.stl id:3 copy 0","object_center":[335.877678,305.000001,0.000000],"boundingbox_center":[335.877678,305.000001,14.584077],"boundingbox_size":[51.512733,560.000000,29.168155]} ; Total objects to print: 4 M486 T4 ; plater:{"center":[305.000000,305.000000,0.000000],"boundingbox_center":[305.000000,305.000000,15.627062],"boundingbox_size":[228.293544,560.000001,31.254124]} M201 X1000 Y1000 Z1000 E5000 ; sets maximum accelerations, mm/sec^2 M203 X15000 Y15000 Z360 E1200 I0; sets maximum feedrates, mm/min M204 P500 T1000 ; sets acceleration (P, T), mm/sec^2 M566 X270.00 Y270.00 Z60.00 E180.00 ; sets the jerk limits, mm/min G10 P0 R204 ; sets the standby temperature G10 P0 S210 ; set temperature ;TYPE:Custom ; custom start gcode T-1 ; deselect all tools M140 S66 ; set bed temp M568 P0 S210 R195 A1 ; set first tool standby temp G28 ; home all axes G1 Z2 F5000 ; lift nozzle M190 S66 ; wait for bed temp to be reached M116 ; wait for stand by temps to be reached G90 ; Absolute positionning G28 ; home all axes again after the bed is hot G1 Z2 F5000 ; lift nozzle T0 ; set the first used tool as active tool M116 ; wait for first tool temperature to be reached M107 G21 ; set units to millimeters G90 ; use absolute coordinates M83 ; use relative distances for extrusion ; Filament gcode G10 P0 S210 ; set temperature M116 ; wait for temperature to be reached
[printing]
End:
;TYPE:Custom ; Filament-specific end gcode ;END gcode for filament ; Filament-specific end gcode ;END gcode for filament ; custom end gcode M104 S0 ; turn off extruder temp M140 S0 ; turn off bed temp G91 ; Relative positionning G1 Z10 F5000 ; lift nozzle quickly G90 ; Absolute positionning G1 X0 Y600 F6000 ; move to home position T-1 ; deselect all tools M84 ; disable all motors ; filament used [mm] = 292752.69 ; filament used [cm3] = 680.22 ; filament used [g] = 850.27 ; filament cost = 22.96 ; total filament used [g] = 850.27 ; total filament cost = 22.96 ; total layers count = 170 ; estimated printing time (normal mode) = 2d 18h 36m 25s ; allow_empty_layers = 0 ; avoid_crossing_not_first_layer = 1 ; avoid_crossing_perimeters = 0 ; avoid_crossing_perimeters_max_detour = 0 ; bed_custom_model = ; bed_custom_texture = ; bed_shape = 0x0,610x0,610x610,0x610 ; bed_temperature = 65,65 ; before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z] ; between_objects_gcode = ; bottom_fill_pattern = rectilinear ; bottom_solid_layers = 5 ; bottom_solid_min_thickness = 0.9 ; bridge_acceleration = 0 ; bridge_angle = 0 ; bridge_fan_speed = 100,100 ; bridge_flow_ratio = 90% ; bridge_internal_fan_speed = -1,-1 ; bridge_overlap = 100% ; bridge_overlap_min = 80% ; bridge_speed = 35 ; bridge_speed_internal = 55 ; bridged_infill_margin = 200% ; brim_ears = 0 ; brim_ears_detection_length = 1 ; brim_ears_max_angle = 125 ; brim_ears_pattern = concentric ; brim_inside_holes = 0 ; brim_offset = 0 ; brim_width = 0 ; brim_width_interior = 0 ; chamber_temperature = 0,0 ; clip_multipart_objects = 1 ; color_change_gcode = M600 ; complete_objects = 0 ; complete_objects_one_brim = 0 ; complete_objects_one_skirt = 1 ; complete_objects_sort = object ; cooling = 1,1 ; cooling_tube_length = 5 ; cooling_tube_retraction = 91.5 ; curve_smoothing_angle_concave = 0 ; curve_smoothing_angle_convex = 0 ; curve_smoothing_cutoff_dist = 2 ; curve_smoothing_precision = 0 ; default_acceleration = 0 ; default_filament_profile = ; default_print_profile = ; deretract_speed = 0,0 ; disable_fan_first_layers = 1,1 ; dont_support_bridges = 0 ; draft_shield = 0 ; duplicate_distance = 6 ; end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n";"; Filament-specific end gcode \n;END gcode for filament\n" ; end_gcode = ; custom end gcode\n\nM104 S0 ; turn off extruder temp\nM140 S0 ; turn off bed temp\n\nG91 ; Relative positionning\nG1 Z10 F5000 ; lift nozzle quickly\n\nG90 ; Absolute positionning\nG1 X0 Y600 F6000 ; move to home position\nT-1 ; deselect all tools\nM84 ; disable all motors ; enforce_full_fill_volume = 1 ; ensure_vertical_shell_thickness = 1 ; exact_last_layer_height = 0 ; external_infill_margin = 150% ; external_perimeter_cut_corners = 0% ; external_perimeter_extrusion_spacing = ; external_perimeter_extrusion_width = 0.45 ; external_perimeter_fan_speed = -1,-1 ; external_perimeter_overlap = 100% ; external_perimeter_speed = 35 ; external_perimeters_first = 0 ; external_perimeters_hole = 1 ; external_perimeters_nothole = 1 ; external_perimeters_vase = 0 ; extra_loading_move = -2 ; extra_perimeters = 0 ; extra_perimeters_odd_layers = 0 ; extra_perimeters_overhangs = 0 ; extruder_clearance_height = 20 ; extruder_clearance_radius = 20 ; extruder_colour = #0000FF;#FF0000 ; extruder_fan_offset = 0%,0% ; extruder_offset = 0x0,0x0 ; extruder_temperature_offset = 0,0 ; extrusion_axis = E ; extrusion_multiplier = 0.97,0.97 ; extrusion_spacing = ; extrusion_width = 0.45 ; fan_always_on = 1,1 ; fan_below_layer_time = 60,60 ; fan_kickstart = 0 ; fan_percentage = 0 ; fan_speedup_overhangs = 1 ; fan_speedup_time = 0 ; feature_gcode = ; filament_colour = #29B2B2;#29B2B2 ; filament_cooling_final_speed = 3.4,3.4 ; filament_cooling_initial_speed = 2.2,2.2 ; filament_cooling_moves = 4,4 ; filament_cooling_zone_pause = 0,0 ; filament_cost = 27,27 ; filament_custom_variables = ; ; filament_density = 1.25,1.25 ; filament_diameter = 1.72,1.72 ; filament_dip_extraction_speed = 70,70 ; filament_dip_insertion_speed = 33,33 ; filament_enable_toolchange_part_fan = 0,0 ; filament_enable_toolchange_temp = 0,0 ; filament_load_time = 0,0 ; filament_loading_speed = 28,28 ; filament_loading_speed_start = 3,3 ; filament_max_overlap = 100%,100% ; filament_max_speed = 0,0 ; filament_max_volumetric_speed = 14,14 ; filament_max_wipe_tower_speed = 0,0 ; filament_melt_zone_pause = 0,0 ; filament_minimal_purge_on_wipe_tower = 15,15 ; filament_notes = ; ; filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6";"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" ; filament_retract_before_travel = 1.5,1.5 ; filament_retract_layer_change = 1,1 ; filament_retract_length = 1.8,1.8 ; filament_retract_lift = 0.24,0.24 ; filament_retract_speed = 35,35 ; filament_settings_id = "FormFutura black Premium PLA @V6";"FormFutura black Premium PLA @V6" ; filament_shrink = 100%,100% ; filament_skinnydip_distance = 31,31 ; filament_soluble = 0,0 ; filament_spool_weight = 0,0 ; filament_toolchange_delay = 0,0 ; filament_toolchange_part_fan_speed = 50,50 ; filament_toolchange_temp = 200,200 ; filament_type = PLA;PLA ; filament_unload_time = 0,0 ; filament_unloading_speed = 90,90 ; filament_unloading_speed_start = 100,100 ; filament_use_fast_skinnydip = 0,0 ; filament_use_skinnydip = 0,0 ; filament_vendor = (Unknown) ; filament_wipe = 1,1 ; filament_wipe_advanced_pigment = 0.5,0.5 ; filament_wipe_extra_perimeter = 1,1 ; fill_angle = 45 ; fill_angle_increment = 0 ; fill_density = 18% ; fill_pattern = rectilinear ; fill_smooth_distribution = 9% ; fill_smooth_width = 50% ; fill_top_flow_ratio = 100% ; first_layer_acceleration = 0 ; first_layer_bed_temperature = 66,66 ; first_layer_extrusion_spacing = ; first_layer_extrusion_width = 0.42 ; first_layer_flow_ratio = 100% ; first_layer_height = 0.2 ; first_layer_infill_speed = 25 ; first_layer_min_speed = 0 ; first_layer_size_compensation = -0.35 ; first_layer_size_compensation_layers = 1 ; first_layer_speed = 25 ; first_layer_temperature = 210,210 ; full_fan_speed_layer = 0,0 ; gap_fill = 1 ; gap_fill_last = 0 ; gap_fill_min_area = 100% ; gap_fill_overlap = 100% ; gap_fill_speed = 45 ; gcode_comments = 0 ; gcode_filename_illegal_char = ; gcode_flavor = reprapfirmware ; gcode_label_objects = 1 ; gcode_precision_e = 5 ; gcode_precision_xyz = 3 ; high_current_on_filament_swap = 0 ; hole_size_compensation = 0 ; hole_size_threshold = 100 ; hole_to_polyhole = 0 ; hole_to_polyhole_threshold = 0.01 ; hole_to_polyhole_twisted = 1 ; host_type = octoprint ; infill_acceleration = 0 ; infill_anchor = 2.5 ; infill_anchor_max = 12 ; infill_connection = connected ; infill_connection_bottom = connected ; infill_connection_solid = connected ; infill_connection_top = connected ; infill_dense = 1 ; infill_dense_algo = autosmall ; infill_every_layers = 1 ; infill_extruder = 1 ; infill_extrusion_spacing = ; infill_extrusion_width = 0.45 ; infill_first = 0 ; infill_only_where_needed = 0 ; infill_overlap = 25% ; infill_speed = 55 ; interface_shells = 0 ; ironing = 0 ; ironing_angle = -1 ; ironing_flowrate = 15% ; ironing_spacing = 0.45 ; ironing_speed = 15 ; ironing_type = top ; layer_gcode = ; layer_height = 0.18 ; lift_min = 0 ; machine_limits_usage = emit_to_gcode ; machine_max_acceleration_e = 5000,5000 ; machine_max_acceleration_extruding = 500,1250 ; machine_max_acceleration_retracting = 1500,1250 ; machine_max_acceleration_travel = 1000,1250 ; machine_max_acceleration_x = 1000,1000 ; machine_max_acceleration_y = 1000,1000 ; machine_max_acceleration_z = 1000,200 ; machine_max_feedrate_e = 1200,20 ; machine_max_feedrate_x = 15000,100 ; machine_max_feedrate_y = 15000,100 ; machine_max_feedrate_z = 360,12 ; machine_max_jerk_e = 3,2.5 ; machine_max_jerk_x = 4.5,10 ; machine_max_jerk_y = 4.5,10 ; machine_max_jerk_z = 1,0.4 ; machine_min_extruding_rate = 0,0 ; machine_min_travel_rate = 0,0 ; max_fan_speed = 100,100 ; max_gcode_per_second = 1500 ; max_layer_height = 0.24,0.68 ; max_print_height = 640 ; max_print_speed = 80 ; max_speed_reduction = 90%,90% ; max_volumetric_speed = 7 ; milling_after_z = 200% ; milling_extra_size = 150% ; milling_post_process = 0 ; milling_speed = 30 ; milling_toolchange_end_gcode = ; milling_toolchange_start_gcode = ; min_fan_speed = 100,100 ; min_layer_height = 0.16,0.16 ; min_length = 0.035 ; min_print_speed = 15,15 ; min_skirt_length = 4 ; min_width_top_surface = 100% ; model_precision = 0.0001 ; no_perimeter_unsupported_algo = none ; notes = ; nozzle_diameter = 0.4,0.8 ; only_one_perimeter_first_layer = 0 ; only_one_perimeter_top = 1 ; only_one_perimeter_top_other_algo = 0 ; only_retract_when_crossing_perimeters = 0 ; ooze_prevention = 0 ; output_filename_format = {input_filename_base}_{layer_height}mm_{filament_type[0]}_{printer_model}_{print_time}.gcode ; over_bridge_flow_ratio = 100% ; overhangs_reverse = 0 ; overhangs_reverse_threshold = 250% ; overhangs_speed = 35 ; overhangs_width = 75% ; overhangs_width_speed = 55% ; parking_pos_retraction = 92 ; pause_print_gcode = M601 ; perimeter_acceleration = 0 ; perimeter_bonding = 0% ; perimeter_extruder = 1 ; perimeter_extrusion_spacing = ; perimeter_extrusion_width = 0.45 ; perimeter_loop = 0 ; perimeter_loop_seam = nearest ; perimeter_overlap = 100% ; perimeter_round_corners = 0 ; perimeter_speed = 35 ; perimeters = 3 ; physical_printer_settings_id = HWlab ; post_process = ; print_custom_variables = ; print_extrusion_multiplier = 100% ; print_retract_length = -1 ; print_retract_lift = -1 ; print_settings_id = V6 - 0.18mm DAILY ; print_temperature = 0 ; printer_custom_variables = ; printer_model = ; printer_notes = ; printer_settings_id = Modix Big60 ; printer_technology = FFF ; printer_variant = ; printer_vendor = ; raft_layers = 0 ; remaining_times = 0 ; remaining_times_type = m73 ; resolution = 0.005 ; retract_before_travel = 2,2 ; retract_before_wipe = 0%,0% ; retract_layer_change = 1,1 ; retract_length = 2.5,2.5 ; retract_length_toolchange = 3,3 ; retract_lift = 0.2,0.28 ; retract_lift_above = 0,0 ; retract_lift_below = 0,0 ; retract_lift_first_layer = 0,0 ; retract_lift_top = "All surfaces";"All surfaces" ; retract_restart_extra = 0,0 ; retract_restart_extra_toolchange = 0,0 ; retract_speed = 40,40 ; seam_angle_cost = 100% ; seam_gap = 15%,15% ; seam_position = cost ; seam_travel_cost = 100% ; silent_mode = 0 ; single_extruder_multi_material = 0 ; single_extruder_multi_material_priming = 1 ; skirt_brim = 0 ; skirt_distance = 6 ; skirt_distance_from_brim = 1 ; skirt_extrusion_width = 0.45 ; skirt_height = 2 ; skirts = 3 ; slice_closing_radius = 0.049 ; slowdown_below_layer_time = 15,15 ; small_perimeter_max_length = 20 ; small_perimeter_min_length = 6 ; small_perimeter_speed = 15 ; solid_fill_pattern = rectilineargapfill ; solid_infill_below_area = 0 ; solid_infill_every_layers = 0 ; solid_infill_extruder = 1 ; solid_infill_extrusion_spacing = ; solid_infill_extrusion_width = 0.45 ; solid_infill_speed = 55 ; solid_over_perimeters = 2 ; spiral_vase = 0 ; standby_temperature_delta = -5 ; start_filament_gcode = "; Filament gcode\n";"; Filament gcode\n" ; start_gcode = ; custom start gcode\nT-1 ; deselect all tools \n\nM140 S[first_layer_bed_temperature] ; set bed temp\nM568 P[initial_tool] S[first_layer_temperature] R195 A1 ; set first tool standby temp\n\n\nG28 ; home all axes\nG1 Z2 F5000 ; lift nozzle\n\nM190 S[first_layer_bed_temperature] ; wait for bed temp to be reached\nM116 ; wait for stand by temps to be reached\n\nG90 ; Absolute positionning\nG28 ; home all axes again after the bed is hot\nG1 Z2 F5000 ; lift nozzle\n\nT[initial_tool] ; set the first used tool as active tool\nM116 ; wait for first tool temperature to be reached ; start_gcode_manual = 0 ; support_material = 1 ; support_material_angle = 0 ; support_material_auto = 1 ; support_material_buildplate_only = 0 ; support_material_contact_distance_bottom = 0.2 ; support_material_contact_distance_top = 0.2 ; support_material_contact_distance_type = filament ; support_material_enforce_layers = 0 ; support_material_extruder = 1 ; support_material_extrusion_width = 0.4 ; support_material_interface_contact_loops = 0 ; support_material_interface_extruder = 1 ; support_material_interface_layers = 2 ; support_material_interface_pattern = rectilinear ; support_material_interface_spacing = 0.2 ; support_material_interface_speed = 40 ; support_material_pattern = rectilinear ; support_material_solid_first_layer = 0 ; support_material_spacing = 2 ; support_material_speed = 40 ; support_material_synchronize_layers = 0 ; support_material_threshold = 35 ; support_material_with_sheath = 1 ; support_material_xy_spacing = 0.8 ; temperature = 204,204 ; template_custom_gcode = ; thin_perimeters = 0 ; thin_perimeters_all = 0 ; thin_walls = 1 ; thin_walls_merge = 1 ; thin_walls_min_width = 40% ; thin_walls_overlap = 50% ; thin_walls_speed = 35 ; threads = 8 ; thumbnails = 0x0,0x0 ; thumbnails_color = #018aff ; thumbnails_custom_color = 0 ; thumbnails_end_file = 0 ; thumbnails_with_bed = 1 ; time_estimation_compensation = 100% ; tool_name = V6;Volcano ; toolchange_gcode = ; Tool change custom gcode\nT[next_extruder] ; set the first used tool as active tool\nG10 P[next_extruder] S[first_layer_temperature] ; set temperatures for tool\nM116 ; wait for extruder temperature to be reached ; top_fan_speed = -1,-1 ; top_fill_pattern = monotonicgapfill ; top_infill_extrusion_spacing = ; top_infill_extrusion_width = 0.4 ; top_solid_infill_speed = 35 ; top_solid_layers = 5 ; top_solid_min_thickness = 0.9 ; travel_acceleration = 1500 ; travel_speed = 100 ; travel_speed_z = 0 ; use_firmware_retraction = 0 ; use_relative_e_distances = 1 ; use_volumetric_e = 0 ; variable_layer_height = 1 ; wipe = 1,1 ; wipe_advanced = 0 ; wipe_advanced_algo = linear ; wipe_advanced_multiplier = 60 ; wipe_advanced_nozzle_melted_volume = 120 ; wipe_extra_perimeter = 0,2 ; wipe_into_infill = 0 ; wipe_into_objects = 0 ; wipe_speed = 0,0 ; wipe_tower = 0 ; wipe_tower_bridging = 10 ; wipe_tower_brim = 150% ; wipe_tower_no_sparse_layers = 0 ; wipe_tower_rotation_angle = 0 ; wipe_tower_width = 60 ; wipe_tower_x = 180 ; wipe_tower_y = 140 ; wiping_volumes_extruders = 70,70,70,70 ; wiping_volumes_matrix = 0,140,140,0 ; xy_inner_size_compensation = 0 ; xy_size_compensation = 0 ; z_offset = 0 ; z_step = 0.008
-
@phil333 thanks for your sample. I will fix this in RRF 3.4.0beta7.