File tree Expand file tree Collapse file tree 3 files changed +14
-2
lines changed
Expand file tree Collapse file tree 3 files changed +14
-2
lines changed Original file line number Diff line number Diff line change @@ -719,6 +719,11 @@ class GCodeExport : public NoCopy
719719 * Set the priming leftover to be processed during the next z-hop end
720720 */
721721 void setZHopPrimeLeftover (const ZHopAntiOozing& z_hop_prime_leftover);
722+
723+ /* !
724+ * Indicates whether the printer handles the retraction/priming, totally or with specific commands
725+ */
726+ bool machineHandlesRetraction () const ;
722727};
723728
724729} // namespace cura
Original file line number Diff line number Diff line change @@ -2195,13 +2195,15 @@ void LayerPlan::computeAntiOozeAmounts(
21952195 // Compute the desired retraction distance and duration during travel/z-hop
21962196 const double retract_distance = retraction_config->retraction_config .distance ;
21972197 const Duration retract_duration = retract_distance / retraction_config->retraction_config .speed ;
2198- const Duration retract_duration_during_zhop_and_travel = retract_duration * retraction_config->retraction_config .retract_during_travel ;
2198+ const Ratio retract_during_travel_ratio = gcode.machineHandlesRetraction () ? 0 .0_r : retraction_config->retraction_config .retract_during_travel ;
2199+ const Duration retract_duration_during_zhop_and_travel = retract_duration * retract_during_travel_ratio;
21992200 const Duration retract_duration_during_travel = std::max (0 .0_s, retract_duration_during_zhop_and_travel - travel_durations.z_hop );
22002201
22012202 // Compute the desired priming distance and duration during travel/z-hop
22022203 const double prime_distance = retraction_config->retraction_config .distance + gcode.mm3ToE (retraction_config->retraction_config .prime_volume );
22032204 const Duration prime_duration = prime_distance / retraction_config->retraction_config .primeSpeed ;
2204- const Duration prime_duration_during_zhop_and_travel = prime_duration * retraction_config->retraction_config .prime_during_travel ;
2205+ const Ratio prime_during_travel_ratio = gcode.machineHandlesRetraction () ? 0 .0_r : retraction_config->retraction_config .prime_during_travel ;
2206+ const Duration prime_duration_during_zhop_and_travel = prime_duration * prime_during_travel_ratio;
22052207 const Duration prime_duration_during_travel = std::max (0 .0_s, prime_duration_during_zhop_and_travel - travel_durations.z_hop );
22062208
22072209 // Now check whether we actually have enough time during z-hop + travel to fit the retraction and priming
Original file line number Diff line number Diff line change @@ -478,6 +478,11 @@ void GCodeExport::setZHopPrimeLeftover(const ZHopAntiOozing& z_hop_prime_leftove
478478 z_hop_prime_leftover_ = z_hop_prime_leftover;
479479}
480480
481+ bool GCodeExport::machineHandlesRetraction () const
482+ {
483+ return extruder_attr_[0 ].machine_firmware_retract_ || flavor_ == EGCodeFlavor::BFB;
484+ }
485+
481486double GCodeExport::mm3ToE (double mm3) const
482487{
483488 if (is_volumetric_)
You can’t perform that action at this time.
0 commit comments