mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-25 22:25:21 +00:00
Fully refresh config
This commit is contained in:
@@ -344,18 +344,16 @@ void CalibPressureAdvanceLine::delta_modify_start(double& startx, double& starty
|
||||
|
||||
CalibPressureAdvancePattern::CalibPressureAdvancePattern(
|
||||
const Calib_Params& params,
|
||||
DynamicPrintConfig config,
|
||||
const DynamicPrintConfig& config,
|
||||
const bool& is_bbl_machine,
|
||||
Model& model
|
||||
) :
|
||||
CalibPressureAdvance(),
|
||||
m_params(params),
|
||||
m_initial_config(config),
|
||||
m_is_bbl_machine(is_bbl_machine)
|
||||
{
|
||||
this->m_draw_digit_mode = DrawDigitMode::Bottom_To_Top;
|
||||
|
||||
refresh_pattern_setup(model);
|
||||
refresh_setup(config, model);
|
||||
};
|
||||
|
||||
void CalibPressureAdvancePattern::set_starting_point(const Model& model)
|
||||
@@ -378,12 +376,16 @@ void CalibPressureAdvancePattern::set_starting_point(const Model& model)
|
||||
}
|
||||
}
|
||||
|
||||
void CalibPressureAdvancePattern::generate_custom_gcodes(Model& model, const Vec3d& origin)
|
||||
void CalibPressureAdvancePattern::generate_custom_gcodes(
|
||||
const DynamicPrintConfig& config,
|
||||
Model& model,
|
||||
const Vec3d& origin
|
||||
)
|
||||
{
|
||||
std::stringstream gcode;
|
||||
gcode << "; start pressure advance pattern for layer\n";
|
||||
|
||||
refresh_pattern_setup(model);
|
||||
refresh_setup(config, model);
|
||||
GCodeWriter writer = pattern_writer(model, origin);
|
||||
GCodeProcessor processor;
|
||||
processor.s_IsBBLPrinter = m_is_bbl_machine;
|
||||
@@ -544,14 +546,16 @@ void CalibPressureAdvancePattern::generate_custom_gcodes(Model& model, const Vec
|
||||
model.plates_custom_gcodes[model.curr_plate_index] = info;
|
||||
}
|
||||
|
||||
void CalibPressureAdvancePattern::refresh_pattern_setup(const Model& model)
|
||||
void CalibPressureAdvancePattern::refresh_setup(
|
||||
const DynamicPrintConfig& config,
|
||||
const Model& model
|
||||
)
|
||||
{
|
||||
DynamicPrintConfig updated_config(m_initial_config);
|
||||
updated_config.apply(model.objects.front()->config.get(), true);
|
||||
updated_config.apply(model.objects.front()->volumes.front()->config.get(), true);
|
||||
m_config = updated_config;
|
||||
m_config = config;
|
||||
m_config.apply(model.objects.front()->config.get(), true);
|
||||
m_config.apply(model.objects.front()->volumes.front()->config.get(), true);
|
||||
|
||||
m_is_delta = (updated_config.option<ConfigOptionPoints>("printable_area")->values.size() > 4);
|
||||
m_is_delta = (m_config.option<ConfigOptionPoints>("printable_area")->values.size() > 4);
|
||||
set_starting_point(model);
|
||||
}
|
||||
|
||||
|
||||
@@ -140,7 +140,7 @@ friend struct DrawBoxOptArgs;
|
||||
public:
|
||||
CalibPressureAdvancePattern(
|
||||
const Calib_Params& params,
|
||||
DynamicPrintConfig config,
|
||||
const DynamicPrintConfig& config,
|
||||
const bool& is_bbl_machine,
|
||||
Model& model
|
||||
);
|
||||
@@ -152,7 +152,11 @@ public:
|
||||
|
||||
void set_starting_point(const Model& model);
|
||||
|
||||
void generate_custom_gcodes(Model& model, const Vec3d& origin);
|
||||
void generate_custom_gcodes(
|
||||
const DynamicPrintConfig& config,
|
||||
Model& model,
|
||||
const Vec3d& origin
|
||||
);
|
||||
|
||||
protected:
|
||||
double speed_first_layer() const { return m_config.option<ConfigOptionFloat>("initial_layer_speed")->value; };
|
||||
@@ -190,7 +194,7 @@ private:
|
||||
double speed;
|
||||
};
|
||||
|
||||
void refresh_pattern_setup(const Model& model);
|
||||
void refresh_setup(const DynamicPrintConfig& config, const Model& model);
|
||||
GCodeWriter pattern_writer(
|
||||
const Model& model,
|
||||
const Vec3d& origin
|
||||
@@ -244,10 +248,9 @@ private:
|
||||
double print_size_y() const { return object_size_y(); };
|
||||
|
||||
const Calib_Params& m_params;
|
||||
const DynamicPrintConfig m_initial_config;
|
||||
const bool& m_is_bbl_machine;
|
||||
|
||||
DynamicPrintConfig m_config;
|
||||
const bool& m_is_bbl_machine;
|
||||
bool m_is_delta;
|
||||
Vec3d m_starting_point;
|
||||
|
||||
|
||||
@@ -8185,7 +8185,11 @@ void Plater::_calib_pa_pattern(const Calib_Params& params)
|
||||
);
|
||||
center_selection();
|
||||
|
||||
pa_pattern.generate_custom_gcodes(model(), get_partplate_list().get_current_plate_origin());
|
||||
pa_pattern.generate_custom_gcodes(
|
||||
full_config,
|
||||
model(),
|
||||
get_partplate_list().get_current_plate_origin()
|
||||
);
|
||||
model().calib_pa_pattern = std::make_unique<CalibPressureAdvancePattern>(pa_pattern);
|
||||
changed_objects({ 0 });
|
||||
}
|
||||
@@ -10346,6 +10350,7 @@ void Plater::reslice()
|
||||
// regenerate CalibPressureAdvancePattern custom G-code to apply changes
|
||||
if (model().calib_pa_pattern) {
|
||||
model().calib_pa_pattern->generate_custom_gcodes(
|
||||
wxGetApp().preset_bundle->full_config(),
|
||||
model(),
|
||||
get_partplate_list().get_current_plate_origin()
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user