mirror of
https://github.com/teachingtechYT/teachingtechYT.github.io.git
synced 2024-08-30 18:23:26 +00:00
Add speed tower test, tweak start gcode preheating
#258 Hot end temperature target is now set to 50 degrees less than target temperature for homing and probing, and then set to the actual target temperature before the print starts.
This commit is contained in:
@ -21,6 +21,7 @@
|
||||
<li><a href="#accel">Acceleration Tuning</a></li>
|
||||
<li><a href="#linadv">Linear Advance</a></li>
|
||||
<li><a href="#xyzsteps">XYZ steps Calibration</a></li>
|
||||
<li><a href="#speed">Speed Tuning</a></li>
|
||||
</ul>
|
||||
|
||||
<div id="intro">
|
||||
@ -72,10 +73,10 @@ M106 S0
|
||||
;bed0a
|
||||
;bed0b
|
||||
;temp0a
|
||||
;temp0b
|
||||
G28 ; home all axes
|
||||
;G29 ; probe ABL
|
||||
;M420 S1 ; restore ABL mesh
|
||||
;M420 S1 ; restore ABL mesh
|
||||
;temp0b
|
||||
;customstart
|
||||
G0 Z3; fix for delta printers that home at max`;</pre>
|
||||
<p>The default end gcode is as follows (this can be completely replaced by ticking the approprpriate option on each form):</p>
|
||||
@ -156,6 +157,18 @@ M84 ; disable motors
|
||||
<li>'Process-4' from 15mm</li>
|
||||
<li>'Process-5' from 20mm</li>
|
||||
</ul>
|
||||
<p>Speed tower test</p>
|
||||
<ul>
|
||||
<li>Single outline corkscrew printing mode</li>
|
||||
<li>0 top layers</li>
|
||||
<li>1 bottom layer</li>
|
||||
<li>100% outline underspeed</li>
|
||||
<li>'Process-1' from 0mm</li>
|
||||
<li>'Process-2' from 10mm</li>
|
||||
<li>'Process-3' from 20mm</li>
|
||||
<li>'Process-4' from 30mm</li>
|
||||
<li>'Process-5' from 40mm</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="frame">
|
||||
@ -806,7 +819,6 @@ M84 ; disable motors
|
||||
<a href="#" data-featherlight="img/temperatureresults.jpg"><img loading="lazy" class="thumb" src="img/temperatureresults.jpg" /></a>
|
||||
<p>As expected, surfaces becomes more glossy as the temperature increases. What was unexpected was surface rippling being more obvious as the temperatures went up. Overhangs and bridges all look good on this test, however the little spikes could not be printed accurately at the higher temps due to the part cooling system not keeping up. The coolest spike in segment A was very brittle, the spike on segment C the strongest, and the upper spikes too malformed to test accurately.</p>
|
||||
<p>My previous hot end temperature was 200 degrees for this printer, but I will consider raising it to 210 degrees after this test to gain some interlayer strength without any trouble with part cooling.</p>
|
||||
<p class="warning">Some users have experienced printing failures with gcode generated by this site when their regular slicer is able to create a successful print with the same STL. The gcode on this site does not use any slow down for short layers to aid cooling, whereas default profiles in some slicers do. This means that your regular slicer may be printing this file a fair bit slower than you realise. To match this on this site, simply lower the default feedrate in the form above.</p>
|
||||
</div>
|
||||
|
||||
<div id="accel">
|
||||
@ -903,6 +915,7 @@ M84 ; disable motors
|
||||
<a href="#" data-featherlight="img/m205.jpg"><img loading="lazy" class="thumb" src="img/m205.jpg" /></a>
|
||||
<p>Use the following form to customise the gcode to your liking:</p>
|
||||
<h6 id="acc">Acceleration & jerk/junction deviation tuning tower generator</h6>
|
||||
<p>The STL for this test is available here: <a href="files/accelerationtower.stl">accelerationtower.stl</a></p>
|
||||
<!-- accelerationForm -->
|
||||
<form name="accelerationForm" id="accelerationForm" onsubmit="return false;">
|
||||
<script>
|
||||
@ -1098,7 +1111,85 @@ M84 ; disable motors
|
||||
<p>Sometimes a machine can be upgraded to make it more accurate. For instance, I have a theory that using a belt pulley rather than a smooth surfaced bearing as a belt idler should have the belt ride the idler more consistently, due to the teeth of the belt deforming unevenly over the bearing surface:</p>
|
||||
<a href="#" data-featherlight="img/bearingidlerdeformation.jpg"><img loading="lazy" class="thumb" src="img/bearingidlerdeformation.jpg" /></a>
|
||||
<p>One final measure, that is the least desirable, is to design parts to be printed bigger or smaller to compensate. This is a band aid approach and falls apart very quickly once we print geometry designed by other people.</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="speed">
|
||||
<div class="exp">
|
||||
<h2>Speed/Feedrate Tuning</h2>
|
||||
<h5>Aim:</h5>
|
||||
<p>To find the maximum feedrate suitable for the outer walls, in terms of surface artefacts, flow rate and reliable extrusion.</p>
|
||||
<h5>When required:</h5>
|
||||
<p>This is an optional step, and only applies to specific scenarios. Examples include finding a safe feedrate for a difficult to extrude flexible filament, and tuning outer wall speed to reduce 'noise' on external surfaces.</p>
|
||||
<h5>Tools:</h5>
|
||||
<p>Terminal software such as <a href="https://www.pronterface.com/" target="_blank">Pronterface</a> or <a href="https://octoprint.org/" target="_blank">Octoprint</a>.</p>
|
||||
<p>Gcode generator on this page.</p>
|
||||
<p>Instructions on how to setup <a href="troubleshooting.html#tools" target="_blank">terminal software</a> can be found <a href="troubleshooting.html#terminal" target="_blank">here.</a></p>
|
||||
<button class="zoom" onclick="$('html, body').animate({scrollTop: ($('#spd').offset().top-200)},500);">Scroll to gcode generator</button>
|
||||
</div>
|
||||
<p>The speed at which our 3D printer (or any CNC machine) moves is better described as 'feedrate'. Like any speed measurement, it is a calculation of distance travelled over time. In 3D printing, the most common feedrate units are mm/sec and mm/min.</p>
|
||||
<p>Most of the time, we want to print as fast as possible, at least up to the point where print quality deteriorates beyond our personal threshold.</p>
|
||||
<h2>Surface artefacts related to feedrate</h2>
|
||||
<p>Some printers may have a combination of hardware and software that produces noise or surface artefacts with feedate as a factor. This is the case for the image submitted by midicdj1000, where a chnge in feedrate for the outer walls alters the pattern on this surface:</p>
|
||||
<a href="#" data-featherlight="img/speedartefacts.jpg"><img loading="lazy" class="thumb" src="img/speedartefacts.jpg" /></a>
|
||||
<p>The test on this page is therefore useful for finding an ideal feedrate for outer wall surface quality.</p>
|
||||
<h2>Feedrate limitations from the extruder drive</h2>
|
||||
<p>The tools on the <a href="calibration.html#accel" target="_blank">Acceleration Tuning</a> tab will allow you to calculate the maximum feedrate your 3D printer can move at and still maintain reliable extrusion. This relates to how quickly filament can be melted as it travels through the hot end. Once the filament cannot be melted sufficiently, it won't flow properly through the system and under extrusion or jams will occur.</p>
|
||||
<p>Sometimes the ability of the heater is not the limiting factor, and instead the amount of grip and push from the extruder drive. Consider a flexible filament such as TPU. TPU doesn't need a particularly high temperature hot end to melt it properly, but many extruder drives struggle to grip and push the filament towards the hot end without it buckling and jamming. The test on this page can be used in these situations to find how fast you can print before the system breaks down.</p>
|
||||
<h2>Feedrate variations and modifiers in your slicer profile</h2>
|
||||
<p>It is important to understand how feedrate is handled by the slicer software. Slicers generally have a default/base feedrate that most speed calculations are based on. Features such as perimeters, external perimeters and solid infill are reduced in speed to aid visual print quality. Features such as internal infill are sped up because they will never be seen. The image below shows examples interfaces for this in several slicers:</p>
|
||||
<a href="#" data-featherlight="img/slicerfeedratemodifiers.jpg"><img loading="lazy" class="thumb" src="img/slicerfeedratemodifiers.jpg" /></a>
|
||||
<p>Sometimes a person will claim they can print at a certain feedrate. This is often not the whole story, as their base feedrate might be what they are talking about, but much of the print will actually be completed at a slower speed. Add in slicer features like automatic slow down for layer cooling and firmware settings like acceleration, jerk and junction deviation and there is quite a bit of deviation.</p>
|
||||
<h2>The philosophy of this test - M220</h2>
|
||||
<p>This feedrate test tower is sliced in vase mode. This is for several reasons:</p>
|
||||
<ul>
|
||||
<li>After the first layer, a vase mode print only has a single type of feature: external perimeter. This makes it clear what the actual feedrate is for each segment of the tower.</li>
|
||||
<li>Vase mode prints have continuous extrusion after the sold base infill is completed and therefore don't require retraction. This means we will not be confused by artefacts introduced from retractions and layer changes.</li>
|
||||
<li>Vase mode prints don't have any travel moves after the solid bottom layers are complete. This means we can increase the print feedrate without worrying about the travel feedrate being proportionally increased to a dangerous value.</li>
|
||||
<li>Because of the above reasons, vase mode makes it ideal to use the <b>M220</b> feedrate modifier gcode to alter the feedrate for each segment of the test. This is supported in <a href="https://marlinfw.org/docs/gcode/M220.html" target="_blank">Marlin</a>, <a href="https://www.klipper3d.org/G-Codes.html" target="_blank">Klipper</a> and <a href="https://duet3d.dozuki.com/Wiki/M220" target="_blank">RepRapFirmware</a>. Changing your feedrate mid print from the printer's LCD controls or web inteface uses this feature of the firmware. This test will insert <b>M220</b> commands into the gcode for speed changes on the fly.</li>
|
||||
</ul>
|
||||
<p>M220 can be a double edge sword because it also affects the speed of retraction movements. If you are performing something like a retraction test, M220 is not suitable. In this case, however, due to the use of vase mode, M220 is a simple way for us to start with a slower feedrate and easily increase it throughout the print at set height intervals.</p>
|
||||
<h2>Maximum feedrate limits in firmware</h2>
|
||||
<p>Every firmware has a safety feature to limit the feedrate to a user set maximum. This prevents a typo in the slicer or terminal command from producing a move so fast it damages the printer. Use the following instructions to check what feedrate limit is in place for your firmware and temporarily raise it if necessary.</p>
|
||||
<script>document.write(firmwareSelector);</script>
|
||||
<div class="marlinContent">
|
||||
<h4>Marlin</h4>
|
||||
<p>Marlin limits the maximum feedrate with the <a href="https://marlinfw.org/docs/gcode/M203.html" target="_blank">M203</a> gcode.</p>
|
||||
<p>You can enter <b>M203</b> into a terminal and the maximum set feedrates will be reported.</p>
|
||||
<p>If you wish to raise these limits, re-enter <b>203</b> and use the <b>X</b> and <b>Y</b> arguments to set the max feedrate, typically in mm/sec. eg:</p>
|
||||
<pre>M203 X500 Y500</pre>
|
||||
<p>where 500 is a feedrate of 500 mm/sec.</p>
|
||||
<p>If you wish this change to be permanent, save to EEPROM with <a href="https://marlinfw.org/docs/gcode/M500.html" target="_blank">M500</a>.</p>
|
||||
</div>
|
||||
<div class="klipperContent">
|
||||
<h4>Klipper</h4>
|
||||
<p>Klipper limits the maximum feedrate in <b>printer.cfg</b>with <a href="https://www.klipper3d.org/Config_Reference.html#printer" target="_blank">MAX_VELOCITY</a>.</p>
|
||||
<p>You can change this value and restart Klipper to raise it, or temporarily override it by entering:</p>
|
||||
<pre>SET_VELOCITY_LIMIT VELOCITY=500</pre>
|
||||
<p>in the terminal where <i>500</i> is a max feedrate of 500 mm/sec.</p>
|
||||
</div>
|
||||
<div class="rrfContent">
|
||||
<h4>RepRapFirmware</h4>
|
||||
<p>RRF limits the maximum feedrate with the <a href="https://duet3d.dozuki.com/Wiki/M203" target="_blank">M203</a> gcode.</p>
|
||||
<p>You can see your current value in <b>config.g</b> under <b>M203</b>.</p>
|
||||
<p>If you wish to raise the limits, edit the <b>X</b> and <b>Y</b> arguments for <b>M203</b> to set the max feedrate. eg:</p>
|
||||
<pre>M201 X3000 Y3000</pre>
|
||||
<p>Remember that RRF uses mm/min instead of mm/sec, so this example uses a value of 500 mm/sec. Convert from mm/sec to mm/min by multiplying by 60. When editing <b>config.g</b>, do not omit the arguments for <b>Z</b> and <b>E</b>. Only <b>X</b> and <b>Y</b> potentially need modifiying for this test so leave the values for <b>Z</b> and <b>E</b> untouched.</p>
|
||||
<p>Later versions of RRF also use the <b>I</b> argument to set the minimum overall feedrate. It may be necessary to lower this value if you want a particularly slow feedrate for segments of the tuning tower.</p>
|
||||
</div>
|
||||
<h6 id="spd">Speed/feedrate tuning tower generator</h6>
|
||||
<p>The STL for this test is available here: <a href="files/speedtower.stl">speedtower.stl</a></p>
|
||||
<!-- speedForm -->
|
||||
<form name="speedForm" id="speedForm" onsubmit="return false;">
|
||||
<script>
|
||||
createForm("speed");
|
||||
</script>
|
||||
<p><input type="button" onclick="processGcode(form)" value="Download Gcode"></p>
|
||||
<p><input type="button" onclick="resetFormToDefaults(form)" value="Reset parameters"> <input type="button" onclick="outputSettings(form)" value="Output Settings Summary"></p>
|
||||
</form>
|
||||
<h2>Interpreting Results:</h2>
|
||||
<p>Please use the following video as a guide to this test:</p>
|
||||
<iframe loading="lazy" width="640" height="480" src="https://www.youtube.com/embed/CZC5n2J8k_c" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|
||||
<p>You may wish to stop the print early if it is clear extrusion has ceased or become unreliable. This may prevent the need for disassembly of the extruder to clear the blockage.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div id="up"></div>
|
||||
|
BIN
files/speedtower.stl
Normal file
BIN
files/speedtower.stl
Normal file
Binary file not shown.
BIN
img/slicerfeedratemodifiers.jpg
Normal file
BIN
img/slicerfeedratemodifiers.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 186 KiB |
BIN
img/speedartefacts.jpg
Normal file
BIN
img/speedartefacts.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 239 KiB |
BIN
img/speeddiagram.jpg
Normal file
BIN
img/speeddiagram.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 58 KiB |
@ -7,10 +7,10 @@ M106 S0
|
||||
;bed0a
|
||||
;bed0b
|
||||
;temp0a
|
||||
;temp0b
|
||||
G28 ; home all axes
|
||||
;G29 ; probe ABL
|
||||
;M420 S1 ; restore ABL mesh
|
||||
;M420 S1 ; restore ABL mesh
|
||||
;temp0b
|
||||
;customstart
|
||||
G0 Z3; fix for delta printers that home at max`;
|
||||
|
||||
|
@ -314,12 +314,55 @@ var retractionTower = /*html*/ `<h4>Retraction</h4>
|
||||
</tbody>
|
||||
</table>`;
|
||||
|
||||
var feedrate = /*html*/ `<h4>Feedrate</h4>
|
||||
var feedrateReg = /*html*/ `<h4>Feedrate</h4>
|
||||
<p>The default printing speed is 60 mm/sec, with modifiers including 60% for perimeters, 80% for solid infill, travel moves 166%, and 50% of these for the first layer. Modify the base feedrate here and the generated gcode will be modified using the same proportions (<b>calculated feedrates shown in grey</b>). Please note extruder retraction/unretraction and Z-hop speeds will be unaffected by this.</p>
|
||||
<p><label>Base feedrate (mm/sec): <input type="number" name="baseFeedrate" value="60" min="5" max="1000" step="1" onchange="updateFeeds(this.value);"></label>
|
||||
<span class="summary">Perimeters: <b><span class="perimFeed">36</span> mm/s</b></span><span class="summary">Solid infill: <b><span class="solidFeed">48</span> mm/s</b></span><span class="summary">Travel moves: <b><span class="travelFeed">100</span> mm/s</b></span><span class="summary">First layer: <b><span class="firstFeed">30</span> mm/s</b></span></p>
|
||||
`;
|
||||
|
||||
var feedrateTower = /*html*/ `<h4>Feedrate/speed</h4>
|
||||
<p>The default printing speed is modified with 100% for perimeters, 166% for travel moves, and 50% of these for the first layer. For segment A, generated gcode will be modified using these proportions (<b>calculated feedrates shown in grey</b>). Please note extruder retraction/unretraction and Z-hop speeds will be unaffected by this.</p>
|
||||
<p>In this test the feedrate you enter is for the single, outer perimeter. Select a safe feedrate for segment A to ensure good adhesion with the bed. Increase feedrate for segments B to E to your liking. As this print is completed in vase mode, there are no retractions.</p>
|
||||
<p><span class="sug">Suggested increments for how much to vary the value for each segment are shown in green.</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Reference diagram</th>
|
||||
<th>Segment</th>
|
||||
<th>Feedrate (mm/sec) <span class="sug">± 5-20</span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td rowspan="5"><img src="img/speeddiagram.jpg" /></td>
|
||||
<td style="text-align: center;">E</td>
|
||||
<td>Perimeter feedrate: <input type="number" name="feedrateE" value="60" min="5" max="1000" step="1"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center;">D</td>
|
||||
<td>Perimeter feedrate: <input type="number" name="feedrateD" value="50" min="5" max="1000" step="1"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center;">C</td>
|
||||
<td>Perimeter feedrate: <input type="number" name="feedrateC" value="40" min="5" max="1000" step="1"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center;">B</td>
|
||||
<td>Perimeter feedrate: <input type="number" name="feedrateB" value="30" min="5" max="1000" step="1"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center;">A</td>
|
||||
<td>Perimeter feedrate: <input type="number" name="baseFeedrate" value="20" min="5" max="1000" step="1" onchange="updateFeedsTower(this.value);">
|
||||
<p><span class="summary">Solid infill: <b><span class="solidFeedTower">48</span> mm/s</b></span><span class="summary">Travel moves: <b><span class="travelFeedTower">100</span> mm/s</b></span><span class="summary">First layer: <b><span class="firstFeedTower">30</span> mm/s</b></span></p><p>The above feedrate modifiers only apply to the first layer.</p></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
`;
|
||||
|
||||
var feedrateWarning = /*html*/ `
|
||||
<p class="warning">Some users have experienced printing failures with gcode generated by this site when their regular slicer is able to create a successful print with the same STL. The gcode on this site does not use any slow down for short layers to aid cooling, whereas default profiles in some slicers do. This means that your regular slicer may be printing this file a fair bit slower than you realise. To match this on this site, simply lower the default feedrate in the form above.</p>`
|
||||
|
||||
|
||||
var accel = /*html*/ `<h4>Base feedrate/speed</h4>
|
||||
<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>
|
||||
<p><label>Inner perimeter feedrate (mm/sec): <input type="number" name="innerFeedrate" value="60" min="5" max="1000" step="1"></label></p>
|
||||
@ -436,8 +479,13 @@ function createForm(n){
|
||||
}
|
||||
if(n == "acceleration"){
|
||||
document.write(accel);
|
||||
} else if(n == "speed"){
|
||||
document.write(feedrateTower);
|
||||
} else {
|
||||
document.write(feedrate);
|
||||
document.write(feedrateReg);
|
||||
}
|
||||
if(n == "temperature") {
|
||||
document.write(feedrateWarning);
|
||||
}
|
||||
document.write(endGcode);
|
||||
document.write(preview);
|
||||
|
@ -110,6 +110,12 @@ function updateFeeds(feedrate) {
|
||||
$('.firstFeed').html(Math.round(feedrate*0.5));
|
||||
}
|
||||
|
||||
function updateFeedsTower(feedrate) {
|
||||
$('.solidFeedTower').html(Math.round(feedrate*0.8));
|
||||
$('.travelFeedTower').html(Math.round(feedrate*1.67));
|
||||
$('.firstFeedTower').html(Math.round(feedrate*0.5));
|
||||
}
|
||||
|
||||
function processGcode(formName) {
|
||||
var name = formName.name;
|
||||
var description = formName.description.value;
|
||||
@ -132,7 +138,7 @@ function processGcode(formName) {
|
||||
var fanPercentage = formName.fanSpeed.value;
|
||||
var fanSpeed = Math.round(fanPercentage*2.55);
|
||||
}
|
||||
if(name == "temperatureForm"){
|
||||
if(name == "temperatureForm"){ // collect temperature tower inputs
|
||||
var hotendTemp = formName.temp_a0.value;
|
||||
var a1 = formName.temp_a1.value;
|
||||
var b1 = formName.temp_b1.value;
|
||||
@ -142,6 +148,12 @@ function processGcode(formName) {
|
||||
} else {
|
||||
var hotendTemp = formName.hotendtemp.value;
|
||||
}
|
||||
if(name == "speedForm"){ // collect speed test inputs
|
||||
var feedB = formName.feedrateB.value;
|
||||
var feedC = formName.feedrateC.value;
|
||||
var feedD = formName.feedrateD.value;
|
||||
var feedE = formName.feedrateE.value;
|
||||
}
|
||||
// first layer test specifics
|
||||
if(name == "firstlayerForm"){
|
||||
var margin = parseInt(formName.margin.value);
|
||||
@ -277,7 +289,7 @@ function processGcode(formName) {
|
||||
}
|
||||
// start hot end emp
|
||||
if(abl != 4){
|
||||
gcode = gcode.replace(/;temp0a/g, "M104 S"+hotendTemp+" T0 ; custom hot end temp");
|
||||
gcode = gcode.replace(/;temp0a/g, "M104 S"+(hotendTemp-50)+" T0 ; custom hot end temp minus 50 degrees");
|
||||
gcode = gcode.replace(/;temp0b/g, "M109 S"+hotendTemp+" T0 ; custom hot end temp");
|
||||
} else {
|
||||
gcode = gcode.replace(/;temp0a/g, "; Prusa Mini");
|
||||
@ -366,6 +378,9 @@ function processGcode(formName) {
|
||||
if(name == "accelerationForm"){
|
||||
gcode += acceleration[nozzleLayer];
|
||||
}
|
||||
if(name == "speedForm"){
|
||||
gcode += speed[nozzleLayer];
|
||||
}
|
||||
// add end gcode
|
||||
if((formName.customEndOnly.checked == true) && (formName.end.checked == true)){
|
||||
gcode += ";customend\n";
|
||||
@ -439,7 +454,6 @@ function processGcode(formName) {
|
||||
gcodeArray.forEach(function(index, item){
|
||||
if(gcodeArray[item].search(/F/) > -1){
|
||||
var value = parseFloat(gcodeArray[item].match(regexp)[0].substring(1));
|
||||
//alert(value);
|
||||
if(value != 1200){
|
||||
gcodeArray[item] = gcodeArray[item].replace(regexp, "F"+String(value*feedMod)+" ; custom feedrate")
|
||||
}
|
||||
@ -448,7 +462,15 @@ function processGcode(formName) {
|
||||
gcode = gcodeArray.join("\n");
|
||||
}
|
||||
}
|
||||
|
||||
// changes for speed tower test
|
||||
if(name == "speedForm"){
|
||||
gcode = gcode.replace(/;process Process-1/, "M220 S100 ; custom speed A - "+feed/60+" mm/sec");
|
||||
gcode = gcode.replace(/;process Process-2/, "M220 S"+(feedB/(feed/60)*100)+" ; custom speed B - "+feedB+" mm/sec");
|
||||
gcode = gcode.replace(/;process Process-3/, "M220 S"+(feedC/(feed/60)*100)+" ; custom speed C - "+feedC+" mm/sec");
|
||||
gcode = gcode.replace(/;process Process-4/, "M220 S"+(feedD/(feed/60)*100)+" ; custom speed D - "+feedD+" mm/sec");
|
||||
gcode = gcode.replace(/;process Process-5/, "M220 S"+(feedE/(feed/60)*100)+" ; custom speed E - "+feedE+" mm/sec");
|
||||
gcode += "M220 S100 ; return feedrate to normal";
|
||||
}
|
||||
// changes for acceleration test
|
||||
if(name == "accelerationForm"){
|
||||
// edit feedrates
|
||||
|
@ -18,6 +18,7 @@ var scripts = /*html*/ `
|
||||
<script defer src="js/retraction.js"></script>
|
||||
<script defer src="js/temperature.js"></script>
|
||||
<script defer src="js/acceleration.js"></script>
|
||||
<script defer src="js/speed.js"></script>
|
||||
<script defer src="js/minimumlength.js"></script>
|
||||
`;
|
||||
document.write(scripts);
|
989610
js/speed.js
Normal file
989610
js/speed.js
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user