Doodle3D-Slicer/src/Settings.js

54 lines
1.4 KiB
JavaScript
Raw Normal View History

2015-07-26 15:32:10 +02:00
export default class {
2016-07-19 14:23:23 +02:00
constructor(config = {}) {
this.config = config;
2015-07-26 15:32:10 +02:00
}
2016-05-09 11:40:54 +02:00
updateConfig(config) {
2016-07-19 14:23:23 +02:00
this.config = { ...this.config, ...config };
2015-07-26 15:32:10 +02:00
return this;
}
2016-05-09 11:40:54 +02:00
startCode() {
2016-05-07 22:59:20 +02:00
const { startCode } = this.config;
const gcode = this._subsituteVariables(startCode);
2015-07-26 15:32:10 +02:00
return gcode;
}
2016-05-09 11:40:54 +02:00
endCode() {
2016-05-07 22:59:20 +02:00
const { endCode } = this.config;
const gcode = this._subsituteVariables(endCode);
2015-07-26 15:32:10 +02:00
return gcode;
}
2016-05-09 11:40:54 +02:00
_subsituteVariables(gcode) {
2016-05-07 22:59:20 +02:00
let {
temperature,
bedTemperature,
heatTemperature,
heatBedTemperature,
travelSpeed,
printerType,
heatedbed
} = this.config;
travelSpeed *= 60;
2015-07-26 15:32:10 +02:00
switch (printerType) {
2016-05-07 22:59:20 +02:00
case 'makerbot_replicator2': printerType = 'r2'; break;
case 'makerbot_replicator2x': printerType = 'r2x'; break;
case 'makerbot_thingomatic': printerType = 't6'; break;
case 'makerbot_generic': printerType = 'r2'; break;
case '_3Dison_plus': printerType = 'r2'; break;
2015-07-26 15:32:10 +02:00
}
2016-05-07 22:59:20 +02:00
const heatedBedReplacement = heatedbed ? '' : ';';
2016-05-08 10:31:29 +02:00
gcode = gcode.replace(/{printingTemp}/gi, temperature);
gcode = gcode.replace(/{printingBedTemp}/gi, bedTemperature);
gcode = gcode.replace(/{preheatTemp}/gi, heatTemperature);
gcode = gcode.replace(/{preheatBedTemp}/gi, heatBedTemperature);
gcode = gcode.replace(/{printerType}/gi, printerType);
gcode = gcode.replace(/{travelSpeed}/gi, travelSpeed);
gcode = gcode.replace(/{if heatedBed}/gi, heatedBedReplacement);
2015-07-26 15:32:10 +02:00
return gcode;
}
2015-10-14 17:11:29 +02:00
}