Add z hop to retraction test

This commit is contained in:
lawgicau
2020-08-19 19:44:54 +10:00
parent b344adae5a
commit 23d6b00caa
3 changed files with 412 additions and 376 deletions

View File

@ -461,7 +461,7 @@
<div class="exp"> <div class="exp">
<h2>Retraction Tuning</h2> <h2>Retraction Tuning</h2>
<h5>Aim:</h5> <h5>Aim:</h5>
<p>To set the correct parameters concerning retraction during 3D printing, including retraction distance, speed, and extra restart distance.</p> <p>To set the correct parameters concerning retraction during 3D printing, including retraction distance, speed, extra restart distance and z hop.</p>
<h5>When required:</h5> <h5>When required:</h5>
<p>Initial calibration, any time the hot end or extruder is changed, when trying a new type/brand of filament.</p> <p>Initial calibration, any time the hot end or extruder is changed, when trying a new type/brand of filament.</p>
<h5>Tools:</h5> <h5>Tools:</h5>
@ -474,7 +474,7 @@
<h5>Special note:</h5> <h5>Special note:</h5>
<p>Temperature tuning and retraction tuning are related to each other. You could do them in either order, and it may be necessary to tune back and forth to reach an ideal result. A higher nozzle temperature will promote more oozing and stringing, whereas a lower temperature will reduce oozing and stringing.</p> <p>Temperature tuning and retraction tuning are related to each other. You could do them in either order, and it may be necessary to tune back and forth to reach an ideal result. A higher nozzle temperature will promote more oozing and stringing, whereas a lower temperature will reduce oozing and stringing.</p>
</div> </div>
<p>Besides hot end temperature, there are three parameters we will be tuning relating to retraction. In the table is a description of each as well as where the setting is found in the most popular slicers.</p> <p>Besides hot end temperature, there are four parameters we will be tuning relating to retraction. In the table is a description of each as well as where the setting is found in the most popular slicers.</p>
<table> <table>
<head> <head>
<tr> <tr>
@ -503,6 +503,12 @@
<td>Extruder > Extra restart distance</td> <td>Extruder > Extra restart distance</td>
<td>Printer settings > Extruder 1 > Retraction > Extra length on restart</td> <td>Printer settings > Extruder 1 > Retraction > Extra length on restart</td>
</tr> </tr>
<tr>
<td>Z hop: The amount the nozzle lifts vertically in mm during a travel (non-extruding) movement. After this movement, the correct Z value is then restored before the filament is unretracted/primed again ready for printing.</td>
<td>Travel > Z hop when retracted</td>
<td>Extruder > Retraction vertical lift</td>
<td>Printer settings > Extruder 1 > Retraction > Lift z</td>
</tr>
</tbody> </tbody>
</table> </table>
<div class="exp"> <div class="exp">
@ -511,7 +517,6 @@
<li>Retraction acceleration: This will affect whether the retraction speed can actually be reached. The gcode below does not include any changes to what is set on your printer. You can change this with <a href="https://marlinfw.org/docs/gcode/M204.html" target="_blank">M204</a> and the <b>R</b> argument.</li> <li>Retraction acceleration: This will affect whether the retraction speed can actually be reached. The gcode below does not include any changes to what is set on your printer. You can change this with <a href="https://marlinfw.org/docs/gcode/M204.html" target="_blank">M204</a> and the <b>R</b> argument.</li>
<li>Slicer settings such as coast: Coast stops extrusion slightly early to assist retraction. This varies from slicer to slicer and isn't always necessary to tune.</li> <li>Slicer settings such as coast: Coast stops extrusion slightly early to assist retraction. This varies from slicer to slicer and isn't always necessary to tune.</li>
<li>Linear advance: Linear advance, covered later in this guide, can drastically improve the accuracy of our extrusion. It has a significant impact of retraction (reducing the need), so after configuring linear advance you may need to revisit retraction.</li> <li>Linear advance: Linear advance, covered later in this guide, can drastically improve the accuracy of our extrusion. It has a significant impact of retraction (reducing the need), so after configuring linear advance you may need to revisit retraction.</li>
<li>Z hop: The amount the nozzle lifts vertically in mm during a travel (non-extruding) movement. this could have potentially minor impact on stringing. The generator below has this fixed at <b>0.4mm</b>.</li>
<li>Slicer differences: The gcode generated below was originally sliced by Simplify3D. The settings you establish should translate to your slicer quite well but there may be idiosyncrasies. For instance, Cura measures extra restart distance in volume rather than length.</li> <li>Slicer differences: The gcode generated below was originally sliced by Simplify3D. The settings you establish should translate to your slicer quite well but there may be idiosyncrasies. For instance, Cura measures extra restart distance in volume rather than length.</li>
</ul> </ul>
</div> </div>
@ -564,6 +569,7 @@
<th>Retraction distance (mm)</th> <th>Retraction distance (mm)</th>
<th>Retraction speed</th> <th>Retraction speed</th>
<th>Extra restart distance</th> <th>Extra restart distance</th>
<th>Z hop</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@ -575,36 +581,42 @@
<td><input type="number" min="0" max="20" name="ret_f1" value="6" step="0.1"></td> <td><input type="number" min="0" max="20" name="ret_f1" value="6" step="0.1"></td>
<td><input type="number" min="5" max="200" name="ret_f2" value="40" step="1"></td> <td><input type="number" min="5" max="200" name="ret_f2" value="40" step="1"></td>
<td><input type="number" min="-10" max="10" name="ret_f3" value="0" step="0.1"></td> <td><input type="number" min="-10" max="10" name="ret_f3" value="0" step="0.1"></td>
<td><input type="number" min="0" max="5" name="ret_f5" value="0" step="0.1"></td>
</tr> </tr>
<tr> <tr>
<td style="text-align: center;">E</td> <td style="text-align: center;">E</td>
<td><input type="number" min="0" max="20" name="ret_e1" value="6" step="0.1"></td> <td><input type="number" min="0" max="20" name="ret_e1" value="6" step="0.1"></td>
<td><input type="number" min="5" max="200" name="ret_e2" value="40" step="1"></td> <td><input type="number" min="5" max="200" name="ret_e2" value="40" step="1"></td>
<td><input type="number" min="-10" max="10" name="ret_e3" value="0" step="0.1"></td> <td><input type="number" min="-10" max="10" name="ret_e3" value="0" step="0.1"></td>
<td><input type="number" min="0" max="5" name="ret_e5" value="0" step="0.1"></td>
</tr> </tr>
<tr> <tr>
<td style="text-align: center;">D</td> <td style="text-align: center;">D</td>
<td><input type="number" min="0" max="20" name="ret_d1" value="6" step="0.1"></td> <td><input type="number" min="0" max="20" name="ret_d1" value="6" step="0.1"></td>
<td><input type="number" min="5" max="200" name="ret_d2" value="40" step="1"></td> <td><input type="number" min="5" max="200" name="ret_d2" value="40" step="1"></td>
<td><input type="number" min="-10" max="10" name="ret_d3" value="0" step="0.1"></td> <td><input type="number" min="-10" max="10" name="ret_d3" value="0" step="0.1"></td>
<td><input type="number" min="0" max="5" name="ret_d5" value="0" step="0.1"></td>
</tr> </tr>
<tr> <tr>
<td style="text-align: center;">C</td> <td style="text-align: center;">C</td>
<td><input type="number" min="0" max="20" name="ret_c1" value="6" step="0.1"></td> <td><input type="number" min="0" max="20" name="ret_c1" value="6" step="0.1"></td>
<td><input type="number" min="5" max="200" name="ret_c2" value="40" step="1"></td> <td><input type="number" min="5" max="200" name="ret_c2" value="40" step="1"></td>
<td><input type="number" min="-10" max="10" name="ret_c3" value="0" step="0.1"></td> <td><input type="number" min="-10" max="10" name="ret_c3" value="0" step="0.1"></td>
<td><input type="number" min="0" max="5" name="ret_c5" value="0" step="0.1"></td>
</tr> </tr>
<tr> <tr>
<td style="text-align: center;">B</td> <td style="text-align: center;">B</td>
<td><input type="number" min="0" max="20" name="ret_b1" value="6" step="0.1"></td> <td><input type="number" min="0" max="20" name="ret_b1" value="6" step="0.1"></td>
<td><input type="number" min="5" max="200" name="ret_b2" value="40" step="1"></td> <td><input type="number" min="5" max="200" name="ret_b2" value="40" step="1"></td>
<td><input type="number" min="-10" max="10" name="ret_b3" value="0" step="0.1"></td> <td><input type="number" min="-10" max="10" name="ret_b3" value="0" step="0.1"></td>
<td><input type="number" min="0" max="5" name="ret_b5" value="0" step="0.1"></td>
</tr> </tr>
<tr> <tr>
<td style="text-align: center;">A</td> <td style="text-align: center;">A</td>
<td><input type="number" min="0" max="20" name="ret_a1" value="6" step="0.1"></td> <td><input type="number" min="0" max="20" name="ret_a1" value="6" step="0.1"></td>
<td><input type="number" min="5" max="200" name="ret_a2" value="40" step="1"></td> <td><input type="number" min="5" max="200" name="ret_a2" value="40" step="1"></td>
<td><input type="number" min="-10" max="10" name="ret_a3" value="0" step="0.1"></td> <td><input type="number" min="-10" max="10" name="ret_a3" value="0" step="0.1"></td>
<td><input type="number" min="0" max="5" name="ret_a5" value="0" step="0.1"></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>

View File

@ -186,21 +186,27 @@ function processRetraction(){
var a1 = document.retractionForm.ret_a1.value; var a1 = document.retractionForm.ret_a1.value;
var a2 = document.retractionForm.ret_a2.value*60; var a2 = document.retractionForm.ret_a2.value*60;
var a3 = document.retractionForm.ret_a3.value; var a3 = document.retractionForm.ret_a3.value;
var a5 = document.retractionForm.ret_a5.value;
var b1 = document.retractionForm.ret_b1.value; var b1 = document.retractionForm.ret_b1.value;
var b2 = document.retractionForm.ret_b2.value*60; var b2 = document.retractionForm.ret_b2.value*60;
var b3 = document.retractionForm.ret_b3.value; var b3 = document.retractionForm.ret_b3.value;
var b5 = document.retractionForm.ret_b5.value;
var c1 = document.retractionForm.ret_c1.value; var c1 = document.retractionForm.ret_c1.value;
var c2 = document.retractionForm.ret_c2.value*60; var c2 = document.retractionForm.ret_c2.value*60;
var c3 = document.retractionForm.ret_c3.value; var c3 = document.retractionForm.ret_c3.value;
var c5 = document.retractionForm.ret_c5.value;
var d1 = document.retractionForm.ret_d1.value; var d1 = document.retractionForm.ret_d1.value;
var d2 = document.retractionForm.ret_d2.value*60; var d2 = document.retractionForm.ret_d2.value*60;
var d3 = document.retractionForm.ret_d3.value; var d3 = document.retractionForm.ret_d3.value;
var d5 = document.retractionForm.ret_d5.value;
var e1 = document.retractionForm.ret_e1.value; var e1 = document.retractionForm.ret_e1.value;
var e2 = document.retractionForm.ret_e2.value*60; var e2 = document.retractionForm.ret_e2.value*60;
var e3 = document.retractionForm.ret_e3.value; var e3 = document.retractionForm.ret_e3.value;
var e5 = document.retractionForm.ret_e5.value;
var f1 = document.retractionForm.ret_f1.value; var f1 = document.retractionForm.ret_f1.value;
var f2 = document.retractionForm.ret_f2.value*60; var f2 = document.retractionForm.ret_f2.value*60;
var f3 = document.retractionForm.ret_f3.value; var f3 = document.retractionForm.ret_f3.value;
var f5 = document.retractionForm.ret_f5.value;
var customStart = document.retractionForm.startgcode.value; var customStart = document.retractionForm.startgcode.value;
var retraction = originalRetraction; var retraction = originalRetraction;
if(pc == 1){ if(pc == 1){
@ -281,23 +287,41 @@ function processRetraction(){
// A section // A section
retraction = retraction.replace(/;retractionA/g, "G1 E-"+a1+" F"+a2+" ; custom retraction - A"); retraction = retraction.replace(/;retractionA/g, "G1 E-"+a1+" F"+a2+" ; custom retraction - A");
retraction = retraction.replace(/;unretractionA/g, "G1 E"+a3+" F"+a2+" ; custom un-retraction/prime - A"); retraction = retraction.replace(/;unretractionA/g, "G1 E"+a3+" F"+a2+" ; custom un-retraction/prime - A");
if(a5 > 0){
retraction = retraction.replace(/;zhopupA/g, "G91\nG1 Z"+a5+" F1200 ; custom z hop - A\nG90");
}
// B section // B section
retraction = retraction.replace(/;retractionB/g, "G1 E-"+b1+" F"+b2+" ; custom retraction - B"); retraction = retraction.replace(/;retractionB/g, "G1 E-"+b1+" F"+b2+" ; custom retraction - B");
retraction = retraction.replace(/;unretractionB/g, "G1 E"+b3+" F"+b2+" ; custom un-retraction/prime - B"); retraction = retraction.replace(/;unretractionB/g, "G1 E"+b3+" F"+b2+" ; custom un-retraction/prime - B");
if(b5 > 0){
retraction = retraction.replace(/;zhopupB/g, "G91\nG1 Z"+b5+" F1200 ; custom z hop - B\nG90");
}
// C section // C section
retraction = retraction.replace(/;retractionC/g, "G1 E-"+c1+" F"+c2+" ; custom retraction - C"); retraction = retraction.replace(/;retractionC/g, "G1 E-"+c1+" F"+c2+" ; custom retraction - C");
retraction = retraction.replace(/;unretractionC/g, "G1 E"+c3+" F"+c2+" ; custom un-retraction/prime - C"); retraction = retraction.replace(/;unretractionC/g, "G1 E"+c3+" F"+c2+" ; custom un-retraction/prime - C");
if(c5 > 0){
retraction = retraction.replace(/;zhopupC/g, "G91\nG1 Z"+c5+" F1200 ; custom z hop - C\nG90");
}
// D section // D section
retraction = retraction.replace(/;retractionD/g, "G1 E-"+d1+" F"+d2+" ; custom retraction - D"); retraction = retraction.replace(/;retractionD/g, "G1 E-"+d1+" F"+d2+" ; custom retraction - D");
retraction = retraction.replace(/;unretractionD/g, "G1 E"+d3+" F"+d2+" ; custom un-retraction/prime - D"); retraction = retraction.replace(/;unretractionD/g, "G1 E"+d3+" F"+d2+" ; custom un-retraction/prime - D");
if(d5 > 0){
retraction = retraction.replace(/;zhopupD/g, "G91\nG1 Z"+d5+" F1200 ; custom z hop - D\nG90");
}
// E section // E section
retraction = retraction.replace(/;retractionE/g, "G1 E-"+e1+" F"+e2+" ; custom retraction - E"); retraction = retraction.replace(/;retractionE/g, "G1 E-"+e1+" F"+e2+" ; custom retraction - E");
retraction = retraction.replace(/;unretractionE/g, "G1 E"+e3+" F"+e2+" ; custom un-retraction/prime - E"); retraction = retraction.replace(/;unretractionE/g, "G1 E"+e3+" F"+e2+" ; custom un-retraction/prime - E");
if(e5 > 0){
retraction = retraction.replace(/;zhopupE/g, "G91\nG1 Z"+e5+" F1200 ; custom z hop - E\nG90");
}
// F section // F section
retraction = retraction.replace(/;retractionF/g, "G1 E-"+f1+" F"+f2+" ; custom retraction - F"); retraction = retraction.replace(/;retractionF/g, "G1 E-"+f1+" F"+f2+" ; custom retraction - F");
retraction = retraction.replace(/;unretractionF/g, "G1 E"+f3+" F"+f2+" ; custom un-retraction/prime - F"); retraction = retraction.replace(/;unretractionF/g, "G1 E"+f3+" F"+f2+" ; custom un-retraction/prime - F");
if(document.retractionForm.start.checked == true) { if(document.retractionForm.start.checked == true) {
retraction = retraction.replace(/;customstart/, "; custom start gcode\n"+customStart); retraction = retraction.replace(/;customstart/, "; custom start gcode\n"+customStart);
if(f5 > 0){
retraction = retraction.replace(/;zhopupF/g, "G91\nG1 Z"+f5+" F1200 ; custom z hop - F\nG90");
}
} }
downloadFile('retraction.gcode', retraction); downloadFile('retraction.gcode', retraction);
} }

File diff suppressed because it is too large Load Diff