update CLI to work in CAM mode and add working samples
This commit is contained in:
parent
2d80c58995
commit
d6757d1758
9 changed files with 346 additions and 124 deletions
|
|
@ -5,6 +5,7 @@ Full docs @ https://docs.grid.space/projects/kiri-moto
|
||||||
|
|
||||||
# Release 3.6
|
# Release 3.6
|
||||||
|
|
||||||
|
* update CLI to work in CAM mode and add working samples
|
||||||
* improved FDM preview rendering speed and reduced memory usage
|
* improved FDM preview rendering speed and reduced memory usage
|
||||||
* threaded task and message passing performance improvements
|
* threaded task and message passing performance improvements
|
||||||
* refactor FDM supports and synthetic widgets to use more common code
|
* refactor FDM supports and synthetic widgets to use more common code
|
||||||
|
|
|
||||||
26
src/cli/kiri-cam-device.json
Normal file
26
src/cli/kiri-cam-device.json
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
{
|
||||||
|
"new": false,
|
||||||
|
"mode": "CAM",
|
||||||
|
"deviceName": "My Sienci LongMill",
|
||||||
|
"noclone":false,
|
||||||
|
"internal": 0,
|
||||||
|
"bedHeight": 2.5,
|
||||||
|
"bedWidth": 760,
|
||||||
|
"bedDepth": 760,
|
||||||
|
"maxHeight": 300,
|
||||||
|
"originCenter": false,
|
||||||
|
"spindleMax": 0,
|
||||||
|
"gcodeSpace": true,
|
||||||
|
"gcodeStrip": false,
|
||||||
|
"gcodePre": [
|
||||||
|
"G21 ; set units to MM (required)",
|
||||||
|
"G90 ; absolute position mode (required)",
|
||||||
|
"G0 F6000 ; default rapid move speed",
|
||||||
|
"G1 F1500 ; default cutting speed"
|
||||||
|
],
|
||||||
|
"gcodePost": ["M30 ; program end"],
|
||||||
|
"gcodeDwell": ["G4 P{time} ; dwell for {time}ms"],
|
||||||
|
"gcodeSpindle": [],
|
||||||
|
"gcodeChange": ["M6 T{tool} ; change tool to '{tool_name}'"],
|
||||||
|
"gcodeFExt": "nc"
|
||||||
|
}
|
||||||
119
src/cli/kiri-cam-process.json
Normal file
119
src/cli/kiri-cam-process.json
Normal file
|
|
@ -0,0 +1,119 @@
|
||||||
|
{
|
||||||
|
"processName": "default",
|
||||||
|
"camLevelTool": 1000,
|
||||||
|
"camLevelSpindle": 1000,
|
||||||
|
"camLevelOver": 0,
|
||||||
|
"camLevelSpeed": 1000,
|
||||||
|
"camLevelDown": 1,
|
||||||
|
"camRoughTool": 1001,
|
||||||
|
"camRoughSpindle": 1000,
|
||||||
|
"camRoughDown": 3,
|
||||||
|
"camRoughOver": 0.5,
|
||||||
|
"camRoughSpeed": 1000,
|
||||||
|
"camRoughPlunge": 250,
|
||||||
|
"camRoughStock": 0,
|
||||||
|
"camRoughVoid": false,
|
||||||
|
"camRoughFlat": false,
|
||||||
|
"camRoughTop": false,
|
||||||
|
"camRoughIn": true,
|
||||||
|
"camRoughOn": true,
|
||||||
|
"camOutlineTool": 1000,
|
||||||
|
"camOutlineSpindle": 1000,
|
||||||
|
"camOutlineDown": 1,
|
||||||
|
"camOutlineOver": 0.4,
|
||||||
|
"camOutlineSpeed": 800,
|
||||||
|
"camOutlinePlunge": 250,
|
||||||
|
"camOutlineWide": false,
|
||||||
|
"camOutlineDogbone": false,
|
||||||
|
"camOutlineOmitThru": false,
|
||||||
|
"camOutlineOut": true,
|
||||||
|
"camOutlineIn": false,
|
||||||
|
"camOutlineOn": true,
|
||||||
|
"camContourTool": 1001,
|
||||||
|
"camContourSpindle": 1000,
|
||||||
|
"camContourOver": 0.25,
|
||||||
|
"camContourSpeed": 1000,
|
||||||
|
"camContourAngle": 85,
|
||||||
|
"camContourCurves": true,
|
||||||
|
"camContourIn": true,
|
||||||
|
"camContourXOn": true,
|
||||||
|
"camContourYOn": true,
|
||||||
|
"camTraceTool": 1000,
|
||||||
|
"camTraceSpindle": 1000,
|
||||||
|
"camTraceType": "clear",
|
||||||
|
"camTraceOver": 0.5,
|
||||||
|
"camTraceDown": 50,
|
||||||
|
"camTraceSpeed": 750,
|
||||||
|
"camTracePlunge": 200,
|
||||||
|
"camTraceLines": false,
|
||||||
|
"camDrillTool": 1000,
|
||||||
|
"camDrillSpindle": 1000,
|
||||||
|
"camDrillDownSpeed": 250,
|
||||||
|
"camDrillDown": 2,
|
||||||
|
"camDrillDwell": 250,
|
||||||
|
"camDrillLift": 2,
|
||||||
|
"camDrillingOn": false,
|
||||||
|
"camRegisterSpeed": 1000,
|
||||||
|
"camFlipAxis": "X",
|
||||||
|
"camFlipOther": "",
|
||||||
|
"camTabsWidth": 20,
|
||||||
|
"camTabsHeight": 5,
|
||||||
|
"camTabsDepth": 10,
|
||||||
|
"camTabsMidline": false,
|
||||||
|
"camDepthFirst": true,
|
||||||
|
"camEaseDown": false,
|
||||||
|
"camOriginTop": true,
|
||||||
|
"camZAnchor": "middle",
|
||||||
|
"camZOffset": 0,
|
||||||
|
"camZBottom": 0,
|
||||||
|
"camZClearance": 1,
|
||||||
|
"camZThru": 0,
|
||||||
|
"camFastFeed": 4000,
|
||||||
|
"camFastFeedZ": 250,
|
||||||
|
"camTolerance": 0.03,
|
||||||
|
"camStockX": 30,
|
||||||
|
"camStockY": 30,
|
||||||
|
"camStockZ": 1,
|
||||||
|
"camStockOffset": true,
|
||||||
|
"camStockClipTo": false,
|
||||||
|
"camStockOn": true,
|
||||||
|
"camConventional": false,
|
||||||
|
"outputOriginCenter": false,
|
||||||
|
"outputInvertX": false,
|
||||||
|
"outputInvertY": false,
|
||||||
|
"camExpertFast": false,
|
||||||
|
"ops": [{
|
||||||
|
"type": "rough",
|
||||||
|
"tool": 1001,
|
||||||
|
"spindle": 1000,
|
||||||
|
"down": 3,
|
||||||
|
"step": 0.5,
|
||||||
|
"rate": 1000,
|
||||||
|
"plunge": 250,
|
||||||
|
"leave": 0,
|
||||||
|
"voids": false,
|
||||||
|
"flats": false,
|
||||||
|
"inside": true,
|
||||||
|
"top": false
|
||||||
|
}],
|
||||||
|
"camTrueShadow": false,
|
||||||
|
"camDrillMark": true,
|
||||||
|
"camPocketSpindle": 1000,
|
||||||
|
"camPocketTool": 1665454124874,
|
||||||
|
"camPocketOver": 0.15,
|
||||||
|
"camPocketDown": 1,
|
||||||
|
"camPocketSpeed": 250,
|
||||||
|
"camPocketPlunge": 200,
|
||||||
|
"camPocketExpand": 0,
|
||||||
|
"camContourBottom": false,
|
||||||
|
"camTraceBottom": false,
|
||||||
|
"cmaPocketOutline": false,
|
||||||
|
"camRegisterThru": 5,
|
||||||
|
"camFlatness": 0,
|
||||||
|
"camContourBridge": 10,
|
||||||
|
"camForceZMax": false,
|
||||||
|
"camPocketSmooth": 0,
|
||||||
|
"cmaPocketRefine": 20,
|
||||||
|
"camPocketContour": false,
|
||||||
|
"camPocketEngrave": false
|
||||||
|
}
|
||||||
69
src/cli/kiri-cam-tools.json
Normal file
69
src/cli/kiri-cam-tools.json
Normal file
|
|
@ -0,0 +1,69 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"id": 2000,
|
||||||
|
"number": 5,
|
||||||
|
"name": "ball 1/16",
|
||||||
|
"type": "ballmill",
|
||||||
|
"shaft_diam": 0.0625,
|
||||||
|
"shaft_len": 1,
|
||||||
|
"flute_diam": 0.0625,
|
||||||
|
"flute_len": 2,
|
||||||
|
"taper_tip": 0,
|
||||||
|
"metric": false
|
||||||
|
}, {
|
||||||
|
"id": 2001,
|
||||||
|
"number": 6,
|
||||||
|
"name": "ball 1/8",
|
||||||
|
"type": "ballmill",
|
||||||
|
"shaft_diam": 0.125,
|
||||||
|
"shaft_len": 1,
|
||||||
|
"flute_diam": 0.125,
|
||||||
|
"flute_len": 2,
|
||||||
|
"taper_tip": 0,
|
||||||
|
"metric": false
|
||||||
|
}, {
|
||||||
|
"id": 2002,
|
||||||
|
"number": 4,
|
||||||
|
"name": "ball 1/4",
|
||||||
|
"type": "ballmill",
|
||||||
|
"shaft_diam": 0.25,
|
||||||
|
"shaft_len": 1,
|
||||||
|
"flute_diam": 0.25,
|
||||||
|
"flute_len": 2,
|
||||||
|
"taper_tip": 0,
|
||||||
|
"metric": false
|
||||||
|
}, {
|
||||||
|
"id": 1000,
|
||||||
|
"number": 3,
|
||||||
|
"type": "endmill",
|
||||||
|
"name": "end 1/16",
|
||||||
|
"metric": false,
|
||||||
|
"shaft_diam": 0.0625,
|
||||||
|
"shaft_len": 1,
|
||||||
|
"flute_diam": 0.0625,
|
||||||
|
"flute_len": 1.5,
|
||||||
|
"taper_tip": 0
|
||||||
|
}, {
|
||||||
|
"id": 1001,
|
||||||
|
"number": 2,
|
||||||
|
"type": "endmill",
|
||||||
|
"name": "end 1/8",
|
||||||
|
"metric": false,
|
||||||
|
"shaft_diam": 0.125,
|
||||||
|
"shaft_len": 1,
|
||||||
|
"flute_diam": 0.125,
|
||||||
|
"flute_len": 1.5,
|
||||||
|
"taper_tip": 0
|
||||||
|
}, {
|
||||||
|
"id": 1002,
|
||||||
|
"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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -1,64 +1,62 @@
|
||||||
{
|
{
|
||||||
"noclone":false,
|
"new": false,
|
||||||
"mode":"FDM",
|
"mode": "FDM",
|
||||||
"internal":0,
|
"deviceName":"Creality.Ender.3",
|
||||||
"imageURL":"",
|
"noclone": false,
|
||||||
"imageScale":0.75,
|
"internal": 0,
|
||||||
"imageAnchor":0,
|
"imageURL": "",
|
||||||
"bedHeight":2.5,
|
"imageScale": 0.75,
|
||||||
"bedWidth":220,
|
"imageAnchor": 0,
|
||||||
"bedDepth":220,
|
"bedHeight": 2.5,
|
||||||
"bedRound":false,
|
"bedWidth": 220,
|
||||||
"bedBelt":false,
|
"bedDepth": 220,
|
||||||
"maxHeight":300,
|
"bedRound": false,
|
||||||
"originCenter":false,
|
"bedBelt": false,
|
||||||
"extrudeAbs":true,
|
"maxHeight": 300,
|
||||||
"spindleMax":0,
|
"originCenter": false,
|
||||||
"gcodeFan":[ "M106 S{fan_speed}" ],
|
"extrudeAbs": true,
|
||||||
"gcodeTrack":[],
|
"spindleMax": 0,
|
||||||
"gcodeLayer":[],
|
"gcodeFan": ["M106 S{fan_speed}"],
|
||||||
|
"gcodeTrack": [],
|
||||||
|
"gcodeLayer": [],
|
||||||
"gcodePre":[
|
"gcodePre":[
|
||||||
"M107 ; turn off filament cooling fan",
|
"M107 ; turn off filament cooling fan",
|
||||||
"G90 ; set absolute positioning mode",
|
"G90 ; set absolute positioning mode",
|
||||||
"M82 ; set absolute positioning for extruder",
|
"M82 ; set absolute positioning for extruder",
|
||||||
"M104 S{temp} T{tool} ; set extruder temperature",
|
"M104 S{temp} T{tool} ; set extruder temperature",
|
||||||
"M140 S{bed_temp} T{tool} ; set bed temperature",
|
"M140 S{bed_temp} T{tool} ; set bed temperature",
|
||||||
"G28 ; home axes",
|
"G28 ; home axes",
|
||||||
"G92 X0 Y0 Z0 E0 ; reset all axes positions",
|
"G92 X0 Y0 Z0 E0 ; reset all axes positions",
|
||||||
"G1 X0 Y0 Z0.25 F180 ; move XY to 0,0 and Z 0.25mm over bed",
|
"G1 X0 Y0 Z0.25 F180 ; move XY to 0,0 and Z 0.25mm over bed",
|
||||||
"G92 E0 ; zero the extruded",
|
"G92 E0 ; zero the extruded",
|
||||||
"M190 S{bed_temp} T{tool} ; wait for bed to reach target temp",
|
"M190 S{bed_temp} T{tool} ; wait for bed to reach target temp",
|
||||||
"M109 S{temp} T{tool} ; wait for extruder to reach target temp",
|
"M109 S{temp} T{tool} ; wait for extruder to reach target temp",
|
||||||
"G92 E0 ; zero the extruded",
|
"G92 E0 ; zero the extruded",
|
||||||
"G1 F225 ; set feed speed"
|
"G1 F225 ; set feed speed"
|
||||||
|
],
|
||||||
|
"gcodePost":[
|
||||||
|
"M107 ; turn off filament cooling fan",
|
||||||
|
"M104 S0 T{tool} ; turn off right extruder",
|
||||||
|
"M140 S0 T{tool} ; turn off bed",
|
||||||
|
"G1 X0 Y300 F1200 ; end move",
|
||||||
|
"M84 ; disable stepper motors"
|
||||||
],
|
],
|
||||||
"gcodePost":[
|
"gcodeProc": "",
|
||||||
"M107 ; turn off filament cooling fan",
|
"gcodePause": [],
|
||||||
"M104 S0 T{tool} ; turn off right extruder",
|
"gcodeDwell": [],
|
||||||
"M140 S0 T{tool} ; turn off bed",
|
"gcodeSpindle": [],
|
||||||
"G1 X0 Y300 F1200 ; end move",
|
"gcodeChange": [],
|
||||||
"M84 ; disable stepper motors"
|
"gcodeFExt": "gcode",
|
||||||
],
|
"gcodeSpace": true,
|
||||||
"gcodeProc":"",
|
"gcodeStrip": false,
|
||||||
"gcodePause":[],
|
"gcodeLaserOn": [],
|
||||||
"gcodeDwell":[],
|
|
||||||
"gcodeSpindle":[],
|
|
||||||
"gcodeChange":[],
|
|
||||||
"gcodeFExt":"gcode",
|
|
||||||
"gcodeSpace":true,
|
|
||||||
"gcodeStrip":false,
|
|
||||||
"gcodeLaserOn":[],
|
|
||||||
"gcodeLaserOff":[],
|
"gcodeLaserOff":[],
|
||||||
"extruders":[
|
"extruders":[ {
|
||||||
{
|
|
||||||
"extFilament":1.75,
|
"extFilament":1.75,
|
||||||
"extNozzle":0.4,
|
"extNozzle":0.4,
|
||||||
"extSelect":[ "T0" ],
|
"extSelect":[ "T0" ],
|
||||||
"extDeselect":[],
|
"extDeselect":[],
|
||||||
"extOffsetX":0,
|
"extOffsetX":0,
|
||||||
"extOffsetY":0
|
"extOffsetY":0
|
||||||
}
|
} ],
|
||||||
],
|
|
||||||
"new":false,
|
|
||||||
"deviceName":"Creality.Ender.3"
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,70 +1,70 @@
|
||||||
{
|
{
|
||||||
"sName":"Ender3_test",
|
"sName": "Ender3_test",
|
||||||
"sliceHeight":0.25,
|
"arcTolerance": 0,
|
||||||
"sliceShells":3,
|
"antiBacklash": 0,
|
||||||
"sliceShellOrder":"in-out",
|
"sliceHeight": 0.25,
|
||||||
"sliceLayerStart":"last",
|
"sliceShells": 3,
|
||||||
"sliceFillAngle":45,
|
"sliceShellOrder": "in-out",
|
||||||
"sliceFillOverlap":0.3,
|
"sliceLayerStart": "last",
|
||||||
"sliceFillSparse":0.2,
|
"sliceFillAngle": 45,
|
||||||
"sliceFillType":"gyroid",
|
"sliceFillOverlap": 0.3,
|
||||||
"sliceAdaptive":false,
|
"sliceFillSparse": 0.2,
|
||||||
"sliceMinHeight":0,
|
"sliceFillType": "gyroid",
|
||||||
"sliceSupportDensity":0.25,
|
"sliceAdaptive": false,
|
||||||
"sliceSupportOffset":0.4,
|
"sliceMinHeight": 0,
|
||||||
"sliceSupportGap":1,
|
"sliceSupportDensity": 0.25,
|
||||||
"sliceSupportSize":6,
|
"sliceSupportOffset": 0.4,
|
||||||
"sliceSupportArea":1,
|
"sliceSupportGap": 1,
|
||||||
"sliceSupportExtra":0,
|
"sliceSupportSize": 6,
|
||||||
"sliceSupportAngle":50,
|
"sliceSupportArea": 1,
|
||||||
"sliceSupportNozzle":0,
|
"sliceSupportExtra": 0,
|
||||||
"sliceSolidMinArea":1,
|
"sliceSupportAngle": 50,
|
||||||
"sliceSolidLayers":3,
|
"sliceSupportNozzle": 0,
|
||||||
"sliceBottomLayers":3,
|
"sliceSolidMinArea": 1,
|
||||||
"sliceTopLayers":3,
|
"sliceSolidLayers": 3,
|
||||||
"firstLayerRate":10,
|
"sliceBottomLayers": 3,
|
||||||
"firstLayerPrintMult":1.15,
|
"sliceTopLayers": 3,
|
||||||
"firstLayerYOffset":0,
|
"firstLayerRate": 10,
|
||||||
"firstLayerBrim":0,
|
"firstLayerFanSpeed": 0,
|
||||||
"firstLayerBeltLead":3,
|
"firstLayerPrintMult": 1.15,
|
||||||
"outputTemp":210,
|
"firstLayerYOffset": 0,
|
||||||
"outputBedTemp":60,
|
"firstLayerBrim": 0,
|
||||||
"outputFeedrate":50,
|
"firstLayerBeltLead": 3,
|
||||||
"outputFinishrate":50,
|
"outputTemp": 210,
|
||||||
"outputSeekrate":80,
|
"outputBedTemp": 60,
|
||||||
"outputShellMult":1.25,
|
"outputFeedrate": 50,
|
||||||
"outputFillMult":1.25,
|
"outputFinishrate": 50,
|
||||||
"outputSparseMult":1.25,
|
"outputSeekrate": 80,
|
||||||
"outputRetractDist":4,
|
"outputShellMult": 1.25,
|
||||||
"outputRetractSpeed":30,
|
"outputFillMult": 1.25,
|
||||||
"outputRetractDwell":30,
|
"outputSparseMult": 1.25,
|
||||||
"outputShortPoly":100,
|
"outputRetractDist": 4,
|
||||||
"outputMinSpeed":10,
|
"outputRetractSpeed": 30,
|
||||||
"outputCoastDist":0.1,
|
"outputRetractDwell": 30,
|
||||||
"outputLayerRetract":true,
|
"outputShortPoly": 100,
|
||||||
"detectThinWalls":true,
|
"outputMinSpeed": 10,
|
||||||
"zHopDistance":0,
|
"outputCoastDist": 0.1,
|
||||||
"antiBacklash":0,
|
"outputLayerRetract": true,
|
||||||
"outputOriginCenter":false,
|
"detectThinWalls": true,
|
||||||
"sliceFillRate":0,
|
"outputOriginCenter": false,
|
||||||
"sliceSupportEnable":false,
|
"sliceFillRate": 0,
|
||||||
"firstSliceHeight":0.25,
|
"sliceSupportEnable": false,
|
||||||
"firstLayerFillRate":35,
|
"firstSliceHeight": 0.25,
|
||||||
"firstLayerLineMult":1,
|
"firstLayerFillRate": 35,
|
||||||
"firstLayerNozzleTemp":0,
|
"firstLayerLineMult": 1,
|
||||||
"firstLayerBedTemp":0,
|
"firstLayerNozzleTemp": 0,
|
||||||
"firstLayerBrimTrig":0,
|
"firstLayerBedTemp": 0,
|
||||||
"outputRaft":false,
|
"firstLayerBrimTrig": 0,
|
||||||
"outputRaftSpacing":0.2,
|
"outputRaft": false,
|
||||||
"outputRetractWipe":0,
|
"outputRaftSpacing": 0.2,
|
||||||
"outputBrimCount":2,
|
"outputRetractWipe": 0,
|
||||||
"outputBrimOffset":2,
|
"outputBrimCount": 2,
|
||||||
"outputLoopLayers":null,
|
"outputBrimOffset": 2,
|
||||||
"outputInvertX":false,
|
"outputLoopLayers": null,
|
||||||
"outputInvertY":false,
|
"outputInvertX": false,
|
||||||
"arcTolerance":0,
|
"outputInvertY": false,
|
||||||
"gcodePause":"",
|
"outputFanSpeed": 255,
|
||||||
"ranges":[],
|
"gcodePause": "",
|
||||||
"firstLayerFanSpeed":0,
|
"ranges": [],
|
||||||
"outputFanSpeed":255
|
"zHopDistance": 0
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,8 @@ CAM.prepare = async function(widgets, settings, update) {
|
||||||
});
|
});
|
||||||
|
|
||||||
const output = print.output.filter(level => Array.isArray(level));
|
const output = print.output.filter(level => Array.isArray(level));
|
||||||
|
|
||||||
|
if (render) // allows it to run from CLI
|
||||||
return render.path(output, (progress, layer) => {
|
return render.path(output, (progress, layer) => {
|
||||||
update(0.75 + progress * 0.25, "render", layer);
|
update(0.75 + progress * 0.25, "render", layer);
|
||||||
}, {
|
}, {
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ let opts = {
|
||||||
controller: "src/cli/kiri-controller.json",
|
controller: "src/cli/kiri-controller.json",
|
||||||
process: "src/cli/kiri-fdm-process.json",
|
process: "src/cli/kiri-fdm-process.json",
|
||||||
device: "src/cli/kiri-fdm-device.json",
|
device: "src/cli/kiri-fdm-device.json",
|
||||||
|
tools: "src/cli/kiri-cam-tools.json"
|
||||||
};
|
};
|
||||||
for (let i=0; i<args.length; i++) {
|
for (let i=0; i<args.length; i++) {
|
||||||
let arg = args[i].split('=');
|
let arg = args[i].split('=');
|
||||||
|
|
@ -37,6 +38,7 @@ if (opts.help) {
|
||||||
" --verbose | enable verbose logging",
|
" --verbose | enable verbose logging",
|
||||||
" --dir=[dir] | root directory for file paths (default: '.')",
|
" --dir=[dir] | root directory for file paths (default: '.')",
|
||||||
" --model=[file] | model file to load (or last parameter)",
|
" --model=[file] | model file to load (or last parameter)",
|
||||||
|
" --tools=[file] | tools array for CAM mode",
|
||||||
" --source=[file] | source file list (defaults to kiri engine)",
|
" --source=[file] | source file list (defaults to kiri engine)",
|
||||||
" --device=[file] | device definition file (json)",
|
" --device=[file] | device definition file (json)",
|
||||||
" --process=[file] | process definition file (json)",
|
" --process=[file] | process definition file (json)",
|
||||||
|
|
@ -128,6 +130,7 @@ function btoa(b) {
|
||||||
|
|
||||||
async function run() {
|
async function run() {
|
||||||
let files = await fetch(opts.source, { format: "eval" } );
|
let files = await fetch(opts.source, { format: "eval" } );
|
||||||
|
let tools = await fetch(opts.tools, { format: "eval" } );
|
||||||
let device = await fetch(opts.device, { format: "eval" } );
|
let device = await fetch(opts.device, { format: "eval" } );
|
||||||
let process = await fetch(opts.process, { format: "eval" } );
|
let process = await fetch(opts.process, { format: "eval" } );
|
||||||
|
|
||||||
|
|
@ -202,8 +205,10 @@ async function run() {
|
||||||
engine.rotate(x,y,z);
|
engine.rotate(x,y,z);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.then(() => engine.setProcess(process))
|
|
||||||
.then(() => engine.setDevice(device))
|
.then(() => engine.setDevice(device))
|
||||||
|
.then(() => engine.setProcess(process))
|
||||||
|
.then(() => { if (device.mode === 'CAM') engine.setTools(tools) })
|
||||||
|
.then(() => engine.setMode(device.mode))
|
||||||
.then(eng => eng.slice())
|
.then(eng => eng.slice())
|
||||||
.then(eng => eng.prepare())
|
.then(eng => eng.prepare())
|
||||||
.then(eng => engine.export())
|
.then(eng => engine.export())
|
||||||
|
|
|
||||||
|
|
@ -162,8 +162,10 @@ class Engine {
|
||||||
return new Promise((accept, reject) => {
|
return new Promise((accept, reject) => {
|
||||||
let output = [];
|
let output = [];
|
||||||
kiri.client.export(this.settings, segment => {
|
kiri.client.export(this.settings, segment => {
|
||||||
this.listener({export:{segment}});
|
if (typeof segment === 'string') {
|
||||||
output.push(segment);
|
this.listener({export:{segment}});
|
||||||
|
output.push(segment);
|
||||||
|
}
|
||||||
}, done => {
|
}, done => {
|
||||||
this.listener({export:{done}});
|
this.listener({export:{done}});
|
||||||
accept(output.join('\r\n'));
|
accept(output.join('\r\n'));
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue