From bfe87bec8b99a8d61aeaad0ef1b73f93bc4dc79b Mon Sep 17 00:00:00 2001 From: julien delnatte Date: Sat, 29 Oct 2022 20:20:32 +0200 Subject: [PATCH 1/3] add "random" and "position" sliceLayerStart and fix origin --- src/kiri-mode/fdm/prepare.js | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/kiri-mode/fdm/prepare.js b/src/kiri-mode/fdm/prepare.js index ce7f54e4..abb6d3c4 100644 --- a/src/kiri-mode/fdm/prepare.js +++ b/src/kiri-mode/fdm/prepare.js @@ -784,9 +784,11 @@ FDM.prepare = async function(widgets, settings, update) { function slicePrintPath(print, slice, startPoint, offset, output, opt = {}) { const { settings } = print; const { device } = settings; + const { bedWidth, bedDepth, bedRound } = device; let preout = [], process = opt.params || settings.process, + originCenter = process.outputOriginCenter || bedRound, extruder = slice.extruder || 0, nozzleSize = process.sliceLineWidth || device.extruders[extruder].extNozzle, firstLayer = opt.first || false, @@ -810,6 +812,15 @@ function slicePrintPath(print, slice, startPoint, offset, output, opt = {}) { antiBacklash = process.antiBacklash, wipeDist = process.outputRetractWipe || 0, isBelt = device.bedBelt, + bedOffset = originCenter ? { + x: 0, + y: 0, + z: 0 + } : { + x: bedWidth/2, + y: isBelt ? 0 : bedDepth/2, + z: 0 + }, beltFirst = process.outputBeltFirst || false, startClone = startPoint.clone(), seedPoint = opt.seedPoint || startPoint, @@ -1376,11 +1387,24 @@ function slicePrintPath(print, slice, startPoint, offset, output, opt = {}) { switch (process.sliceLayerStart) { case "last": break; + case "random": + let bounds = top.poly.bounds; + let center = bounds.center(); + let radius = Math.max(bounds.width(), bounds.height()); + let angle = Math.random()*Math.PI*2; + let x = center.x + Math.cos(angle)*radius; + let y = center.y + Math.sin(angle)*radius; + startPoint = newPoint(x,y,startPoint.z); + break; case "center": startPoint = newPoint(0,0,startPoint.z); break; case "origin": - startPoint = origin.clone(); + startPoint = newPoint(-bedOffset.x, -bedOffset.y, startPoint.z); + break; + case "position": + startPoint = newPoint(-bedOffset.x+process.sliceLayerStartX, -bedOffset.y+process.sliceLayerStartY, startPoint.z); + console.log("startPoint", top); break; } From c414305bede5ff99f20c5cb6646780644ad824b2 Mon Sep 17 00:00:00 2001 From: julien delnatte Date: Sat, 29 Oct 2022 20:29:19 +0200 Subject: [PATCH 2/3] add "random" to choice lists --- src/kiri/consts.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/kiri/consts.js b/src/kiri/consts.js index 9ca5e68e..eb73b0b6 100644 --- a/src/kiri/consts.js +++ b/src/kiri/consts.js @@ -29,6 +29,7 @@ const LISTS = { { name: "last" }, { name: "center" }, { name: "origin" }, + { name: "random" }, ], infill: [ { name: "hex" }, From f324b2cf83a56395cbf20c88ac343f4cf7d3a727 Mon Sep 17 00:00:00 2001 From: julien delnatte Date: Sat, 29 Oct 2022 20:38:21 +0200 Subject: [PATCH 3/3] add sliceLayerStartX and sliceLayerStartY to conf.js --- src/kiri/conf.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/kiri/conf.js b/src/kiri/conf.js index ef93dff6..ff3419d1 100644 --- a/src/kiri/conf.js +++ b/src/kiri/conf.js @@ -302,6 +302,8 @@ const conf = exports({ sliceShells: 3, sliceShellOrder: "in-out", sliceLayerStart: "last", + sliceLayerStartX: 0, + sliceLayerStartY: 0, sliceLineWidth: 0, sliceFillGrow: 0, sliceFillAngle: 45,