From 9365f36e1575194a38b25ac8f61785f68a5018a2 Mon Sep 17 00:00:00 2001 From: Joost De Cock Date: Sun, 23 May 2021 13:10:03 +0200 Subject: [PATCH] fix(florent): Added missing notches. Closes #1015 --- packages/florent/src/brimbottom.js | 4 ++++ packages/florent/src/side.js | 16 +++++++++++++++- packages/florent/src/top.js | 17 +++++++++++++++++ 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/packages/florent/src/brimbottom.js b/packages/florent/src/brimbottom.js index e45453828c1..981e936660b 100644 --- a/packages/florent/src/brimbottom.js +++ b/packages/florent/src/brimbottom.js @@ -58,6 +58,10 @@ export default function (part) { from: points.outerMid, to: points.innerMid, }) + macro('sprinkle', { + snippet: 'notch', + on: [ 'innerMid', 'outerMid' ] + }) if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa') diff --git a/packages/florent/src/side.js b/packages/florent/src/side.js index 4bd4e1cb9a5..bc8907075b8 100644 --- a/packages/florent/src/side.js +++ b/packages/florent/src/side.js @@ -1,5 +1,5 @@ export default function (part) { - let { paperless, sa, complete, points, macro, paths, Path, snippets, Snippet } = part.shorthand() + let { store, paperless, sa, complete, points, macro, paths, Path, snippets, Snippet } = part.shorthand() // Clean up for (let i of Object.keys(paths)) { @@ -10,6 +10,7 @@ export default function (part) { paths.seam.render = true if (complete) { + for (let s in snippets) delete snippets[s] points.title = points.innerGuide.shiftFractionTowards(points.outerGuide, 0.5) macro('title', { at: points.title, @@ -24,6 +25,19 @@ export default function (part) { offset: 15, grainline: true, }) + points.notch1 = new Path() + .move(points.tip) + .curve(points.tipCp1, points.outerTopCp2, points.outerTop) + .shiftAlong(store.get('topDistanceToFirstNotch')) + points.notch2 = new Path() + .move(points.tip) + .curve(points.tipCp1, points.outerTopCp2, points.outerTop) + .curve(points.outerTopCp1, points.outerGuideCp2, points.outerGuide) + .shiftAlong(store.get('topDistanceToSecondNotch')) + macro('sprinkle', { + snippet: 'notch', + on: [ 'notch1', 'notch2' ] + }) if (sa) { paths.sa = new Path() diff --git a/packages/florent/src/top.js b/packages/florent/src/top.js index ccdb34157b1..5734c8a56df 100644 --- a/packages/florent/src/top.js +++ b/packages/florent/src/top.js @@ -10,6 +10,7 @@ export default function (part) { snippets, Snippet, complete, + store } = part.shorthand() const fitCap = (part, scale) => { @@ -151,6 +152,22 @@ export default function (part) { to: points.grainlineTo, }) macro('miniscale', { at: new Point(points.title.x * 0.75, points.title.y) }) + macro('sprinkle', { + snippet: 'notch', + on: [ 'midMid', 'backHollow', 'midSide' ] + }) + store.set('topDistanceToFirstNotch', new Path() + .move(points.backEdge) + .line(points.backSide) + .curve(points.backSideCp1, points.backHollowCp2, points.backHollow) + .length() + ) + store.set('topDistanceToSecondNotch', new Path() + .move(points.backHollow) + .curve(points.backHollowCp1, points.midSideCp2, points.midSide) + .length() + store.get('topDistanceToFirstNotch') + ) + if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')