Skip to content
Permalink
Browse files

Merge pull request #18 from n0sr3v/gcode

Configurable start and end GCode
  • Loading branch information...
n0sr3v committed Sep 15, 2018
2 parents c871a55 + be9c74a commit 057dc754ddbd33096c090a7b931ce65a4ab14065
Showing with 86 additions and 3 deletions.
  1. +2 −1 css/main.css
  2. +21 −0 index.html
  3. +63 −2 js/main.js
@@ -54,7 +54,8 @@
}

#sidebar .info-value,
#sidebar .form-control {
#sidebar .form-control,
#sidebar .btn-reset {
width: 40%;
float: left;
}
@@ -341,6 +341,27 @@ <h3 class="panel-title">Colors</h3>
</div>
</div><!-- #colors -->

<div id="gcode" class="panel panel-default">
<div class="panel-heading">
<button class="panel-toggle btn btn-default btn-xs pull-right" type="button" data-toggle="collapse" data-target="#gcode-body">
<span class="glyphicon glyphicon-menu-down"></span>
</button>
<h3 class="panel-title">GCode</h3>
</div>
<div id="gcode-body" class="panel-body collapse">
<div class="form-group">
<label for="resetStart" >Start</label>
<span class="btn btn-default btn-xs btn-reset" id="resetStart" title="Reset to default Start GCode" >Reset</span>
<textarea id="start" class="form-control" rows="5" style="width: 100%; float: none;" ></textarea>
</div>
<div class="form-group">
<label for="resetEnd" >End</label>
<span class="btn btn-default btn-xs btn-reset" id="resetEnd" title="Reset to default End GCode" >Reset</span>
<textarea id="end" class="form-control" rows="5" style="width: 100%; float: none;" ></textarea>
</div>
</div>
</div><!-- #gcode -->

</div><!-- #sidebar -->

<div id="main">
@@ -85,6 +85,14 @@ var settings = new SLAcer.Settings({
position : 7
}
},
gcode: {
start : getDefaultGcodeStart(),
end: getDefaultGcodeEnd(),
panel: {
collapsed: true,
position : 8
}
},
viewer3d: {
color: 0xffffff
}
@@ -770,7 +778,9 @@ function slice() {
function endSlicing() {

if(WOWExport) {// GCode & export logic
wowFile += "M106 S0;\nG1 Z20.0;\nG4 S300;\nM18;"
// add gcode footer from settings
var gcode = settings.get('gcode');
wowFile += gcode.end;

zipFile.file("print.wow", wowFile, {binary: true});

@@ -856,7 +866,9 @@ function startSlicing() {
*/
//console.log(textDecoder.encode(binary_layer));

wowFile += "G21;\nG91;\nM17;\nM106 S0;\nG28 Z0;\n;W:480;\n;H:854;\n"
// use gcode header from settings
var gcode = settings.get('gcode');
wowFile += gcode.start;
}

slicesNumber && slice();
@@ -1072,6 +1084,55 @@ $sliceColor.colorpicker().on('changeColor.colorpicker', function(e) {
}
});

// gcode
var $gcodeBody = initPanel('gcode');
var $gcodeStart = $gcodeBody.find('#start');
var $gcodeEnd = $gcodeBody.find('#end');
var $gcodeResetStart = $gcodeBody.find('#resetStart');
var $gcodeResetEnd = $gcodeBody.find('#resetEnd');

function updateGcodeUI() {
var gcode = settings.get('gcode');

$gcodeStart.val(gcode.start);
$gcodeEnd.val(gcode.end);
}

function updateGcodeSettings() {
var startText = $gcodeStart.val();
var endText = $gcodeEnd.val();

settings.set('gcode', {
start : $gcodeStart.val(),
end : $gcodeEnd.val(),
});
}

function resetGcodeStart() {
$gcodeStart.val(getDefaultGcodeStart());
updateGcodeSettings();
}

function resetGcodeEnd() {
$gcodeEnd.val(getDefaultGcodeEnd());
updateGcodeSettings();
}

function getDefaultGcodeStart() {
return 'G21;\nG91;\nM17;\nM106 S0;\nG28 Z0;\n;W:480;\n;H:854;\n'; // see https://github.com/bastirichter/Sparkmaker/blob/master/file_format.md for details
}

function getDefaultGcodeEnd() {
return 'M106 S0;\nG1 Z20.0;\nG4 S300;\nM18;'; // see https://github.com/bastirichter/Sparkmaker/blob/master/file_format.md for details
}

$gcodeStart.on('change', updateGcodeSettings);
$gcodeEnd.on('change', updateGcodeSettings);
$gcodeResetStart.on('click', resetGcodeStart);
$gcodeResetEnd.on('click', resetGcodeEnd);

updateGcodeUI();

// Alert
var $alertPanel = $('#alert');
var $alertMessage = $alertPanel.find('.message');

0 comments on commit 057dc75

Please sign in to comment.
You can’t perform that action at this time.