mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-08-06 17:47:41 +00:00
wipe_tower: carousel barrier parity with BBS (precool, ramming speed, reverse travel)
Match BBS ramming() L3421-3535 and toolchange_wipe_new L4039-4044: nozzle_change_new (carousel = !extruder_change): - M632 barrier filled: M400 + M104 precool + M106 fan (BBS L3425-3428) - Carousel-specific ramming speed via max_e_ramming_speed.second (BBS L3435) - Reverse travel after ramming via ramming_travel_time (BBS L3499-3526) - Heater index via m_physical_extruder_map (matches BBS get_extruder_id) toolchange_wipe_new (add_M104_by_requirement): - format_line_M104: M400+M104 instead of M632+M104+M633 (BBS L1328-1341) - No carousel suppression: fires for both extruder and carousel changes (BBS L4040-4044) - m_is_multiple_nozzle gate retained (Orca calls this for all printers; BBS has it H2C-only) FilamentParameters (WipeTower.hpp): - Added: max_e_ramming_speed, ramming_travel_time, precool_target_temp, precool_t - Added: is_need_reverse_travel() method Init (WipeTower.cpp): - Carousel params from config: ramming speed, precool temp/timing, travel time - Matches BBS init L1878-1932 Non-H2C safety: all carousel paths gated by m_is_multiple_nozzle (false for non-H2C). Ramming speed fallback chain ensures identical values for non-H2C printers.
This commit is contained in:
@@ -361,6 +361,14 @@ public:
|
||||
// Distance (in mm of filament) that a hotend is allowed to pre-cool before the
|
||||
// tower is reached; drives the prime-tower heating-during-wipe model (multi-nozzle only).
|
||||
float filament_cooling_before_tower = 0.f;
|
||||
// Matches BBS: BambuStudio/src/libslic3r/GCode/WipeTower.hpp L335-339
|
||||
// Carousel-specific ramming, precool, and reverse travel parameters.
|
||||
// .first = extruder change, .second = nozzle change (carousel)
|
||||
std::pair<float,float> max_e_ramming_speed{0.f, 0.f};
|
||||
std::pair<float,float> ramming_travel_time{0.f, 0.f};
|
||||
std::pair<int,int> precool_target_temp{0, 0};
|
||||
std::pair<std::vector<float>,std::vector<float>> precool_t;
|
||||
std::pair<std::vector<float>,std::vector<float>> precool_t_first_layer;
|
||||
};
|
||||
|
||||
|
||||
@@ -564,6 +572,8 @@ private:
|
||||
|
||||
bool is_tpu_filament(int filament_id) const;
|
||||
bool is_petg_filament(int filament_id) const;
|
||||
// Matches BBS: BambuStudio/src/libslic3r/GCode/WipeTower.cpp L3080-3085
|
||||
bool is_need_reverse_travel(int filament_id, bool extruder_change) const;
|
||||
|
||||
// BBS
|
||||
box_coordinates align_perimeter(const box_coordinates& perimeter_box);
|
||||
|
||||
Reference in New Issue
Block a user