Update part 2.

All gcode tests now compatible with multi nozzle/layer.
Up button added.
This commit is contained in:
lawgicau
2021-07-13 09:40:40 +10:00
parent 80ec6f0f18
commit 959f18642b
19 changed files with 22735 additions and 97181 deletions

View File

@ -687,6 +687,7 @@
<div class="exp">
<h5>Other factors beyond the scope of this test - Important!</h5>
<ul>
<li>Auto cooling (PrusaSlicer) / Speed Overrides (Simplify3D) / Minimum layer time (Cura): Most slicers have a setting to detect if a layer will complete in less than a certain time threshold. In this case, all movement for that layer is slowed, including those related to retraction, to increase the layer time to meet the target. The gcode generated by the this page has this setting OFF. If your results vary, trying turning this setting off in your own slicer too.</li>
<li>Retraction acceleration: This will affect whether the retraction speed can actually be reached. The gcode generator 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 and wipe: Coast stops extrusion slightly early to assist retraction. It effectively lets the hot end 'run dry' at the end of the printing movement to reduce ooze. This varies from slicer to slicer and isn't always necessary to tune.
<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.
@ -697,7 +698,7 @@
</ul>
</div>
<p>The following form will create a retraction tower to conveniently test back to back parameters in the same print. Of the three available parameters, it is best to change only one per test print. For example, keep the retraction speed and extra restart distance the same, but vary the retraction distance over each segment. Changing more than one parameter makes is hard to tell what made the difference. The print is quick, so repeat the test varying other parameters until you are happy with them all.</p>
<p>Here is the STL if you would like to slice a similar test yourself: <a href="files/retractiontest.stl">retractiontest.stl</a></p>
<p>Here is the STL if you would like to slice a similar test yourself: <a href="files/retractiontestv2.stl">retractiontestv2.stl</a>. This file has been updated to V2, which changes the external shape from circular to pentagonal. It is also slightly shorter to print faster. The original file is still available here: <a href="files/retractiontest.stl">retractiontest.stl</a></p>
<form name="retractionForm" id="retractionForm" onsubmit="return false;">
<h4>Nozzle Diameter / Layer Height</h4>
<p>Select your nozzle diameter and layer height. If you have not changed your nozzle, it will likely be 0.4 mm. 0.2 mm is a typical layer height for this nozzle. First layer height will be locked to the overall layer height. There are too many permutations to include support for first layer height variation too.</p>
@ -721,7 +722,7 @@
<li><b>M221 S38</b> can also be used to compensate for 2.85 mm filament and <b>M221 S34</b> for 3.00 mm filament instead of the default 1.75 mm.</li>
<li>Setting the K factor for linear advance. For example, <b>M900 K0.11</b></li>
<li>Custom ABL sequence. By default, only G28 is present. This gcode will be inserted immediately afer that so custom commands can be used here.</li>
<li>Anythng else you have in your start gcode, such as setting acceleration values, E-steps, etc.</li>
<li>Anything else you have in your start gcode, such as setting acceleration values, E-steps, etc.</li>
</ul>
<textarea name="startgcode"></textarea>
</div>
@ -855,8 +856,18 @@
</div>
<p>The following form will create a temperature tower to conveniently test back to back parameters in the same print. There are five segments to vary the temperature. Generally the lowest temperatures would be at the start of the print (segment A) and the increase up to the highest by the top of the print (segment E).</p>
<p>Your 3D printer firmware will have a minimum hot end temperature extrusion is allowed and a maximum hot end temperature for safety. Make sure to keep within these boundaries to avoid errors.</p>
<p>Here is the STL if you would like to slice a similar test yourself: <a href="files/temperaturetower.stl">temperaturetower.stl</a></p>
<p>Here is the STL if you would like to slice a similar test yourself: <a href="files/temperaturetowerv2.stl">temperaturetowerv2.stl</a>. This is an updated model that prints in less time, has more variation in overhangs, and has a narrow pyramid in each band to try and snap off to test layer adhesion.</p>
<p>The original design can be found here: <a href="files/temperaturetower.stl">temperaturetower.stl</a></p>
<form name="temperatureForm" id="temperatureForm" onsubmit="return false;">
<h4>Nozzle Diameter / Layer Height</h4>
<p>Select your nozzle diameter and layer height. If you have not changed your nozzle, it will likely be 0.4 mm. 0.2 mm is a typical layer height for this nozzle. First layer height will be locked to the overall layer height. There are too many permutations to include support for first layer height variation too.</p>
<label for="nozzleLayer">Select nozzle diameter / layer height:</label>
<select name="nozzleLayer">
<option value="40_20">0.4 mm nozzle / 0.2 mm layer height</option>
<option value="40_16">0.4 mm nozzle / 0.16 mm layer height</option>
<option value="40_12">0.4 mm nozzle / 0.12 mm layer height</option>
<option value="30_15">0.3 mm nozzle / 0.15 mm layer height</option>
</select>
<h4>Additional start gcode</h4>
<p>If you have additional start commands, tick the box and enter the gcode. This can be used for an extruder prime sequence, overwriting the standard flow rate, compensating for 2.85/3.00 mm filament, setting K factor and more. Tick the box for more details.</p>
<label>Additional start gcode:<input name="start" type="checkbox" onchange="toggle(!this.checked, '#temperatureStart')" value="extraStart"></label>
@ -888,17 +899,12 @@
<p>For the bed, typical PLA temperature is 60, PETG 80, ABS 100, and TPU 5 (effectively off).</p>
<label>Bed temperature (deg C): <input type="number" name="bedtemp" value="60" min="5" max="150"></label><br />
<h4>Part Cooling Fan</h4>
<p>PLA typically has the part cooling fan come on from layer 2. Alter this default behaviour here.</p>
<p>Regardless of which part cooling fan behaviour you select here, the five bridge sections at the top of each segment will always print with 100% part cooling. Once the bridge is printed, the fan will then return to the speed set in the dropdown.</p>
<label for="pc">Select part cooling fan behaviour:</label>
<select name="pc">
<option value="0">100% fan from layer 2</option>
<option value="1">100% fan from layer 3</option>
<option value="2">100% fan from layer 5</option>
<option value="3">50% fan from layer 2</option>
<option value="4">50% fan from layer 3</option>
<option value="5">50% fan from layer 5</option>
<option value="6">No constant fan (bridging only)</option>
<p>Printing with PLA typically has the part cooling fan come on from layer 2. Alter this default behaviour here. A zero speed value disables the fan apart from bridging.</p>
<label>Part cooling fan speed:</label> <input type="number" name="fanSpeed" value="100" min="0" max="100" step="5"> % </label><label for="fanLayer">starting on: </label>
<select name="fanLayer">
<option value="2">layer 2</option>
<option value="3">layer 3</option>
<option value="5">layer 5</option>
</select>
<h4>Auto Bed Levelling</h4>
<label for="abl">Select which method of ABL is in place.</label>
@ -911,10 +917,11 @@
<option value="5">Unified Bed Leveling - Load Saved Mesh then 3 Probe Tilt </option>
</select>
<h4>Retraction</h4>
<p>For initial tests, you can leave the retraction speed at 40 mm/sec. For a bowden tube printer, 6mm is a likely retraction distance. For direct drive, a starting value of 1mm may be suitable. If you are following this guide in order, you should already know your ideal retraction values.</p>
<label>Retraction distance (mm): <input type="number" name="retdist" value="5" min="0" max="20" step="0.1"></label>
<label>Retraction speed (mm/sec): <input type="number" name="retspeed" value="40" min="5" max="150" step="1"></label>
<label>Extra restart distance (mm): <input type="number" name="retdistextra" min="-10" max="10" value="0" step="0.1"></label>
<p>If you don't know what to enter here, you can leave the retraction speed at 40 mm/sec. For a bowden tube printer, 6mm is a likely retraction distance. For direct drive, a starting value of 1mm may be suitable. If you are not sure about extra restart distance, leave this as 0.</p>
<p><label>Retraction distance (mm): <input type="number" name="retdist" value="5" min="0" max="20" step="0.1"></label>
<label>Retraction speed (mm/sec): <input type="number" name="retspeed" value="40" min="5" max="150" step="1"></label></p>
<p><label>Extra restart distance (mm): <input type="number" name="retdistextra" min="-10" max="10" value="0" step="0.1"></label>
<label>Z hop (mm): <input type="number" name="zhop" min="0" max="10" value="0" step="0.1"></label></p>
<h4>Hot end temperature</h4>
<p>Typically, filament comes with a recommended hot end temperature. It is recommended to use values either side of this. For instance, if a PLA filament asked for 200 degrees, you may vary the temperature from 190, 195, 200, 205, 210 (the default values of the form). Typically, the first layer temperature will be elevated to increase adhesion with the bed, especially if a lower than usual temperature is being trialled for segment A.</p>
<table>
@ -1052,6 +1059,15 @@
<a href="#" data-featherlight="img/m205.jpg"><img class="thumb" src="img/m205.jpg" /></a>
<p>Use the following form to customise the gcode to your liking:</p>
<form name="accelerationForm" id="accelerationForm" onsubmit="return false;">
<h4>Nozzle Diameter / Layer Height</h4>
<p>Select your nozzle diameter and layer height. If you have not changed your nozzle, it will likely be 0.4 mm. 0.2 mm is a typical layer height for this nozzle. First layer height will be locked to the overall layer height. There are too many permutations to include support for first layer height variation too.</p>
<label for="nozzleLayer">Select nozzle diameter / layer height:</label>
<select name="nozzleLayer">
<option value="40_20">0.4 mm nozzle / 0.2 mm layer height</option>
<option value="40_16">0.4 mm nozzle / 0.16 mm layer height</option>
<option value="40_12">0.4 mm nozzle / 0.12 mm layer height</option>
<option value="30_15">0.3 mm nozzle / 0.15 mm layer height</option>
</select>
<h4>Additional start gcode</h4>
<p>If you have additional start commands, tick the box and enter the gcode. This can be used for an extruder prime sequence, overwriting the standard flow rate, compensating for 2.85/3.00 mm filament, setting K factor and more. Tick the box for more details.</p>
<label>Additional start gcode:<input name="start" type="checkbox" onchange="toggle(!this.checked, '#accelerationStart')" value="extraStart"></label>
@ -1084,16 +1100,12 @@
<label>Hot end temperature (deg C): <input type="number" name="hotendtemp" value="200" min="160" max="450"></label>
<label>Bed temperature (deg C): <input type="number" name="bedtemp" value="60" min="5" max="150"></label><br />
<h4>Part Cooling Fan</h4>
<p>PLA typically has the part cooling fan come on from layer 2. Alter the default behaviour here:</p>
<label for="pc">Select part cooling fan behaviour:</label>
<select name="pc">
<option value="0">100% fan from layer 2</option>
<option value="1">100% fan from layer 3</option>
<option value="2">100% fan from layer 5</option>
<option value="3">50% fan from layer 2</option>
<option value="4">50% fan from layer 3</option>
<option value="5">50% fan from layer 5</option>
<option value="6">No constant fan (bridging only)</option>
<p>Printing with PLA typically has the part cooling fan come on from layer 2. Alter this default behaviour here. A zero speed value disables the fan apart from bridging.</p>
<label>Part cooling fan speed:</label> <input type="number" name="fanSpeed" value="100" min="0" max="100" step="5"> % </label><label for="fanLayer">starting on: </label>
<select name="fanLayer">
<option value="2">layer 2</option>
<option value="3">layer 3</option>
<option value="5">layer 5</option>
</select>
<h4>Auto Bed Levelling</h4>
<label for="abl">Select which method of ABL is in place.</label>
@ -1107,9 +1119,10 @@
</select>
<h4>Retraction</h4>
<p>For initial tests, you can leave the retraction speed at 40 mm/sec. For a bowden tube printer, 6mm is a likely retraction distance. For direct drive, a starting value of 1mm may be suitable. If you are following this guide in order, you should already know your ideal retraction values.</p>
<label>Retraction distance (mm): <input type="number" name="retdist" value="5" min="0" max="20" step="0.1"></label>
<label>Retraction speed (mm/sec): <input type="number" name="retspeed" value="40" min="5" max="150" step="1"></label><br />
<label>Extra restart distance (mm): <input type="number" name="retdistextra" min="-10" max="10" value="0" step="0.1"></label>
<p><label>Retraction distance (mm): <input type="number" name="retdist" value="5" min="0" max="20" step="0.1"></label>
<label>Retraction speed (mm/sec): <input type="number" name="retspeed" value="40" min="5" max="150" step="1"></label></p>
<p><label>Extra restart distance (mm): <input type="number" name="retdistextra" min="-10" max="10" value="0" step="0.1"></label>
<label>Z hop (mm): <input type="number" name="zhop" min="0" max="10" value="0" step="0.1"></label></p>
<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.</p>
<label>Base feedrate (mm/sec): <input type="number" name="feedrate" value="60" min="20" max="500"></label>
@ -1356,6 +1369,7 @@
</div>
</div>
<div id="up"></div>
<div id="footer"></div>
</body>
<script>

View File

@ -62,6 +62,7 @@
$('#contactForm').prepend('<p>Your enquiry has been sent.</p>');
});
</script>
<div id="up"></div>
<div id="footer"></div>
</body>
<script>

View File

@ -236,6 +236,20 @@ iframe {
margin-bottom:20px;
}
#up {
cursor: pointer;
position: fixed;
right: 50px;
bottom: 50px;
z-index: 10;
color:white;
background-color: #1b1f23;
border: white 2px solid;
padding: 15px;
border-radius: 10px;
box-shadow: 3px 3px 10px #000000;
}
#footer {
margin-top: 20px;
padding: 20px;

BIN
files/retractiontestv2.stl Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View File

@ -16,6 +16,7 @@
<p>This channel trailer was the first ever video on the channel but proved to be accurate. Although I primarily focus on 3D printing, I have covered everything listed except video editing.</p>
<iframe width="480" height="360" src="https://www.youtube.com/embed/fYVO7ulhOp0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
<div id="up"></div>
<div id="footer"></div>
</body>
<script>

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
var baseline_40_20 = `
;process Process1
;process Process-1
;layer 1, Z = 0.200
T0
G92 E0.0000

View File

@ -19,7 +19,15 @@ $('head').append('<title>'+pageTitle+'</title>');
var header ='<img src="img/tt.png" class="icon" style="vertical-align:middle;" /><h1>'+pageTitle+'</h1>';
$('#header').html(header);
var footer = `<p style="text-align: center;">This page is fully <a href="https://github.com/teachingtechYT/teachingtechYT.github.io" target="_blank">open source</a>. If you find a bug or have a feature request, please post in the <a href="https://github.com/teachingtechYT/teachingtechYT.github.io/issues" target="_blank">issues</a> section.</p>
var up = '^ <span style="font-weight:bold;">TOP</span> ^';
$('#up').html(up);
$( "#up" ).bind( "click", function() {
$('html, body').animate({scrollTop: '0px'}, 500);
});
var footer = `
<p style="text-align: center;">This page is fully <a href="https://github.com/teachingtechYT/teachingtechYT.github.io" target="_blank">open source</a>. If you find a bug or have a feature request, please post in the <a href="https://github.com/teachingtechYT/teachingtechYT.github.io/issues" target="_blank">issues</a> section.</p>
<p style="text-align: center;">This page was created using:</p>
<ul style="margin-top:-20px;">
<li><a href="https://jquery.com/" target="_blank">jQuery</a></li>

View File

@ -1,4 +1,4 @@
var originalSquare = `;process Process1
var originalSquare = `;process Process-1
;layer 1, Z = 0.200
T0
G92 E0.0000

View File

@ -352,6 +352,7 @@ function processBaseline(){
}
function processRetraction(){
var nozzleLayer = document.retractionForm.nozzleLayer.value;
var hotendTemp = document.retractionForm.hotendtemp.value;
var bedTemp = document.retractionForm.bedtemp.value;
var centre = document.retractionForm.centre.checked;
@ -398,7 +399,7 @@ function processRetraction(){
retraction += retraction_40_20;
break;
case: "40_16":
case "40_16":
retraction += retraction_40_16;
break;
}
@ -492,37 +493,42 @@ function processRetraction(){
}
retraction = retraction.replace(/;retract1/g, "G1 E-"+a1+" F"+a2+" ; custom retraction - A");
retraction = retraction.replace(/;unretract1/g, "G1 E"+a3+" F"+a4+" ; custom un-retraction/prime - A");
// B section
retraction = retraction.replace(/;retractionB/g, "G1 E-"+b1+" F"+b2+" ; custom retraction - B");
retraction = retraction.replace(/;unretractionB/g, "G1 E"+b3+" F"+b4+" ; custom un-retraction/prime - B");
retraction = retraction.replace(/;retract2\nG1 Z[0-9\.]+ F1200/g, ";retract2\n;zhop2");
if(b5 > 0){
retraction = retraction.replace(/;zhopupB/g, "G91\nG1 Z"+b5+" F1200 ; custom z hop - B\nG90");
retraction = retraction.replace(/;zhop2/g, "G91\nG1 Z"+b5+" F1200 ; custom z hop - B\nG90");
}
retraction = retraction.replace(/;retract2/g, "G1 E-"+b1+" F"+b2+" ; custom retraction - B");
retraction = retraction.replace(/;unretract2/g, "G1 E"+b3+" F"+b4+" ; custom un-retraction/prime - B");
// C section
retraction = retraction.replace(/;retractionC/g, "G1 E-"+c1+" F"+c2+" ; custom retraction - C");
retraction = retraction.replace(/;unretractionC/g, "G1 E"+c3+" F"+c4+" ; custom un-retraction/prime - C");
retraction = retraction.replace(/;retract3\nG1 Z[0-9\.]+ F1200/g, ";retract3\n;zhop3");
if(c5 > 0){
retraction = retraction.replace(/;zhopupC/g, "G91\nG1 Z"+c5+" F1200 ; custom z hop - C\nG90");
}
retraction = retraction.replace(/;zhop3/g, "G91\nG1 Z"+c5+" F1200 ; custom z hop - C\nG90");
}
retraction = retraction.replace(/;retract3/g, "G1 E-"+c1+" F"+c2+" ; custom retraction - C");
retraction = retraction.replace(/;unretract3/g, "G1 E"+c3+" F"+c4+" ; custom un-retraction/prime - C");
// D section
retraction = retraction.replace(/;retractionD/g, "G1 E-"+d1+" F"+d2+" ; custom retraction - D");
retraction = retraction.replace(/;unretractionD/g, "G1 E"+d3+" F"+d4+" ; custom un-retraction/prime - D");
retraction = retraction.replace(/;retract4\nG1 Z[0-9\.]+ F1200/g, ";retract4\n;zhop4");
if(d5 > 0){
retraction = retraction.replace(/;zhopupD/g, "G91\nG1 Z"+d5+" F1200 ; custom z hop - D\nG90");
}
retraction = retraction.replace(/;zhop4/g, "G91\nG1 Z"+d5+" F1200 ; custom z hop - D\nG90");
}
retraction = retraction.replace(/;retract4/g, "G1 E-"+d1+" F"+d2+" ; custom retraction - D");
retraction = retraction.replace(/;unretract4/g, "G1 E"+d3+" F"+d4+" ; custom un-retraction/prime - D");
// E section
retraction = retraction.replace(/;retractionE/g, "G1 E-"+e1+" F"+e2+" ; custom retraction - E");
retraction = retraction.replace(/;unretractionE/g, "G1 E"+e3+" F"+e4+" ; custom un-retraction/prime - E");
retraction = retraction.replace(/;retract5\nG1 Z[0-9\.]+ F1200/g, ";retract5\n;zhop5");
if(e5 > 0){
retraction = retraction.replace(/;zhopupE/g, "G91\nG1 Z"+e5+" F1200 ; custom z hop - E\nG90");
}
retraction = retraction.replace(/;zhop5/g, "G91\nG1 Z"+e5+" F1200 ; custom z hop - E\nG90");
}
retraction = retraction.replace(/;retract5/g, "G1 E-"+e1+" F"+e2+" ; custom retraction - E");
retraction = retraction.replace(/;unretract5/g, "G1 E"+e3+" F"+e4+" ; custom un-retraction/prime - E");
// F section
retraction = retraction.replace(/;retractionF/g, "G1 E-"+f1+" F"+f2+" ; custom retraction - F");
retraction = retraction.replace(/;unretractionF/g, "G1 E"+f3+" F"+f4+" ; custom un-retraction/prime - F");
retraction = retraction.replace(/;retract6\nG1 Z[0-9\.]+ F1200/g, ";retract6\n;zhop6");
if(f5 > 0){
retraction = retraction.replace(/;zhopupF/g, "G91\nG1 Z"+f5+" F1200 ; custom z hop - F\nG90");
}
retraction = retraction.replace(/;zhop6/g, "G91\nG1 Z"+f5+" F1200 ; custom z hop - F\nG90");
}
retraction = retraction.replace(/;retract6/g, "G1 E-"+f1+" F"+f2+" ; custom retraction - F");
retraction = retraction.replace(/;unretract6/g, "G1 E"+f3+" F"+f4+" ; custom un-retraction/prime - F");
if(document.retractionForm.psuon.checked == true) {
retraction = retraction.replace(/;M80/, "M80");
}
@ -536,6 +542,7 @@ function processRetraction(){
}
function processTemperature(){
var nozzleLayer = document.temperatureForm.nozzleLayer.value;
var bedTemp = document.temperatureForm.bedtemp.value;
var centre = document.temperatureForm.centre.checked;
var bedX = Math.round((document.temperatureForm.bedx.value-100)/2);
@ -543,9 +550,11 @@ function processTemperature(){
var retDist = document.temperatureForm.retdist.value;
var retDistExtra = document.temperatureForm.retdistextra.value;
var retSpeed = document.temperatureForm.retspeed.value*60;
var zhop = document.temperatureForm.zhop.value;
var abl = document.temperatureForm.abl.value;
var pc = document.temperatureForm.pc.value;
var pcResume = 255;
var fanLayer = document.temperatureForm.fanLayer.value;
var fanPercentage = document.temperatureForm.fanSpeed.value;
var fanSpeed = Math.round(fanPercentage*2.55);
var a0 = document.temperatureForm.temp_a0.value;
var a1 = document.temperatureForm.temp_a1.value;
var b1 = document.temperatureForm.temp_b1.value;
@ -553,35 +562,31 @@ function processTemperature(){
var d1 = document.temperatureForm.temp_d1.value;
var e1 = document.temperatureForm.temp_e1.value;
var customStart = document.temperatureForm.startgcode.value;
var temperature = originalTemperature;
switch(pc){
case '0':
temperature = temperature.replace(/;fan2/, "M106 S255 ; custom fan 100% from layer 2");
var temperature = commonStart;
switch(nozzleLayer){
case '40_20':
temperature += temperature_40_20;
break;
case '1':
temperature = temperature.replace(/;fan3/, "M106 S255 ; custom fan 100% from layer 3");
break;
case '2':
temperature = temperature.replace(/;fan5/, "M106 S255 ; custom fan 100% from layer 5");
break;
case '3':
temperature = temperature.replace(/;fan2/, "M106 S130 ; custom fan 50% from layer 2");
pcResume = 130;
break;
case '4':
temperature = temperature.replace(/;fan3/, "M106 S130 ; custom fan 50% from layer 3");
pcResume = 130;
break;
case '5':
temperature = temperature.replace(/;fan5/, "M106 S130 ; custom fan 50% from layer 5");
pcResume = 130;
break;
case '6':
temperature = temperature.replace(/;fan2/, "; custom fan off");
pcResume = 0;
case '40_16':
temperature += temperature_40_16;
break;
}
temperature = temperature.replace(/;fanrestore/g, "M106 S"+pcResume+" ; restore previous fan speed");
temperature += commonEnd;
temperature = temperature.replace(/M104 S210 T0/, "temp0a");
temperature = temperature.replace(/M109 S210 T0/, "temp0b");
temperature = temperature.replace(/M106 S3/, ";");
switch(fanLayer){
case '2':
temperature = temperature.replace(/;fan2;/, "M106 S"+fanSpeed+"; custom fan "+fanPercentage+"% from layer 2");
break;
case '3':
temperature = temperature.replace(/;fan3;/, "M106 S"+fanSpeed+"; custom fan "+fanPercentage+"% from layer 3");
break;
case '5':
temperature = temperature.replace(/;fan5;/, "M106 S"+fanSpeed+"; custom fan "+fanPercentage+"% from layer 5");
break;
}
temperature = temperature.replace(/M106 S3/g, "M106 S"+fanSpeed+"; custom fan "+fanSpeed+"%");
if(abl == 1){
temperature = temperature.replace(/;G29 ; probe ABL/, "G29 ; probe ABL");
}
@ -602,8 +607,12 @@ function processTemperature(){
}
temperature = temperature.replace(/M140 S60/, "M140 S"+bedTemp+" ; custom bed temp");
temperature = temperature.replace(/M190 S60/, "M190 S"+bedTemp+" ; custom bed temp");
temperature = temperature.replace(/G1 E-5.0000 F2400/g, "G1 E-"+retDist+" F"+retSpeed+" ; custom retraction");
temperature = temperature.replace(/G1 E0.0000 F2400/g, "G1 E"+retDistExtra+" F"+retSpeed+" ; custom un-retraction/prime");
temperature = temperature.replace(/;retract1\nG1 Z[0-9\.]+ F1200/g, ";retract1\n;zhop1");
if(zhop > 0){
temperature = temperature.replace(/;zhop1/g, "G91;\nG1 Z"+zhop+" F1200 ; custom z hop\nG90;");
}
temperature = temperature.replace(/;retract1/g, "G1 E-"+retDist+" F"+retSpeed+" ; custom retraction");
temperature = temperature.replace(/;unretract1/g, "G1 E"+retDistExtra+" F"+retSpeed+" ; custom un-retraction/prime");
if(centre == true){
var temperatureArray = temperature.split(/\n/g);
@ -654,11 +663,11 @@ function processTemperature(){
temperature = temperature.replace(/temp0b/, "; Prusa Mini");
temperature = temperature.replace(/tempmini/, "M109 S"+a0+" T0 ; custom hot end temp - first layer");
}
temperature = temperature.replace(/temp1/, "M104 S"+a1+" T0 ; custom hot end temp - A");
temperature = temperature.replace(/temp2/, "M104 S"+b1+" T0 ; custom hot end temp - B");
temperature = temperature.replace(/temp3/, "M104 S"+c1+" T0 ; custom hot end temp - C");
temperature = temperature.replace(/temp4/, "M104 S"+d1+" T0 ; custom hot end temp - D");
temperature = temperature.replace(/temp5/, "M104 S"+e1+" T0 ; custom hot end temp - E");
temperature = temperature.replace(/;layer 2(.*?)\n/, "M104 S"+a1+" T0 ; custom hot end temp - A\n");
temperature = temperature.replace(/;process Process-2/, "M104 S"+b1+" T0 ; custom hot end temp - B");
temperature = temperature.replace(/;process Process-3/, "M104 S"+c1+" T0 ; custom hot end temp - C");
temperature = temperature.replace(/;process Process-4/, "M104 S"+d1+" T0 ; custom hot end temp - D");
temperature = temperature.replace(/;process Process-5/, "M104 S"+e1+" T0 ; custom hot end temp - E");
if(document.temperatureForm.psuon.checked == true) {
temperature = temperature.replace(/;M80/, "M80");
}
@ -672,6 +681,7 @@ function processTemperature(){
}
function processAcceleration(){
var nozzleLayer = document.accelerationForm.nozzleLayer.value;
var hotendTemp = document.accelerationForm.hotendtemp.value;
var bedTemp = document.accelerationForm.bedtemp.value;
var centre = document.accelerationForm.centre.checked;
@ -680,9 +690,11 @@ function processAcceleration(){
var retDist = document.accelerationForm.retdist.value;
var retDistExtra = document.accelerationForm.retdistextra.value;
var retSpeed = document.accelerationForm.retspeed.value*60;
var zhop = document.accelerationForm.zhop.value;
var abl = document.accelerationForm.abl.value;
var pc = document.accelerationForm.pc.value;
var pcResume = 255;
var fanLayer = document.accelerationForm.fanLayer.value;
var fanPercentage = document.accelerationForm.fanSpeed.value;
var fanSpeed = Math.round(fanPercentage*2.55);
var feed = document.accelerationForm.feedrate.value*60;
var jerk_or_jd = document.accelerationForm.jerk_or_jd.value;
var a1 = document.accelerationForm.accel_a1.value;
@ -710,34 +722,29 @@ function processAcceleration(){
var f3 = document.accelerationForm.accel_f3.value;
var f4 = document.accelerationForm.accel_f4.value;
var customStart = document.accelerationForm.startgcode.value;
var acceleration = originalAcceleration;
switch(pc){
case '0':
acceleration = acceleration.replace(/;fan2/, "M106 S255 ; custom fan 100% from layer 2");
var acceleration = commonStart;
switch(nozzleLayer){
case '40_20':
acceleration += acceleration_40_20;
break;
case '1':
acceleration = acceleration.replace(/;fan3/, "M106 S255 ; custom fan 100% from layer 3");
break;
case '2':
acceleration = acceleration.replace(/;fan5/, "M106 S255 ; custom fan 100% from layer 5");
break;
case '3':
acceleration = acceleration.replace(/;fan2/, "M106 S130 ; custom fan 50% from layer 2");
pcResume = 130;
break;
case '4':
acceleration = acceleration.replace(/;fan3/, "M106 S130 ; custom fan 50% from layer 3");
pcResume = 130;
break;
case '5':
acceleration = acceleration.replace(/;fan5/, "M106 S130 ; custom fan 50% from layer 5");
pcResume = 130;
break;
case '6':
acceleration = acceleration.replace(/;fan2/, "; custom fan off");
pcResume = 0;
case '40_16':
acceleration += acceleration_40_16;
break;
}
acceleration += commonEnd;
acceleration = acceleration.replace(/M106 S3/, ";");
switch(fanLayer){
case '2':
acceleration = acceleration.replace(/;fan2;/, "M106 S"+fanSpeed+"; custom fan "+fanPercentage+"% from layer 2");
break;
case '3':
acceleration = acceleration.replace(/;fan3;/, "M106 S"+fanSpeed+"; custom fan "+fanPercentage+"% from layer 3");
break;
case '5':
acceleration = acceleration.replace(/;fan5;/, "M106 S"+fanSpeed+"; custom fan "+fanPercentage+"% from layer 5");
break;
}
acceleration = acceleration.replace(/M106 S3/g, "M106 S"+fanSpeed+"; custom fan "+fanSpeed+"%");
acceleration = acceleration.replace(/M140 S60/g, "M140 S"+bedTemp+" ; custom bed temp");
acceleration = acceleration.replace(/M190 S60/g, "M190 S"+bedTemp+" ; custom bed temp");
if(abl != 4){
@ -747,8 +754,12 @@ function processAcceleration(){
acceleration = acceleration.replace(/M104 S210/g, "; Prusa Mini");
acceleration = acceleration.replace(/M109 S210/g, "; Prusa Mini");
}
acceleration = acceleration.replace(/G1 E-5.0000 F2400/g, "G1 E-"+retDist+" F"+retSpeed+" ; custom retraction");
acceleration = acceleration.replace(/G1 E0.0000 F2400/g, "G1 E"+retDistExtra+" F"+retSpeed+" ; custom un-retraction/prime");
acceleration = acceleration.replace(/;retract1\nG1 Z[0-9\.]+ F1200/g, ";retract1\n;zhop1");
if(zhop > 0){
acceleration = acceleration.replace(/;zhop1/g, "G91;\nG1 Z"+zhop+" F1200 ; custom z hop\nG90;");
}
acceleration = acceleration.replace(/;retract1/g, "G1 E-"+retDist+" F"+retSpeed+" ; custom retraction");
acceleration = acceleration.replace(/;unretract1/g, "G1 E"+retDistExtra+" F"+retSpeed+" ; custom un-retraction/prime");
if(abl == 1){
acceleration = acceleration.replace(/;G29 ; probe ABL/, "G29 ; probe ABL");
}
@ -814,28 +825,27 @@ function processAcceleration(){
acceleration = acceleration.replace(/F2790/g, "F"+feed+" ; custom feedrate - full");
acceleration = acceleration.replace(/F1860/g, "F"+feed/2+" ; custom feedrate - half");
acceleration = acceleration.replace(/raise/g, "M201 X5000 Y5000 ; custom raise acceleration limits");
acceleration = acceleration.replace(/accel1/g, "M204 P"+a1+" ; custom acceleration - A");
acceleration = acceleration.replace(/accel2/g, "M204 P"+b1+" ; custom acceleration - B");
acceleration = acceleration.replace(/accel3/g, "M204 P"+c1+" ; custom acceleration - C");
acceleration = acceleration.replace(/accel4/g, "M204 P"+d1+" ; custom acceleration - D");
acceleration = acceleration.replace(/accel5/g, "M204 P"+e1+" ; custom acceleration - E");
acceleration = acceleration.replace(/accel6/g, "M204 P"+f1+" ; custom acceleration - F");
acceleration = acceleration.replace(/;process Process-1/, "M201 X50000 Y50000 ; custom raise acceleration limits\nM204 P"+a1+" ; custom acceleration - A\n;j1");
acceleration = acceleration.replace(/;process Process-2/, "M204 P"+b1+" ; custom acceleration - B\n;j2");
acceleration = acceleration.replace(/;process Process-3/, "M204 P"+c1+" ; custom acceleration - C\n;j3");
acceleration = acceleration.replace(/;process Process-4/, "M204 P"+d1+" ; custom acceleration - D\n;j4");
acceleration = acceleration.replace(/;process Process-5/, "M204 P"+e1+" ; custom acceleration - E\n;j5");
acceleration = acceleration.replace(/;process Process-6/, "M204 P"+f1+" ; custom acceleration - F\n;j6");
if(jerk_or_jd == "jerk"){
acceleration = acceleration.replace(/j1/g, "M205 X"+a2+" Y"+a3+" ; custom jerk - A");
acceleration = acceleration.replace(/j2/g, "M205 X"+b2+" Y"+b3+" ; custom jerk - B");
acceleration = acceleration.replace(/j3/g, "M205 X"+c2+" Y"+c3+" ; custom jerk - C");
acceleration = acceleration.replace(/j4/g, "M205 X"+d2+" Y"+d3+" ; custom jerk - D");
acceleration = acceleration.replace(/j5/g, "M205 X"+e2+" Y"+e3+" ; custom jerk - E");
acceleration = acceleration.replace(/j6/g, "M205 X"+f2+" Y"+f3+" ; custom jerk - F");
acceleration = acceleration.replace(/;j1/, "M205 X"+a2+" Y"+a3+" ; custom jerk - A");
acceleration = acceleration.replace(/;j2/, "M205 X"+b2+" Y"+b3+" ; custom jerk - B");
acceleration = acceleration.replace(/;j3/, "M205 X"+c2+" Y"+c3+" ; custom jerk - C");
acceleration = acceleration.replace(/;j4/, "M205 X"+d2+" Y"+d3+" ; custom jerk - D");
acceleration = acceleration.replace(/;j5/, "M205 X"+e2+" Y"+e3+" ; custom jerk - E");
acceleration = acceleration.replace(/;j6/, "M205 X"+f2+" Y"+f3+" ; custom jerk - F");
} else {
acceleration = acceleration.replace(/j1/g, "M205 J"+a4+" ; custom junction deviation - A");
acceleration = acceleration.replace(/j2/g, "M205 J"+b4+" ; custom junction deviation - B");
acceleration = acceleration.replace(/j3/g, "M205 J"+c4+" ; custom junction deviation - C");
acceleration = acceleration.replace(/j4/g, "M205 J"+d4+" ; custom junction deviation - D");
acceleration = acceleration.replace(/j5/g, "M205 J"+e4+" ; custom junction deviation - E");
acceleration = acceleration.replace(/j6/g, "M205 J"+f4+" ; custom junction deviation - F");
acceleration = acceleration.replace(/;j1/, "M205 J"+a4+" ; custom junction deviation - A");
acceleration = acceleration.replace(/;j2/, "M205 J"+b4+" ; custom junction deviation - B");
acceleration = acceleration.replace(/;j3/, "M205 J"+c4+" ; custom junction deviation - C");
acceleration = acceleration.replace(/;j4/, "M205 J"+d4+" ; custom junction deviation - D");
acceleration = acceleration.replace(/;j5/, "M205 J"+e4+" ; custom junction deviation - E");
acceleration = acceleration.replace(/;j6/, "M205 J"+f4+" ; custom junction deviation - F");
}
if(document.accelerationForm.psuon.checked == true) {
acceleration = acceleration.replace(/;M80/, "M80");

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -10,6 +10,7 @@
<p>This review policy has been in place for a couple of years now. It has been refined based on experiences with dealing with various companies, and especially by dealing with the unscrupulous ones. Any manufacturer that contacts me to request a video on their product must agree to these terms before proceeding.</p>
<iframe src="https://docs.google.com/document/d/e/2PACX-1vRz25KGTiArjiMNkNwX_lL0eeNxF2nyPgVvC5IpniiBPW-QmvTLubaj8Ip-OuEhmLS2gWgsdheOMRC7/pub?embedded=true" style="width:100%; min-height:55vh"></iframe>
</div>
<div id="up"></div>
<div id="footer"></div>
</body>
<script>

View File

@ -44,6 +44,7 @@
</div>
<div id="up"></div>
<div id="footer"></div>
</body>
<script>

View File

@ -435,6 +435,7 @@ Standard Deviation: 0.002795</pre>
</div>
</div>
<div id="up"></div>
<div id="footer"></div>
</body>
<script>

View File

@ -138,7 +138,7 @@
<h4>Troubleshooting</h4>
<p>There's a lot to get right, which means there is also a lot that can go wrong. Fortunately, I have a full page dedicated to <a href="troubleshooting.html#bltouch">BLtouch troubleshooting</a> elsewhere on this site.</p>
</div>
<div id="up"></div>
<div id="footer"></div>
</body>
<script>