add novel alternating and overlapping grid infill
This commit is contained in:
parent
f6e816863b
commit
a47c50a7e9
4 changed files with 35 additions and 17 deletions
|
|
@ -316,6 +316,7 @@ let gs_kiri_conf = exports;
|
||||||
slaBasePeelDist: 6,
|
slaBasePeelDist: 6,
|
||||||
slaBasePeelLiftRate: 1.5,
|
slaBasePeelLiftRate: 1.5,
|
||||||
slaFillDensity: 0,
|
slaFillDensity: 0,
|
||||||
|
slaFillLine: 0.5,
|
||||||
slaFirstOffset: 0
|
slaFirstOffset: 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -112,7 +112,7 @@ let gs_kiri_sla = exports;
|
||||||
slice.solids.unioned = slice.gatherTopPolys([]);
|
slice.solids.unioned = slice.gatherTopPolys([]);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
if (process.slaFillDensity) {
|
if (process.slaFillDensity && process.slaShell) {
|
||||||
forSlices(slices, 0.9, 1.0, (slice) => {
|
forSlices(slices, 0.9, 1.0, (slice) => {
|
||||||
fillPolys(slice, settings);
|
fillPolys(slice, settings);
|
||||||
});
|
});
|
||||||
|
|
@ -126,37 +126,53 @@ let gs_kiri_sla = exports;
|
||||||
function fillPolys(slice, settings) {
|
function fillPolys(slice, settings) {
|
||||||
let process = settings.process,
|
let process = settings.process,
|
||||||
device = settings.device,
|
device = settings.device,
|
||||||
density = process.slaFillDensity,
|
|
||||||
polys = slice.solids.unioned,
|
polys = slice.solids.unioned,
|
||||||
bounds = settings.bounds,
|
bounds = settings.bounds,
|
||||||
width = bounds.max.x - bounds.min.x,
|
width = bounds.max.x - bounds.min.x,
|
||||||
depth = bounds.max.y - bounds.min.y,
|
depth = bounds.max.y - bounds.min.y,
|
||||||
fill = [];
|
max = Math.max(width,depth),
|
||||||
|
seq = Math.round(process.slaFillLine / process.slaSlice),
|
||||||
|
linew = process.slaFillLine,
|
||||||
|
units_w = (width / linew) * process.slaFillDensity,
|
||||||
|
units_d = (depth / linew) * process.slaFillDensity,
|
||||||
|
step_x = width / units_w,
|
||||||
|
step_y = depth / units_d,
|
||||||
|
start_x = -(width / 2),
|
||||||
|
start_y = -(depth / 2),
|
||||||
|
end_x = width / 2,
|
||||||
|
end_y = depth / 2,
|
||||||
|
fill = []
|
||||||
|
;
|
||||||
|
|
||||||
for (let x=0; x<5; x++) {
|
let seq_i = Math.floor(slice.index / seq);
|
||||||
|
|
||||||
|
if (seq_i % 4 !== 2)
|
||||||
|
for (let x=start_x; x<end_x; x += step_x) {
|
||||||
fill.push(
|
fill.push(
|
||||||
BASE.newPolygon().centerRectangle({
|
BASE.newPolygon().centerRectangle({
|
||||||
x: x * (width/20) - (width/2),
|
x: x + step_x/2,
|
||||||
y: 0,
|
y: 0,
|
||||||
z: slice.z
|
z: slice.z
|
||||||
}, width/20, depth/20)
|
}, linew, depth)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
for (let y=0; y<5; y++) {
|
|
||||||
|
if (seq_i % 4 !== 0)
|
||||||
|
for (let y=start_y; y<end_y; y += step_y) {
|
||||||
fill.push(
|
fill.push(
|
||||||
BASE.newPolygon().centerRectangle({
|
BASE.newPolygon().centerRectangle({
|
||||||
x: 0,
|
x: 0,
|
||||||
y: y * (depth/20) - (depth/2),
|
y: y + step_y/2,
|
||||||
z: slice.z
|
z: slice.z
|
||||||
}, width/20, depth/20)
|
}, width, linew)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
let clip = POLY.trimTo(fill, slice.tops.map(t => t.poly));
|
fill = POLY.union(fill);
|
||||||
let union = slice.solids.unioned.appendAll(clip);
|
fill = POLY.trimTo(fill, slice.tops.map(t => t.poly));
|
||||||
|
fill = POLY.union(slice.solids.unioned.appendAll(fill));
|
||||||
|
|
||||||
slice.solids.unioned = POLY.union(union);
|
slice.solids.unioned = fill;
|
||||||
// console.log(slice.index, clip, union, slice.solids.unioned);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -1289,7 +1289,7 @@ var gs_kiri_init = exports;
|
||||||
|
|
||||||
layers: UC.setGroup($("layers")),
|
layers: UC.setGroup($("layers")),
|
||||||
layerOutline: UC.newBoolean(LANG.la_olin, onLayerToggle, {modes:LOCAL ? ALL : FDM_LASER}),
|
layerOutline: UC.newBoolean(LANG.la_olin, onLayerToggle, {modes:LOCAL ? ALL : FDM_LASER}),
|
||||||
layerTrace: UC.newBoolean(LANG.la_trce, onLayerToggle, {modes:FDM_LASER_SLA}),
|
layerTrace: UC.newBoolean(LANG.la_trce, onLayerToggle, {modes:FDM_LASER}),
|
||||||
layerFacing: UC.newBoolean(LANG.la_face, onLayerToggle, {modes:CAM}),
|
layerFacing: UC.newBoolean(LANG.la_face, onLayerToggle, {modes:CAM}),
|
||||||
layerRough: UC.newBoolean(LANG.la_ruff, onLayerToggle, {modes:CAM}),
|
layerRough: UC.newBoolean(LANG.la_ruff, onLayerToggle, {modes:CAM}),
|
||||||
layerFinish: UC.newBoolean(LANG.la_fini, onLayerToggle, {modes:CAM}),
|
layerFinish: UC.newBoolean(LANG.la_fini, onLayerToggle, {modes:CAM}),
|
||||||
|
|
@ -1301,7 +1301,7 @@ var gs_kiri_init = exports;
|
||||||
layerSparse: UC.newBoolean(LANG.la_sprs, onLayerToggle, {modes:FDM}),
|
layerSparse: UC.newBoolean(LANG.la_sprs, onLayerToggle, {modes:FDM}),
|
||||||
layerSupport: UC.newBoolean(LANG.la_sprt, onLayerToggle, {modes:FDM}),
|
layerSupport: UC.newBoolean(LANG.la_sprt, onLayerToggle, {modes:FDM}),
|
||||||
layerPrint: UC.newBoolean(LANG.la_prnt, onLayerToggle),
|
layerPrint: UC.newBoolean(LANG.la_prnt, onLayerToggle),
|
||||||
layerMoves: UC.newBoolean(LANG.la_move, onLayerToggle),
|
layerMoves: UC.newBoolean(LANG.la_move, onLayerToggle, {modes:GCODE}),
|
||||||
|
|
||||||
settingsGroup: UC.newGroup(LANG.se_menu, control, {region:"right"}),
|
settingsGroup: UC.newGroup(LANG.se_menu, control, {region:"right"}),
|
||||||
settingsTable: UC.newTableRow([
|
settingsTable: UC.newTableRow([
|
||||||
|
|
@ -1476,6 +1476,7 @@ var gs_kiri_init = exports;
|
||||||
|
|
||||||
slaFill: UC.newGroup('infill', null, {modes:SLA, group:"sla-first"}),
|
slaFill: UC.newGroup('infill', null, {modes:SLA, group:"sla-first"}),
|
||||||
slaFillDensity: UC.newInput('density', {title:'percent infill\n0.0-1.0', convert:UC.toFloat, bound:UC.bound(0,1), modes:SLA}),
|
slaFillDensity: UC.newInput('density', {title:'percent infill\n0.0-1.0', convert:UC.toFloat, bound:UC.bound(0,1), modes:SLA}),
|
||||||
|
slaFillLine: UC.newInput('line width', {title:'hatch line width\nin millimeters', convert:UC.toFloat, bound:UC.bound(0,5), modes:SLA}),
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!lang_set) {
|
if (!lang_set) {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
var exports = {
|
var exports = {
|
||||||
COPYRIGHT:"Copyright (C) Stewart Allen <sa@grid.space> - All Rights Reserved",
|
COPYRIGHT:"Copyright (C) Stewart Allen <sa@grid.space> - All Rights Reserved",
|
||||||
LICENSE:"See the license.md file included with the source distribution",
|
LICENSE:"See the license.md file included with the source distribution",
|
||||||
VERSION:"1.8.8"
|
VERSION:"1.8.9"
|
||||||
};
|
};
|
||||||
if (!module) var module = {};
|
if (!module) var module = {};
|
||||||
module.exports = exports;
|
module.exports = exports;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue