Add more part cooling fan options

Forced 100% fan for bridges in temperature test.
This commit is contained in:
lawgicau
2020-08-23 12:12:51 +10:00
parent 701adfcbaf
commit d753a855fc
6 changed files with 158 additions and 34 deletions

View File

@ -157,8 +157,12 @@
<label for="pc">Select part cooling fan behaviour:</label>
<select name="pc">
<option value="0">100% fan from layer 2</option>
<option value="1">50% fan from layer 2</option>
<option value="2">No constant fan</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>
</select>
<h4>Auto Bed Levelling</h4>
<label for="abl">Select which method of ABL is in place.</label>
@ -554,8 +558,12 @@
<label for="pc">Select part cooling fan behaviour:</label>
<select name="pc">
<option value="0">100% fan from layer 2</option>
<option value="1">50% fan from layer 2</option>
<option value="2">No constant fan</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>
</select>
<h4>Auto Bed Levelling</h4>
<label for="abl">Select which method of ABL is in place.</label>
@ -685,12 +693,17 @@
<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>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">50% fan from layer 2</option>
<option value="2">No constant fan</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>
</select>
<h4>Auto Bed Levelling</h4>
<label for="abl">Select which method of ABL is in place.</label>
@ -865,8 +878,12 @@
<label for="pc">Select part cooling fan behaviour:</label>
<select name="pc">
<option value="0">100% fan from layer 2</option>
<option value="1">50% fan from layer 2</option>
<option value="2">No constant fan</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>
</select>
<h4>Auto Bed Levelling</h4>
<label for="abl">Select which method of ABL is in place.</label>

View File

@ -482,7 +482,7 @@ G1 X25.710 Y94.135 E3.8264
G92 E0.0000
G1 E-5.0000 F2400
; layer 2, Z = 0.400
M106 S255
;fan2
; feature inner perimeter
; tool H0.200 W0.480
G1 Z0.600 F1200
@ -514,6 +514,7 @@ G1 X24.740 Y96.950 E11.5223
G92 E0.0000
G1 E-5.0000 F2400
; layer 3, Z = 0.600
;fan3
; feature inner perimeter
G1 Z0.800 F1200
G1 X25.220 Y95.847 F6000
@ -632,6 +633,7 @@ G1 X8.097 Y22.663 E0.0130 F3720
G92 E0.0000
G1 E-5.0000 F2400
; layer 5, Z = 1.000
;fan5
; feature inner perimeter
G1 Z1.200 F1200
G1 X8.120 Y22.951 F6000

View File

@ -159,7 +159,7 @@ G1 X41.923 Y58.214 E21.6099
G92 E0.0000
G1 E-5.0000 F2400
; layer 2, Z = 0.400
M106 S255
;fan2
; feature inner perimeter
; tool H0.200 W0.480
G1 Z0.600 F1200
@ -291,6 +291,7 @@ G1 X58.512 Y58.459 E22.9102
G92 E0.0000
G1 E-5.0000 F2400
; layer 3, Z = 0.600
;fan3
; feature inner perimeter
G1 Z0.800 F1200
G1 X58.800 Y58.800 F6000
@ -456,6 +457,7 @@ G1 X41.548 Y49.967 E2.9046
G92 E0.0000
G1 E-5.0000 F2400
; layer 5, Z = 1.000
;fan5
; feature inner perimeter
; tool H0.200 W0.480
G1 Z1.200 F1200

View File

@ -90,13 +90,35 @@ function processBaseline(){
var retSpeed = document.baselineForm.retspeed.value*60;
var abl = document.baselineForm.abl.value;
var pc = document.baselineForm.pc.value;
var pcResume = 255;
var customStart = document.baselineForm.startgcode.value;
var baseline = originalBaseline;
if(pc == 1){
baseline = baseline.replace(/M106 S255/, "M106 S130 ; custom fan 50%");
}
if(pc == 2){
baseline = baseline.replace(/M106 S255/, ";M106 S255 ; custom fan off");
switch(pc){
case '0':
baseline = baseline.replace(/;fan2/, "M106 S255 ; custom fan 100% from layer 2");
break;
case '1':
baseline = baseline.replace(/;fan3/, "M106 S255 ; custom fan 100% from layer 3");
break;
case '2':
baseline = baseline.replace(/;fan5/, "M106 S255 ; custom fan 100% from layer 5");
break;
case '3':
baseline = baseline.replace(/;fan2/, "M106 S130 ; custom fan 50% from layer 2");
pcResume = 130;
break;
case '4':
baseline = baseline.replace(/;fan3/, "M106 S130 ; custom fan 50% from layer 3");
pcResume = 130;
break;
case '5':
baseline = baseline.replace(/;fan5/, "M106 S130 ; custom fan 50% from layer 5");
pcResume = 130;
break;
case '6':
baseline = baseline.replace(/;fan2/, "; custom fan off");
pcResume = 0;
break;
}
baseline = baseline.replace(/M140 S60/g, "M140 S"+bedTemp+" ; custom bed temp");
baseline = baseline.replace(/M190 S60/g, "M190 S"+bedTemp+" ; custom bed temp");
@ -183,6 +205,7 @@ function processRetraction(){
var bedY = Math.round((document.retractionForm.bedy.value-100)/2);
var abl = document.retractionForm.abl.value;
var pc = document.retractionForm.pc.value;
var pcResume = 255;
var a1 = document.retractionForm.ret_a1.value;
var a2 = document.retractionForm.ret_a2.value*60;
var a3 = document.retractionForm.ret_a3.value;
@ -215,11 +238,32 @@ function processRetraction(){
var f5 = document.retractionForm.ret_f5.value;
var customStart = document.retractionForm.startgcode.value;
var retraction = originalRetraction;
if(pc == 1){
retraction = retraction.replace(/M106 S255/, "M106 S130 ; custom fan 50%");
}
if(pc == 2){
retraction = retraction.replace(/M106 S255/, ";M106 S255 ; custom fan off");
switch(pc){
case '0':
retraction = retraction.replace(/;fan2/, "M106 S255 ; custom fan 100% from layer 2");
break;
case '1':
retraction = retraction.replace(/;fan3/, "M106 S255 ; custom fan 100% from layer 3");
break;
case '2':
retraction = retraction.replace(/;fan5/, "M106 S255 ; custom fan 100% from layer 5");
break;
case '3':
retraction = retraction.replace(/;fan2/, "M106 S130 ; custom fan 50% from layer 2");
pcResume = 130;
break;
case '4':
retraction = retraction.replace(/;fan3/, "M106 S130 ; custom fan 50% from layer 3");
pcResume = 130;
break;
case '5':
retraction = retraction.replace(/;fan5/, "M106 S130 ; custom fan 50% from layer 5");
pcResume = 130;
break;
case '6':
retraction = retraction.replace(/;fan2/, "; custom fan off");
pcResume = 0;
break;
}
retraction = retraction.replace(/M140 S60/g, "M140 S"+bedTemp+" ; custom bed temp");
retraction = retraction.replace(/M190 S60/g, "M190 S"+bedTemp+" ; custom bed temp");
@ -323,7 +367,7 @@ function processRetraction(){
// 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");
if(document.retractionForm.start.checked == true) {
retraction = retraction.replace(/;customstart/, "; custom start gcode\n"+customStart);
if(f5 > 0){
@ -342,6 +386,7 @@ function processTemperature(){
var retSpeed = document.temperatureForm.retspeed.value*60;
var abl = document.temperatureForm.abl.value;
var pc = document.temperatureForm.pc.value;
var pcResume = 255;
var a0 = document.temperatureForm.temp_a0.value;
var a1 = document.temperatureForm.temp_a1.value;
var b1 = document.temperatureForm.temp_b1.value;
@ -350,12 +395,34 @@ function processTemperature(){
var e1 = document.temperatureForm.temp_e1.value;
var customStart = document.temperatureForm.startgcode.value;
var temperature = originalTemperature;
if(pc == 1){
temperature = temperature.replace(/M106 S255/, "M106 S130 ; custom fan 50%");
}
if(pc == 2){
temperature = temperature.replace(/M106 S255/, ";M106 S255 ; custom fan off");
switch(pc){
case '0':
temperature = temperature.replace(/;fan2/, "M106 S255 ; custom fan 100% from layer 2");
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;
break;
}
temperature = temperature.replace(/;fanrestore/g, "M106 S"+pcResume+" ; restore previous fan speed");
if(abl == 1){
temperature = temperature.replace(/;G29 ; probe ABL/, "G29 ; probe ABL");
}
@ -449,6 +516,7 @@ function processAcceleration(){
var retSpeed = document.accelerationForm.retspeed.value*60;
var abl = document.accelerationForm.abl.value;
var pc = document.accelerationForm.pc.value;
var pcResume = 255;
var feed = document.accelerationForm.feedrate.value*60;
var jerk_or_jd = document.accelerationForm.jerk_or_jd.value;
var a1 = document.accelerationForm.accel_a1.value;
@ -477,11 +545,32 @@ function processAcceleration(){
var f4 = document.accelerationForm.accel_f4.value;
var customStart = document.accelerationForm.startgcode.value;
var acceleration = originalAcceleration;
if(pc == 1){
acceleration = acceleration.replace(/M106 S255/, "M106 S130 ; custom fan 50%");
}
if(pc == 2){
acceleration = acceleration.replace(/M106 S255/, ";M106 S255 ; custom fan off");
switch(pc){
case '0':
acceleration = acceleration.replace(/;fan2/, "M106 S255 ; custom fan 100% from layer 2");
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;
break;
}
acceleration = acceleration.replace(/M140 S60/g, "M140 S"+bedTemp+" ; custom bed temp");
acceleration = acceleration.replace(/M190 S60/g, "M190 S"+bedTemp+" ; custom bed temp");

View File

@ -693,7 +693,7 @@ G1 X77.965 Y42.938 E67.5571
G92 E0.0000
;retractionA
; layer 2, Z = 0.400
M106 S255
;fan2
; feature inner perimeter
; tool H0.200 W0.480
;zhopupA
@ -1132,6 +1132,7 @@ G1 X19.616 Y45.085 E70.2497
G92 E0.0000
;retractionA
; layer 3, Z = 0.600
;fan3
; feature inner perimeter
;zhopupA
G1 X19.388 Y44.826 F6000
@ -1828,6 +1829,7 @@ G1 X19.549 Y46.510 E9.7252
G92 E0.0000
;retractionA
; layer 5, Z = 1.000
;fan5
; feature inner perimeter
; tool H0.200 W0.480
;zhopupA

View File

@ -668,7 +668,7 @@ G92 E0.0000
G1 E-5.0000 F2400
; layer 2, Z = 0.400
temp1
M106 S255
;fan2
; feature inner perimeter
; tool H0.200 W0.480
G1 Z0.600 F1200
@ -1076,6 +1076,7 @@ G1 X26.716 Y44.773 E54.0817
G92 E0.0000
G1 E-5.0000 F2400
; layer 3, Z = 0.600
;fan3
; feature inner perimeter
G1 Z0.800 F1200
G1 X26.388 Y44.826 F6000
@ -1717,6 +1718,7 @@ G1 X26.548 Y47.996 E7.4212
G92 E0.0000
G1 E-5.0000 F2400
; layer 5, Z = 1.000
;fan5
; feature inner perimeter
; tool H0.200 W0.480
G1 Z1.200 F1200
@ -8006,6 +8008,7 @@ G1 X63.513 Y46.542 F6000
G92 E0.0000
G1 X68.417 Y51.446 E0.3114 F3600
; feature bridge
M106 S255 ; full fan for bridge
; tool H0.200 W0.480
G1 X55.660 Y51.440 F6000
G92 E0.0000
@ -8031,6 +8034,7 @@ G1 X55.660 Y47.120 E4.2212
G1 X55.660 Y46.640 E4.2385
G1 X44.340 Y46.640 E4.6451
G92 E0.0000
;fanrestore
G1 E-5.0000 F2400
; layer 50, Z = 10.000
; feature inner perimeter
@ -12000,6 +12004,7 @@ G1 X63.513 Y46.542 F6000
G92 E0.0000
G1 X68.417 Y51.446 E0.3114 F3600
; feature bridge
M106 S255 ; full fan for bridge
; tool H0.200 W0.480
G1 X55.660 Y51.440 F6000
G92 E0.0000
@ -12025,6 +12030,7 @@ G1 X55.660 Y47.120 E4.2212
G1 X55.660 Y46.640 E4.2385
G1 X44.340 Y46.640 E4.6451
G92 E0.0000
;fanrestore
G1 E-5.0000 F2400
; layer 90, Z = 18.000
; feature inner perimeter
@ -15994,6 +16000,7 @@ G1 X63.513 Y46.542 F6000
G92 E0.0000
G1 X68.417 Y51.446 E0.3114 F3600
; feature bridge
M106 S255 ; full fan for bridge
; tool H0.200 W0.480
G1 X55.660 Y51.440 F6000
G92 E0.0000
@ -16019,6 +16026,7 @@ G1 X55.660 Y47.120 E4.2212
G1 X55.660 Y46.640 E4.2385
G1 X44.340 Y46.640 E4.6451
G92 E0.0000
;fanrestore
G1 E-5.0000 F2400
; layer 130, Z = 26.000
; feature inner perimeter
@ -19988,6 +19996,7 @@ G1 X63.513 Y46.542 F6000
G92 E0.0000
G1 X68.417 Y51.446 E0.3114 F3600
; feature bridge
M106 S255 ; full fan for bridge
; tool H0.200 W0.480
G1 X55.660 Y51.440 F6000
G92 E0.0000
@ -20013,6 +20022,7 @@ G1 X55.660 Y47.120 E4.2212
G1 X55.660 Y46.640 E4.2385
G1 X44.340 Y46.640 E4.6451
G92 E0.0000
;fanrestore
G1 E-5.0000 F2400
; layer 170, Z = 34.000
; feature inner perimeter
@ -24071,6 +24081,7 @@ G1 X68.512 Y47.468 E5.2240
G1 X68.512 Y46.790 E5.2484
G1 X68.205 Y46.482 E5.2640
; feature bridge
M106 S255 ; full fan for bridge
G1 X55.660 Y51.440 F6000
G92 E0.0000
G1 X44.340 Y51.440 E0.4066 F3600
@ -24095,6 +24106,7 @@ G1 X55.660 Y47.120 E4.2212
G1 X55.660 Y46.640 E4.2385
G1 X44.340 Y46.640 E4.6451
G92 E0.0000
;fanrestore
G1 E-5.0000 F2400
; layer 210, Z = 42.000
; feature inner perimeter