From fa5e79f786bbcaf9bec7aa56aec7814689fe8fe9 Mon Sep 17 00:00:00 2001 From: Benjamin F Date: Wed, 3 May 2023 18:46:30 -0700 Subject: [PATCH 1/4] fix(bob): Access optional measurements via measurements --- designs/bob/src/bib.mjs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/designs/bob/src/bib.mjs b/designs/bob/src/bib.mjs index 3256a358e1a..11797e9b77f 100644 --- a/designs/bob/src/bib.mjs +++ b/designs/bob/src/bib.mjs @@ -16,7 +16,7 @@ export const bib = { points, Path, paths, - optionalMeasurements, + measurements, options, macro, log, @@ -27,7 +27,7 @@ export const bib = { part, }) => { // Head size - const head = (optionalMeasurements?.head || 360) * options.headSize + const head = (`head` in measurements ? measurements.head : 360) * options.headSize // Construct the neck opening let tweak = 1 From 0dab47589dac9028abe6a6200f2b8b17b694a091 Mon Sep 17 00:00:00 2001 From: Benjamin F Date: Wed, 3 May 2023 18:46:57 -0700 Subject: [PATCH 2/4] fix(penelope): Access optional measurements via measurements --- designs/penelope/src/back.mjs | 3 ++- designs/penelope/src/front.mjs | 3 ++- designs/penelope/src/shape.mjs | 9 ++++----- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/designs/penelope/src/back.mjs b/designs/penelope/src/back.mjs index af24f2f439f..cd170c94666 100644 --- a/designs/penelope/src/back.mjs +++ b/designs/penelope/src/back.mjs @@ -1,5 +1,5 @@ import { pluginBundle } from '@freesewing/plugin-bundle' -import { measurements, options, BuildMainShape } from './shape.mjs' +import { measurements, optionalMeasurements, options, BuildMainShape } from './shape.mjs' function penelopeBack(params) { const { @@ -135,6 +135,7 @@ function penelopeBack(params) { export const back = { name: 'penelope.back', measurements, + optionalMeasurements, options, plugins: [pluginBundle], draft: penelopeBack, diff --git a/designs/penelope/src/front.mjs b/designs/penelope/src/front.mjs index 3989c70896a..fc6046c5f65 100644 --- a/designs/penelope/src/front.mjs +++ b/designs/penelope/src/front.mjs @@ -1,5 +1,5 @@ import { pluginBundle } from '@freesewing/plugin-bundle' -import { measurements, options, BuildMainShape } from './shape.mjs' +import { measurements, optionalMeasurements, options, BuildMainShape } from './shape.mjs' function penelopeFront(params) { const { options, Path, points, paths, Snippet, snippets, complete, sa, paperless, macro, part } = @@ -60,6 +60,7 @@ function penelopeFront(params) { export const front = { name: 'penelope.front', measurements, + optionalMeasurements, options, plugins: [pluginBundle], draft: penelopeFront, diff --git a/designs/penelope/src/shape.mjs b/designs/penelope/src/shape.mjs index 2366aac9c13..96acfa49fbe 100644 --- a/designs/penelope/src/shape.mjs +++ b/designs/penelope/src/shape.mjs @@ -82,14 +82,13 @@ export function BuildMainShape( store.set('nrOfDarts', nrOfDarts) store.set('dartSize', dartSize) - if (optionalMeasurements?.seatBack) { - seat = (frontPart ? seat - optionalMeasurements.seatBack : optionalMeasurements.seatBack) * 2 + if ('seatBack' in measurements) { + seat = (frontPart ? seat - measurements.seatBack : measurements.seatBack) * 2 } else { seat *= 1 + (frontPart ? -1 : 1) * options.sideSeamShiftPercentage } - if (optionalMeasurements?.waistBack) { - waist = - (frontPart ? waist - optionalMeasurements.waistBack : optionalMeasurements.waistBack) * 2 + if ('waistBack' in measurements) { + waist = (frontPart ? waist - measurements.waistBack : measurements.waistBack) * 2 } else { waist *= 1 + (frontPart ? -1 : 1) * options.sideSeamShiftPercentage } From b5371f0b5ccb85897acc42b9b380d43f4170ed3c Mon Sep 17 00:00:00 2001 From: Benjamin F Date: Wed, 3 May 2023 18:48:32 -0700 Subject: [PATCH 3/4] fix(docs): Clarify how optional measurements are accessed --- .../dev/reference/api/part/config/measurements/en.md | 9 +++++++++ markdown/dev/reference/settings/measurements/en.md | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/markdown/dev/reference/api/part/config/measurements/en.md b/markdown/dev/reference/api/part/config/measurements/en.md index 3fbbf6aba7d..c3a0b1818f2 100644 --- a/markdown/dev/reference/api/part/config/measurements/en.md +++ b/markdown/dev/reference/api/part/config/measurements/en.md @@ -38,3 +38,12 @@ const part = { } ``` + + +Although they are specified via the part configuration `optionalMeasurements` +property, optional measurements are accessed via the 'measurements' +settings property. + +(There is no `optionalMeasurements` settings property.)` + + diff --git a/markdown/dev/reference/settings/measurements/en.md b/markdown/dev/reference/settings/measurements/en.md index ea77f5e54c8..6be38b0d1c4 100644 --- a/markdown/dev/reference/settings/measurements/en.md +++ b/markdown/dev/reference/settings/measurements/en.md @@ -39,3 +39,12 @@ const pattern = new Aaron({ Measurements should always be specified in millimeter, unless it's an angle measurement (like `shoulderSlope`) which should be provided in degrees. + + + +The `measurements` settings property is used to hold __all__ measurements, +both regular measurements as well as any optional measurements. + +(There is no `optionalMeasurements` settings property.) + + From d191c7cd5fe237189d877b923919495f07be008e Mon Sep 17 00:00:00 2001 From: Benjamin F Date: Wed, 3 May 2023 18:58:39 -0700 Subject: [PATCH 4/4] fix(penelope): Remove non-existent optionalMeasurements shorthand --- designs/penelope/src/shape.mjs | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/designs/penelope/src/shape.mjs b/designs/penelope/src/shape.mjs index 96acfa49fbe..23e9ff4ad4a 100644 --- a/designs/penelope/src/shape.mjs +++ b/designs/penelope/src/shape.mjs @@ -38,21 +38,7 @@ export const options = { } export function BuildMainShape( - { - sa, - options, - measurements, - optionalMeasurements, - Point, - Path, - points, - paths, - store, - paperless, - macro, - part, - log, - }, + { sa, options, measurements, Point, Path, points, paths, store, paperless, macro, part, log }, frontPart ) { let skirtLength = measurements.waistToKnee * (1 + options.lengthBonus) // + options.hem;