|
207 | 207 | };
|
208 | 208 | }
|
209 | 209 |
|
210 |
| - function aggregateLayerStats(layers) { |
211 |
| - console.debug('aggregateLayerStats'); |
| 210 | + function aggregateLayerStats(layers, skipFirstLayers, skipLastLayers) { |
| 211 | + console.time('aggregateLayerStats'); |
212 | 212 |
|
213 |
| - const time = layers.reduce((prev, cur) => prev + cur.totalT, 0); |
214 |
| - const extruded = layers.reduce((prev, cur) => prev + cur.totalE, 0); |
215 |
| - const volume = layers.reduce((prev, cur) => prev + cur.totalE*filamentCrossSection, 0); |
| 213 | + const filteredLayers = layers.slice(skipFirstLayers, layers.length - skipLastLayers ); |
| 214 | + const time = filteredLayers.reduce((prev, cur) => prev + cur.totalT, 0); |
| 215 | + const extruded = filteredLayers.reduce((prev, cur) => prev + cur.totalE, 0); |
| 216 | + const volume = extruded * filamentCrossSection; |
216 | 217 |
|
217 |
| - const minExtrusionSpeed = layers.reduce((prev, cur)=> Math.min(prev , cur.flow), Infinity ); |
218 |
| - const maxExtrusionSpeed = layers.reduce((prev, cur)=> Math.max(prev , cur.flow), -Infinity ); |
| 218 | + const minExtrusionSpeed = filteredLayers.reduce((prev, cur)=> Math.min(prev , cur.flow), Infinity ); |
| 219 | + const maxExtrusionSpeed = filteredLayers.reduce((prev, cur)=> Math.max(prev , cur.flow), -Infinity ); |
219 | 220 |
|
220 | 221 | const minFlow = minExtrusionSpeed * filamentCrossSection;
|
221 | 222 | const maxFlow = maxExtrusionSpeed * filamentCrossSection;
|
| 223 | + console.timeEnd('aggregateLayerStats'); |
222 | 224 | return {
|
223 | 225 | time,
|
224 | 226 | extruded,
|
|
0 commit comments