|
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