From 7959cc08f2ff38b877a5e36c4e7667b12877a327 Mon Sep 17 00:00:00 2001 From: Mikhail Allen Date: Wed, 9 Jun 2021 14:36:27 -0400 Subject: [PATCH] fixed case where arcQ.center could be undefined --- src/mode/fdm/export.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/mode/fdm/export.js b/src/mode/fdm/export.js index 8c5faebb..3c6a5e1e 100644 --- a/src/mode/fdm/export.js +++ b/src/mode/fdm/export.js @@ -527,6 +527,7 @@ let e3 = arcQ[el-1]; // last in arcQ let cc = BASE.util.center2d(e1, e2, e3, 1); // find center let dc = 0; + if (cc) { if ([cc.x,cc.y,cc.z,cc.r].hasNaN()) { console.log({cc, e1, e2, e3}); @@ -546,7 +547,13 @@ if (arcQ.length === 4) { // not enough points for an arc, drop first point and recalc center emitQrec(arcQ.shift()); - arcQ.center = [ BASE.util.center2d(arcQ[0], arcQ[1], arcQ[2], 1) ]; + let tc = [ BASE.util.center2d(arcQ[0], arcQ[1], arcQ[2], 1) ]; + // the new center is invalid as well. drop the first point + if (!tc) { + emitQrec(arcQ.shift()); + } else { + arcQ.center = [ tc ]; + } } else { // enough to consider an arc, emit and start new arc let defer = arcQ.pop();