mirror of
https://git.mirrors.martin98.com/https://github.com/SoftFever/OrcaSlicer.git
synced 2025-08-14 14:35:57 +08:00
Disabling acceleration control persists single M204 command in gcode #795
(cherry picked from commit 40ecd8c8317209472df41c3564a0dcd0ed8a9f18)
This commit is contained in:
parent
a685633e87
commit
6ee076ab5e
@ -2812,15 +2812,12 @@ GCode::LayerResult GCode::process_layer(
|
|||||||
|
|
||||||
//BBS
|
//BBS
|
||||||
if (first_layer) {
|
if (first_layer) {
|
||||||
//BBS: set first layer global acceleration
|
|
||||||
if (m_config.default_acceleration.value > 0 && m_config.initial_layer_acceleration.value > 0) {
|
if (m_config.default_acceleration.value > 0 && m_config.initial_layer_acceleration.value > 0) {
|
||||||
double acceleration = m_config.initial_layer_acceleration.value;
|
gcode += m_writer.set_acceleration((unsigned int)floor(m_config.initial_layer_acceleration.value + 0.5));
|
||||||
gcode += m_writer.set_acceleration((unsigned int)floor(acceleration + 0.5));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_config.default_jerk.value > 0 && m_config.initial_layer_jerk.value > 0) {
|
if (m_config.default_jerk.value > 0 && m_config.initial_layer_jerk.value > 0) {
|
||||||
double jerk = m_config.initial_layer_jerk.value;
|
gcode += m_writer.set_jerk_xy(m_config.initial_layer_jerk.value);
|
||||||
gcode += m_writer.set_jerk_xy(jerk);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -2841,16 +2838,14 @@ GCode::LayerResult GCode::process_layer(
|
|||||||
gcode += this->unretract();
|
gcode += this->unretract();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//BBS: reset acceleration at sencond layer
|
// BBS: reset acceleration at sencond layer
|
||||||
if (m_config.default_acceleration.value > 0 && m_config.initial_layer_acceleration.value > 0) {
|
if (m_config.default_acceleration.value > 0 && m_config.initial_layer_acceleration.value > 0) {
|
||||||
double acceleration = m_config.default_acceleration.value;
|
gcode += m_writer.set_acceleration((unsigned int)floor(m_config.default_acceleration.value + 0.5));
|
||||||
gcode += m_writer.set_acceleration((unsigned int)floor(acceleration + 0.5));
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (m_config.default_jerk.value > 0 && m_config.initial_layer_jerk.value > 0) {
|
if (m_config.default_jerk.value > 0 && m_config.initial_layer_jerk.value > 0) {
|
||||||
double jerk = m_config.default_jerk.value;
|
gcode += m_writer.set_jerk_xy(m_config.default_jerk.value);
|
||||||
gcode += m_writer.set_jerk_xy(jerk);
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Transition from 1st to 2nd layer. Adjust nozzle temperatures as prescribed by the nozzle dependent
|
// Transition from 1st to 2nd layer. Adjust nozzle temperatures as prescribed by the nozzle dependent
|
||||||
// nozzle_temperature_initial_layer vs. temperature settings.
|
// nozzle_temperature_initial_layer vs. temperature settings.
|
||||||
@ -3605,7 +3600,8 @@ std::string GCode::extrude_multi_path(ExtrusionMultiPath multipath, std::string
|
|||||||
//BBS: don't reset acceleration when printing first layer. During first layer, acceleration is always same value.
|
//BBS: don't reset acceleration when printing first layer. During first layer, acceleration is always same value.
|
||||||
if (!this->on_first_layer()) {
|
if (!this->on_first_layer()) {
|
||||||
// reset acceleration
|
// reset acceleration
|
||||||
gcode += m_writer.set_acceleration((unsigned int)floor(m_config.default_acceleration.value + 0.5));
|
if (m_config.default_acceleration.value > 0)
|
||||||
|
gcode += m_writer.set_acceleration((unsigned int)floor(m_config.default_acceleration.value + 0.5));
|
||||||
if(m_config.default_jerk.value > 0)
|
if(m_config.default_jerk.value > 0)
|
||||||
gcode += m_writer.set_jerk_xy(m_config.default_jerk.value);
|
gcode += m_writer.set_jerk_xy(m_config.default_jerk.value);
|
||||||
}
|
}
|
||||||
@ -3636,7 +3632,8 @@ std::string GCode::extrude_path(ExtrusionPath path, std::string description, dou
|
|||||||
//BBS: don't reset acceleration when printing first layer. During first layer, acceleration is always same value.
|
//BBS: don't reset acceleration when printing first layer. During first layer, acceleration is always same value.
|
||||||
if (!this->on_first_layer()){
|
if (!this->on_first_layer()){
|
||||||
// reset acceleration
|
// reset acceleration
|
||||||
gcode += m_writer.set_acceleration((unsigned int)floor(m_config.default_acceleration.value + 0.5));
|
if (m_config.default_acceleration.value > 0)
|
||||||
|
gcode += m_writer.set_acceleration((unsigned int)floor(m_config.default_acceleration.value + 0.5));
|
||||||
if(m_config.default_jerk.value > 0)
|
if(m_config.default_jerk.value > 0)
|
||||||
gcode += m_writer.set_jerk_xy(m_config.default_jerk.value);
|
gcode += m_writer.set_jerk_xy(m_config.default_jerk.value);
|
||||||
|
|
||||||
@ -4205,28 +4202,19 @@ std::string GCode::travel_to(const Point &point, ExtrusionRole role, std::string
|
|||||||
|
|
||||||
// SoftFever
|
// SoftFever
|
||||||
if (this->on_first_layer()) {
|
if (this->on_first_layer()) {
|
||||||
if (m_config.default_acceleration.value > 0) {
|
if (m_config.default_acceleration.value > 0 && m_config.initial_layer_acceleration.value > 0) {
|
||||||
auto accel = (unsigned int)floor(m_config.initial_layer_acceleration.value + 0.5);
|
gcode += m_writer.set_acceleration((unsigned int)floor(m_config.initial_layer_acceleration.value + 0.5));
|
||||||
if (accel > 0)
|
|
||||||
gcode += m_writer.set_acceleration(accel);
|
|
||||||
}
|
}
|
||||||
if (m_config.default_jerk.value > 0) {
|
if (m_config.default_jerk.value > 0 && m_config.initial_layer_jerk.value > 0) {
|
||||||
auto jerk = m_config.initial_layer_jerk.value;
|
gcode += m_writer.set_jerk_xy(m_config.initial_layer_jerk.value);
|
||||||
if (jerk > 0)
|
|
||||||
gcode += m_writer.set_jerk_xy(jerk);
|
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else
|
if (m_config.default_acceleration.value > 0 && m_config.travel_acceleration.value > 0) {
|
||||||
{
|
gcode += m_writer.set_acceleration((unsigned int)floor(m_config.travel_acceleration.value + 0.5));
|
||||||
if(m_config.default_jerk.value > 0)
|
}
|
||||||
{
|
|
||||||
auto jerk = m_config.travel_jerk.value;
|
if (m_config.default_jerk.value > 0 && m_config.travel_jerk.value > 0) {
|
||||||
auto accel = (unsigned int)floor(m_config.travel_acceleration.value + 0.5);
|
gcode += m_writer.set_jerk_xy(m_config.travel_jerk.value);
|
||||||
if(jerk > 0)
|
|
||||||
gcode += m_writer.set_jerk_xy(jerk);
|
|
||||||
|
|
||||||
if(accel > 0)
|
|
||||||
gcode += m_writer.set_acceleration(accel);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// if a retraction would be needed, try to use reduce_crossing_wall to plan a
|
// if a retraction would be needed, try to use reduce_crossing_wall to plan a
|
||||||
|
Loading…
x
Reference in New Issue
Block a user