add second example and example selector
This commit is contained in:
parent
8be4f5adfa
commit
820da24e60
1 changed files with 131 additions and 11 deletions
|
|
@ -23,6 +23,14 @@
|
|||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
#loadExample #examples {
|
||||
display:flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
#loadExample #examples button {
|
||||
margin-right: 1rem;
|
||||
}
|
||||
#jcode, #gcode {
|
||||
width: 400px;
|
||||
height: 400px;
|
||||
|
|
@ -64,7 +72,7 @@
|
|||
padding: 3px;
|
||||
text-align: center;
|
||||
}
|
||||
#api {
|
||||
#api, #loadExample {
|
||||
width: 812px;
|
||||
}
|
||||
#download {
|
||||
|
|
@ -84,7 +92,6 @@
|
|||
let edit, saveit = "";
|
||||
function $(id) { return document.getElementById(id) }
|
||||
function onload() {
|
||||
let fnstr = demo.toString().split("\n");
|
||||
edit = ace.edit($("jbody"), {
|
||||
mode: "ace/mode/javascript",
|
||||
theme: "ace/theme/chrome",
|
||||
|
|
@ -92,10 +99,7 @@
|
|||
});
|
||||
edit.session.setTabSize(4);
|
||||
edit.session.setUseSoftTabs(true);
|
||||
edit.session.setValue(fnstr
|
||||
.slice(1,fnstr.length - 1)
|
||||
.map(l => l.replace(" ",""))
|
||||
.join('\n'));
|
||||
let FDMExample = loadExample(demoFDM)
|
||||
}
|
||||
function display_message(msg) {
|
||||
$('gfoot').innerText = msg ? Object.keys(msg).join(' - ') : '';
|
||||
|
|
@ -106,21 +110,27 @@
|
|||
$('dfoot').style.display = 'block';
|
||||
$('gfoot').style.display = '';
|
||||
}
|
||||
function loadExample(func){
|
||||
let fnstr = func.toString().split("\n");
|
||||
edit.session.setValue(
|
||||
fnstr
|
||||
.slice(1,fnstr.length - 1)
|
||||
.map(l => l.replace(" ",""))
|
||||
.join('\n')
|
||||
)
|
||||
}
|
||||
function run_code() {
|
||||
$('dfoot').style.display = 'none';
|
||||
$('gfoot').style.display = 'block';
|
||||
let code = edit.session.getValue();
|
||||
eval(`(function(){${code}})()`);
|
||||
}
|
||||
function demo() {
|
||||
function demoFDM() {
|
||||
kiri.newEngine()
|
||||
.setListener(display_message)
|
||||
.load("/obj/cube.stl")
|
||||
.then(eng => eng.setProcess({
|
||||
sliceShells: 1,
|
||||
sliceFillSparse: 0.25,
|
||||
sliceTopLayers: 2,
|
||||
sliceBottomLayers: 2
|
||||
|
||||
}))
|
||||
.then(eng => eng.setDevice({
|
||||
gcodePre: [ "M82", "M104 S220" ],
|
||||
|
|
@ -131,6 +141,107 @@
|
|||
.then(eng => eng.export())
|
||||
.then(display_gcode);
|
||||
}
|
||||
|
||||
function demoCAM(){
|
||||
kiri.newEngine()
|
||||
.setListener(display_message)
|
||||
.load("/obj/cube.stl")
|
||||
.then(eng => eng.setMode("CAM"))
|
||||
.then(eng => eng.setStock({
|
||||
"x": 110.00001525878906,
|
||||
"y": 60,
|
||||
"z": 60,
|
||||
"center": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 12.5
|
||||
}
|
||||
}))
|
||||
.then(eng=> eng.setTools([
|
||||
{
|
||||
"id": 1000,
|
||||
"number": 1,
|
||||
"type": "endmill",
|
||||
"name": "end 1/4",
|
||||
"metric": false,
|
||||
"shaft_diam": 0.25,
|
||||
"shaft_len": 1,
|
||||
"flute_diam": 0.25,
|
||||
"flute_len": 2,
|
||||
"taper_tip": 0,
|
||||
"order": 5
|
||||
}
|
||||
|
||||
]))
|
||||
.then(eng => eng.setProcess({
|
||||
camEaseAngle:10,
|
||||
camEaseDown:true,
|
||||
ops:[
|
||||
{
|
||||
"type":"outline",
|
||||
"tool":1000,
|
||||
"spindle":15000,
|
||||
"step":0.4,
|
||||
"steps":1,
|
||||
"down":1,
|
||||
"rate":2500,
|
||||
"plunge":150,
|
||||
"dogbones":false,
|
||||
"omitvoid":false,
|
||||
"omitthru":false,
|
||||
"outside":false,
|
||||
"inside":false,
|
||||
"wide":false,
|
||||
"top":false,
|
||||
},
|
||||
]
|
||||
|
||||
}))
|
||||
.then(eng => eng.setDevice({
|
||||
"mode": "CAM",
|
||||
"internal": 0,
|
||||
"bedHeight": 2.5,
|
||||
"bedWidth": 678.18,
|
||||
"bedDepth": 1524,
|
||||
"maxHeight": 150,
|
||||
"originCenter": false,
|
||||
"spindleMax": 24000,
|
||||
"gcodePre": [
|
||||
"G20 ; set units to inches (required)",
|
||||
"G90 ; absolute position mode (required)"
|
||||
],
|
||||
"gcodePost": [
|
||||
"M05 ; spindle off",
|
||||
"M30 ; program end"
|
||||
],
|
||||
"gcodeDwell": [
|
||||
"G4 P{time} ; dwell for {time}ms"
|
||||
],
|
||||
"gcodeSpindle": [
|
||||
"M3 S{speed} ; spindle on at {spindle} rpm"
|
||||
],
|
||||
"gcodeChange": [
|
||||
"M05 ; spindle off",
|
||||
"M6 T{tool} ; change tool to '{tool_name}'",
|
||||
"G37; get tool offset with ETS"
|
||||
],
|
||||
"gcodeFExt": "nc",
|
||||
"gcodeSpace": true,
|
||||
"gcodeStrip": false,
|
||||
"deviceName": "Tormach.24R",
|
||||
"imageURL": "",
|
||||
"useLaser": false
|
||||
}))
|
||||
.then(eng => eng.slice())
|
||||
.then(eng => eng.prepare())
|
||||
.then(eng => eng.export())
|
||||
.then(display_gcode);
|
||||
}
|
||||
|
||||
function demoLASER(){
|
||||
|
||||
}
|
||||
|
||||
function download() {
|
||||
let blob = new Blob([saveit], {type: "octet/stream"});
|
||||
let url = window.URL.createObjectURL(blob);
|
||||
|
|
@ -154,6 +265,13 @@
|
|||
<div id="dfoot"><button onclick="download()">download</button></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="loadExample">
|
||||
<h2>Load Examples</h2>
|
||||
<div id="examples">
|
||||
<button onclick="loadExample(demoFDM)">Load FDM Example</button>
|
||||
<button onclick="loadExample(demoCAM)">Load CAM Example</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="api">
|
||||
<h2>Engine Methods</h2>
|
||||
<li><label>load(url)</label> - where URL points to an STL</li>
|
||||
|
|
@ -162,6 +280,8 @@
|
|||
<li><label>setListener(fn)</label> - function to receive engine progress messages</li>
|
||||
<li><label>setDevice(options)</label> - change default object parameters</li>
|
||||
<li><label>setProcess(options)</label> - change default process parameters</li>
|
||||
<li><label>setStock(options)</label> - set stock dimensions for CAM mode</li>
|
||||
<li><label>setTools(tools)</label> - set available tools for CAM operations</li>
|
||||
<li><label>moveTo(x,y,z)</label> - absolute move origin of loaded object</li>
|
||||
<li><label>move(x,y,z)</label> - relative move origin of loaded object</li>
|
||||
<li><label>scale(x,y,z)</label> - scale axes of loaded object</li>
|
||||
|
|
|
|||
Loading…
Reference in a new issue