mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-27 10:51:22 +00:00
fix(gui): rack-aware pre-print nozzle checks in the send dialog
A print sliced for a nozzle that sits in the hotend rack (but is not mounted) was blocked by the send dialog's mounted-nozzle diameter check, even though the printer fetches the required nozzle itself (#14685). Consolidate the three mounted-nozzle gates (_is_nozzle_data_valid, is_nozzle_type_match, _is_same_nozzle_diameters) into a single CheckErrorExtruderNozzleWithSlicing fed by s_get_slicing_extuder_nozzles, which collects the plate's per-extruder nozzle requirements (hybrid extruders contribute one entry per used sub-nozzle flow). The rack extruder validates against its whole inventory (mounted + rack) with guidance to calibrate the rack, refresh nozzle info, or re-slice, and blocks when toolhead + rack are full (no free slot to stow a nozzle). Other extruders keep the validity/flow/diameter checks against the mounted nozzle. Also add CheckErrorRackStatus, which holds Send while the printer is still reading the rack hotend information, and judge material hardness for the rack extruder per dispatch-mapped nozzle as a non-blocking caution (mounted nozzles keep the blocking gate).
This commit is contained in:
@@ -350,6 +350,7 @@ public:
|
||||
std::vector<int> get_used_filaments();
|
||||
const std::vector<FilamentInfo>& get_slice_filaments_info() const { return slice_filaments_info; }
|
||||
int get_physical_extruder_by_filament_id(const DynamicConfig& g_config, int idx) const;
|
||||
int get_logical_extruder_by_filament_id(const DynamicConfig& g_config, int idx) const;
|
||||
bool check_filament_printable(const DynamicPrintConfig & config, wxString& error_message);
|
||||
bool check_tpu_printable_status(const DynamicPrintConfig & config, const std::vector<int> &tpu_filaments);
|
||||
bool check_mixture_of_pla_and_petg(const DynamicPrintConfig & config);
|
||||
|
||||
Reference in New Issue
Block a user