Teweak accel test- full feedrate control

This commit is contained in:
lawgicau
2021-07-19 16:25:34 +10:00
parent 3c60dddb9d
commit d74cbdd0c0
3 changed files with 10 additions and 8 deletions

View File

@ -710,7 +710,7 @@
<br />Wipe moves the nozzle back towards the recently printed geometry to wipe ooze off. If you are having trouble reducing stringing, it may be a good option. <br />Wipe moves the nozzle back towards the recently printed geometry to wipe ooze off. If you are having trouble reducing stringing, it may be a good option.
<br />Both coast and wipe are turned off in the gcode generator below.</li> <br />Both coast and wipe are turned off in the gcode generator below.</li>
<li>Maximum extruder feedrate: Your firmware may have a hard limit imposed on extruder movement that is below the retraction speed values you are attempting to use with the form above. You may need to use <a href="https://marlinfw.org/docs/gcode/M203.html" target="_target">M203</a> to raise the extruder feedrate limit to try higher values for retraction speed. This potentially needs to be saved with <b>M500</b> if you want it to be permanent.</li> <li>Maximum extruder feedrate: Your firmware may have a hard limit imposed on extruder movement that is below the retraction speed values you are attempting to use with the form above. You may need to use <a href="https://marlinfw.org/docs/gcode/M203.html" target="_target">M203</a> to raise the extruder feedrate limit to try higher values for retraction speed. This potentially needs to be saved with <b>M500</b> if you want it to be permanent.</li>
<li>Travel feedrate: A travel move is one where the printer moves to a new location without extruding. The slower this move is, the more time filament will have to ooze from the nozzle and add to stringing. The feedrate is set to 100mm/sec in the gcode generator above. Matching this in your slicer is advised if these tests look better than your own slicer results.</li> <li>Travel feedrate: A travel move is one where the printer moves to a new location without extruding. The slower this move is, the more time filament will have to ooze from the nozzle and add to stringing. The default feedrate is set to 100mm/sec in the gcode generator above, and increases or decreases based on the user feedrate input. Matching this in your slicer is advised if these tests look better than your own slicer results.</li>
<li>Travel acceleration: This test does not manipulate travel acceleration but increasing its value may help reduce stringing. You can change travel acceleration with <a href="https://marlinfw.org/docs/gcode/M204.html" target="_blank">M204</a> and the <b>T</b> argument.</li> <li>Travel acceleration: This test does not manipulate travel acceleration but increasing its value may help reduce stringing. You can change travel acceleration with <a href="https://marlinfw.org/docs/gcode/M204.html" target="_blank">M204</a> and the <b>T</b> argument.</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>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>

View File

@ -238,8 +238,9 @@ var feedrate = `<h4>Feedrate</h4>
`; `;
var accel = `<h4>Base feedrate/speed</h4> var accel = `<h4>Base feedrate/speed</h4>
<p>You can specify the feedrate for X and Y movements. The inner perimeter will be set to this speed and the outer perimeter 50% of this speed. It is recommend to follow the process above to calculate safe limits for feedrate.</p> <p>You can specify the feedrate for X and Y movements. Both the inner and outer perimeter speed can be specified. It is recommend to follow the process above to calculate safe limits for feedrate.</p>
<label>Base feedrate (mm/sec): <input type="number" name="feedrate" value="60" min="20" max="500"></label> <p><label>Inner perimeter feedrate (mm/sec): <input type="number" name="innerFeedrate" value="60" min="5" max="1000" step="1"></label></p>
<p><label>Outer perimeter feedrate (mm/sec): <input type="number" name="outerFeedrate" value="60" min="5" max="1000" step="1"></label></p>
<h4>Acceleration and jerk/junction deviation</h4> <h4>Acceleration and jerk/junction deviation</h4>
<p>After entering <b>M503</b>, I have determined my 3D printer firmware uses:</p> <p>After entering <b>M503</b>, I have determined my 3D printer firmware uses:</p>
<label>Jerk: <input type="radio" value="jerk" name="jerk_or_jd" checked="checked" onchange="toggleJ()"></label> <label>Jerk: <input type="radio" value="jerk" name="jerk_or_jd" checked="checked" onchange="toggleJ()"></label>

View File

@ -216,7 +216,8 @@ function processGcode(formName) {
} }
// collect acceleration inputs // collect acceleration inputs
if(name == "accelerationForm"){ if(name == "accelerationForm"){
var feed = formName.feedrate.value*60; var inner = formName.innerFeedrate.value*60;
var outer = formName.outerFeedrate.value*60;
var jerk_or_jd = formName.jerk_or_jd.value; var jerk_or_jd = formName.jerk_or_jd.value;
var a1 = formName.accel_a1.value; var a1 = formName.accel_a1.value;
var a2 = formName.accel_a2.value; var a2 = formName.accel_a2.value;
@ -401,7 +402,7 @@ function processGcode(formName) {
gcode = gcodeArray.join("\n"); gcode = gcodeArray.join("\n");
} }
} }
// experimental feedrate change // feedrate change
if(name != "accelerationForm"){ if(name != "accelerationForm"){
if(feedMod != 1){ if(feedMod != 1){
var gcodeArray = gcode.split(/\n/g); var gcodeArray = gcode.split(/\n/g);
@ -422,9 +423,9 @@ function processGcode(formName) {
// changes for acceleration test // changes for acceleration test
if(name == "accelerationForm"){ if(name == "accelerationForm"){
// edit feedrates // edit feedrates
gcode = gcode.replace(/F3600/g, "F"+feed+" ; custom feedrate - full"); gcode = gcode.replace(/F3600/g, "F"+outer+" ; custom outer perimeter feedrate");
gcode = gcode.replace(/F2880/g, "F"+feed+" ; custom feedrate - full"); gcode = gcode.replace(/F2880/g, "F"+outer+" ; custom outer perimeter feedrate");
gcode = gcode.replace(/F2160/g, "F"+feed/2+" ; custom feedrate - half"); gcode = gcode.replace(/F2160/g, "F"+inner+" ; custom inner perimeter feedrate");
// add acceleration segments // add acceleration segments
gcode = gcode.replace(/;process Process-1/, "M201 X50000 Y50000 Z50000; custom raise acceleration limits\nM204 P"+a1+" ; custom acceleration - A\n;j1"); gcode = gcode.replace(/;process Process-1/, "M201 X50000 Y50000 Z50000; custom raise acceleration limits\nM204 P"+a1+" ; custom acceleration - A\n;j1");
gcode = gcode.replace(/;process Process-2/, "M204 P"+b1+" ; custom acceleration - B\n;j2"); gcode = gcode.replace(/;process Process-2/, "M204 P"+b1+" ; custom acceleration - B\n;j2");