diff --git a/packages/bee/config/index.js b/packages/bee/config/index.js index fb419acdb70..adfe587edd1 100644 --- a/packages/bee/config/index.js +++ b/packages/bee/config/index.js @@ -121,7 +121,7 @@ export default { metric: [6, 13, 19, 25, 32, 38], imperial: [6.35, 12.7, 19.05, 25.4, 31.75, 38.1], }, - ...pctBasedOn('bustSpan'), + toAbs: (pct, { measurements }) => measurements.bustSpan * pct, }, neckTieLength: { pct: 80, min: 70, max: 100 }, neckTieEnds: { dflt: 'straight', list: ['straight', 'pointed'] }, @@ -135,7 +135,7 @@ export default { metric: [6, 13, 19, 25, 32, 38], imperial: [6.35, 12.7, 19.05, 25.4, 31.75, 38.1], }, - ...pctBasedOn('hpsToWaistFront'), + toAbs: (pct, { measurements }) => measurements.hpsToWaistFront * pct, }, bandTieLength: { pct: 35, min: 30, max: 50 }, bandTieEnds: { dflt: 'straight', list: ['straight', 'pointed'] }, diff --git a/packages/holmes/config/index.js b/packages/holmes/config/index.js index d24db32f5f8..cfeafeb39d2 100644 --- a/packages/holmes/config/index.js +++ b/packages/holmes/config/index.js @@ -37,7 +37,7 @@ export default { metric: [6, 13, 19, 25, 32, 38, 44, 50], imperial: [6.35, 12.7, 19.05, 25.4, 31.75, 38.1, 44.45, 50.8], }, - ...pctBasedOn('head'), + toAbs: (pct, { measurements }) => measurements.head * pct, }, lengthRatio: { pct: 55, min: 40, max: 60 }, gores: { count: 6, min: 4, max: 20 }, diff --git a/packages/holmes/src/ear.js b/packages/holmes/src/ear.js index 53c6d2a4dfc..e4e486b82d6 100644 --- a/packages/holmes/src/ear.js +++ b/packages/holmes/src/ear.js @@ -26,11 +26,14 @@ export default function (part) { points.bottomFlipped = points.bottom.flipX() points.bottomC = points.bottom.shift(90, points.bottom.y - points.bottom.x) points.bottomCFlipped = points.bottomC.flipX() - paths.seam = new Path() + paths.saBase = new Path() .move(points.bottom) .curve(points.bottomC, points.topC, points.top) .curve(points.topCFlipped, points.bottomCFlipped, points.bottomFlipped) - paths.hem = new Path().move(points.bottomFlipped).line(points.bottom) + .setRender(false) + paths.hemBase = new Path().move(points.bottomFlipped).line(points.bottom) + .setRender(false) + paths.seam = paths.saBase.join(paths.hemBase).close() // Complete? if (complete) { macro('grainline', { from: points.top, to: new Point(0, points.bottom.y) }) @@ -45,9 +48,9 @@ export default function (part) { snippets.buttonhole = new Snippet('buttonhole-start', points.buttonhole).attr('data-scale', 2) } if (sa) { - paths.sa = paths.seam + paths.sa = paths.saBase .offset(sa) - .join(paths.hem.offset(sa * 2)) + .join(paths.hemBase.offset(sa * 2)) .attr('class', 'fabric sa') .close() } diff --git a/packages/holmes/src/visor.js b/packages/holmes/src/visor.js index b9029e055e6..39798a9224b 100644 --- a/packages/holmes/src/visor.js +++ b/packages/holmes/src/visor.js @@ -46,38 +46,34 @@ export default function (part) { ) points.ex1CFlipped = points.ex1C.flipX() points.ex2CFlipped = points.ex2C.flipX() - - paths.seam = new Path() - .move(points.in2Flipped) - .curve(points.in2CFlipped, points.in1CFlipped, points.in1) - .curve(points.in1C, points.in2C, points.in2) - .curve(points.ex2C, points.ex1C, points.ex1) - .curve(points.ex1CFlipped, points.ex2CFlipped, points.in2Flipped) - .close() + +paths.saInner = new Path () +.move(points.in2) +.curve(points.in2C, points.in1C, points.in1) +.curve(points.in1CFlipped, points.in2CFlipped, points.in2Flipped) +.setRender(false) + +paths.saOuter = new Path() +.move(points.in2Flipped) +.curve(points.ex2CFlipped, points.ex1CFlipped, points.ex1) +.curve(points.ex1C, points.ex2C, points.in2) +.setRender(false) + +paths.seam = paths.saOuter.join(paths.saInner).close() // Complete? if (complete) { macro('grainline', { from: points.in1, to: points.ex1 }) macro('title', { at: points.ex1.shift(45, 20), nr: 2, title: 'visor', scale: 0.4 }) if (sa) { - paths.saInner = new Path() - .move(points.in2Flipped) - .curve(points.in2CFlipped, points.in1CFlipped, points.in1) - .curve(points.in1C, points.in2C, points.in2) - .offset(sa * -2) - .attr('class', 'fabric sa') - points.sa1 = new Point(points.in2Flipped.x - sa, paths.saInner.start().y) - points.sa2 = new Point(points.in2.x + sa, paths.saInner.start().y) - paths.sa = new Path() - .move(points.in2) - .curve(points.ex2C, points.ex1C, points.ex1) - .curve(points.ex1CFlipped, points.ex2CFlipped, points.in2Flipped) - .offset(sa * -1) - .line(points.sa1) - .join(paths.saInner) - .line(points.sa2) - .close() - .attr('class', 'fabric sa') + points.sa1 = new Point(points.in2.x + sa, paths.saInner.offset(sa*2).start().y) + points.sa2 = points.sa1.flipX(points.in1) + paths.sa = paths.saOuter.offset(sa) + .line(points.sa1) + .join(paths .saInner.offset(sa * 2)) + .line(points.sa2) + .close() + .attr('class', 'fabric sa') } // Paperless?