ironing calibration : also a button for the top flow.

This commit is contained in:
supermerill 2020-11-08 17:33:35 +01:00
parent e3dde4b384
commit 03821319ab
3 changed files with 23 additions and 7 deletions

View File

@ -21,7 +21,8 @@
</table> </table>
<p><strong>You need to do the filament flow calibration and the bridge flow ratio before this one.</strong> It's better if you have done the filament temperature.</p> <p><strong>You need to do the filament flow calibration and the bridge flow ratio before this one.</strong> It's better if you have done the filament temperature.</p>
<p>This calibration method will print test samples with various levels of over-bridge flow ratio, between 100 and 125. Choose the lowest value on which the top surface is smooth without rough "holes".</p> <p>This calibration method will print test samples with various levels of over-bridge flow ratio, between 100 and 125. Choose the lowest value on which the top surface is smooth without rough "holes". Began with the over-bridge calibraiton.</p>
<p>If the over-bridge calibration is not conclusive (same holes on all samples), then set it to 110% and use the top flow calibration. This setting is a bit more unpredictable so it's best to not move it far away from 100%.</p>
<h2>Results</h2> <h2>Results</h2>
<table width="100%"> <table width="100%">
<tbody> <tbody>

View File

@ -25,12 +25,21 @@ namespace Slic3r {
namespace GUI { namespace GUI {
void CalibrationOverBridgeDialog::create_buttons(wxStdDialogButtonSizer* buttons){ void CalibrationOverBridgeDialog::create_buttons(wxStdDialogButtonSizer* buttons){
wxButton* bt = new wxButton(this, wxID_FILE1, _(L("Generate"))); wxButton* bt1 = new wxButton(this, wxID_FILE1, _(L("Over-Bridge calibration")));
bt->Bind(wxEVT_BUTTON, &CalibrationOverBridgeDialog::create_geometry, this); wxButton* bt2 = new wxButton(this, wxID_FILE1, _(L("Top flow calibration")));
buttons->Add(bt); bt1->Bind(wxEVT_BUTTON, &CalibrationOverBridgeDialog::create_geometry1, this);
bt2->Bind(wxEVT_BUTTON, &CalibrationOverBridgeDialog::create_geometry2, this);
buttons->Add(bt1);
buttons->Add(bt2);
} }
void CalibrationOverBridgeDialog::create_geometry(wxCommandEvent& event_args) { void CalibrationOverBridgeDialog::create_geometry1(wxCommandEvent& event_args) {
create_geometry(true);
}
void CalibrationOverBridgeDialog::create_geometry2(wxCommandEvent& event_args) {
create_geometry(false);
}
void CalibrationOverBridgeDialog::create_geometry(bool over_bridge) {
Plater* plat = this->main_frame->plater(); Plater* plat = this->main_frame->plater();
Model& model = plat->model(); Model& model = plat->model();
plat->reset(); plat->reset();
@ -108,7 +117,11 @@ void CalibrationOverBridgeDialog::create_geometry(wxCommandEvent& event_args) {
model.objects[objs_idx[i]]->config.set_key_value("fill_density", new ConfigOptionPercent(5.5)); model.objects[objs_idx[i]]->config.set_key_value("fill_density", new ConfigOptionPercent(5.5));
model.objects[objs_idx[i]]->config.set_key_value("fill_pattern", new ConfigOptionEnum<InfillPattern>(ipRectilinear)); model.objects[objs_idx[i]]->config.set_key_value("fill_pattern", new ConfigOptionEnum<InfillPattern>(ipRectilinear));
model.objects[objs_idx[i]]->config.set_key_value("infill_dense", new ConfigOptionBool(false)); model.objects[objs_idx[i]]->config.set_key_value("infill_dense", new ConfigOptionBool(false));
model.objects[objs_idx[i]]->config.set_key_value("over_bridge_flow_ratio", new ConfigOptionPercent(100 + i * 5)); //calibration setting. Use 100 & 5 step as it's the numbers printed on the samples
if(over_bridge)
model.objects[objs_idx[i]]->config.set_key_value("over_bridge_flow_ratio", new ConfigOptionPercent(/*print_config->option<ConfigOptionPercent>("over_bridge_flow_ratio")->get_abs_value(100)*/100 + i * 5));
else
model.objects[objs_idx[i]]->config.set_key_value("fill_top_flow_ratio", new ConfigOptionPercent(/*print_config->option<ConfigOptionPercent>("fill_top_flow_ratio")->get_abs_value(100)*/100 + i * 5));
model.objects[objs_idx[i]]->config.set_key_value("layer_height", new ConfigOptionFloat(nozzle_diameter / 2)); model.objects[objs_idx[i]]->config.set_key_value("layer_height", new ConfigOptionFloat(nozzle_diameter / 2));
model.objects[objs_idx[i]]->config.set_key_value("external_infill_margin", new ConfigOptionFloatOrPercent(400,true)); model.objects[objs_idx[i]]->config.set_key_value("external_infill_margin", new ConfigOptionFloatOrPercent(400,true));
model.objects[objs_idx[i]]->config.set_key_value("top_fill_pattern", new ConfigOptionEnum<InfillPattern>(ipSmooth)); model.objects[objs_idx[i]]->config.set_key_value("top_fill_pattern", new ConfigOptionEnum<InfillPattern>(ipSmooth));

View File

@ -15,7 +15,9 @@ public:
protected: protected:
void create_buttons(wxStdDialogButtonSizer* sizer) override; void create_buttons(wxStdDialogButtonSizer* sizer) override;
void create_geometry(wxCommandEvent& event_args); void create_geometry1(wxCommandEvent& event_args);
void create_geometry2(wxCommandEvent& event_args);
void create_geometry(bool over_bridge);
}; };