FIX: fix some wipe tower issue

1. the nozzle change gcode use double perimeter width
2. fix the error layer height for adaptive layer height
3. limit the nozzle change speed to 50 when a bridge is detected
4. fix the error extrusion flow for filament change gcode when a bridge is detected
jira: STUDIO-10269

Change-Id: I580c618555fe19d000a56e2510a42004722c1b8b
(cherry picked from commit 5c56b43166ab32b09da31b7046efbbcbe3cbc9c8)
This commit is contained in:
zhimin.zeng
2025-02-11 16:30:02 +08:00
committed by Noisyfox
parent f384944a42
commit 9bb3532743
2 changed files with 68 additions and 34 deletions

View File

@@ -337,6 +337,7 @@ public:
int filament_adhesiveness_category{0};
std::vector<float> layer_depths;
std::vector<bool> solid_infill;
std::vector<float> finish_depth{0}; // the start pos of finish frame for every layer
float depth{0};
float start_depth{0};
float cur_depth{0};
@@ -354,6 +355,7 @@ public:
std::vector<std::vector<BlockDepthInfo>> m_all_layers_depth;
std::vector<WipeTowerBlock> m_wipe_tower_blocks;
int m_last_block_id;
WipeTowerBlock* m_cur_block{nullptr};
// help function
WipeTowerBlock& get_block_by_category(int filament_adhesiveness_category);
@@ -446,6 +448,7 @@ private:
Vec2f m_bed_bottom_left; // bottom-left corner coordinates (for rectangular beds)
float m_perimeter_width = 0.4f * Width_To_Nozzle_Ratio; // Width of an extrusion line, also a perimeter spacing for 100% infill.
float m_nozzle_change_perimeter_width = 2 * 0.4f * Width_To_Nozzle_Ratio;
float m_extrusion_flow = 0.038f; //0.029f;// Extrusion flow is derived from m_perimeter_width, layer height and filament diameter.
// Extruder specific parameters.