diff --git a/packages/aaron/config/index.js b/packages/aaron/config/index.js index 6d68405ca13..a6eb55e461b 100644 --- a/packages/aaron/config/index.js +++ b/packages/aaron/config/index.js @@ -53,7 +53,7 @@ export default { shoulderSlopeReduction: 0, // Percentages - armholeDrop: { pct: 10, min: 1, max: 75 }, + armholeDrop: { pct: 10, min: 0, max: 75 }, backlineBend: { pct: 50, min: 25, max: 100 }, chestEase: { pct: 8, min: 0, max: 20 }, hipsEase: { pct: 8, min: 0, max: 20 }, diff --git a/packages/aaron/src/back.js b/packages/aaron/src/back.js index 76b1f39b47b..222187e4657 100644 --- a/packages/aaron/src/back.js +++ b/packages/aaron/src/back.js @@ -13,9 +13,13 @@ export default function (part) { paperless, macro, utils, - units + units, + measurements } = part.shorthand() + // Lower back neck a bit + points.cbNeck.y = measurements.neckCircumference / 10 + points.strapLeftCp2 = utils.beamsIntersect( points.strapLeft, points.strapCenter.rotate(90, points.strapLeft), @@ -37,7 +41,7 @@ export default function (part) { .move(points.cbNeck) .line(points.cbHem) .line(points.hem) - .curve_(points.waist, points.armhole) + .curve_(points.hipsCp2, points.armhole) .curve(points.armholeCp2, points.strapRightCp1, points.strapRight) .line(points.strapLeft) .line(points.strapLeft) diff --git a/packages/aaron/src/front.js b/packages/aaron/src/front.js index 82fbde0ae0d..e07b105d693 100644 --- a/packages/aaron/src/front.js +++ b/packages/aaron/src/front.js @@ -55,16 +55,29 @@ export default function (part) { ) points.cfNeckCp1 = points.cfNeck.shiftFractionTowards(points.necklineCorner, options.necklineBend) + // This will come in handy + store.set('armholeY', points.armhole.y * (1 + options.armholeDrop)) + // Hips points.hips.x = ((measurements.hipsCircumference + options.hipsEase * measurements.hipsCircumference) / 4) * (1 - options.stretchFactor) points.waist.x = points.hips.x // Because stretch + points.hipsCp2 = new Point( + points.hips.x, + store.get('armholeY') + (points.hips.y - store.get('armholeY')) / 2 + ) + // Hem points.hem.x = points.hips.x // Armhole + points.armhole = utils.beamIntersectsY( + points.armhole, + points.hips, + points.armhole.y * (1 + options.armholeDrop) + ) points.armholeCorner = utils.beamsIntersect( points.armhole, points.armhole.shift(180, 10), @@ -79,7 +92,7 @@ export default function (part) { .move(points.cfNeck) .line(points.cfHem) .line(points.hem) - .curve_(points.waist, points.armhole) + .curve_(points.hipsCp2, points.armhole) .curve(points.armholeCp2, points.strapRightCp1, points.strapRight) .line(points.strapLeft) .curve(points.strapLeftCp2, points.cfNeckCp1, points.cfNeck)