Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
136 lines (114 sloc) 4.22 KB
// Photonic3D Modifications and Features to SLAcer
// Utils
function findPythagoreanC(a, b) {
return Math.sqrt(Math.pow(a, 2) + Math.pow(b, 2));
}
function setPrinterCalibrationSettings(printer) {
var slicingProfile = printer.configuration.slicingProfile;
var monitorDriverConfig = printer.configuration.machineConfig.MonitorDriverConfig;
var dotsPermmX = slicingProfile.DotsPermmX;
var dotsPermmY = slicingProfile.DotsPermmY;
var dotsPermmXYAverage = (dotsPermmX + dotsPermmY) / 2;
// Uncomment when not in testing anymore
// if (Math.abs(dotsPermmX - dotsPermmY) >= 0.1) {
// return true;
// }
var buildVolXmm = Math.round(monitorDriverConfig.DLP_X_Res / dotsPermmXYAverage);
var buildVolYmm = Math.round(monitorDriverConfig.DLP_Y_Res / dotsPermmXYAverage);
var diagonalMM = Math.round(findPythagoreanC(buildVolXmm, buildVolYmm));
$slicerSpeedYes[0].checked = true;
$slicerSpeedNo[0].checked = false;
$slicerSpeedDelay.val(0);
// Convert mm to microns
$slicerLayerHeight.val(slicingProfile.InkConfig[slicingProfile.selectedInkConfigIndex].SliceHeight * 1000);
settings.set('slicer.speed', $slicerSpeedYes[0].checked);
settings.set('slicer.speedDelay', $slicerSpeedDelay.val());
settings.set('slicer.layers.height', $slicerLayerHeight.val());
$buildVolumeX.val(buildVolXmm);
$buildVolumeY.val(buildVolYmm);
$buildVolumeZ.val(printer.configuration.machineConfig.PlatformZSize);
updateBuildVolumeSettings();
var unit = settings.get('screen.diagonal.unit')
var convert = unit == 'in';
$screenDiagonalSize.val(convert ? parseUnit(diagonalMM, unit) : diagonalMM);
$screenWidth.val(monitorDriverConfig.DLP_X_Res);
$screenHeight.val(monitorDriverConfig.DLP_Y_Res);
updateScreenSettings();
if (convert) {
$('#screen-diagonal-unit-in').prop('checked', false);
$('#screen-diagonal-unit-mm').prop('checked', true);
updateScreenSettings();
}
// No error occurred so return false
return false;
}
// Initialize values
function initializeValues() {
makeButton();
// settings.set('#slicer.panel.collapsed', true);
// $slicerBody.collapse('hide');
var XYerr = false;
$.get( "/services/printers/getFirstAvailablePrinter", function( data ) {
if (data !== null && data !== undefined) {
XYerr = setPrinterCalibrationSettings(data);
}
}).fail(function (data) {
alert("Error: "+ data.responseText);
});
if (XYerr) {
// Error handling
alert("Your DotsPermmX and DotsPermmY are more than 0.1 mm apart");
}
}
function makeZip() {
$('#uploadzip-icon').prop('class', 'glyphicon glyphicon-refresh glyphicon-spin');
if (zipFile === null || zipFile === undefined) {
alert("You must first slice images to generate a zip file.");
} else {
var name = 'SLAcer';
if (loadedFile && loadedFile.name) {
name = loadedFile.name;
}
uploadZip(zipFile.generate({type: 'blob'}), name + '.zip');
}
}
function uploadZip(zipFile, fileName) {
var blob = zipFile;
form = new FormData();
form.append("file",blob,fileName);
request = new XMLHttpRequest();
request.open("POST", "/services/printables/uploadPrintableFile");
// When the request is successfully sent, alert the user
request.onreadystatechange = function () {
if (request.readyState == 4 && request.status == 200) {
// window.open('/printablesPage', '_self');
$('#uploadzip-icon').prop('class', 'glyphicon glyphicon-upload');
alert("Upload successful! Refresh printables page on Photonic3D to see the file.");
}
}
request.send(form);
}
function makeButton() {
//rename original zip button
var btn = document.getElementById("zip-button");
btn.innerHTML = '<span class="glyphicon glyphicon-compressed"></span> ZIP';
//create new zip button
var newbtn = document.createElement("BUTTON");
$(newbtn).css({
'margin-top' : '10px'
});
btn.parentNode.insertBefore(newbtn, btn.nextSibling);
newbtn.onclick = function () {
makeZip();
}
newbtn.id = "new-zip-button";
newbtn.className = "btn btn-primary";
newbtn.disabled = true;
newbtn.innerHTML = '<i class="glyphicon glyphicon-upload" id="uploadzip-icon"></i> Upload ZIP To Photonic3D';
}
var oldEndSlicing = endSlicing;
endSlicing = function() {
oldEndSlicing();
$('#new-zip-button').prop('disabled', !zipFile);
}
$(document).ready(initializeValues);