mirror of
https://git.mirrors.martin98.com/https://github.com/slic3r/Slic3r.git
synced 2025-08-15 11:26:05 +08:00
resolving calibration issues
cleaning options not ready
This commit is contained in:
parent
3d6b503e15
commit
851264f150
@ -8,21 +8,21 @@
|
|||||||
<h1>Bridge flow calibration</h1>
|
<h1>Bridge flow calibration</h1>
|
||||||
<p>You need to do the bed level calibration and the filament flow calibration before this one. It's better if you have done the filament temperature calibration also.</p>
|
<p>You need to do the bed level calibration and the filament flow calibration before this one. It's better if you have done the filament temperature calibration also.</p>
|
||||||
<p>This test will print tests samples with various level of bridge flow ratio. It starts at your current setting, so you may want to set them to 100% before clicking on the button.</p>
|
<p>This test will print tests samples with various level of bridge flow ratio. It starts at your current setting, so you may want to set them to 100% before clicking on the button.</p>
|
||||||
<h2>Results</h2>
|
<!-- <h2>Results</h2> -->
|
||||||
<table>
|
<!-- <table> -->
|
||||||
<tbody>
|
<!-- <tbody> -->
|
||||||
<h4>Exemple:</h4>
|
<!-- <h4>Exemple:</h4> -->
|
||||||
<tr>
|
<!-- <tr> -->
|
||||||
<td>TODO</td>
|
<!-- <td>TODO</td> -->
|
||||||
</tr>
|
<!-- </tr> -->
|
||||||
<tr>
|
<!-- <tr> -->
|
||||||
<td style="text-align: center;">TODO</td>
|
<!-- <td style="text-align: center;">TODO</td> -->
|
||||||
</tr>
|
<!-- </tr> -->
|
||||||
</table>
|
<!-- </table> -->
|
||||||
|
|
||||||
<h2>Advice</h2>
|
<!-- <h2>Advice</h2> -->
|
||||||
<p>TODO</p>
|
<!-- <p>TODO</p> -->
|
||||||
</ul>
|
<!-- </ul> -->
|
||||||
<h2>Notes</h2>
|
<h2>Notes</h2>
|
||||||
<p>This test set the setting "complete individual objects" to true, so you may want to reset your print settings afterwards, or diable this setting if your bed is too small</p>
|
<p>This test set the setting "complete individual objects" to true, so you may want to reset your print settings afterwards, or diable this setting if your bed is too small</p>
|
||||||
<p>Licence for models used for this calibration test: CC BY-SA 3.0</p>
|
<p>Licence for models used for this calibration test: CC BY-SA 3.0</p>
|
||||||
|
@ -11,8 +11,8 @@
|
|||||||
<p>You have to print two cubes, with different sizes. If the dimensional inaccuracy scale with the size of the cubes, then it's the steps/mm of your steppers that needs some adjustments (note: if it's the case, you should also adjust the flow, and maybe redo some calibrations if the change is big). If it doesn't scale, you can correct it by adjusting your xy compensation (slicing tab). With the voron cube, you can also test the hole calibration, as these are often too small.</p>
|
<p>You have to print two cubes, with different sizes. If the dimensional inaccuracy scale with the size of the cubes, then it's the steps/mm of your steppers that needs some adjustments (note: if it's the case, you should also adjust the flow, and maybe redo some calibrations if the change is big). If it doesn't scale, you can correct it by adjusting your xy compensation (slicing tab). With the voron cube, you can also test the hole calibration, as these are often too small.</p>
|
||||||
<h2>Goal: infill/perimeter overlap</h2>
|
<h2>Goal: infill/perimeter overlap</h2>
|
||||||
<p>This test is about to see if the pattern of the infill can be seen on the perimeters. Try to reduce it as low as you can but check the top solid fill, as it can create artifacts if it's too low. It's better with the standard cube, as you have a larger top surface.</p>
|
<p>This test is about to see if the pattern of the infill can be seen on the perimeters. Try to reduce it as low as you can but check the top solid fill, as it can create artifacts if it's too low. It's better with the standard cube, as you have a larger top surface.</p>
|
||||||
<h2>Goal: external perimeter overlap</h2>
|
<!-- <h2>Goal: external perimeter overlap</h2> -->
|
||||||
<p>As the external perimeter is printed last, the real position depends on the position and flow of the whole layer. So you have to be sure that your flow is perfect before doing this test. The main difference is between solid infill layers and sparse infill layers, as the solid one can push the external perimeter outwards. Decreasing the infill/perimeter overlap, decreasing the external perimeter overlap can help to reduce this effect.</p>
|
<!-- <p>As the external perimeter is printed last, the real position depends on the position and flow of the whole layer. So you have to be sure that your flow is perfect before doing this test. The main difference is between solid infill layers and sparse infill layers, as the solid one can push the external perimeter outwards. Decreasing the infill/perimeter overlap, decreasing the external perimeter overlap can help to reduce this effect.</p> -->
|
||||||
<h2>Notes</h2>
|
<h2>Notes</h2>
|
||||||
<p>These tests should be the last ones.</p>
|
<p>These tests should be the last ones.</p>
|
||||||
<p>Default size of the standard cube is 20mm and the standard size of the voron cube is 30mm.</p>
|
<p>Default size of the standard cube is 20mm and the standard size of the voron cube is 30mm.</p>
|
||||||
|
@ -9,9 +9,9 @@
|
|||||||
<p>You need to do the bed level calibration before this one.</p>
|
<p>You need to do the bed level calibration before this one.</p>
|
||||||
<p>This test will print five tests samples with various level of flow. You can choose the flow difference between each steps. You should start with the 10% one. After verifying the result with the help of the table below, you have to modify the filament extrusion multiplier in your filament preset (if the -20 is the best, change the multiplier from 1 to 0.8, see the formula below). Don't forget to save it afterwards. You can continue with the 2.5 step if you want a bit more precision.</p>
|
<p>This test will print five tests samples with various level of flow. You can choose the flow difference between each steps. You should start with the 10% one. After verifying the result with the help of the table below, you have to modify the filament extrusion multiplier in your filament preset (if the -20 is the best, change the multiplier from 1 to 0.8, see the formula below). Don't forget to save it afterwards. You can continue with the 2.5 step if you want a bit more precision.</p>
|
||||||
<h2>Results</h2>
|
<h2>Results</h2>
|
||||||
|
<h4>Exemple:</h4>
|
||||||
<table>
|
<table>
|
||||||
<tbody>
|
<tbody>
|
||||||
<h4>Exemple:</h4>
|
|
||||||
<tr>
|
<tr>
|
||||||
<td><img src="./m20.jpg" width="150" height="150" /></td>
|
<td><img src="./m20.jpg" width="150" height="150" /></td>
|
||||||
<td><img src="./m10.jpg" width="150" height="150" /></td>
|
<td><img src="./m10.jpg" width="150" height="150" /></td>
|
||||||
@ -29,9 +29,9 @@
|
|||||||
</table>
|
</table>
|
||||||
<p>The flow you want to choose is the lowest that don't create gaps in the top surface. Here it seems that the good flow is below +20. So you have to change your extrusion multiplier to 1.2 and print the second set of test (or put 1.15 and call it a day).</p>
|
<p>The flow you want to choose is the lowest that don't create gaps in the top surface. Here it seems that the good flow is below +20. So you have to change your extrusion multiplier to 1.2 and print the second set of test (or put 1.15 and call it a day).</p>
|
||||||
<p>Don't look at the surface quality of the letter, it should be only good at the 0, as it's for this flow we calibrated the bed height. Here, going with +20% flow, i should lower the bed a bit (redoing the bed level calibration).</p>
|
<p>Don't look at the surface quality of the letter, it should be only good at the 0, as it's for this flow we calibrated the bed height. Here, going with +20% flow, i should lower the bed a bit (redoing the bed level calibration).</p>
|
||||||
|
<h4>Second step, starting from +20%:</h4>
|
||||||
<table>
|
<table>
|
||||||
<tbody>
|
<tbody>
|
||||||
<h4>Second step, starting from +20%:</h4>
|
|
||||||
<tr>
|
<tr>
|
||||||
<td><img src="./m8.jpg" width="150" height="150" /></td>
|
<td><img src="./m8.jpg" width="150" height="150" /></td>
|
||||||
<td><img src="./m6.jpg" width="150" height="150" /></td>
|
<td><img src="./m6.jpg" width="150" height="150" /></td>
|
||||||
|
@ -14,36 +14,32 @@
|
|||||||
<table>
|
<table>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td><img src="./temp_tower.jpg" width="400" height="500" /></td>
|
<td><img src="./temp_tower_180.jpg" width="400" height="100" /></td>
|
||||||
<td>
|
|
||||||
<table style="height: 500px;">
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>too cold, it can't be extruded</td>
|
<td>too cold, it can't be extruded</td>
|
||||||
</tr>
|
<td>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td><img src="./temp_tower_195.jpg" width="400" height="100" /></td>
|
||||||
<td>good</td>
|
<td>good</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td><img src="./temp_tower_210.jpg" width="400" height="100" /></td>
|
||||||
<td>good</td>
|
<td>good</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td><img src="./temp_tower_225.jpg" width="400" height="100" /></td>
|
||||||
<td>too hot, you can see some ooze</td>
|
<td>too hot, you can see some ooze</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td><img src="./temp_tower_240.jpg" width="400" height="100" /></td>
|
||||||
<td>too hot, you can see some ooze</td>
|
<td>too hot, you can see some ooze</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<p>Here, you can see that the 210 degree is the hottest we can print without problems (at least not heat-dependant, bad quality is due to high speed). Also, i succeed to break (with difficulty) a chunk of the 195 degree, so it's a bit too cold.</p>
|
<p>Here, you can see that the 210 degree is the hottest we can print without problems (at least not heat-dependant, bad quality is due to high speed). Also, i succeed to break (with difficulty) a chunk of the 195 degree, so it's a bit too cold.</p>
|
||||||
<h2>Results: destruction</h2>
|
<h2>Results: destruction</h2>
|
||||||
<p>Finally, you want to tear it apart to see if the lower temperature doesn't have adverse effect on layer bonding. It should be impossible to tear it apart with your own hands. If a floor can be easily broken, then this floor temperature is definitely too low (or you put too much cooling = fan are blowing too hard), so you should choose a higher temperature or try again with less cooling. When trying to break one, don't put your hands on the ends of the tower but on the tested floor and the next one, leaving only the bridge gaps between them.</p>
|
<p>Finally, you want to tear it apart to see if the lower temperature doesn't have adverse effect on layer bonding. It should be impossible to tear it apart with your own hands. If a floor can be easily broken, then this floor temperature is definitely too low (or you put too much cooling = fan are blowing too hard), so you should choose a higher temperature or try again with less cooling. When trying to break one, don't put your hands on the ends of the tower but on the tested floor and the next one, leaving only the bridge gaps between them.</p>
|
||||||
<h2>How to tune your printer</h2>
|
<h2>How to tune your printer</h2>
|
||||||
<p>Change the temperature in your filament setting (extruder -> other layers), then save it. The first layer temperature is often 5°C higher to help with bed adhesion, so you should also change it, especially if it's lower than the new one.</p>
|
<p>Change the temperature in your filament setting (extruder -> other layers), then save it. The first layer temperature is often 5 degree higher to help with bed adhesion, so you should also change it, especially if it's lower than the new one.</p>
|
||||||
</ul>
|
</ul>
|
||||||
<h2>Notes</h2>
|
<h2>Notes</h2>
|
||||||
<p>Most of the calibrations need to done is the right order. This one should be the third.</p>
|
<p>Most of the calibrations need to done is the right order. This one should be the third.</p>
|
||||||
|
BIN
resources/calibration/filament_temp/temp_tower_180.jpg
Normal file
BIN
resources/calibration/filament_temp/temp_tower_180.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.7 KiB |
BIN
resources/calibration/filament_temp/temp_tower_195.jpg
Normal file
BIN
resources/calibration/filament_temp/temp_tower_195.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.1 KiB |
BIN
resources/calibration/filament_temp/temp_tower_210.jpg
Normal file
BIN
resources/calibration/filament_temp/temp_tower_210.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.2 KiB |
BIN
resources/calibration/filament_temp/temp_tower_225.jpg
Normal file
BIN
resources/calibration/filament_temp/temp_tower_225.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.4 KiB |
BIN
resources/calibration/filament_temp/temp_tower_240.jpg
Normal file
BIN
resources/calibration/filament_temp/temp_tower_240.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.1 KiB |
@ -39,13 +39,13 @@ namespace GUI {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CalibrationAbstractDialog::create(std::string html_path){
|
void CalibrationAbstractDialog::create(std::string html_path, wxSize dialog_size){
|
||||||
|
|
||||||
auto main_sizer = new wxBoxSizer(wxVERTICAL);
|
auto main_sizer = new wxBoxSizer(wxVERTICAL);
|
||||||
|
|
||||||
//html
|
//html
|
||||||
html_viewer = new wxHtmlWindow(this, wxID_ANY,
|
html_viewer = new wxHtmlWindow(this, wxID_ANY,
|
||||||
wxDefaultPosition, wxSize(800, 500), wxHW_SCROLLBAR_AUTO);
|
wxDefaultPosition, dialog_size, wxHW_SCROLLBAR_AUTO);
|
||||||
html_viewer->LoadPage(Slic3r::resources_dir()+ html_path);
|
html_viewer->LoadPage(Slic3r::resources_dir()+ html_path);
|
||||||
main_sizer->Add(html_viewer, 1, wxEXPAND | wxALL, 5);
|
main_sizer->Add(html_viewer, 1, wxEXPAND | wxALL, 5);
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ public:
|
|||||||
private:
|
private:
|
||||||
wxPanel* create_header(wxWindow* parent, const wxFont& bold_font);
|
wxPanel* create_header(wxWindow* parent, const wxFont& bold_font);
|
||||||
protected:
|
protected:
|
||||||
void create(std::string html_path);
|
void create(std::string html_path, wxSize dialogsize = wxSize(800, 500));
|
||||||
virtual void create_buttons(wxStdDialogButtonSizer*) = 0;
|
virtual void create_buttons(wxStdDialogButtonSizer*) = 0;
|
||||||
void on_dpi_changed(const wxRect& suggested_rect) override;
|
void on_dpi_changed(const wxRect& suggested_rect) override;
|
||||||
void closeMe(wxCommandEvent& event_args);
|
void closeMe(wxCommandEvent& event_args);
|
||||||
|
@ -22,8 +22,8 @@ namespace Slic3r {
|
|||||||
namespace GUI {
|
namespace GUI {
|
||||||
|
|
||||||
void CalibrationBridgeDialog::create_buttons(wxStdDialogButtonSizer* buttons){
|
void CalibrationBridgeDialog::create_buttons(wxStdDialogButtonSizer* buttons){
|
||||||
wxString choices_steps[] = { "2.5","5","10" };
|
wxString choices_steps[] = { "5","10","15" };
|
||||||
steps = new wxComboBox(this, wxID_ANY, wxString{ "5" }, wxDefaultPosition, wxDefaultSize, 3, choices_steps);
|
steps = new wxComboBox(this, wxID_ANY, wxString{ "10" }, wxDefaultPosition, wxDefaultSize, 3, choices_steps);
|
||||||
steps->SetToolTip(_(L("Select the step in % between two tests.")));
|
steps->SetToolTip(_(L("Select the step in % between two tests.")));
|
||||||
steps->SetSelection(1);
|
steps->SetSelection(1);
|
||||||
wxString choices_nb[] = { "1","2","3","4","5","6" };
|
wxString choices_nb[] = { "1","2","3","4","5","6" };
|
||||||
@ -53,7 +53,7 @@ void CalibrationBridgeDialog::create_geometry(std::string setting_to_test, bool
|
|||||||
|
|
||||||
int idx_steps = steps->GetSelection();
|
int idx_steps = steps->GetSelection();
|
||||||
int idx_nb = nb_tests->GetSelection();
|
int idx_nb = nb_tests->GetSelection();
|
||||||
size_t step = 5 + (idx_steps == wxNOT_FOUND ? 0 : (idx_steps == 0 ? 2.5f : idx_steps == 1 ? 5.F : 10.f));
|
size_t step = 5 + (idx_steps == wxNOT_FOUND ? 0 : idx_steps * 5);
|
||||||
size_t nb_items = 1 + (idx_nb == wxNOT_FOUND ? 0 : idx_nb);
|
size_t nb_items = 1 + (idx_nb == wxNOT_FOUND ? 0 : idx_nb);
|
||||||
|
|
||||||
std::vector<std::string> items;
|
std::vector<std::string> items;
|
||||||
|
@ -10,7 +10,7 @@ class CalibrationBridgeDialog : public CalibrationAbstractDialog
|
|||||||
{
|
{
|
||||||
|
|
||||||
public:
|
public:
|
||||||
CalibrationBridgeDialog(GUI_App* app, MainFrame* mainframe) : CalibrationAbstractDialog(app, mainframe, "Bridge calibration") { create("/calibration/bridge_flow/bridge_flow.html"); }
|
CalibrationBridgeDialog(GUI_App* app, MainFrame* mainframe) : CalibrationAbstractDialog(app, mainframe, "Bridge calibration") { create("/calibration/bridge_flow/bridge_flow.html", wxSize(600, 300)); }
|
||||||
virtual ~CalibrationBridgeDialog() { }
|
virtual ~CalibrationBridgeDialog() { }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -26,7 +26,7 @@ void CalibrationCubeDialog::create_buttons(wxStdDialogButtonSizer* buttons){
|
|||||||
scale = new wxComboBox(this, wxID_ANY, wxString{ "20mm" }, wxDefaultPosition, wxDefaultSize, 4, choices_scale);
|
scale = new wxComboBox(this, wxID_ANY, wxString{ "20mm" }, wxDefaultPosition, wxDefaultSize, 4, choices_scale);
|
||||||
scale->SetToolTip(_(L("You can choose the dimension of the cube. It's a simple scale, you can modify it in the right panel yourself if you prefer. It's just quicker to select it here.")));
|
scale->SetToolTip(_(L("You can choose the dimension of the cube. It's a simple scale, you can modify it in the right panel yourself if you prefer. It's just quicker to select it here.")));
|
||||||
scale->SetSelection(1);
|
scale->SetSelection(1);
|
||||||
wxString choices_goal[] = { "Dimensional accuracy (default)" , "infill/perimeter overlap", "external perimeter overlap"};
|
wxString choices_goal[] = { "Dimensional accuracy (default)" , "infill/perimeter overlap"/*, "external perimeter overlap"*/};
|
||||||
calibrate = new wxComboBox(this, wxID_ANY, wxString{ "Dimensional accuracy (default)" }, wxDefaultPosition, wxDefaultSize, 3, choices_goal);
|
calibrate = new wxComboBox(this, wxID_ANY, wxString{ "Dimensional accuracy (default)" }, wxDefaultPosition, wxDefaultSize, 3, choices_goal);
|
||||||
calibrate->SetToolTip(_(L("Select a goal, this will change settings to increase the effects to search.")));
|
calibrate->SetToolTip(_(L("Select a goal, this will change settings to increase the effects to search.")));
|
||||||
calibrate->SetSelection(0);
|
calibrate->SetSelection(0);
|
||||||
|
@ -22,10 +22,10 @@ namespace Slic3r {
|
|||||||
namespace GUI {
|
namespace GUI {
|
||||||
|
|
||||||
void CalibrationFlowDialog::create_buttons(wxStdDialogButtonSizer* buttons){
|
void CalibrationFlowDialog::create_buttons(wxStdDialogButtonSizer* buttons){
|
||||||
wxButton* bt = new wxButton(this, wxID_FILE1, _(L("Generate 10% intervals")));
|
wxButton* bt = new wxButton(this, wxID_FILE1, _(L("Generate 10% intervals around current value")));
|
||||||
bt->Bind(wxEVT_BUTTON, &CalibrationFlowDialog::create_geometry_10, this);
|
bt->Bind(wxEVT_BUTTON, &CalibrationFlowDialog::create_geometry_10, this);
|
||||||
buttons->Add(bt);
|
buttons->Add(bt);
|
||||||
bt = new wxButton(this, wxID_FILE2, _(L("Generate 2.5% intervals")));
|
bt = new wxButton(this, wxID_FILE2, _(L("Generate 2% intervals below current value")));
|
||||||
bt->Bind(wxEVT_BUTTON, &CalibrationFlowDialog::create_geometry_2_5, this);
|
bt->Bind(wxEVT_BUTTON, &CalibrationFlowDialog::create_geometry_2_5, this);
|
||||||
buttons->Add(bt);
|
buttons->Add(bt);
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@ class CalibrationFlowDialog : public CalibrationAbstractDialog
|
|||||||
{
|
{
|
||||||
|
|
||||||
public:
|
public:
|
||||||
CalibrationFlowDialog(GUI_App* app, MainFrame* mainframe) : CalibrationAbstractDialog(app, mainframe, "Flow calibration") { create("/calibration/filament_flow/filament_flow.html"); }
|
CalibrationFlowDialog(GUI_App* app, MainFrame* mainframe) : CalibrationAbstractDialog(app, mainframe, "Flow calibration") { create("/calibration/filament_flow/filament_flow.html", wxSize(900, 500)); }
|
||||||
virtual ~CalibrationFlowDialog() {}
|
virtual ~CalibrationFlowDialog() {}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -10,7 +10,7 @@ class CalibrationOverBridgeDialog : public CalibrationAbstractDialog
|
|||||||
{
|
{
|
||||||
|
|
||||||
public:
|
public:
|
||||||
CalibrationOverBridgeDialog(GUI_App* app, MainFrame* mainframe) : CalibrationAbstractDialog(app, mainframe, "Ironing pattern calibration") { std::cout << " html = /calibration/over-bridge_tuning/over-bridge_tuning.html\n"; create("/calibration/over-bridge_tuning/over-bridge_tuning.html"); }
|
CalibrationOverBridgeDialog(GUI_App* app, MainFrame* mainframe) : CalibrationAbstractDialog(app, mainframe, "Ironing pattern calibration") { create("/calibration/over-bridge_tuning/over-bridge_tuning.html", wxSize(900, 500)); }
|
||||||
virtual ~CalibrationOverBridgeDialog() { }
|
virtual ~CalibrationOverBridgeDialog() { }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user