Fix initial filament loading for non-bbl printers (SoftFever/OrcaSlicer#11218)

This commit is contained in:
Noisyfox 2025-11-03 23:43:23 +08:00
parent 763bdb5dee
commit 664a34f129

View file

@ -2874,16 +2874,18 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato
m_writer.set_current_position_clear(false);
m_start_gcode_filament = GCodeProcessor::get_gcode_last_filament(machine_start_gcode);
m_writer.init_extruder(initial_non_support_extruder_id);
// add the missing filament start gcode in machine start gcode
{
DynamicConfig config;
config.set_key_value("filament_extruder_id", new ConfigOptionInt((int)(initial_non_support_extruder_id)));
config.set_key_value("layer_num", new ConfigOptionInt(m_layer_index));
std::string filament_start_gcode = this->placeholder_parser_process("filament_start_gcode", print.config().filament_start_gcode.values.at(initial_non_support_extruder_id), initial_non_support_extruder_id,&config);
file.writeln(filament_start_gcode);
// mark the first filament used in print
file.write_format(";VT%d\n", initial_extruder_id);
if (is_bbl_printers) {
m_writer.init_extruder(initial_non_support_extruder_id);
// add the missing filament start gcode in machine start gcode
{
DynamicConfig config;
config.set_key_value("filament_extruder_id", new ConfigOptionInt((int)(initial_non_support_extruder_id)));
config.set_key_value("layer_num", new ConfigOptionInt(m_layer_index));
std::string filament_start_gcode = this->placeholder_parser_process("filament_start_gcode", print.config().filament_start_gcode.values.at(initial_non_support_extruder_id), initial_non_support_extruder_id,&config);
file.writeln(filament_start_gcode);
// mark the first filament used in print
file.write_format(";VT%d\n", initial_extruder_id);
}
}
//flush FanMover buffer to avoid modifying the start gcode if it's manual.