Settings for bed dimension (PR) and extruder offsets
Changed the bed dimension PR slightly to use a computed property instead of two separate values and only a computed reader, added options for extruder offsets.
This commit is contained in:
parent
17f3c5777e
commit
82ee48b166
2 changed files with 111 additions and 57 deletions
|
|
@ -18,13 +18,67 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) {
|
|||
self.printer_movementSpeedZ = ko.observable(undefined);
|
||||
self.printer_movementSpeedE = ko.observable(undefined);
|
||||
self.printer_invertAxes = ko.observable(undefined);
|
||||
self.printer_numExtruders = ko.observable(undefined);
|
||||
self.printer_extruderOffsets = ko.observableArray([]);
|
||||
self.printer_numExtruders = ko.observable(1);
|
||||
|
||||
self._printer_extruderOffsets = ko.observableArray([]);
|
||||
self.printer_extruderOffsets = ko.computed({
|
||||
read: function() {
|
||||
var extruderOffsets = self._printer_extruderOffsets();
|
||||
var result = [];
|
||||
for (var i = 0; i < extruderOffsets.length; i++) {
|
||||
result[i] = {
|
||||
x: parseFloat(extruderOffsets[i].x()),
|
||||
y: parseFloat(extruderOffsets[i].y())
|
||||
}
|
||||
}
|
||||
return result;
|
||||
},
|
||||
write: function(value) {
|
||||
var result = [];
|
||||
if (value && Array.isArray(value)) {
|
||||
for (var i = 0; i < value.length; i++) {
|
||||
result[i] = {
|
||||
x: ko.observable(value[i].x),
|
||||
y: ko.observable(value[i].y)
|
||||
}
|
||||
}
|
||||
}
|
||||
self._printer_extruderOffsets(result);
|
||||
},
|
||||
owner: self,
|
||||
deferEvaluation: true
|
||||
});
|
||||
self.ko_printer_extruderOffsets = ko.computed(function() {
|
||||
var extruderOffsets = self._printer_extruderOffsets();
|
||||
var numExtruders = self.printer_numExtruders();
|
||||
|
||||
if (numExtruders > extruderOffsets.length) {
|
||||
for (var i = extruderOffsets.length; i < numExtruders; i++) {
|
||||
extruderOffsets[i] = {
|
||||
x: ko.observable(0),
|
||||
y: ko.observable(0)
|
||||
}
|
||||
}
|
||||
self._printer_extruderOffsets(extruderOffsets);
|
||||
}
|
||||
|
||||
return extruderOffsets.slice(0, numExtruders);
|
||||
});
|
||||
|
||||
self.printer_bedDimensionX = ko.observable(undefined);
|
||||
self.printer_bedDimensionY = ko.observable(undefined);
|
||||
|
||||
self.printer_bedDimensions = ko.dependentObservable(function () {
|
||||
return { "x": self.printer_bedDimensionX(), "y": self.printer_bedDimensionY() };
|
||||
self.printer_bedDimensions = ko.computed({
|
||||
read: function () {
|
||||
return {
|
||||
x: parseFloat(self.printer_bedDimensionX()),
|
||||
y: parseFloat(self.printer_bedDimensionY())
|
||||
};
|
||||
},
|
||||
write: function(value) {
|
||||
self.printer_bedDimensionX(value.x);
|
||||
self.printer_bedDimensionY(value.y);
|
||||
},
|
||||
owner: self
|
||||
});
|
||||
|
||||
self.webcam_streamUrl = ko.observable(undefined);
|
||||
|
|
@ -134,8 +188,7 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) {
|
|||
self.printer_invertAxes(response.printer.invertAxes);
|
||||
self.printer_numExtruders(response.printer.numExtruders);
|
||||
self.printer_extruderOffsets(response.printer.extruderOffsets);
|
||||
self.printer_bedDimensionX(response.printer.bedDimensions.x);
|
||||
self.printer_bedDimensionY(response.printer.bedDimensions.y);
|
||||
self.printer_bedDimensions(response.printer.bedDimensions);
|
||||
|
||||
self.webcam_streamUrl(response.webcam.streamUrl);
|
||||
self.webcam_snapshotUrl(response.webcam.snapshotUrl);
|
||||
|
|
@ -196,10 +249,7 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) {
|
|||
"invertAxes": self.printer_invertAxes(),
|
||||
"numExtruders": self.printer_numExtruders(),
|
||||
"extruderOffsets": self.printer_extruderOffsets(),
|
||||
"bedDimensions": {
|
||||
"x": self.printer_bedDimensionX(),
|
||||
"y": self.printer_bedDimensionY()
|
||||
}
|
||||
"bedDimensions": self.printer_bedDimensions()
|
||||
},
|
||||
"webcam": {
|
||||
"streamUrl": self.webcam_streamUrl(),
|
||||
|
|
|
|||
|
|
@ -83,80 +83,84 @@
|
|||
</div>
|
||||
<div class="tab-pane" id="settings_printerParameters">
|
||||
<form class="form-horizontal">
|
||||
<div class="control-group">
|
||||
<label class="control-label" for="settings-movementSpeedX">Bed X</label>
|
||||
<div class="controls">
|
||||
<div class="input-append">
|
||||
<input type="number" class="input-mini text-right" data-bind="value: printer_bedDimensionX" id="settings-bedX">
|
||||
<span class="add-on">mm</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" for="settings-movementSpeedY">Bed Y</label>
|
||||
<div class="controls">
|
||||
<div class="input-append">
|
||||
<input type="number" class="input-mini text-right" data-bind="value: printer_bedDimensionY" id="settings-bedY">
|
||||
<span class="add-on">mm</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" for="settings-movementSpeedX">Movement Speed X Axis</label>
|
||||
<div class="controls">
|
||||
<label class="control-label">Axis</label>
|
||||
<div class="controls form-inline">
|
||||
<label>X:</label>
|
||||
<div class="input-append">
|
||||
<input type="number" class="input-mini text-right" data-bind="value: printer_movementSpeedX" id="settings-movementSpeedX">
|
||||
<span class="add-on">mm/min</span>
|
||||
</div>
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" data-bind="checked: printer_invertX" id="settings-printerInvertX"> Invert control
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" for="settings-movementSpeedY">Movement Speed Y Axis</label>
|
||||
<div class="controls">
|
||||
<div class="controls form-inline">
|
||||
<label>Y:</label>
|
||||
<div class="input-append">
|
||||
<input type="number" class="input-mini text-right" data-bind="value: printer_movementSpeedY" id="settings-movementSpeedY">
|
||||
<span class="add-on">mm/min</span>
|
||||
</div>
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" data-bind="checked: printer_invertY" id="settings-printerInvertY"> Invert control
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" for="settings-movementSpeedZ">Movement Speed Z Axis</label>
|
||||
<div class="controls">
|
||||
<div class="controls form-inline">
|
||||
<label>Z:</label>
|
||||
<div class="input-append">
|
||||
<input type="number" class="input-mini text-right" data-bind="value: printer_movementSpeedZ" id="settings-movementSpeedZ">
|
||||
<span class="add-on">mm/min</span>
|
||||
</div>
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" data-bind="checked: printer_invertZ" id="settings-printerInvertZ"> Invert control
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" for="settings-movementSpeedE">Movement Speed Extruder</label>
|
||||
<div class="controls">
|
||||
<div class="controls form-inline">
|
||||
<label>E:</label>
|
||||
<div class="input-append">
|
||||
<input type="number" class="input-mini text-right" data-bind="value: printer_movementSpeedE" id="settings-movementSpeedE">
|
||||
<span class="add-on">mm/min</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
Invert controls
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" data-bind="checked: printer_invertX" id="settings-printerInvertX"> X axis
|
||||
</label>
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" data-bind="checked: printer_invertY" id="settings-printerInvertY"> Y axis
|
||||
</label>
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" data-bind="checked: printer_invertZ" id="settings-printerInvertZ"> Z axis
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" for="settings-numExtruders">Number of Extruders</label>
|
||||
<div class="controls">
|
||||
<input type="number" class="input-mini text-right" min="1" max="5" data-bind="value: printer_numExtruders" id="settings-numExtruders">
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" for="settings-extruderOffsets">Extruder Offsets</label>
|
||||
<!-- ko foreach: ko_printer_extruderOffsets -->
|
||||
<div class="controls form-inline">
|
||||
<label>X:</label>
|
||||
<div class="input-append">
|
||||
<input type="number" step="0.01" class="input-mini text-right" data-bind="value: x">
|
||||
<span class="add-on">mm</span>
|
||||
</div>
|
||||
<label>Y:</label>
|
||||
<div class="input-append">
|
||||
<input type="number" step="0.01" class="input-mini text-right" data-bind="value: y">
|
||||
<span class="add-on">mm</span>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /ko -->
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" for="settings-bedSize">Bed Size</label>
|
||||
<div class="controls form-inline">
|
||||
<label>X:</label>
|
||||
<div class="input-append">
|
||||
<input type="number" step="0.01" class="input-mini text-right" data-bind="value: printer_bedDimensionX" id="settings-bedX">
|
||||
<span class="add-on">mm</span>
|
||||
</div>
|
||||
<label>Y:</label>
|
||||
<div class="input-append">
|
||||
<input type="number" step="0.01" class="input-mini text-right" data-bind="value: printer_bedDimensionY" id="settings-bedY">
|
||||
<span class="add-on">mm</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="tab-pane" id="settings_webcam">
|
||||
|
|
|
|||
Loading…
Reference in a new issue