mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 20:21:12 -06:00 
			
		
		
		
	Merge branch 'master' of https://github.com/BryanSmithDev/PrusaSlicer into BryanSmithDev-master
This commit is contained in:
		
						commit
						7a7183383f
					
				
					 4 changed files with 15 additions and 6 deletions
				
			
		|  | @ -975,6 +975,9 @@ void GCode::_do_export(Print &print, FILE *file) | |||
|             _writeln(file, GCodeTimeEstimator::Silent_First_M73_Output_Placeholder_Tag); | ||||
|     } | ||||
| 
 | ||||
| 	// Hold total number of print toolchanges. Check for negative toolchanges (single extruder mode) and set to 0 (no tool change).
 | ||||
|     int total_toolchanges = std::max(0, print.wipe_tower_data().number_of_toolchanges); | ||||
| 
 | ||||
|     // Prepare the helper object for replacing placeholders in custom G-code and output filename.
 | ||||
|     m_placeholder_parser = print.placeholder_parser(); | ||||
|     m_placeholder_parser.update_timestamp(); | ||||
|  | @ -1037,6 +1040,7 @@ void GCode::_do_export(Print &print, FILE *file) | |||
|     // For the start / end G-code to do the priming and final filament pull in case there is no wipe tower provided.
 | ||||
|     m_placeholder_parser.set("has_wipe_tower", has_wipe_tower); | ||||
|     m_placeholder_parser.set("has_single_extruder_multi_material_priming", has_wipe_tower && print.config().single_extruder_multi_material_priming); | ||||
|     m_placeholder_parser.set("total_toolchanges", total_toolchanges); | ||||
|     std::string start_gcode = this->placeholder_parser_process("start_gcode", print.config().start_gcode.value, initial_extruder_id); | ||||
|     // Set bed temperature if the start G-code does not contain any bed temp control G-codes.
 | ||||
|     this->_print_first_layer_bed_temperature(file, print, start_gcode, initial_extruder_id, true); | ||||
|  | @ -1287,7 +1291,7 @@ void GCode::_do_export(Print &print, FILE *file) | |||
|     print.m_print_statistics.estimated_normal_color_print_times = m_normal_time_estimator.get_color_times_dhms(true); | ||||
|     if (m_silent_time_estimator_enabled) | ||||
|         print.m_print_statistics.estimated_silent_color_print_times = m_silent_time_estimator.get_color_times_dhms(true); | ||||
| 
 | ||||
|     print.m_print_statistics.total_toolchanges = total_toolchanges; | ||||
|     std::vector<Extruder> extruders = m_writer.extruders(); | ||||
|     if (! extruders.empty()) { | ||||
|         std::pair<std::string, unsigned int> out_filament_used_mm ("; filament used [mm] = ", 0); | ||||
|  | @ -1337,6 +1341,8 @@ void GCode::_do_export(Print &print, FILE *file) | |||
|     } | ||||
|     _write_format(file, "; total filament used [g] = %.1lf\n", print.m_print_statistics.total_weight); | ||||
|     _write_format(file, "; total filament cost = %.1lf\n", print.m_print_statistics.total_cost); | ||||
|     if (print.m_print_statistics.total_toolchanges > 0) | ||||
|     	_write_format(file, "; total toolchanges = %i\n", print.m_print_statistics.total_toolchanges); | ||||
|     _write_format(file, "; estimated printing time (normal mode) = %s\n", m_normal_time_estimator.get_time_dhms().c_str()); | ||||
|     if (m_silent_time_estimator_enabled) | ||||
|         _write_format(file, "; estimated printing time (silent mode) = %s\n", m_silent_time_estimator.get_time_dhms().c_str()); | ||||
|  |  | |||
|  | @ -2056,6 +2056,7 @@ DynamicConfig PrintStatistics::config() const | |||
|     config.set_key_value("used_filament",             new ConfigOptionFloat (this->total_used_filament / 1000.)); | ||||
|     config.set_key_value("extruded_volume",           new ConfigOptionFloat (this->total_extruded_volume)); | ||||
|     config.set_key_value("total_cost",                new ConfigOptionFloat (this->total_cost)); | ||||
|     config.set_key_value("total_toolchanges",         new ConfigOptionInt(this->total_toolchanges)); | ||||
|     config.set_key_value("total_weight",              new ConfigOptionFloat (this->total_weight)); | ||||
|     config.set_key_value("total_wipe_tower_cost",     new ConfigOptionFloat (this->total_wipe_tower_cost)); | ||||
|     config.set_key_value("total_wipe_tower_filament", new ConfigOptionFloat (this->total_wipe_tower_filament)); | ||||
|  | @ -2068,7 +2069,7 @@ DynamicConfig PrintStatistics::placeholders() | |||
|     for (const std::string &key : {  | ||||
|         "print_time", "normal_print_time", "silent_print_time",  | ||||
|         "used_filament", "extruded_volume", "total_cost", "total_weight",  | ||||
|         "total_wipe_tower_cost", "total_wipe_tower_filament"}) | ||||
|         "total_toolchanges", "total_wipe_tower_cost", "total_wipe_tower_filament"}) | ||||
|         config.set_key_value(key, new ConfigOptionString(std::string("{") + key + "}")); | ||||
|     return config; | ||||
| } | ||||
|  |  | |||
|  | @ -250,6 +250,7 @@ struct PrintStatistics | |||
|     double                          total_used_filament; | ||||
|     double                          total_extruded_volume; | ||||
|     double                          total_cost; | ||||
|     int                             total_toolchanges; | ||||
|     double                          total_weight; | ||||
|     double                          total_wipe_tower_cost; | ||||
|     double                          total_wipe_tower_filament; | ||||
|  | @ -270,6 +271,7 @@ struct PrintStatistics | |||
|         total_used_filament    = 0.; | ||||
|         total_extruded_volume  = 0.; | ||||
|         total_cost             = 0.; | ||||
|         total_toolchanges      = 0; | ||||
|         total_weight           = 0.; | ||||
|         total_wipe_tower_cost  = 0.; | ||||
|         total_wipe_tower_filament = 0.; | ||||
|  |  | |||
|  | @ -175,7 +175,7 @@ void ObjectInfo::msw_rescale() | |||
|     manifold_warning_icon->SetBitmap(create_scaled_bitmap(nullptr, "exclamation")); | ||||
| } | ||||
| 
 | ||||
| enum SlisedInfoIdx | ||||
| enum SlicedInfoIdx | ||||
| { | ||||
|     siFilament_m, | ||||
|     siFilament_mm3, | ||||
|  | @ -192,7 +192,7 @@ class SlicedInfo : public wxStaticBoxSizer | |||
| { | ||||
| public: | ||||
|     SlicedInfo(wxWindow *parent); | ||||
|     void SetTextAndShow(SlisedInfoIdx idx, const wxString& text, const wxString& new_label=""); | ||||
|     void SetTextAndShow(SlicedInfoIdx idx, const wxString& text, const wxString& new_label=""); | ||||
| 
 | ||||
| private: | ||||
|     std::vector<std::pair<wxStaticText*, wxStaticText*>> info_vec; | ||||
|  | @ -230,7 +230,7 @@ SlicedInfo::SlicedInfo(wxWindow *parent) : | |||
|     this->Show(false); | ||||
| } | ||||
| 
 | ||||
| void SlicedInfo::SetTextAndShow(SlisedInfoIdx idx, const wxString& text, const wxString& new_label/*=""*/) | ||||
| void SlicedInfo::SetTextAndShow(SlicedInfoIdx idx, const wxString& text, const wxString& new_label/*=""*/) | ||||
| { | ||||
|     const bool show = text != "N/A"; | ||||
|     if (show) | ||||
|  | @ -1209,7 +1209,7 @@ void Sidebar::show_sliced_info_sizer(const bool show) | |||
|             } | ||||
| 
 | ||||
|             // if there is a wipe tower, insert number of toolchanges info into the array:
 | ||||
|             p->sliced_info->SetTextAndShow(siWTNumbetOfToolchanges, is_wipe_tower ? wxString::Format("%.d", p->plater->fff_print().wipe_tower_data().number_of_toolchanges) : "N/A"); | ||||
|             p->sliced_info->SetTextAndShow(siWTNumbetOfToolchanges, is_wipe_tower ? wxString::Format("%.d", ps.total_toolchanges) : "N/A"); | ||||
| 
 | ||||
|             // Hide non-FFF sliced info parameters
 | ||||
|             p->sliced_info->SetTextAndShow(siMateril_unit, "N/A"); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 bubnikv
						bubnikv