From 3f30f4ec9ef303c8776df24c6babdf1ac98e57be Mon Sep 17 00:00:00 2001 From: Wouter van Wageningen Date: Sun, 19 Jun 2022 23:23:10 +0000 Subject: [PATCH 1/9] First commit --- README.md | 2 - config/dependencies.yaml | 3 + config/exceptions.yaml | 2 + config/software/designs.json | 3 +- designs/noble/CHANGELOG.md | 9 + designs/noble/README.md | 260 +++++++++++++++++++ designs/noble/build.js | 55 ++++ designs/noble/config.js | 23 ++ designs/noble/config/index.js | 110 ++++++++ designs/noble/package.json | 65 +++++ designs/noble/src/backInside.js | 67 +++++ designs/noble/src/backOutside.js | 56 ++++ designs/noble/src/backPoints.js | 94 +++++++ designs/noble/src/frontInside.js | 154 +++++++++++ designs/noble/src/frontOutside.js | 171 +++++++++++++ designs/noble/src/frontPoints.js | 412 ++++++++++++++++++++++++++++++ designs/noble/src/index.js | 42 +++ 17 files changed, 1525 insertions(+), 3 deletions(-) create mode 100644 designs/noble/CHANGELOG.md create mode 100644 designs/noble/README.md create mode 100644 designs/noble/build.js create mode 100644 designs/noble/config.js create mode 100644 designs/noble/config/index.js create mode 100644 designs/noble/package.json create mode 100644 designs/noble/src/backInside.js create mode 100644 designs/noble/src/backOutside.js create mode 100644 designs/noble/src/backPoints.js create mode 100644 designs/noble/src/frontInside.js create mode 100644 designs/noble/src/frontOutside.js create mode 100644 designs/noble/src/frontPoints.js create mode 100644 designs/noble/src/index.js diff --git a/README.md b/README.md index 988d78b452d..8f942de98db 100644 --- a/README.md +++ b/README.md @@ -67,8 +67,6 @@ cd freesewing yarn kickstart ``` -If you don't want to set up a dev environment, you can [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/freesewing/freesewing), though we recommend that you fork this repo and then put `gitpod.io/# Prior to version 2, FreeSewing was not a JavaScript project. +> As such, that history is out of scope for this change log. + diff --git a/designs/noble/README.md b/designs/noble/README.md new file mode 100644 index 00000000000..dd69653c960 --- /dev/null +++ b/designs/noble/README.md @@ -0,0 +1,260 @@ +![FreeSewing](https://static.freesewing.org/banner.png) +

@freesewing/noble on NPM + License: MIT + Code quality on DeepScan + Open issues tagged pkg:noble + All Contributors +

Follow @freesewing_org on Twitter + Chat with us on Discord + Become a FreeSewing Patron + Follow @freesewing_org on Twitter +

+ +# @freesewing/noble + +FIXME: A FreeSewing pattern that needs a description + + + +## What am I looking at? πŸ€” + +This repository is our *monorepo* +holding [all our NPM packages](https://freesewing.dev/reference/packages/). + +This folder holds: @freesewing/noble + +If you're not entirely sure what to do or how to start, type this command: + +``` +npm run tips +``` + +## About FreeSewing πŸ’€ + +Where the world of makers and developers collide, that's where you'll find FreeSewing. + +If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate +our sewing patterns adapted to your measurements. + +If you're a developer, our documentation is on [freesewing.dev](https://freesewing.dev/). +Our [core library](https://freesewing.dev/reference/api/) is a *batteries-included* toolbox +for parametric design of sewing patterns. But we also provide a range +of [plugins](https://freesewing.dev/reference/plugins/) that further extend the +functionality of the platform. + +If you have NodeJS installed, you can try it right now by running: + +```bash +npx create-freesewing-pattern +``` + +Or, consult our getting started guides +for [Linux](https://freesewing.dev/tutorials/getting-started-linux/), +[MacOS](https://freesewing.dev/tutorials/getting-started-mac/), +or [Windows](https://freesewing.dev/tutorials/getting-started-windows/). + +We also have a [pattern design tutorial](https://freesewing.dev/tutorials/pattern-design/) that +walks you through your first parametric design, +and [a friendly community](https://freesewing.org/community/where/) with +people who can help you when you get stuck. + +## Support FreeSewing: Become a patron πŸ₯° + +FreeSewing is an open source project run by a community, +and financially supported by our patrons. + +If you feel what we do is worthwhile, and you can spend a few coind without +hardship, then you should [join us and become a patron](https://freesewing.org/community/join). + +## Links πŸ‘©β€πŸ’» + + - πŸ’» Makers website: [freesewing.org](https://freesewing.org) + - πŸ’» Developers website: [freesewing.dev](https://freesewing.dev) + - πŸ’¬ Chat: On Discord via [discord.freesewing.org](https://discord.freesewing.org/) + - βœ… Todo list/Kanban board: On Github via [todo.freesewing.org](https://todo.freesewing.org/) + - 🐦 Twitter: [@freesewing_org](https://twitter.com/freesewing_org) + - πŸ“· Instagram: [@freesewing_org](https://instagram.com/freesewing_org) + +## License: MIT πŸ€“ + +Β© [Joost De Cock](https://github.com/joostdecock). +See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details. + +## Where to get help 🀯 + +Our [chatrooms on Discord](https://chat.freesewing.org/) are the best place to ask questions, +share your feedback, or just hang out. + +If you want to report a problem, please [create an issue](https://github.com/freesewing/freesewing/issues/new). + + + +## Contributors ✨ + +Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adam Tomkins

πŸ“–

Alexandre Ignjatovic

πŸ’»

AlfaLyr

πŸ’» πŸ”Œ 🎨

Andrew James

πŸ“–

Anneke

πŸ“– 🌍

Annie Kao

πŸ“–

Anternative

πŸ“–

Anthony

πŸ’¬

Cameron Dubas

πŸ“–

Carsten Biebricher

πŸ“–

Cathy Zoller

πŸ“–

Chantal Lapointe

🌍

Damien PIQUET

πŸ’»

Darigov Research

πŸ“– πŸ€”

Elena FdR

πŸ“– πŸ“

Emmanuel Nyachoke

πŸ’» πŸ“–

Enoch Riese

πŸ’»

EvEkSwed

🌍

Fantastik-Maman

🌍

Forrest O.

πŸ“–

FrΓ©dΓ©ric

🌍

Glenn Matthews

πŸ“–

Igor Couto

πŸ›

Ikko Ashimine

πŸ“–

Irapeke

🌍

Jacek Sawoszczuk

πŸ“–

Jason Williams

πŸ“–

Jeremy Jackson

πŸ’»

Joebidido

🌍

Joost De Cock

🚧

Josh Essman

πŸ“–

Kake

πŸ“–

Kapunahele Wong

πŸ“–

Karen

πŸ“– πŸ“‹

Katie McGinley

πŸ“–

Kieran Klaassen

πŸ’»

Kittycatou

🌍

Kris

πŸ“–

Kristin Ruben

πŸ’»

Loudepeuter

🌍

Lucian

πŸ“‹

Marcus

🌍

Martin Tribo

πŸ“–

Nadege Michel

⚠️ πŸ“–

Natalia

πŸ’» 🎨 πŸ“

Nathan Yergler

πŸ“–

Nick Dower

πŸ“– πŸ’» πŸ›

Patrick Forringer

πŸ”Œ

Paul

πŸ“– πŸ“ 🌍

Phillip Thelen

πŸ’»

Pixieish

πŸ“–

Prof. dr. Sorcha NΓ­ Dhubhghaill

πŸ“–

Quentin FELIX

πŸ’» 🎨

Rik Hekker

πŸ›

Sam Livingston-Gray

πŸ“–

Sanne

πŸ’» πŸ“–

Sara Latorre

🌍

SeaZeeZee

πŸ“– πŸ’»

Slylele

πŸ“– 🌍

Soazillon

🌍

SoneaTheBest

🌍

Stefan Sydow

🌍 πŸ“– πŸ’»

TrΓ­ona

πŸ“–

Unmutual

πŸ“–

Wouter van Wageningen

πŸ’» 🎨 πŸ”§

amysews

πŸ“–

beautifulsummermoon

🌍

berce

πŸ“–

biou

πŸ’»

bobgeorgethe3rd

πŸ’» πŸ“– 🎨

brmlyklr

πŸ“–

chri5b

πŸ’» ⚠️

dingcycle

🌍

drowned-in-books

πŸ’¬

econo202

πŸ“–

ericamattos

🌍

fightingrabbit

πŸ’»

gaylyndie

πŸ“–

grimlokason

πŸ’»

hellgy

🎨

jackseye

πŸ“–

marckiesel

🌍

mesil

πŸ›

starfetch

πŸ’» πŸ“– 🌍 🎨

ttimearl

πŸ–‹

tuesgloomsday

πŸ“–

valadaptive

πŸ’»

viocky

🌍

woolishboy

πŸ’»

yc

🌍
+ + + + + + +This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! + diff --git a/designs/noble/build.js b/designs/noble/build.js new file mode 100644 index 00000000000..c77d47c1637 --- /dev/null +++ b/designs/noble/build.js @@ -0,0 +1,55 @@ +/* This script will build the package with esbuild */ +const esbuild = require('esbuild') +const pkg = require('./package.json') + +// Create banner based on package info +const banner = `/** + * ${pkg.name} | v${pkg.version} + * ${pkg.description} + * (c) ${new Date().getFullYear()} ${pkg.author} + * @license ${pkg.license} + */` + +// Shared esbuild options +const options = { + banner: { js: banner }, + bundle: true, + entryPoints: ['src/index.js'], + external: ["@freesewing"], + metafile: process.env.VERBOSE ? true : false, + minify: process.env.NO_MINIFY ? false : true, + sourcemap: true, +} + +// Different formats +const formats = { + cjs: "dist/index.js", + esm: "dist/index.mjs", +} + +// Let esbuild generate different formats +let result +(async () => { + for (const [format, outfile] of Object.entries(formats)) { + result = await esbuild + .build({ ...options, outfile, format }) + .catch(() => process.exit(1)) + } + + if (process.env.VERBOSE) { + const info = await esbuild.analyzeMetafile(result.metafile) + console.log(info) + } + + // Also build a version that has all dependencies bundled + // This makes it easy to run tests + await esbuild + .build({ + ...options, + outfile: 'tests/dist/index.mjs', + format: 'esm', + external: [], + }) + .catch(() => process.exit(1)) + +})() diff --git a/designs/noble/config.js b/designs/noble/config.js new file mode 100644 index 00000000000..01444f8de8b --- /dev/null +++ b/designs/noble/config.js @@ -0,0 +1,23 @@ +import { version } from './package.json' + +export default { + name: 'noble', + version, + design: '', + code: '', + department: '', + type: '', + difficulty: 3, + tags: [ ], + optionGroups: { + fit: ['size'], + }, + measurements: [], + dependencies: {}, + inject: {}, + hide: [], + parts: ['box'], + options: { + size: { pct: 50, min: 10, max: 100 }, + }, +} diff --git a/designs/noble/config/index.js b/designs/noble/config/index.js new file mode 100644 index 00000000000..772736d11e5 --- /dev/null +++ b/designs/noble/config/index.js @@ -0,0 +1,110 @@ +import { version } from '../package.json' +import Bella from '@freesewing/bella' + +const config = { + ...Bella.config, + name: 'noble', + version, + design: 'Noble Incognito', + code: 'Wouter van Wageningen', + department: 'tops', + type: 'block', + difficulty: 3, + optionGroups: { + type: ['dartPosition'], + fit: ['chestEase', 'waistEase', 'bustSpanEase'], + darts: ['backDartHeight', 'waistDartLength', 'shoulderDartPosition','upperDartLength','dartOutsideCP','armholeDartPosition'], + armhole: [ + 'armholeDepth', + 'backArmholeSlant', + 'backArmholeCurvature', + 'frontArmholePitchDepth', + 'backArmholePitchDepth', + ], + advanced: ['backNeckCutout', 'backHemSlope', 'frontShoulderWidth', 'highBustWidth', 'shoulderToShoulderEase'], + }, + measurements: [ + 'chest', + 'waist', + 'waistBack', + 'neck', + 'hpsToWaistFront', + 'hpsToWaistBack', + 'shoulderToShoulder', + 'shoulderSlope', + // ], + // optionalMeasurements: [ + 'highBust', + 'underbust', + 'bustSpan', + 'hpsToBust', + ], + hide: ['bellaFrontSideDart', 'bellaBack', 'backPoints', 'frontPoints',], + inject: { + ...Bella.config.inject, + backPoints: 'bellaBack', + backInside: 'backPoints', + backOutside: 'backPoints', + frontPoints: 'bellaFrontSideDart', + frontInside: 'frontPoints', + frontOutside: 'frontPoints', + }, + dependencies: { + // The inheritance makes this a bit messy + bellaFrontSideDart: 'bellaBack', + backPoints: 'bellaBack', + backInside: 'backPoints', + backOutside: 'backPoints', + frontPoints: 'bellaBack', + frontInside: 'frontPoints', + frontOutside: 'frontPoints', + }, + parts: [ + 'backPoints', + 'backInside', + 'backOutside', + 'frontPoints', + 'frontInside', + 'frontOutside', + ], + options: { + // Constants + acrossBackFactor: 0.925, + shoulderSlopeBack: 1.23, + neckWidthBack: 0.197, + neckWidthFront: 0.17, + shoulderToShoulderCorrection: 0.995, + backDartLocation: 0.145, + backCenterWaistReduction: 0.35, + collarFactor: 0.19, + + // Percentages + backNeckCutout: { pct: 6, min: 3, max: 9 }, + waistEase: { pct: 5, min: 1, max: 20 }, + chestEase: { pct: 11, min: 5, max: 20 }, + bustSpanEase: { pct: 0, min: -5, max: 20 }, + shoulderToShoulderEase: { pct: -0.5, min: -1, max: 5 }, + backDartHeight: { pct: 46, min: 38, max: 54 }, + armholeDepth: { pct: 44, min: 38, max: 46 }, + backHemSlope: { deg: 2.5, min: 0, max: 5 }, + backArmholeSlant: { deg: 5, min: 1, max: 9 }, + backArmholeCurvature: { pct: 63, min: 50, max: 85 }, + frontArmholeCurvature: { pct: 63, min: 50, max: 85 }, + fullChestEaseReduction: { pct: 4, min: 0, max: 8 }, + frontShoulderWidth: { pct: 95, max: 98, min: 92 }, + frontArmholePitchDepth: { pct: 29, max: 31, min: 27 }, + backArmholePitchDepth: { pct: 35, max: 40, min: 30 }, + highBustWidth: { pct: 86, max: 92, min: 80 }, + bustDartLength: { pct: 90, min: 75, max: 100 }, + waistDartLength: { pct: 90, min: 75, max: 95 }, + bustDartCurve: { pct: 100, min: 0, max: 100 }, + shoulderDartPosition: { pct: 50, min: 10, max: 90 }, + upperDartLength: { pct: 90, min: 80, max: 95 }, + armholeDartPosition: { pct: 50, min: 10, max: 90 }, + dartOutsideCP: { pct: 0, min: -200, max: 200 }, + dartPosition: { dflt: 'shoulder', list: ['shoulder','armhole'] }, + } + +} + +export default config diff --git a/designs/noble/package.json b/designs/noble/package.json new file mode 100644 index 00000000000..a26c6d83d31 --- /dev/null +++ b/designs/noble/package.json @@ -0,0 +1,65 @@ +{ + "name": "@freesewing/noble", + "version": "2.21.0-rc.0", + "description": "FIXME: A FreeSewing pattern that needs a description", + "author": "Joost De Cock (https://github.com/joostdecock)", + "homepage": "https://freesewing.org/", + "repository": "github:freesewing/freesewing", + "license": "MIT", + "bugs": { + "url": "https://github.com/freesewing/freesewing/issues" + }, + "funding": { + "type": "individual", + "url": "https://freesewing.org/patrons/join" + }, + "keywords": [ + "freesewing", + "design", + "diy", + "fashion", + "made to measure", + "parametric design", + "pattern", + "sewing", + "sewing pattern" + ], + "main": "dist/index.js", + "module": "dist/index.mjs", + "scripts": { + "build": "node build.js", + "clean": "rimraf dist", + "mbuild": "NO_MINIFY=1 node build.js", + "symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -", + "test": "BABEL_ENV=production npx mocha tests/*.test.mjs --require @babel/register", + "vbuild": "VERBOSE=1 node build.js", + "lab": "cd ../../sites/lab && yarn start", + "tips": "node ../../scripts/help.mjs", + "prettier": "npx prettier --write 'src/*.js' 'config/*.js'", + "testci": "BABEL_ENV=production npx mocha tests/*.test.mjs --require @babel/register --reporter ../../tests/reporters/terse.js", + "cibuild_step5": "node build.js" + }, + "peerDependencies": { + "@freesewing/core": "^2.21.0-rc.0", + "@freesewing/plugin-bundle": "^2.21.0-rc.0", + "@freesewing/config-helpers": "^2.21.0-rc.0" + }, + "dependencies": {}, + "devDependencies": { + "mocha": "^9.1.1", + "chai": "^4.2.0" + }, + "files": [ + "dist/*", + "README.md", + "package.json" + ], + "publishConfig": { + "access": "public", + "tag": "next" + }, + "engines": { + "node": ">=14.0.0", + "npm": ">=6" + } +} diff --git a/designs/noble/src/backInside.js b/designs/noble/src/backInside.js new file mode 100644 index 00000000000..6a40428d159 --- /dev/null +++ b/designs/noble/src/backInside.js @@ -0,0 +1,67 @@ +export default function (part) { + let { + utils, + store, + sa, + Point, + points, + Path, + paths, + Snippet, + snippets, + options, + measurements, + complete, + paperless, + macro, + } = part.shorthand() + + // delete points.armholePitch + // delete points.armholePitchCp1 + // delete points.armholePitchCp2 + // delete points.armholeCpTarget + // delete points.armholeCp2 + // delete points.armhole + // delete points.bustSide + // delete points.waistSide + // delete points.waistSideCp2 + // delete points.dartBottomRight + // delete points.dartBottomCenter + // delete points.dartRightCp + // delete points.bustDartRight + + // Hide Bella paths + for (let key of Object.keys(paths)) paths[key].render = false + for (let i in snippets) delete snippets[i] + //removing macros not required from Bella + + console.log( 'Noble back inside' ) + + paths.insideSeam = new Path() + .move(points.cbNeck) + .curve_(points.cbNeckCp2, points.waistCenter) + .line(points.dartBottomLeft) + .curve(points.dartLeftCp, points.shoulderDartCpDown, points.dartTip) + .curve(points.shoulderDartCpUp, points.shoulderDart, points.shoulderDart) + .line(points.hps) + ._curve(points.cbNeckCp1, points.cbNeck) + .close() + .attr('class', 'fabric') + + if (complete) { + // points.titleAnchor = points.waistDartRight.shiftFractionTowards( points.armhole, .5 ) + macro('title', { + at: points.titleAnchor, + nr: 3, + title: 'Inside Back', + }) + macro("grainline", { + from: points.grainlineFrom, + to: points.grainlineTo, + }) + + if (sa) paths.sa = paths.insideSeam.offset(sa).attr('class', 'fabric sa') + } + + return part +} diff --git a/designs/noble/src/backOutside.js b/designs/noble/src/backOutside.js new file mode 100644 index 00000000000..c2152763ca4 --- /dev/null +++ b/designs/noble/src/backOutside.js @@ -0,0 +1,56 @@ +export default function (part) { + let { + utils, + store, + sa, + Point, + points, + Path, + paths, + Snippet, + snippets, + options, + measurements, + complete, + paperless, + macro, + } = part.shorthand() + + + + console.log( 'Noble back outside' ) + + console.log( {part:part}) + paths.outsideSeam = new Path() + .move(points.dartBottomRight) + .line(points.waistSide) + .curve_(points.waistSideCp2, points.armhole) + .curve(points.armholeCp2, points.armholePitchCp1, points.armholePitch) + .curve_(points.armholePitchCp2, points.shoulder) + .line(points.shoulderDart) + .curve(points.shoulderDart, points.shoulderDartCpUp, points.dartTip) + .curve(points.shoulderDartCpDown, points.dartRightCp, points.dartBottomRight) + .close() + .attr('class', 'fabric') + + if (complete) { + points.titleAnchor = points.dartBottomRight.shiftFractionTowards( points.waistSide, .35 ).shiftFractionTowards( points.shoulder, .35 ) + macro('title', { + at: points.titleAnchor, + nr: 4, + title: 'Outside Back', + }) + points.grainlineFrom.x = points.shoulderDart.x + points.grainlineTo.x = points.shoulderDart.x + + macro("grainline", { + from: points.grainlineFrom, + to: points.grainlineTo, + }) + + if (sa) paths.sa = paths.outsideSeam.offset(sa).attr('class', 'fabric sa') + + } + + return part +} diff --git a/designs/noble/src/backPoints.js b/designs/noble/src/backPoints.js new file mode 100644 index 00000000000..78bd67fbe49 --- /dev/null +++ b/designs/noble/src/backPoints.js @@ -0,0 +1,94 @@ +export default function (part) { + let { + points, + Path, + paths, + options, + snippets, + } = part.shorthand() + + // Hide Bella paths + for (let key of Object.keys(paths)) paths[key].render = false + for (let i in snippets) delete snippets[i] + //removing macros not required from Bella +// delete points.titleAnchor + delete points.__titleNr + delete points.__titleName + delete points.__titlePattern + delete points.scaleboxAnchor + delete points.__scaleboxImperialBottomLeft + delete points.__scaleboxMetricBottomLeft + delete points.__scaleboxImperialTopLeft + delete points.__scaleboxMetricTopLeft + delete points.__scaleboxImperialTopRight + delete points.__scaleboxMetricTopRight + delete points.__scaleboxImperialBottomRight + delete points.__scaleboxMetricBottomRight + delete points.__scaleboxLead + delete points.__scaleboxTitle + delete points.__scaleboxText + delete points.__scaleboxLink + delete points.__scaleboxImperial + delete points.__scaleboxMetric +// delete points.cbNeck +// delete points.cbWaist + delete points.bustDartLeft + delete points.bustDartLeftCp +// delete points.bustCenter +// delete points.waistCenter +// delete points.cbArmhole +// delete points.cbNeckCp2 +// delete points.cbNeckCp1 +// delete points.dartLeftCp +// delete points.dartBottomLeft +// delete points.dartBottomCenter + + console.log('backPoints'); + + points.shoulderDart = points.hps.shiftFractionTowards( points.shoulder, options.shoulderDartPosition ) + + let aUp = points.dartTip.angle( points.shoulderDart ) + let aDown = points.dartBottomRight.angle( points.dartTip ) + let aDiff = Math.abs( aUp - aDown ) + + // let dartCpAdjustment = Math.abs( options.shoulderDartPosition -.5) +.05 + let dartCpAdjustment = aDiff /50 + console.log({dartCpAdjustment: dartCpAdjustment }); + + // points.shoulderDartCpUp = points.shoulderDart.shiftFractionTowards( points.dartTip, options.upperDartLength) + points.shoulderDartCpUp = points.shoulderDart.shiftFractionTowards( points.dartTip, 1 - dartCpAdjustment) + // points.shoulderDartCpDown = points.shoulderDart.shiftFractionTowards( points.dartTip, 1 +(1-options.upperDartLength) ) + points.shoulderDartCpDown = points.shoulderDart.shiftFractionTowards( points.dartTip, 1 +dartCpAdjustment ) + + let iLength = (new Path() + .move(points.dartBottomLeft) + .curve(points.dartLeftCp, points.shoulderDartCpDown, points.dartTip) + .curve(points.shoulderDartCpUp, points.shoulderDart, points.shoulderDart)).length(); + + let iteration = 0 + let diff = 0 + let angle = 0 + do { + console.log({angle: points.waistSide.angle( points.dartBottomRight ) }) + + angle = diff*( oLength > iLength ? -.1 : .1 ) + + points.dartBottomRight = points.dartBottomRight.rotate( angle, points.waistSide ) + + let oLength = (new Path() + .move(points.shoulderDart) + .curve(points.shoulderDart, points.shoulderDartCpUp, points.dartTip) + .curve(points.shoulderDartCpDown, points.dartRightCp, points.dartBottomRight)).length(); + + console.log({diff:diff, oLength: oLength, iLength: iLength}) + + diff = oLength -iLength + iteration ++ + + } while( diff < -.5 || diff > .5 && iteration < 100 ) + if( iteration >= 100 ) { + raise.error('Something is not quite right here!') + } + + return part +} \ No newline at end of file diff --git a/designs/noble/src/frontInside.js b/designs/noble/src/frontInside.js new file mode 100644 index 00000000000..23760abe833 --- /dev/null +++ b/designs/noble/src/frontInside.js @@ -0,0 +1,154 @@ +export default function (part) { + let { + utils, + store, + sa, + Point, + points, + Path, + paths, + Snippet, + snippets, + options, + measurements, + complete, + paperless, + macro, + } = part.shorthand() + + console.log( 'Noble front inside' ) + + delete points.waistDartHem + delete points.waistDartRight + delete points.waistDartRightCp + delete points.waistDartCpBottom + delete points.bustDartBottom + delete points.bustDartCpBottom + delete points.bustDartTip + delete points.bustDartTop + delete points.shoulderDartTipCpDownOutside + delete points.ex + delete points.bustB + delete points.shoulder + delete points.shoulderDartShoulder + delete points.shoulderDartOutside + delete points.pitchMax + delete points.armholeCpTarget + delete points.armholePitch + delete points.armholePitchCp1 + delete points.armholePitchCp2 + delete points.armhole + delete points.armholeCp2 + delete points.bustDartCpTop + delete points.bustSide + delete points.bustDartMiddle + delete points.bustDartEdge + // delete points.bustDartCpBottom + // delete points.bustDartTop + // delete points.bustDartMiddle + + console.log({part: part}) + + if( options.dartPosition == 'shoulder' ) { + paths.insideSeam = new Path() + .move(points.cfHem) + .line(points.waistDartLeft) + .curve(points.waistDartLeftCp, points.shoulderDartTipCpDownInside, points.shoulderDartTip) + .line(points.shoulderDartInside) + .line(points.hps) + .curve(points.hpsCp2, points.cfNeckCp1, points.cfNeck) + + paths.seam = paths.insideSeam.join( new Path().move(points.cfNeck).line(points.cfHem)) + .close() + .attr('class', 'fabric') + } else { + paths.insideSeam = new Path() + .move(points.cfHem) + .line(points.waistDartLeft) + .curve(points.waistDartLeftCp, points.armholeDartTipCpDownInside, points.armholeDartTipInside) + .curve(points.waistCircleInsideCp1, points.armholeCircleInsideCp1, points.armholeDartInside) + .join(paths.armholeInside) + .line(points.hps) + .curve(points.hpsCp2, points.cfNeckCp1, points.cfNeck) + + paths.seam = paths.insideSeam.join( new Path().move(points.cfNeck).line(points.cfHem)) + .close() + .attr('class', 'fabric') + + } + + if (complete) { + points.titleAnchor = new Point(points.hpsCp2.x *.75, points.cfNeckCp1.y *1.5) + macro('title', { + at: points.titleAnchor, + nr: 1, + title: 'Inside Front', + }) + points.scaleboxAnchor = points.titleAnchor.shift(-90, 90).shift(0,10) + macro('scalebox', { at: points.scaleboxAnchor, rotate: 270 }) + + macro('cutonfold', { + from: points.cfNeck, + to: points.cfHem, + grainline: true, + }) + if (sa) { + paths.sa = paths.insideSeam.offset(sa).line(points.cfNeck).attr('class', 'fabric sa') + paths.sa = paths.sa.move(points.cfHem).line(paths.sa.start()) + } + if (paperless) { + macro('vd', { + from: points.cfHem, + to: points.waistDartTip, + x: 0 - 15, + }) + macro('vd', { + from: points.cfHem, + to: points.shoulderDartTip, + x: 0 - 30, + }) + macro('vd', { + from: points.cfHem, + to: points.cfNeck, + x: 0 - 45, + }) + macro('vd', { + from: points.cfHem, + to: points.hps, + x: 0 - 60, + }) + macro('vd', { + from: points.hps, + to: points.shoulderDartInside, + x: points.cfNeck.x -15, + }) + macro('hd', { + from: points.cfBust, + to: points.shoulderDartTip, + y: points.shoulderDartTip.y - 15, + }) + macro('hd', { + from: points.cfNeck, + to: points.shoulderDartInside, + y: points.hps.y - 30, + }) + macro('hd', { + from: points.cfHem, + to: points.waistDartLeft, + y: points.cfHem.y + sa + 15, + }) + macro('hd', { + from: points.cfHem, + to: points.waistDartTip, + y: points.cfHem.y + sa + 30, + }) + macro('hd', { + from: points.cfNeck, + to: points.hps, + y: points.hps.y - sa - 15, + }) + } + } + + return part +} diff --git a/designs/noble/src/frontOutside.js b/designs/noble/src/frontOutside.js new file mode 100644 index 00000000000..59837f59f97 --- /dev/null +++ b/designs/noble/src/frontOutside.js @@ -0,0 +1,171 @@ +export default function (part) { + let { + utils, + store, + sa, + Point, + points, + Path, + paths, + Snippet, + snippets, + options, + measurements, + complete, + paperless, + macro, + } = part.shorthand() + + console.log('Noble front outside') + + delete points.bustDartTop + delete points.bustSide + delete points.bustDartMiddle + delete points.bustDartBottom + delete points.bustDartCpBottom + delete points.bustB + delete points.bustDartEdge + + console.log({ part: part }) + + if( options.dartPosition == 'shoulder' ) { + paths.seam = new Path() + .move(points.waistDartRight) + .line(points.sideHem) + .line(points.armhole) + .curve(points.armholeCp2, points.armholePitchCp1, points.armholePitch) + .curve_(points.armholePitchCp2, points.shoulder) + .line(points.shoulderDartOutside) + // .curve(points.shoulderDartTipCpDownOutside, points.waistDartRightCp, points.waistDartRight) + .curve(points.shoulderDartTipCpDownOutside, points.waistUpDartRightCpUp, points.waistUpDartRight) + .curve(points.waistUpDartRightCpDown, points.waistCpUp, points.waistDartRight) + .close() + .attr('class', 'fabric') + } else { + paths.seam = new Path() + .move(points.waistDartRight) + .line(points.sideHem) + .line(points.armhole) + .curve(points.armholeCp2, points.armholeOutsidePitchCp1, points.armholeOutsidePitch) + .curve(points.armholeOutsidePitchCp2, points.armholeDartOutsideCp1, points.armholeDartOutside) + .curve(points.armholeCircleOutsideCp1, points.waistCircleOutsideCp1, points.waistUpDartRight) + .curve(points.waistUpDartRightCpDown, points.waistCpUp, points.waistDartRight) + .close() + .attr('class', 'fabric') + } + + if (complete) { + points.titleAnchor = points.waistDartRight + .shiftFractionTowards(points.armhole, 0.5) + .shiftFractionTowards(points.shoulderDartOutside, 0.2) + macro('title', { + at: points.titleAnchor, + nr: 2, + title: 'Outside Front', + }) + // points.scaleboxAnchor = points.titleAnchor.shift(-90, 70) + // macro('scalebox', { at: points.scaleboxAnchor }) + + // points.grainTemp = points.waistDartRight.shiftFractionTowards( points.sideHemInitial, .2 ) + // points.grainBottom = points.waistDartRight.rotate(270,points.grainTemp) + // points.grainTop = points.grainTemp.shiftOutwards(points.grainBottom, 200) + points.grainTop = points.armhole.shift(225, 20) + points.grainBottom = points.sideHemInitial.shift(135, 20) + + macro('grainline', { + from: points.grainBottom, + to: points.grainTop, + }) + + if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa') + } + +/* + paths.tempSeam = new Path() + .move(points.shoulderDartOutside) + // .curve(points.shoulderDartTipCpDownOutside, points.waistDartRightCp, points.waistDartRight) + // .curve(points.shoulderDartTipCpDownOutside, points.bustA, points.waistDartRight) + .curve(points.shoulderDartTipCpDownOutside, points.bustAcp, points.waistDartRight) + .attr('class', 'lining dashed') + + paths.shoulderTempDart = new Path() + .move(points.shoulderDartOutside) + ._curve(points.shoulderDartCpBottom, points.shoulderDartTip) + .curve_(points.shoulderDartCpTop, points.shoulderDartInside) + .attr('class', 'lining') + + paths.insideSeam = new Path() + .move(points.cfHem) + .line(points.waistDartLeft) + .curve(points.waistDartLeftCp, points.shoulderDartTipCpDownInside, points.shoulderDartTip) + .line(points.shoulderDartInside) + .line(points.hps) + .curve(points.hpsCp2, points.cfNeckCp1, points.cfNeck) + + paths.seam2 = paths.insideSeam + .join(new Path().move(points.cfNeck).line(points.cfHem)) + .close() + .attr('class', 'fabric') + + if (complete) { + if (sa) { + paths.sa = paths.insideSeam.offset(sa).line(points.cfNeck).attr('class', 'fabric sa') + paths.sa = paths.sa.move(points.cfHem).line(paths.sa.start()) + } + if (paperless) { + macro('vd', { + from: points.cfHem, + to: points.waistDartTip, + x: 0 - 15, + }) + macro('vd', { + from: points.cfHem, + to: points.shoulderDartTip, + x: 0 - 30, + }) + macro('vd', { + from: points.cfHem, + to: points.cfNeck, + x: 0 - 45, + }) + macro('vd', { + from: points.cfHem, + to: points.hps, + x: 0 - 60, + }) + macro('vd', { + from: points.hps, + to: points.shoulderDartInside, + x: points.cfNeck.x - 15, + }) + macro('hd', { + from: points.cfBust, + to: points.shoulderDartTip, + y: points.shoulderDartTip.y - 15, + }) + macro('hd', { + from: points.cfNeck, + to: points.shoulderDartInside, + y: points.hps.y - 30, + }) + macro('hd', { + from: points.cfHem, + to: points.waistDartLeft, + y: points.cfHem.y + sa + 15, + }) + macro('hd', { + from: points.cfHem, + to: points.waistDartTip, + y: points.cfHem.y + sa + 30, + }) + macro('hd', { + from: points.cfNeck, + to: points.hps, + y: points.hps.y - sa - 15, + }) + } + + } + */ + return part +} diff --git a/designs/noble/src/frontPoints.js b/designs/noble/src/frontPoints.js new file mode 100644 index 00000000000..d99e722fe1c --- /dev/null +++ b/designs/noble/src/frontPoints.js @@ -0,0 +1,412 @@ +export default function (part) { + let { + utils, + store, + sa, + Point, + points, + Path, + paths, + Snippet, + snippets, + options, + measurements, + complete, + paperless, + macro, + } = part.shorthand() + + const bCircle = 0.552284749831 + + console.log('frontPoints') + + // Hide Bella paths + for (let key of Object.keys(paths)) paths[key].render = false + for (let i in snippets) delete snippets[i] + //removing macros not required from Bella + delete points.titleAnchor + delete points.__titleNr + delete points.__titleName + delete points.__titlePattern + delete points.scaleboxAnchor + delete points.__scaleboxImperialBottomLeft + delete points.__scaleboxMetricBottomLeft + delete points.__scaleboxImperialTopLeft + delete points.__scaleboxMetricTopLeft + delete points.__scaleboxImperialTopRight + delete points.__scaleboxMetricTopRight + delete points.__scaleboxImperialBottomRight + delete points.__scaleboxMetricBottomRight + delete points.__scaleboxLead + delete points.__scaleboxTitle + delete points.__scaleboxText + delete points.__scaleboxLink + delete points.__scaleboxImperial + delete points.__scaleboxMetric + + console.log('Noble front') + console.log({ highBust: measurements.highBust }) + console.log({ chest: measurements.chest }) + console.log({ underbust: measurements.underbust }) + console.log({ waist: measurements.waist }) + console.log({ waistBack: measurements.waistBack }) + console.log({ bustSpan: measurements.bustSpan }) + console.log({ neck: measurements.neck }) + console.log({ hpsToBust: measurements.hpsToBust }) + console.log({ hpsToWaistFront: measurements.hpsToWaistFront }) + console.log({ hpsToWaistBack: measurements.hpsToWaistBack }) + console.log({ shoulderToShoulder: measurements.shoulderToShoulder }) + console.log({ shoulderSlope: measurements.shoulderSlope }) + + // if( options.dartPosition == 'shoulder' ) { + // } + points.shoulderDartInside = points.hps.shiftFractionTowards( + points.shoulder, + options.shoulderDartPosition + ) + points.orgShoulder = points.shoulder.clone() + points.orgArmhole = points.armhole.clone() + points.orgArmholeCp2 = points.armholeCp2.clone() + points.orgArmholePitch = points.armholePitch.clone() + points.orgArmholePitchCp1 = points.armholePitchCp1.clone() + points.orgArmholePitchCp2 = points.armholePitchCp2.clone() + let armholePath = new Path() + .move(points.shoulder) + ._curve(points.armholePitchCp2, points.armholePitch) + .curve(points.armholePitchCp1, points.armholeCp2, points.armhole) + + points.armholeDartInside = armholePath.shiftFractionAlong(options.armholeDartPosition) + points.armholeDartOutside = points.armholeDartInside.clone() + + // paths.armholeTemp = armholePath.clone().setRender(true).attr('class', 'lining') + console.log({ armholeDartInside: points.armholeDartInside }) + let armholePaths = armholePath.split(points.armholeDartInside) + + let armholePathInside = armholePaths[0].clone().setRender(false) + let armholePathOutside = armholePaths[1].clone().setRender(false) + let armholeDartAngle = + armholePathInside.reverse().shiftAlong(1).angle(armholePathOutside.shiftAlong(1)) - 90 + + points.armholeDartArmhole = points.armholeDartInside.shiftFractionTowards( + points.armholeDartOutside, + 0.5 + ) + points.armholeDartTip = points.armholeDartArmhole.shiftFractionTowards( + points.bust, + options.upperDartLength + ) + + console.log({ armholeDartAngle: armholeDartAngle }) + console.log({ dist: points.armholeDartInside.dist(points.armholeDartTip) }) + console.log({ bCircle: bCircle * points.armholeDartInside.dist(points.armholeDartTip) }) + points.armholeCircleInsideCp1 = points.armholeDartInside.shift( + armholeDartAngle, + bCircle * points.armholeDartInside.dist(points.armholeDartTip) + ) + points.armholeCircleOutsideCp1 = points.armholeCircleInsideCp1.clone() + + console.log({ armholePathInside: armholePathInside }) + console.log({ armholePathOutside: armholePathOutside }) + points.shoulderCp1 = armholePathInside.ops[1].cp1.clone() + points.armholeInsidePitch = armholePathInside.ops[1].to.clone() + points.armholeInsidePitchCp2 = armholePathInside.ops[1].cp2.clone() + if (armholePathInside.ops.length == 2) { + points.armholeInsidePitchCp1 = points.armholeDartInside.clone() + points.armholeDartInsideCp2 = points.armholeDartInside.clone() + } else { + points.armholeInsidePitchCp1 = armholePathInside.ops[2].cp1.clone() + points.armholeDartInsideCp2 = armholePathInside.ops[2].cp2.clone() + } + points.armholeDartOutsideCp1 = armholePathOutside.ops[1].cp1.clone() + points.armholeOutsidePitch = armholePathOutside.ops[1].to.clone() + points.armholeOutsidePitchCp2 = armholePathOutside.ops[1].cp2.clone() + if (armholePathOutside.ops.length == 2) { + points.armholeOutsidePitchCp1 = points.armhole.clone() + points.armholeCp2 = points.armhole.clone() + } else { + points.armholeOutsidePitchCp1 = armholePathOutside.ops[2].cp1.clone() + points.armholeCp2 = armholePathOutside.ops[2].cp2.clone() + } + + console.log({ shoulder: points.shoulder }) + console.log({ shoulderCp1: points.shoulderCp1 }) + console.log({ armholeInsidePitchCp2: points.armholeInsidePitchCp2 }) + console.log({ armholeInsidePitch: points.armholeInsidePitch }) + console.log({ armholeInsidePitchCp1: points.armholeInsidePitchCp1 }) + console.log({ armholeDartInsideCp2: points.armholeDartInsideCp2 }) + console.log({ armholeDartInside: points.armholeDartInside }) + console.log({ armholeDartOutside: points.armholeDartOutside }) + console.log({ armholeDartOutsideCp1: points.armholeDartOutsideCp1 }) + console.log({ armholeOutsidePitchCp2: points.armholeOutsidePitchCp2 }) + console.log({ armholeOutsidePitch: points.armholeOutsidePitch }) + console.log({ armholeOutsidePitchCp1: points.armholeOutsidePitchCp1 }) + console.log({ armholeCp2: points.armholeCp2 }) + console.log({ armhole: points.armhole }) + + // paths.armholeInside = new Path() + // .move(points.shoulder) + // .curve(points.shoulderCp1, points.armholeInsidePitchCp2, points.armholeInsidePitch) + // .curve(points.armholeInsidePitchCp1, points.armholeDartInsideCp2, points.armholeDartInside) + // .setRender(true) + // .attr('class', 'lining') + paths.armholeInside = new Path() + .move(points.armholeDartInside) + .curve(points.armholeDartInsideCp2, points.armholeInsidePitchCp1, points.armholeInsidePitch) + .curve(points.armholeInsidePitchCp2, points.shoulderCp1, points.shoulder) + .setRender(false) + .attr('class', 'lining') + + let rotateAngle = + points.shoulderDartInside.angle(points.bustA) - points.bustDartTop.angle(points.bustA) + if (rotateAngle < 0) { + rotateAngle += 360 + } + if (rotateAngle > 360) { + rotateAngle -= 360 + } + + points.shoulderDartCpTop = points.bustDartCpTop.rotate(rotateAngle, points.bustA) + points.shoulderDartCpBottom = points.bustDartCpBottom.rotate(rotateAngle, points.bustA) + + rotateAngle = + points.armholeDartInside.angle(points.bustA) - points.bustDartTop.angle(points.bustA) + if (rotateAngle < 0) { + rotateAngle += 360 + } + if (rotateAngle > 360) { + rotateAngle -= 360 + } + + points.armholeDartCpTop = points.bustDartCpTop.rotate(rotateAngle, points.bustA) + points.armholeDartCpBottom = points.bustDartCpBottom.rotate(rotateAngle, points.bustA) + + let spreadAngle = + /*360 -*/ points.bustA.angle(points.bustDartBottom) - points.bustA.angle(points.bustDartTop) + console.log({ spreadAngle: spreadAngle }) + + points.shoulderDartOutside = points.shoulderDartInside.rotate(spreadAngle, points.bustA) + points.shoulderDartShoulder = points.shoulderDartInside.shiftFractionTowards( + points.shoulderDartOutside, + 0.5 + ) + + points.shoulderDartTip = points.shoulderDartShoulder.shiftFractionTowards( + points.bust, + options.upperDartLength + ) + let dartRatio = + new Path().move(points.waistDartHem).line(points.waistDartTip).length() / + new Path().move(points.shoulderDartShoulder).line(points.shoulderDartTip).length() + console.log({ dartRatio: dartRatio }) + + points.shoulder = points.shoulder.rotate(spreadAngle, points.bustA) + points.armhole = points.armhole.rotate(spreadAngle, points.bustA) + points.armholeCp2 = points.armholeCp2.rotate(spreadAngle, points.bustA) + points.armholePitch = points.armholePitch.rotate(spreadAngle, points.bustA) + points.armholePitchCp1 = points.armholePitchCp1.rotate(spreadAngle, points.bustA) + points.armholePitchCp2 = points.armholePitchCp2.rotate(spreadAngle, points.bustA) + points.armholeCircleOutsideCp1 = points.armholeCircleOutsideCp1.rotate(spreadAngle, points.bustA) + points.armholeDartOutside = points.armholeDartOutside.rotate(spreadAngle, points.bustA) + points.armholeDartOutsideCp1 = points.armholeDartOutsideCp1.rotate(spreadAngle, points.bustA) + points.armholeOutsidePitchCp2 = points.armholeOutsidePitchCp2.rotate(spreadAngle, points.bustA) + points.armholeOutsidePitch = points.armholeOutsidePitch.rotate(spreadAngle, points.bustA) + points.armholeOutsidePitchCp1 = points.armholeOutsidePitchCp1.rotate(spreadAngle, points.bustA) + //points.armholeCp2, points.armhole ) + console.log({ shoulder: points.shoulder }) + console.log({ shoulderDartOutside: points.shoulderDartOutside }) + console.log({ shoulderbust: points.bust }) + console.log({ upperDartLength: options.upperDartLength }) + console.log({ waistDartLength: options.waistDartLength }) + + paths.armholeOutside = new Path() + .move(points.armholeDartOutside) + .curve(points.armholeDartOutsideCp1, points.armholeOutsidePitchCp2, points.armholeOutsidePitch) + .curve(points.armholeOutsidePitchCp1, points.armholeCp2, points.armhole) + .setRender(false) + .attr('class', 'lining') + paths.armholeTempDart = new Path() + .move(points.armholeDartOutside) + ._curve(points.armholeDartCpBottom, points.armholeDartTip) + .curve_(points.armholeDartCpTop, points.armholeDartInside) + .setRender(false) + .attr('class', 'lining') + + points.shoulderDartTipCpDownOutside = points.shoulderDartOutside.shiftFractionTowards( + points.bust, + 1 + (1 - options.upperDartLength) + (1 - options.waistDartLength) * dartRatio + ) + // points.shoulderDartTipCpDownOutside = points.shoulderDartTipCpDownOutside.rotate( options.dartOutsideCP *10, points.shoulderDartOutside ) + + console.log({ shoulderDartInside: points.shoulderDartInside }) + // points.shoulderDartTipCpDownInside = points.shoulderDartInside.shiftFractionTowards( + // points.bust, + // 1 +(1-options.upperDartLength) +((1 -options.waistDartLength) *dartRatio) + // ) + points.shoulderDartTipCpDownInside = points.shoulderDartInside.shiftFractionTowards( + points.shoulderDartTip, + 1 + (1 - options.upperDartLength) + (1 - options.waistDartLength) * dartRatio + ) + points.armholeDartTipCpDownInside = points.armholeDartTip.shiftFractionTowards( + // points.waistDartHem, + points.waistDartLeft, + 1 - options.upperDartLength + (1 - options.waistDartLength) * dartRatio + ) + console.log({ shoulderDartTipCpDownInside: points.shoulderDartTipCpDownInside }) + console.log({ shoulderDartTipCpDownOutside: points.shoulderDartTipCpDownOutside }) + console.log({ shoulderDartTip: points.shoulderDartTip }) + console.log({ waistDartLeftCp: points.waistDartLeftCp }) + console.log({ waistDartLeft: points.waistDartLeft }) + + points.bustAcp = points.waistDartRight.shiftOutwards(points.bustA, 10) + + paths.shoulderInsideSeam = new Path() + .move(points.waistDartLeft) + .curve(points.waistDartLeftCp, points.shoulderDartTipCpDownInside, points.shoulderDartTip) + .line(points.shoulderDartInside) + .setRender(false) + + paths.armholeInsideSeam = new Path() + .move(points.waistDartLeft) + .curve(points.waistDartLeftCp, points.armholeDartTipCpDownInside, points.armholeDartTip) + // .line(points.armholeDartInside) + .setRender(false) + .attr('class', 'lining') + console.log({ armholeInsideSeam: paths.armholeInsideSeam }) + + paths.sOutsideSeam = new Path() + .move(points.waistDartRight) + .curve(points.bustAcp, points.shoulderDartTipCpDownOutside, points.shoulderDartOutside) + .setRender(false) + + points.waistDartRightCp = points.bustAcp.clone() + + let shoulderInsideSeam = new Path() + .move(points.waistDartLeft) + .curve(points.waistDartLeftCp, points.shoulderDartTipCpDownInside, points.shoulderDartTip) + .line(points.shoulderDartInside) + .setRender(false) + console.log({ shoulderInsideSeam: shoulderInsideSeam }) + console.log({ waistDartLeft: points.waistDartLeft }) + console.log({ bustA: points.bustA }) + console.log({ dist: points.waistDartLeft.dist(points.bustA) * 0.5 }) + points.waistUpDartLeft = paths.armholeInsideSeam.shiftAlong( + points.waistDartLeft.dist(points.armholeDartTip) * 0.5 + ) + console.log({ waistUpDartLeft: points.waistUpDartLeft }) + points.waistCircleInsideCp1 = points.waistUpDartLeft.shiftTowards( + points.waistDartLeft, + -0.5 * bCircle * points.armholeDartOutside.dist(points.armholeDartTip) + ) + console.log({ waistCircleInsideCp1: points.waistCircleInsideCp1 }) + points.shoulderDartTipCpDownOutside = points.shoulderDartTipCpDownOutside + .rotate(-2.5, points.shoulderDartOutside) + .shiftFractionTowards(points.shoulderDartOutside, 0.2) + + let lInside = shoulderInsideSeam.length() + console.log({ lInside: lInside }) + let iteration = 1 + let diff = 0 + // points.bustAcp = points.bustA.clone() + do { + points.waistDartRight = points.waistDartRight.rotate(diff * 0.1, points.sideHemInitial) + + let outsideSeam = new Path() + .move(points.waistDartRight) + .curve(points.bustAcp, points.shoulderDartTipCpDownOutside, points.shoulderDartOutside) + + points.waistUpDartRight = outsideSeam.shiftAlong( + points.waistDartRight.dist(points.waistDartRightCp) * 0.5 + ) + points.waistUpDartRightCpDown = points.waistUpDartRight.shiftFractionTowards( + points.waistDartRight, + 0.25 + ) + // points.waistUpDartRightCpUp = points.waistUpDartRight.shiftFractionTowards( points.waistDartRight, -.25 ) + points.waistUpDartRightCpUp = points.waistUpDartRight.shiftFractionTowards( + points.waistDartRight, + -0.6 + ) + points.waistCpUp = points.waistDartRight + .shiftTowards( + points.sideHemInitial, + points.waistDartRight.dist(points.waistUpDartRight) * 0.25 + ) + .rotate(90, points.waistDartRight) + points.waistCircleInsideCp1 = points.armholeDartTip.shiftTowards( + points.armholeDartTipCpDownInside, + -0.5 * bCircle * points.armholeDartInside.dist(points.armholeDartTip) + ) + + outsideSeam = new Path() + .move(points.waistDartRight) + .curve(points.waistCpUp, points.waistUpDartRightCpDown, points.waistUpDartRight) + .curve( + points.waistUpDartRightCpUp, + points.shoulderDartTipCpDownOutside, + points.shoulderDartOutside + ) + + console.log({ + step: iteration, + diff: diff, + insideSeam: lInside, + outsideSeam: outsideSeam.length(), + sOutside: paths.sOutsideSeam.length(), + }) + + diff = shoulderInsideSeam.length() - outsideSeam.length() + iteration++ + } while ((diff > 1 || diff < -1) && iteration < 200) + if (iteration >= 200) { + raise.error('Something is not quite right here!') + } + points.waistDartRightCp = points.bustAcp.clone() + + console.log({ shoulderDartTipCpDownInside: points.shoulderDartTipCpDownInside }) + points.armholeDartTipInside = points.armholeDartTip.clone() + + points.waistCircleOutsideCp1 = points.waistUpDartRight.shiftTowards( + points.waistDartRight, + -1 * bCircle * points.armholeDartOutside.dist(points.armholeDartTip) + ) + + diff = 0 + iteration = 0 + do { + let dist = points.armholeDartTipInside.dist(points.armholeDartTipCpDownInside) + console.log({xDartTip: points.armholeDartTipInside.x,yDartTip: points.armholeDartTipInside.y,xCircle:points.waistCircleOutsideCp1.x,yCircle:points.waistCircleOutsideCp1.y, first: points.armholeDartTipInside.x > points.waistCircleOutsideCp1}) + if( points.armholeDartTipInside.x > points.waistCircleOutsideCp1 ) { + points.armholeDartTipInside.x = points.armholeDartTipInside.x -.5 + points.armholeDartTipInside.y = points.armholeDartTipInside.y +.5 + } else { + points.waistCircleOutsideCp1 = points.waistCircleOutsideCp1.shiftTowards( points.waistUpDartRight, diff > 0 ? 1 :-1 ) + } + points.armholeDartTipCpDownInside = points.waistCircleInsideCp1.shiftOutwards(points.armholeDartTipInside, dist) + + // points.waistCircleOutsideCp1 = points.waistUpDartRight.shiftTowards( + // points.waistDartRight, + // -1 * bCircle * points.armholeDartOutside.dist(points.armholeDartTip) + // ) + paths.armholeTempCircleOutside = new Path() + .move(points.armholeDartOutside) + .curve(points.armholeCircleOutsideCp1, points.waistCircleOutsideCp1, points.waistUpDartRight) + .curve(points.waistUpDartRightCpDown, points.waistCpUp, points.waistDartRight) + .setRender(false) + .attr('class', 'lining') + paths.armholeTempCircleInside = new Path() + .move(points.armholeDartInside) + .curve(points.armholeCircleInsideCp1, points.waistCircleInsideCp1, points.armholeDartTipInside) + .curve(points.armholeDartTipCpDownInside, points.waistDartLeftCp, points.waistDartLeft) + .setRender(false) + .attr('class', 'lining') + + diff = paths.armholeTempCircleOutside.length() - paths.armholeTempCircleInside.length() + iteration ++ + console.log({ i: iteration, diff: diff, armholeTempCircleOutside: paths.armholeTempCircleOutside.length(),armholeTempCircleInside: paths.armholeTempCircleInside.length() }) + } while( (diff < -1 || diff > 1) && iteration < 200 ) + if (iteration >= 200) { + // raise.error('Something is not quite right here!') + } + + return part +} diff --git a/designs/noble/src/index.js b/designs/noble/src/index.js new file mode 100644 index 00000000000..fce32484fdb --- /dev/null +++ b/designs/noble/src/index.js @@ -0,0 +1,42 @@ +import freesewing from '@freesewing/core' +import Bella from '@freesewing/bella' +import plugins from '@freesewing/plugin-bundle' +import config from '../config' +// Parts +import draftBackPoints from './backPoints' +import draftBackInside from './backInside' +import draftBackOutside from './backOutside' +import draftFrontPoints from './frontPoints' +import draftFrontInside from './frontInside' +import draftFrontOutside from './frontOutside' + +// Create design +const Pattern = new freesewing.Design(config, plugins) + +// console.log( 'bella back') +// measurements.highBust = (measurements.highBust == undefined || measurements.highBust == 0 ) ? measurements.chest *1.035 : measurements.highBust +// measurements.bustSpan = (measurements.bustSpan == undefined || measurements.bustSpan == 0 ) ? measurements.waistBack *.47 : measurements.bustSpan +// measurements.underbust = (measurements.underbust == undefined || measurements.underbust == 0 ) ? (measurements.chest +measurements.waist) *.5 : measurements.underbust +// measurements.hpsToBust = (measurements.hpsToBust == undefined || measurements.hpsToBust == 0 ) ? measurements.hpsToWaistFront *.59 : measurements.hpsToBust + +// // Get to work +// console.log({ hpsToBust : measurements.hpsToBust} ) + +// Attach draft methods to prototype +Pattern.prototype.draftBellaBack = function (part) { + return new Bella(this.settings).draftBack(part) +} +Pattern.prototype.draftBellaFrontSideDart = function (part) { + return new Bella(this.settings).draftFrontSideDart(part) +} + +// Pattern.prototype.draftFrontSideDart = (part) => draftFrontSideDart(part) + +Pattern.prototype.draftBackPoints = (part) => draftBackPoints(part) +Pattern.prototype.draftBackInside = (part) => draftBackInside(part) +Pattern.prototype.draftBackOutside = (part) => draftBackOutside(part) +Pattern.prototype.draftFrontPoints = (part) => draftFrontPoints(part) +Pattern.prototype.draftFrontInside = (part) => draftFrontInside(part) +Pattern.prototype.draftFrontOutside = (part) => draftFrontOutside(part) + +export default Pattern From 395a24ecd9739befb4d58a0b33c8244d6d10921b Mon Sep 17 00:00:00 2001 From: Wouter van Wageningen Date: Mon, 20 Jun 2022 03:55:05 +0000 Subject: [PATCH 2/9] small fixes --- designs/noble/config.js | 23 -------------------- designs/noble/config/index.js | 10 +++++---- designs/noble/src/backOutside.js | 2 +- designs/noble/src/frontOutside.js | 4 ++-- designs/noble/src/index.js | 35 +++++++++++++++++++++---------- 5 files changed, 33 insertions(+), 41 deletions(-) delete mode 100644 designs/noble/config.js diff --git a/designs/noble/config.js b/designs/noble/config.js deleted file mode 100644 index 01444f8de8b..00000000000 --- a/designs/noble/config.js +++ /dev/null @@ -1,23 +0,0 @@ -import { version } from './package.json' - -export default { - name: 'noble', - version, - design: '', - code: '', - department: '', - type: '', - difficulty: 3, - tags: [ ], - optionGroups: { - fit: ['size'], - }, - measurements: [], - dependencies: {}, - inject: {}, - hide: [], - parts: ['box'], - options: { - size: { pct: 50, min: 10, max: 100 }, - }, -} diff --git a/designs/noble/config/index.js b/designs/noble/config/index.js index 772736d11e5..c7b82c9951c 100644 --- a/designs/noble/config/index.js +++ b/designs/noble/config/index.js @@ -1,7 +1,11 @@ -import { version } from '../package.json' +// import { version } from '../package.json' import Bella from '@freesewing/bella' -const config = { +import { version } from '../package.json' +import configHelpers from '@freesewing/config-helpers' +const { pctBasedOn } = configHelpers + +export default { ...Bella.config, name: 'noble', version, @@ -106,5 +110,3 @@ const config = { } } - -export default config diff --git a/designs/noble/src/backOutside.js b/designs/noble/src/backOutside.js index c2152763ca4..0907a2deaad 100644 --- a/designs/noble/src/backOutside.js +++ b/designs/noble/src/backOutside.js @@ -34,7 +34,7 @@ export default function (part) { .attr('class', 'fabric') if (complete) { - points.titleAnchor = points.dartBottomRight.shiftFractionTowards( points.waistSide, .35 ).shiftFractionTowards( points.shoulder, .35 ) + points.titleAnchor = points.dartBottomRight.shiftFractionTowards( points.waistSide, .35 ).shiftFractionTowards( points.shoulderDart, .35 ) macro('title', { at: points.titleAnchor, nr: 4, diff --git a/designs/noble/src/frontOutside.js b/designs/noble/src/frontOutside.js index 59837f59f97..da20af15973 100644 --- a/designs/noble/src/frontOutside.js +++ b/designs/noble/src/frontOutside.js @@ -56,8 +56,8 @@ export default function (part) { if (complete) { points.titleAnchor = points.waistDartRight - .shiftFractionTowards(points.armhole, 0.5) - .shiftFractionTowards(points.shoulderDartOutside, 0.2) + // .shiftFractionTowards(points.armhole, 0.5) + .shiftFractionTowards(points.shoulderDartOutside, 0.3) macro('title', { at: points.titleAnchor, nr: 2, diff --git a/designs/noble/src/index.js b/designs/noble/src/index.js index fce32484fdb..a6d0d039782 100644 --- a/designs/noble/src/index.js +++ b/designs/noble/src/index.js @@ -1,8 +1,13 @@ +// import freesewing from '@freesewing/core' +// import Bella from '@freesewing/bella' +// import plugins from '@freesewing/plugin-bundle' +// import config from '../config' import freesewing from '@freesewing/core' import Bella from '@freesewing/bella' -import plugins from '@freesewing/plugin-bundle' +import bundle from '@freesewing/plugin-bundle' import config from '../config' // Parts +// Parts import draftBackPoints from './backPoints' import draftBackInside from './backInside' import draftBackOutside from './backOutside' @@ -11,7 +16,7 @@ import draftFrontInside from './frontInside' import draftFrontOutside from './frontOutside' // Create design -const Pattern = new freesewing.Design(config, plugins) +const Noble = new freesewing.Design(config, bundle) // console.log( 'bella back') // measurements.highBust = (measurements.highBust == undefined || measurements.highBust == 0 ) ? measurements.chest *1.035 : measurements.highBust @@ -23,20 +28,28 @@ const Pattern = new freesewing.Design(config, plugins) // console.log({ hpsToBust : measurements.hpsToBust} ) // Attach draft methods to prototype -Pattern.prototype.draftBellaBack = function (part) { +Noble.prototype.draftBellaBack = function (part) { return new Bella(this.settings).draftBack(part) } -Pattern.prototype.draftBellaFrontSideDart = function (part) { +Noble.prototype.draftBellaFrontSideDart = function (part) { return new Bella(this.settings).draftFrontSideDart(part) } // Pattern.prototype.draftFrontSideDart = (part) => draftFrontSideDart(part) -Pattern.prototype.draftBackPoints = (part) => draftBackPoints(part) -Pattern.prototype.draftBackInside = (part) => draftBackInside(part) -Pattern.prototype.draftBackOutside = (part) => draftBackOutside(part) -Pattern.prototype.draftFrontPoints = (part) => draftFrontPoints(part) -Pattern.prototype.draftFrontInside = (part) => draftFrontInside(part) -Pattern.prototype.draftFrontOutside = (part) => draftFrontOutside(part) +// Pattern.prototype.draftBackPoints = (part) => draftBackPoints(part) +// Pattern.prototype.draftBackInside = (part) => draftBackInside(part) +// Pattern.prototype.draftBackOutside = (part) => draftBackOutside(part) +// Pattern.prototype.draftFrontPoints = (part) => draftFrontPoints(part) +// Pattern.prototype.draftFrontInside = (part) => draftFrontInside(part) +// Pattern.prototype.draftFrontOutside = (part) => draftFrontOutside(part) +Noble.prototype.draftBackPoints = draftBackPoints +Noble.prototype.draftBackInside = draftBackInside +Noble.prototype.draftBackOutside = draftBackOutside +Noble.prototype.draftFrontPoints = draftFrontPoints +Noble.prototype.draftFrontInside = draftFrontInside +Noble.prototype.draftFrontOutside = draftFrontOutside -export default Pattern +export { config, Noble } + +export default Noble From 24422588e10eccf478558e2c9f48152d60c39f63 Mon Sep 17 00:00:00 2001 From: Wouter van Wageningen Date: Mon, 20 Jun 2022 19:40:41 +0000 Subject: [PATCH 3/9] paperless.... --- config/software/designs.json | 2 +- designs/noble/config.js | 23 --- designs/noble/config/index.js | 2 +- designs/noble/src/frontInside.js | 99 +++++++---- designs/noble/src/frontOutside.js | 263 ++++++++++++++++++------------ 5 files changed, 227 insertions(+), 162 deletions(-) delete mode 100644 designs/noble/config.js diff --git a/config/software/designs.json b/config/software/designs.json index 39bcc1b15f1..0680b34bef9 100644 --- a/config/software/designs.json +++ b/config/software/designs.json @@ -13,6 +13,7 @@ "bent": "A FreeSewing pattern for a menswear body block with a two-part sleeve", "breanna": "A FreeSewing pattern for a basic body block for womenswear", "brian": "A FreeSewing pattern for a basic body block for menswear", + "noble": "A FreeSewing pattern princess seam bodice block", "titan": "A FreeSewing pattern for a unisex trouser block" }, "garments": { @@ -31,7 +32,6 @@ "jaeger": "A FreeSewing pattern for a sport coat style jacket", "lucy": "A FreeSewing pattern for a historical tie-on pocket", "lunetius": "A FreeSewing pattern for a lacerna, a historical Roman cloak", - "noble": "FIXME: A FreeSewing pattern that needs a description", "paco": "A FreeSewing pattern for summer pants", "penelope": "A FreeSewing pattern for a pencil skirt", "sandy": "A FreeSewing pattern for a circle skirt", diff --git a/designs/noble/config.js b/designs/noble/config.js deleted file mode 100644 index 01444f8de8b..00000000000 --- a/designs/noble/config.js +++ /dev/null @@ -1,23 +0,0 @@ -import { version } from './package.json' - -export default { - name: 'noble', - version, - design: '', - code: '', - department: '', - type: '', - difficulty: 3, - tags: [ ], - optionGroups: { - fit: ['size'], - }, - measurements: [], - dependencies: {}, - inject: {}, - hide: [], - parts: ['box'], - options: { - size: { pct: 50, min: 10, max: 100 }, - }, -} diff --git a/designs/noble/config/index.js b/designs/noble/config/index.js index 772736d11e5..fd9c9cbd757 100644 --- a/designs/noble/config/index.js +++ b/designs/noble/config/index.js @@ -57,7 +57,7 @@ const config = { backOutside: 'backPoints', frontPoints: 'bellaBack', frontInside: 'frontPoints', - frontOutside: 'frontPoints', + frontOutside: ['frontPoints','frontInside'], }, parts: [ 'backPoints', diff --git a/designs/noble/src/frontInside.js b/designs/noble/src/frontInside.js index 23760abe833..17767b5483d 100644 --- a/designs/noble/src/frontInside.js +++ b/designs/noble/src/frontInside.js @@ -61,6 +61,11 @@ export default function (part) { paths.seam = paths.insideSeam.join( new Path().move(points.cfNeck).line(points.cfHem)) .close() .attr('class', 'fabric') + + store.set( 'shoulderDartTipNotch', (new Path() + .move(points.waistDartLeft) + .curve(points.waistDartLeftCp, points.shoulderDartTipCpDownInside, points.shoulderDartTip)).length()) + } else { paths.insideSeam = new Path() .move(points.cfHem) @@ -75,9 +80,17 @@ export default function (part) { .close() .attr('class', 'fabric') + store.set( 'shoulderDartTipNotch', (new Path() + .move(points.waistDartLeft) + .curve(points.waistDartLeftCp, points.armholeDartTipCpDownInside, points.armholeDartTipInside)).length()) } if (complete) { + if( options.dartPosition == 'shoulder' ) { + snippets.shoulderDartTip = new Snippet('notch', points.shoulderDartTip) + } else { + snippets.shoulderDartTip = new Snippet('notch', points.armholeDartTipInside) + } points.titleAnchor = new Point(points.hpsCp2.x *.75, points.cfNeckCp1.y *1.5) macro('title', { at: points.titleAnchor, @@ -92,63 +105,91 @@ export default function (part) { to: points.cfHem, grainline: true, }) + if (sa) { paths.sa = paths.insideSeam.offset(sa).line(points.cfNeck).attr('class', 'fabric sa') paths.sa = paths.sa.move(points.cfHem).line(paths.sa.start()) } + if (paperless) { + let extraOffset = 0 + if( options.dartPosition == 'shoulder' ) { + macro('hd', { + from: points.cfNeck, + to: points.shoulderDartInside, + y: points.hps.y - 25, + }) + macro('vd', { + from: points.cfHem, + to: points.shoulderDartInside, + x: 0 -30, + }) + } else { + extraOffset = 10 + macro('hd', { + from: points.cfNeck, + to: points.shoulderCp1, + y: points.hps.y - 35, + }) + macro('hd', { + from: points.cfNeck, + to: points.armholeDartInsideCp2, + y: points.hps.y - 25, + }) + macro('vd', { + from: points.cfHem, + to: points.armholeDartInsideCp2, + x: 0 -20, + }) + macro('vd', { + from: points.cfHem, + to: points.shoulderCp1, + x: 0 -40, + }) + } + + // macro('vd', { + // from: points.cfHem, + // to: points.waistDartTip, + // x: 0 - 15, + // }) macro('vd', { from: points.cfHem, - to: points.waistDartTip, - x: 0 - 15, - }) - macro('vd', { - from: points.cfHem, - to: points.shoulderDartTip, - x: 0 - 30, + to: points.armholeDartTipInside, + x: 0 - 10, }) macro('vd', { from: points.cfHem, to: points.cfNeck, - x: 0 - 45, + x: 0 - 20 -extraOffset, }) macro('vd', { from: points.cfHem, to: points.hps, - x: 0 - 60, - }) - macro('vd', { - from: points.hps, - to: points.shoulderDartInside, - x: points.cfNeck.x -15, + x: 0 - 40 -extraOffset, }) macro('hd', { from: points.cfBust, - to: points.shoulderDartTip, - y: points.shoulderDartTip.y - 15, - }) - macro('hd', { - from: points.cfNeck, - to: points.shoulderDartInside, - y: points.hps.y - 30, + to: points.armholeDartTipInside, + y: points.cfHem.y + sa + 25, + // y: points.shoulderDartTip.y - 15, }) macro('hd', { from: points.cfHem, to: points.waistDartLeft, y: points.cfHem.y + sa + 15, }) - macro('hd', { - from: points.cfHem, - to: points.waistDartTip, - y: points.cfHem.y + sa + 30, - }) + // macro('hd', { + // from: points.cfHem, + // to: points.waistDartTip, + // y: points.cfHem.y + sa + 30, + // }) macro('hd', { from: points.cfNeck, to: points.hps, y: points.hps.y - sa - 15, }) - } - } - + } + } return part } diff --git a/designs/noble/src/frontOutside.js b/designs/noble/src/frontOutside.js index 59837f59f97..e416f10a36b 100644 --- a/designs/noble/src/frontOutside.js +++ b/designs/noble/src/frontOutside.js @@ -29,46 +29,56 @@ export default function (part) { console.log({ part: part }) if( options.dartPosition == 'shoulder' ) { + paths.princessSeam = new Path() + .move(points.shoulderDartOutside) + .curve(points.shoulderDartTipCpDownOutside, points.waistUpDartRightCpUp, points.waistUpDartRight) + .curve(points.waistUpDartRightCpDown, points.waistCpUp, points.waistDartRight) + .setRender(false) + paths.armhole = new Path() + .move(points.armhole) + .curve(points.armholeCp2, points.armholePitchCp1, points.armholePitch) + .curve_(points.armholePitchCp2, points.shoulder) + .setRender(false) + paths.seam = new Path() .move(points.waistDartRight) .line(points.sideHem) .line(points.armhole) - .curve(points.armholeCp2, points.armholePitchCp1, points.armholePitch) - .curve_(points.armholePitchCp2, points.shoulder) + .join(paths.armhole) .line(points.shoulderDartOutside) - // .curve(points.shoulderDartTipCpDownOutside, points.waistDartRightCp, points.waistDartRight) - .curve(points.shoulderDartTipCpDownOutside, points.waistUpDartRightCpUp, points.waistUpDartRight) - .curve(points.waistUpDartRightCpDown, points.waistCpUp, points.waistDartRight) + .join(paths.princessSeam) .close() .attr('class', 'fabric') } else { + paths.princessSeam = new Path() + .move(points.armholeDartOutside) + .curve(points.armholeCircleOutsideCp1, points.waistCircleOutsideCp1, points.waistUpDartRight) + .curve(points.waistUpDartRightCpDown, points.waistCpUp, points.waistDartRight) + .setRender(false) + paths.seam = new Path() - .move(points.waistDartRight) - .line(points.sideHem) - .line(points.armhole) - .curve(points.armholeCp2, points.armholeOutsidePitchCp1, points.armholeOutsidePitch) - .curve(points.armholeOutsidePitchCp2, points.armholeDartOutsideCp1, points.armholeDartOutside) - .curve(points.armholeCircleOutsideCp1, points.waistCircleOutsideCp1, points.waistUpDartRight) - .curve(points.waistUpDartRightCpDown, points.waistCpUp, points.waistDartRight) - .close() - .attr('class', 'fabric') + .move(points.waistDartRight) + .line(points.sideHem) + .line(points.armhole) + .curve(points.armholeCp2, points.armholeOutsidePitchCp1, points.armholeOutsidePitch) + .curve(points.armholeOutsidePitchCp2, points.armholeDartOutsideCp1, points.armholeDartOutside) + .join(paths.princessSeam) + .close() + .attr('class', 'fabric') } if (complete) { + points.snippet = paths.princessSeam.shiftAlong(paths.princessSeam.length() -store.get('shoulderDartTipNotch')) + snippets.shoulderDartTip = new Snippet('notch', points.snippet) + points.titleAnchor = points.waistDartRight - .shiftFractionTowards(points.armhole, 0.5) + .shiftFractionTowards(points.armhole, 0.3) .shiftFractionTowards(points.shoulderDartOutside, 0.2) macro('title', { at: points.titleAnchor, nr: 2, title: 'Outside Front', }) - // points.scaleboxAnchor = points.titleAnchor.shift(-90, 70) - // macro('scalebox', { at: points.scaleboxAnchor }) - - // points.grainTemp = points.waistDartRight.shiftFractionTowards( points.sideHemInitial, .2 ) - // points.grainBottom = points.waistDartRight.rotate(270,points.grainTemp) - // points.grainTop = points.grainTemp.shiftOutwards(points.grainBottom, 200) points.grainTop = points.armhole.shift(225, 20) points.grainBottom = points.sideHemInitial.shift(135, 20) @@ -78,94 +88,131 @@ export default function (part) { }) if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa') + + if(paperless) { + let pLeft = paths.princessSeam.edge('left') + macro('hd', { + from: points.waistDartRight, + to: points.armholeOutsidePitchCp1, + y: points.sideHemInitial.y +sa + 35, + }) + macro('hd', { + from: points.waistDartRight, + to: points.sideHemInitial, + y: points.sideHemInitial.y +sa + 25, + }) + macro('hd', { + from: pLeft, + to: points.sideHemInitial, + y: points.sideHemInitial.y +sa + 15, + }) + + macro('vd', { + from: points.armholeOutsidePitchCp1, + to: points.sideHemInitial, + x: points.sideHemInitial.x +sa + 15, + }) + macro('vd', { + from: points.waistDartRight, + to: pLeft, + x: pLeft.x -sa - 15, + }) + + if( options.dartPosition == 'shoulder' ) { + macro('hd', { + from: points.shoulderDartOutside, + to: points.shoulder, + y: points.shoulderDartOutside.y -sa - 15, + }) + macro('hd', { + from: points.snippet, + to: points.shoulder, + y: points.shoulderDartOutside.y -sa - 25, + }) + macro('hd', { + from: pLeft, + to: points.shoulder, + y: points.shoulderDartOutside.y -sa - 35, + }) + macro('hd', { + from: points.waistDartRight, + to: points.shoulder, + y: points.sideHemInitial.y +sa + 45, + }) + macro('vd', { + from: points.shoulder, + to: points.sideHemInitial, + x: points.shoulder.x //+sa + 15, + }) + macro('vd', { + from: points.shoulderDartOutside, + to: points.sideHemInitial, + x: points.shoulder.x +sa + 15, + }) + macro('vd', { + from: points.waistDartRight, + to: points.shoulderDartOutside, + x: pLeft.x -sa - 25, + }) + macro('vd', { + from: points.snippet, + to: points.shoulderDartOutside, + x: pLeft.x -sa - 15, + }) + + let pArmholeLeft = paths.armhole.edge('left') + macro('hd', { + from: points.waistDartRight, + to: pArmholeLeft, + y: points.sideHemInitial.y +sa +5, + }) + macro('vd', { + from: pArmholeLeft, + to: points.sideHemInitial, + x: points.sideHemInitial.x +sa + 25, + }) + } else { + let pTop = paths.princessSeam.edge('top') + macro('hd', { + from: pLeft, + to: points.armholeOutsidePitchCp1, + y: pTop.y -sa - 35, + }) + macro('hd', { + from: pLeft, + to: points.armholeDartOutside, + y: pTop.y -sa - 25, + }) + macro('hd', { + from: pLeft, + to: pTop, + y: pTop.y -sa - 15, + }) + macro('vd', { + from: points.waistDartRight, + to: pTop, + x: pLeft.x -sa - 25, + }) + macro('vd', { + from: points.snippet, + to: pTop, + x: pLeft.x -sa - 15, + }) + macro('vd', { + from: points.armholeDartOutside, + to: points.sideHemInitial, + x: points.sideHemInitial.x +sa + 25, + }) + macro('vd', { + from: pTop, + to: points.sideHemInitial, + x: points.sideHemInitial.x +sa + 35, + }) + + } + + } } -/* - paths.tempSeam = new Path() - .move(points.shoulderDartOutside) - // .curve(points.shoulderDartTipCpDownOutside, points.waistDartRightCp, points.waistDartRight) - // .curve(points.shoulderDartTipCpDownOutside, points.bustA, points.waistDartRight) - .curve(points.shoulderDartTipCpDownOutside, points.bustAcp, points.waistDartRight) - .attr('class', 'lining dashed') - - paths.shoulderTempDart = new Path() - .move(points.shoulderDartOutside) - ._curve(points.shoulderDartCpBottom, points.shoulderDartTip) - .curve_(points.shoulderDartCpTop, points.shoulderDartInside) - .attr('class', 'lining') - - paths.insideSeam = new Path() - .move(points.cfHem) - .line(points.waistDartLeft) - .curve(points.waistDartLeftCp, points.shoulderDartTipCpDownInside, points.shoulderDartTip) - .line(points.shoulderDartInside) - .line(points.hps) - .curve(points.hpsCp2, points.cfNeckCp1, points.cfNeck) - - paths.seam2 = paths.insideSeam - .join(new Path().move(points.cfNeck).line(points.cfHem)) - .close() - .attr('class', 'fabric') - - if (complete) { - if (sa) { - paths.sa = paths.insideSeam.offset(sa).line(points.cfNeck).attr('class', 'fabric sa') - paths.sa = paths.sa.move(points.cfHem).line(paths.sa.start()) - } - if (paperless) { - macro('vd', { - from: points.cfHem, - to: points.waistDartTip, - x: 0 - 15, - }) - macro('vd', { - from: points.cfHem, - to: points.shoulderDartTip, - x: 0 - 30, - }) - macro('vd', { - from: points.cfHem, - to: points.cfNeck, - x: 0 - 45, - }) - macro('vd', { - from: points.cfHem, - to: points.hps, - x: 0 - 60, - }) - macro('vd', { - from: points.hps, - to: points.shoulderDartInside, - x: points.cfNeck.x - 15, - }) - macro('hd', { - from: points.cfBust, - to: points.shoulderDartTip, - y: points.shoulderDartTip.y - 15, - }) - macro('hd', { - from: points.cfNeck, - to: points.shoulderDartInside, - y: points.hps.y - 30, - }) - macro('hd', { - from: points.cfHem, - to: points.waistDartLeft, - y: points.cfHem.y + sa + 15, - }) - macro('hd', { - from: points.cfHem, - to: points.waistDartTip, - y: points.cfHem.y + sa + 30, - }) - macro('hd', { - from: points.cfNeck, - to: points.hps, - y: points.hps.y - sa - 15, - }) - } - - } - */ return part } From 174e7d60bb907a248bf0519fc6b34563b4c87687 Mon Sep 17 00:00:00 2001 From: Wouter van Wageningen Date: Mon, 20 Jun 2022 20:54:07 +0000 Subject: [PATCH 4/9] Paperless..... --- designs/noble/src/backInside.js | 85 +++++++++++++++++++------ designs/noble/src/backOutside.js | 104 ++++++++++++++++++++++++++++--- 2 files changed, 163 insertions(+), 26 deletions(-) diff --git a/designs/noble/src/backInside.js b/designs/noble/src/backInside.js index 6a40428d159..a726cb46880 100644 --- a/designs/noble/src/backInside.js +++ b/designs/noble/src/backInside.js @@ -16,26 +16,9 @@ export default function (part) { macro, } = part.shorthand() - // delete points.armholePitch - // delete points.armholePitchCp1 - // delete points.armholePitchCp2 - // delete points.armholeCpTarget - // delete points.armholeCp2 - // delete points.armhole - // delete points.bustSide - // delete points.waistSide - // delete points.waistSideCp2 - // delete points.dartBottomRight - // delete points.dartBottomCenter - // delete points.dartRightCp - // delete points.bustDartRight - // Hide Bella paths for (let key of Object.keys(paths)) paths[key].render = false for (let i in snippets) delete snippets[i] - //removing macros not required from Bella - - console.log( 'Noble back inside' ) paths.insideSeam = new Path() .move(points.cbNeck) @@ -49,7 +32,8 @@ export default function (part) { .attr('class', 'fabric') if (complete) { - // points.titleAnchor = points.waistDartRight.shiftFractionTowards( points.armhole, .5 ) + snippets.dartTip = new Snippet('notch', points.dartTip) + macro('title', { at: points.titleAnchor, nr: 3, @@ -61,6 +45,71 @@ export default function (part) { }) if (sa) paths.sa = paths.insideSeam.offset(sa).attr('class', 'fabric sa') + + if( paperless ) { + macro('hd', { + from: points.waistCenter, + to: points.shoulderDart, + y: points.waistCenter.y +sa + 15, + }) + macro('hd', { + from: points.waistCenter, + to: points.dartTip, + y: points.waistCenter.y +sa + 25, + }) + macro('hd', { + from: points.waistCenter, + to: points.dartBottomLeft, + y: points.waistCenter.y +sa + 35, + }) + macro('hd', { + from: points.cbNeck, + to: points.dartBottomLeft, + y: points.waistCenter.y +sa + 45, + }) + macro('hd', { + from: points.cbNeck, + to: points.hps, + y: points.hps.y -sa - 15, + }) + macro('hd', { + from: points.hps, + to: points.shoulderDart, + y: points.hps.y -sa - 15, + }) + + macro('vd', { + from: points.shoulderDart, + to: points.dartTip, + x: points.shoulderDart.x +sa + 15, + }) + macro('vd', { + from: points.shoulderDart, + to: points.dartBottomLeft, + x: points.shoulderDart.x +sa + 25, + }) + macro('vd', { + from: points.shoulderDart, + to: points.waistCenter, + x: points.shoulderDart.x +sa + 35, + }) + macro('vd', { + from: points.hps, + to: points.waistCenter, + x: points.shoulderDart.x +sa + 45, + }) + macro('vd', { + from: points.waistCenter, + to: points.cbNeck, + x: points.cbNeck.x -sa - 15, + }) + macro('vd', { + from: points.waistCenter, + to: points.hps, + x: points.cbNeck.x -sa - 25, + }) + + } } return part diff --git a/designs/noble/src/backOutside.js b/designs/noble/src/backOutside.js index c2152763ca4..c3d02af3859 100644 --- a/designs/noble/src/backOutside.js +++ b/designs/noble/src/backOutside.js @@ -17,10 +17,12 @@ export default function (part) { } = part.shorthand() - - console.log( 'Noble back outside' ) - - console.log( {part:part}) + paths.dart = new Path() + .move(points.shoulderDart) + .curve(points.shoulderDart, points.shoulderDartCpUp, points.dartTip) + .curve(points.shoulderDartCpDown, points.dartRightCp, points.dartBottomRight) + .setRender(false) + paths.outsideSeam = new Path() .move(points.dartBottomRight) .line(points.waistSide) @@ -28,13 +30,14 @@ export default function (part) { .curve(points.armholeCp2, points.armholePitchCp1, points.armholePitch) .curve_(points.armholePitchCp2, points.shoulder) .line(points.shoulderDart) - .curve(points.shoulderDart, points.shoulderDartCpUp, points.dartTip) - .curve(points.shoulderDartCpDown, points.dartRightCp, points.dartBottomRight) + .join(paths.dart) .close() .attr('class', 'fabric') if (complete) { - points.titleAnchor = points.dartBottomRight.shiftFractionTowards( points.waistSide, .35 ).shiftFractionTowards( points.shoulder, .35 ) + snippets.dartTip = new Snippet('notch', points.dartTip) + + points.titleAnchor = points.dartBottomRight.shiftFractionTowards( points.waistSide, .1 ).shiftFractionTowards( points.shoulder, .3 ) macro('title', { at: points.titleAnchor, nr: 4, @@ -49,7 +52,92 @@ export default function (part) { }) if (sa) paths.sa = paths.outsideSeam.offset(sa).attr('class', 'fabric sa') - + if( paperless ) { + let pLeft = paths.dart.edge('left') + // macro('hd', { + // from: points.dartBottomRight, + // to: points.shoulderDart, + // y: points.waistCenter.y +sa + 15, + // }) + macro('hd', { + from: pLeft, + to: points.waistSide, + y: points.waistCenter.y +sa + 15, + }) + macro('hd', { + from: points.dartBottomRight, + to: points.armhole, + y: points.waistCenter.y +sa + 25, + }) + macro('hd', { + from: points.dartTip, + to: points.waistSide, + y: points.waistCenter.y +sa + 35, + }) + macro('hd', { + from: points.dartBottomRight, + to: points.waistSide, + y: points.waistCenter.y +sa + 45, + }) + // macro('hd', { + // from: points.cbNeck, + // to: points.waistSide, + // y: points.waistCenter.y +sa + 45, + // }) + macro('hd', { + from: pLeft, + to: points.shoulder, + y: points.shoulderDart.y -sa - 15, + }) + macro('hd', { + from: points.shoulderDart, + to: points.shoulder, + y: points.shoulderDart.y -sa - 25, + }) + macro('hd', { + from: points.shoulderDart, + to: points.armhole, + y: points.shoulderDart.y -sa - 35, + }) + + macro('vd', { + from: points.shoulder, + to: points.dartTip, + x: points.armhole.x +sa + 15, + }) + macro('vd', { + from: points.armhole, + to: points.waistSide, + x: points.armhole.x +sa + 15, + }) + macro('vd', { + from: points.shoulder, + to: points.waistSide, + x: points.armhole.x +sa + 25, + }) + macro('vd', { + from: points.shoulder, + to: points.dartBottomRight, + x: points.armhole.x +sa + 35, + }) + macro('vd', { + from: points.shoulderDart, + to: points.dartBottomRight, + x: points.armhole.x +sa + 45, + }) + // macro('vd', { + // from: points.waistCenter, + // to: points.cbNeck, + // x: points.cbNeck.x -sa - 15, + // }) + // macro('vd', { + // from: points.waistCenter, + // to: points.hps, + // x: points.cbNeck.x -sa - 25, + // }) + + } + } return part From c2f9031d3cdc55c1d891ceb899c232c48c0ce628 Mon Sep 17 00:00:00 2001 From: Wouter van Wageningen Date: Mon, 20 Jun 2022 21:25:06 +0000 Subject: [PATCH 5/9] All the paperless! --- designs/noble/src/backInside.js | 1 - designs/noble/src/backOutside.js | 186 +++++++++++++----------------- designs/noble/src/backPoints.js | 15 +-- designs/noble/src/frontInside.js | 19 +-- designs/noble/src/frontOutside.js | 19 +-- designs/noble/src/frontPoints.js | 91 +-------------- 6 files changed, 88 insertions(+), 243 deletions(-) diff --git a/designs/noble/src/backInside.js b/designs/noble/src/backInside.js index a726cb46880..93eb0a36b08 100644 --- a/designs/noble/src/backInside.js +++ b/designs/noble/src/backInside.js @@ -108,7 +108,6 @@ export default function (part) { to: points.hps, x: points.cbNeck.x -sa - 25, }) - } } diff --git a/designs/noble/src/backOutside.js b/designs/noble/src/backOutside.js index 1e01c4cbc96..26ac4b4ef67 100644 --- a/designs/noble/src/backOutside.js +++ b/designs/noble/src/backOutside.js @@ -34,115 +34,89 @@ export default function (part) { .close() .attr('class', 'fabric') - if (complete) { -<<<<<<< HEAD + if (complete) { snippets.dartTip = new Snippet('notch', points.dartTip) - + points.titleAnchor = points.dartBottomRight.shiftFractionTowards( points.waistSide, .1 ).shiftFractionTowards( points.shoulder, .3 ) -======= - points.titleAnchor = points.dartBottomRight.shiftFractionTowards( points.waistSide, .35 ).shiftFractionTowards( points.shoulderDart, .35 ) ->>>>>>> 395a24ecd9739befb4d58a0b33c8244d6d10921b - macro('title', { - at: points.titleAnchor, - nr: 4, - title: 'Outside Back', - }) - points.grainlineFrom.x = points.shoulderDart.x - points.grainlineTo.x = points.shoulderDart.x + macro('title', { + at: points.titleAnchor, + nr: 4, + title: 'Outside Back', + }) + points.grainlineFrom.x = points.shoulderDart.x + points.grainlineTo.x = points.shoulderDart.x - macro("grainline", { - from: points.grainlineFrom, - to: points.grainlineTo, + macro("grainline", { + from: points.grainlineFrom, + to: points.grainlineTo, + }) + + if (sa) paths.sa = paths.outsideSeam.offset(sa).attr('class', 'fabric sa') + if( paperless ) { + let pLeft = paths.dart.edge('left') + macro('hd', { + from: pLeft, + to: points.waistSide, + y: points.waistCenter.y +sa + 15, + }) + macro('hd', { + from: points.dartBottomRight, + to: points.armhole, + y: points.waistCenter.y +sa + 25, + }) + macro('hd', { + from: points.dartTip, + to: points.waistSide, + y: points.waistCenter.y +sa + 35, + }) + macro('hd', { + from: points.dartBottomRight, + to: points.waistSide, + y: points.waistCenter.y +sa + 45, + }) + macro('hd', { + from: pLeft, + to: points.shoulder, + y: points.shoulderDart.y -sa - 15, + }) + macro('hd', { + from: points.shoulderDart, + to: points.shoulder, + y: points.shoulderDart.y -sa - 25, + }) + macro('hd', { + from: points.shoulderDart, + to: points.armhole, + y: points.shoulderDart.y -sa - 35, + }) + + macro('vd', { + from: points.shoulder, + to: points.dartTip, + x: points.armhole.x +sa + 15, + }) + macro('vd', { + from: points.armhole, + to: points.waistSide, + x: points.armhole.x +sa + 15, + }) + macro('vd', { + from: points.shoulder, + to: points.waistSide, + x: points.armhole.x +sa + 25, + }) + macro('vd', { + from: points.shoulder, + to: points.dartBottomRight, + x: points.armhole.x +sa + 35, + }) + macro('vd', { + from: points.shoulderDart, + to: points.dartBottomRight, + x: points.armhole.x +sa + 45, }) - - if (sa) paths.sa = paths.outsideSeam.offset(sa).attr('class', 'fabric sa') - if( paperless ) { - let pLeft = paths.dart.edge('left') - // macro('hd', { - // from: points.dartBottomRight, - // to: points.shoulderDart, - // y: points.waistCenter.y +sa + 15, - // }) - macro('hd', { - from: pLeft, - to: points.waistSide, - y: points.waistCenter.y +sa + 15, - }) - macro('hd', { - from: points.dartBottomRight, - to: points.armhole, - y: points.waistCenter.y +sa + 25, - }) - macro('hd', { - from: points.dartTip, - to: points.waistSide, - y: points.waistCenter.y +sa + 35, - }) - macro('hd', { - from: points.dartBottomRight, - to: points.waistSide, - y: points.waistCenter.y +sa + 45, - }) - // macro('hd', { - // from: points.cbNeck, - // to: points.waistSide, - // y: points.waistCenter.y +sa + 45, - // }) - macro('hd', { - from: pLeft, - to: points.shoulder, - y: points.shoulderDart.y -sa - 15, - }) - macro('hd', { - from: points.shoulderDart, - to: points.shoulder, - y: points.shoulderDart.y -sa - 25, - }) - macro('hd', { - from: points.shoulderDart, - to: points.armhole, - y: points.shoulderDart.y -sa - 35, - }) - - macro('vd', { - from: points.shoulder, - to: points.dartTip, - x: points.armhole.x +sa + 15, - }) - macro('vd', { - from: points.armhole, - to: points.waistSide, - x: points.armhole.x +sa + 15, - }) - macro('vd', { - from: points.shoulder, - to: points.waistSide, - x: points.armhole.x +sa + 25, - }) - macro('vd', { - from: points.shoulder, - to: points.dartBottomRight, - x: points.armhole.x +sa + 35, - }) - macro('vd', { - from: points.shoulderDart, - to: points.dartBottomRight, - x: points.armhole.x +sa + 45, - }) - // macro('vd', { - // from: points.waistCenter, - // to: points.cbNeck, - // x: points.cbNeck.x -sa - 15, - // }) - // macro('vd', { - // from: points.waistCenter, - // to: points.hps, - // x: points.cbNeck.x -sa - 25, - // }) - - } - } - - return part + } + + return part } diff --git a/designs/noble/src/backPoints.js b/designs/noble/src/backPoints.js index 78bd67fbe49..b784cb72781 100644 --- a/designs/noble/src/backPoints.js +++ b/designs/noble/src/backPoints.js @@ -10,8 +10,7 @@ export default function (part) { // Hide Bella paths for (let key of Object.keys(paths)) paths[key].render = false for (let i in snippets) delete snippets[i] - //removing macros not required from Bella -// delete points.titleAnchor + delete points.__titleNr delete points.__titleName delete points.__titlePattern @@ -30,20 +29,8 @@ export default function (part) { delete points.__scaleboxLink delete points.__scaleboxImperial delete points.__scaleboxMetric -// delete points.cbNeck -// delete points.cbWaist delete points.bustDartLeft delete points.bustDartLeftCp -// delete points.bustCenter -// delete points.waistCenter -// delete points.cbArmhole -// delete points.cbNeckCp2 -// delete points.cbNeckCp1 -// delete points.dartLeftCp -// delete points.dartBottomLeft -// delete points.dartBottomCenter - - console.log('backPoints'); points.shoulderDart = points.hps.shiftFractionTowards( points.shoulder, options.shoulderDartPosition ) diff --git a/designs/noble/src/frontInside.js b/designs/noble/src/frontInside.js index 17767b5483d..949e417321c 100644 --- a/designs/noble/src/frontInside.js +++ b/designs/noble/src/frontInside.js @@ -16,8 +16,6 @@ export default function (part) { macro, } = part.shorthand() - console.log( 'Noble front inside' ) - delete points.waistDartHem delete points.waistDartRight delete points.waistDartRightCp @@ -43,12 +41,7 @@ export default function (part) { delete points.bustSide delete points.bustDartMiddle delete points.bustDartEdge - // delete points.bustDartCpBottom - // delete points.bustDartTop - // delete points.bustDartMiddle - console.log({part: part}) - if( options.dartPosition == 'shoulder' ) { paths.insideSeam = new Path() .move(points.cfHem) @@ -148,11 +141,6 @@ export default function (part) { }) } - // macro('vd', { - // from: points.cfHem, - // to: points.waistDartTip, - // x: 0 - 15, - // }) macro('vd', { from: points.cfHem, to: points.armholeDartTipInside, @@ -172,18 +160,12 @@ export default function (part) { from: points.cfBust, to: points.armholeDartTipInside, y: points.cfHem.y + sa + 25, - // y: points.shoulderDartTip.y - 15, }) macro('hd', { from: points.cfHem, to: points.waistDartLeft, y: points.cfHem.y + sa + 15, }) - // macro('hd', { - // from: points.cfHem, - // to: points.waistDartTip, - // y: points.cfHem.y + sa + 30, - // }) macro('hd', { from: points.cfNeck, to: points.hps, @@ -191,5 +173,6 @@ export default function (part) { }) } } + return part } diff --git a/designs/noble/src/frontOutside.js b/designs/noble/src/frontOutside.js index 341660b1ea7..c59f8c60814 100644 --- a/designs/noble/src/frontOutside.js +++ b/designs/noble/src/frontOutside.js @@ -16,8 +16,6 @@ export default function (part) { macro, } = part.shorthand() - console.log('Noble front outside') - delete points.bustDartTop delete points.bustSide delete points.bustDartMiddle @@ -26,8 +24,6 @@ export default function (part) { delete points.bustB delete points.bustDartEdge - console.log({ part: part }) - if( options.dartPosition == 'shoulder' ) { paths.princessSeam = new Path() .move(points.shoulderDartOutside) @@ -72,13 +68,8 @@ export default function (part) { snippets.shoulderDartTip = new Snippet('notch', points.snippet) points.titleAnchor = points.waistDartRight -<<<<<<< HEAD .shiftFractionTowards(points.armhole, 0.3) .shiftFractionTowards(points.shoulderDartOutside, 0.2) -======= - // .shiftFractionTowards(points.armhole, 0.5) - .shiftFractionTowards(points.shoulderDartOutside, 0.3) ->>>>>>> 395a24ecd9739befb4d58a0b33c8244d6d10921b macro('title', { at: points.titleAnchor, nr: 2, @@ -177,18 +168,18 @@ export default function (part) { x: points.sideHemInitial.x +sa + 25, }) } else { - let pTop = paths.princessSeam.edge('top') - macro('hd', { + let pTop = paths.princessSeam.edge('top') + macro('hd', { from: pLeft, to: points.armholeOutsidePitchCp1, y: pTop.y -sa - 35, }) - macro('hd', { + macro('hd', { from: pLeft, to: points.armholeDartOutside, y: pTop.y -sa - 25, }) - macro('hd', { + macro('hd', { from: pLeft, to: pTop, y: pTop.y -sa - 15, @@ -213,9 +204,7 @@ export default function (part) { to: points.sideHemInitial, x: points.sideHemInitial.x +sa + 35, }) - } - } } diff --git a/designs/noble/src/frontPoints.js b/designs/noble/src/frontPoints.js index d99e722fe1c..07c81297cb2 100644 --- a/designs/noble/src/frontPoints.js +++ b/designs/noble/src/frontPoints.js @@ -18,8 +18,6 @@ export default function (part) { const bCircle = 0.552284749831 - console.log('frontPoints') - // Hide Bella paths for (let key of Object.keys(paths)) paths[key].render = false for (let i in snippets) delete snippets[i] @@ -44,22 +42,6 @@ export default function (part) { delete points.__scaleboxImperial delete points.__scaleboxMetric - console.log('Noble front') - console.log({ highBust: measurements.highBust }) - console.log({ chest: measurements.chest }) - console.log({ underbust: measurements.underbust }) - console.log({ waist: measurements.waist }) - console.log({ waistBack: measurements.waistBack }) - console.log({ bustSpan: measurements.bustSpan }) - console.log({ neck: measurements.neck }) - console.log({ hpsToBust: measurements.hpsToBust }) - console.log({ hpsToWaistFront: measurements.hpsToWaistFront }) - console.log({ hpsToWaistBack: measurements.hpsToWaistBack }) - console.log({ shoulderToShoulder: measurements.shoulderToShoulder }) - console.log({ shoulderSlope: measurements.shoulderSlope }) - - // if( options.dartPosition == 'shoulder' ) { - // } points.shoulderDartInside = points.hps.shiftFractionTowards( points.shoulder, options.shoulderDartPosition @@ -79,7 +61,6 @@ export default function (part) { points.armholeDartOutside = points.armholeDartInside.clone() // paths.armholeTemp = armholePath.clone().setRender(true).attr('class', 'lining') - console.log({ armholeDartInside: points.armholeDartInside }) let armholePaths = armholePath.split(points.armholeDartInside) let armholePathInside = armholePaths[0].clone().setRender(false) @@ -96,17 +77,12 @@ export default function (part) { options.upperDartLength ) - console.log({ armholeDartAngle: armholeDartAngle }) - console.log({ dist: points.armholeDartInside.dist(points.armholeDartTip) }) - console.log({ bCircle: bCircle * points.armholeDartInside.dist(points.armholeDartTip) }) points.armholeCircleInsideCp1 = points.armholeDartInside.shift( armholeDartAngle, bCircle * points.armholeDartInside.dist(points.armholeDartTip) ) points.armholeCircleOutsideCp1 = points.armholeCircleInsideCp1.clone() - console.log({ armholePathInside: armholePathInside }) - console.log({ armholePathOutside: armholePathOutside }) points.shoulderCp1 = armholePathInside.ops[1].cp1.clone() points.armholeInsidePitch = armholePathInside.ops[1].to.clone() points.armholeInsidePitchCp2 = armholePathInside.ops[1].cp2.clone() @@ -128,27 +104,6 @@ export default function (part) { points.armholeCp2 = armholePathOutside.ops[2].cp2.clone() } - console.log({ shoulder: points.shoulder }) - console.log({ shoulderCp1: points.shoulderCp1 }) - console.log({ armholeInsidePitchCp2: points.armholeInsidePitchCp2 }) - console.log({ armholeInsidePitch: points.armholeInsidePitch }) - console.log({ armholeInsidePitchCp1: points.armholeInsidePitchCp1 }) - console.log({ armholeDartInsideCp2: points.armholeDartInsideCp2 }) - console.log({ armholeDartInside: points.armholeDartInside }) - console.log({ armholeDartOutside: points.armholeDartOutside }) - console.log({ armholeDartOutsideCp1: points.armholeDartOutsideCp1 }) - console.log({ armholeOutsidePitchCp2: points.armholeOutsidePitchCp2 }) - console.log({ armholeOutsidePitch: points.armholeOutsidePitch }) - console.log({ armholeOutsidePitchCp1: points.armholeOutsidePitchCp1 }) - console.log({ armholeCp2: points.armholeCp2 }) - console.log({ armhole: points.armhole }) - - // paths.armholeInside = new Path() - // .move(points.shoulder) - // .curve(points.shoulderCp1, points.armholeInsidePitchCp2, points.armholeInsidePitch) - // .curve(points.armholeInsidePitchCp1, points.armholeDartInsideCp2, points.armholeDartInside) - // .setRender(true) - // .attr('class', 'lining') paths.armholeInside = new Path() .move(points.armholeDartInside) .curve(points.armholeDartInsideCp2, points.armholeInsidePitchCp1, points.armholeInsidePitch) @@ -182,7 +137,6 @@ export default function (part) { let spreadAngle = /*360 -*/ points.bustA.angle(points.bustDartBottom) - points.bustA.angle(points.bustDartTop) - console.log({ spreadAngle: spreadAngle }) points.shoulderDartOutside = points.shoulderDartInside.rotate(spreadAngle, points.bustA) points.shoulderDartShoulder = points.shoulderDartInside.shiftFractionTowards( @@ -197,7 +151,6 @@ export default function (part) { let dartRatio = new Path().move(points.waistDartHem).line(points.waistDartTip).length() / new Path().move(points.shoulderDartShoulder).line(points.shoulderDartTip).length() - console.log({ dartRatio: dartRatio }) points.shoulder = points.shoulder.rotate(spreadAngle, points.bustA) points.armhole = points.armhole.rotate(spreadAngle, points.bustA) @@ -211,12 +164,6 @@ export default function (part) { points.armholeOutsidePitchCp2 = points.armholeOutsidePitchCp2.rotate(spreadAngle, points.bustA) points.armholeOutsidePitch = points.armholeOutsidePitch.rotate(spreadAngle, points.bustA) points.armholeOutsidePitchCp1 = points.armholeOutsidePitchCp1.rotate(spreadAngle, points.bustA) - //points.armholeCp2, points.armhole ) - console.log({ shoulder: points.shoulder }) - console.log({ shoulderDartOutside: points.shoulderDartOutside }) - console.log({ shoulderbust: points.bust }) - console.log({ upperDartLength: options.upperDartLength }) - console.log({ waistDartLength: options.waistDartLength }) paths.armholeOutside = new Path() .move(points.armholeDartOutside) @@ -237,11 +184,6 @@ export default function (part) { ) // points.shoulderDartTipCpDownOutside = points.shoulderDartTipCpDownOutside.rotate( options.dartOutsideCP *10, points.shoulderDartOutside ) - console.log({ shoulderDartInside: points.shoulderDartInside }) - // points.shoulderDartTipCpDownInside = points.shoulderDartInside.shiftFractionTowards( - // points.bust, - // 1 +(1-options.upperDartLength) +((1 -options.waistDartLength) *dartRatio) - // ) points.shoulderDartTipCpDownInside = points.shoulderDartInside.shiftFractionTowards( points.shoulderDartTip, 1 + (1 - options.upperDartLength) + (1 - options.waistDartLength) * dartRatio @@ -251,11 +193,6 @@ export default function (part) { points.waistDartLeft, 1 - options.upperDartLength + (1 - options.waistDartLength) * dartRatio ) - console.log({ shoulderDartTipCpDownInside: points.shoulderDartTipCpDownInside }) - console.log({ shoulderDartTipCpDownOutside: points.shoulderDartTipCpDownOutside }) - console.log({ shoulderDartTip: points.shoulderDartTip }) - console.log({ waistDartLeftCp: points.waistDartLeftCp }) - console.log({ waistDartLeft: points.waistDartLeft }) points.bustAcp = points.waistDartRight.shiftOutwards(points.bustA, 10) @@ -271,7 +208,6 @@ export default function (part) { // .line(points.armholeDartInside) .setRender(false) .attr('class', 'lining') - console.log({ armholeInsideSeam: paths.armholeInsideSeam }) paths.sOutsideSeam = new Path() .move(points.waistDartRight) @@ -285,25 +221,19 @@ export default function (part) { .curve(points.waistDartLeftCp, points.shoulderDartTipCpDownInside, points.shoulderDartTip) .line(points.shoulderDartInside) .setRender(false) - console.log({ shoulderInsideSeam: shoulderInsideSeam }) - console.log({ waistDartLeft: points.waistDartLeft }) - console.log({ bustA: points.bustA }) - console.log({ dist: points.waistDartLeft.dist(points.bustA) * 0.5 }) + points.waistUpDartLeft = paths.armholeInsideSeam.shiftAlong( points.waistDartLeft.dist(points.armholeDartTip) * 0.5 ) - console.log({ waistUpDartLeft: points.waistUpDartLeft }) points.waistCircleInsideCp1 = points.waistUpDartLeft.shiftTowards( points.waistDartLeft, -0.5 * bCircle * points.armholeDartOutside.dist(points.armholeDartTip) ) - console.log({ waistCircleInsideCp1: points.waistCircleInsideCp1 }) points.shoulderDartTipCpDownOutside = points.shoulderDartTipCpDownOutside .rotate(-2.5, points.shoulderDartOutside) .shiftFractionTowards(points.shoulderDartOutside, 0.2) let lInside = shoulderInsideSeam.length() - console.log({ lInside: lInside }) let iteration = 1 let diff = 0 // points.bustAcp = points.bustA.clone() @@ -346,14 +276,6 @@ export default function (part) { points.shoulderDartOutside ) - console.log({ - step: iteration, - diff: diff, - insideSeam: lInside, - outsideSeam: outsideSeam.length(), - sOutside: paths.sOutsideSeam.length(), - }) - diff = shoulderInsideSeam.length() - outsideSeam.length() iteration++ } while ((diff > 1 || diff < -1) && iteration < 200) @@ -361,10 +283,7 @@ export default function (part) { raise.error('Something is not quite right here!') } points.waistDartRightCp = points.bustAcp.clone() - - console.log({ shoulderDartTipCpDownInside: points.shoulderDartTipCpDownInside }) points.armholeDartTipInside = points.armholeDartTip.clone() - points.waistCircleOutsideCp1 = points.waistUpDartRight.shiftTowards( points.waistDartRight, -1 * bCircle * points.armholeDartOutside.dist(points.armholeDartTip) @@ -374,7 +293,6 @@ export default function (part) { iteration = 0 do { let dist = points.armholeDartTipInside.dist(points.armholeDartTipCpDownInside) - console.log({xDartTip: points.armholeDartTipInside.x,yDartTip: points.armholeDartTipInside.y,xCircle:points.waistCircleOutsideCp1.x,yCircle:points.waistCircleOutsideCp1.y, first: points.armholeDartTipInside.x > points.waistCircleOutsideCp1}) if( points.armholeDartTipInside.x > points.waistCircleOutsideCp1 ) { points.armholeDartTipInside.x = points.armholeDartTipInside.x -.5 points.armholeDartTipInside.y = points.armholeDartTipInside.y +.5 @@ -383,10 +301,6 @@ export default function (part) { } points.armholeDartTipCpDownInside = points.waistCircleInsideCp1.shiftOutwards(points.armholeDartTipInside, dist) - // points.waistCircleOutsideCp1 = points.waistUpDartRight.shiftTowards( - // points.waistDartRight, - // -1 * bCircle * points.armholeDartOutside.dist(points.armholeDartTip) - // ) paths.armholeTempCircleOutside = new Path() .move(points.armholeDartOutside) .curve(points.armholeCircleOutsideCp1, points.waistCircleOutsideCp1, points.waistUpDartRight) @@ -402,10 +316,9 @@ export default function (part) { diff = paths.armholeTempCircleOutside.length() - paths.armholeTempCircleInside.length() iteration ++ - console.log({ i: iteration, diff: diff, armholeTempCircleOutside: paths.armholeTempCircleOutside.length(),armholeTempCircleInside: paths.armholeTempCircleInside.length() }) } while( (diff < -1 || diff > 1) && iteration < 200 ) if (iteration >= 200) { - // raise.error('Something is not quite right here!') + raise.error('Something is not quite right here!') } return part From 7713ed445db57cbb27a385f32a159e9f4929a4b2 Mon Sep 17 00:00:00 2001 From: Wouter van Wageningen Date: Tue, 21 Jun 2022 02:09:57 +0000 Subject: [PATCH 6/9] More paperless and complete back --- designs/noble/src/backInside.js | 92 ++++++++++++++++++++++--------- designs/noble/src/backOutside.js | 3 + designs/noble/src/backPoints.js | 7 --- designs/noble/src/frontOutside.js | 3 +- designs/noble/src/frontPoints.js | 42 ++++++++------ designs/noble/src/index.js | 22 -------- 6 files changed, 97 insertions(+), 72 deletions(-) diff --git a/designs/noble/src/backInside.js b/designs/noble/src/backInside.js index 93eb0a36b08..b449317dfc1 100644 --- a/designs/noble/src/backInside.js +++ b/designs/noble/src/backInside.js @@ -16,28 +16,33 @@ export default function (part) { macro, } = part.shorthand() - // Hide Bella paths - for (let key of Object.keys(paths)) paths[key].render = false - for (let i in snippets) delete snippets[i] - - paths.insideSeam = new Path() - .move(points.cbNeck) - .curve_(points.cbNeckCp2, points.waistCenter) - .line(points.dartBottomLeft) - .curve(points.dartLeftCp, points.shoulderDartCpDown, points.dartTip) - .curve(points.shoulderDartCpUp, points.shoulderDart, points.shoulderDart) - .line(points.hps) - ._curve(points.cbNeckCp1, points.cbNeck) - .close() - .attr('class', 'fabric') - + + if( options.dartPosition != 'shoulder' ) { + paths.insideSeam = paths.seam.clone().setRender(true) + } else { + // Hide Bella paths + for (let key of Object.keys(paths)) paths[key].render = false + for (let i in snippets) delete snippets[i] + + paths.insideSeam = new Path() + .move(points.cbNeck) + .curve_(points.cbNeckCp2, points.waistCenter) + .line(points.dartBottomLeft) + .curve(points.dartLeftCp, points.shoulderDartCpDown, points.dartTip) + .curve(points.shoulderDartCpUp, points.shoulderDart, points.shoulderDart) + .line(points.hps) + ._curve(points.cbNeckCp1, points.cbNeck) + .close() + .attr('class', 'fabric') + } + if (complete) { snippets.dartTip = new Snippet('notch', points.dartTip) macro('title', { at: points.titleAnchor, nr: 3, - title: 'Inside Back', + title: ( options.dartPosition != 'shoulder' ? 'Back' : 'Inside Back' ) }) macro("grainline", { from: points.grainlineFrom, @@ -47,9 +52,14 @@ export default function (part) { if (sa) paths.sa = paths.insideSeam.offset(sa).attr('class', 'fabric sa') if( paperless ) { + if( options.dartPosition == 'shoulder' ) { + points.shoulderPoint = points.shoulderDart.clone() + } else { + points.shoulderPoint = points.shoulder.clone() + } macro('hd', { from: points.waistCenter, - to: points.shoulderDart, + to: points.shoulderPoint, y: points.waistCenter.y +sa + 15, }) macro('hd', { @@ -74,29 +84,61 @@ export default function (part) { }) macro('hd', { from: points.hps, - to: points.shoulderDart, + to: points.shoulderPoint, y: points.hps.y -sa - 15, }) + if( options.dartPosition != 'shoulder' ) { + macro('hd', { + from: points.dartTip, + to: points.waistSide, + y: points.waistCenter.y +sa + 25, + }) + macro('hd', { + from: points.dartBottomRight, + to: points.waistSide, + y: points.waistCenter.y +sa + 35, + }) + macro('hd', { + from: points.dartBottomRight, + to: points.armhole, + y: points.waistCenter.y +sa + 45, + }) + } + + let extraOffset = 0 + if( options.dartPosition != 'shoulder' ) { + macro('vd', { + from: points.shoulderPoint, + to: points.waistSide, + x: points.shoulderPoint.x +sa + 25, + }) + macro('vd', { + from: points.armhole, + to: points.waistSide, + x: points.shoulderPoint.x +sa + 15, + }) + extraOffset = 10 + } macro('vd', { - from: points.shoulderDart, + from: points.shoulderPoint, to: points.dartTip, - x: points.shoulderDart.x +sa + 15, + x: points.shoulderPoint.x +sa + 15, }) macro('vd', { - from: points.shoulderDart, + from: points.shoulderPoint, to: points.dartBottomLeft, - x: points.shoulderDart.x +sa + 25, + x: points.shoulderPoint.x +sa + 25 +extraOffset, }) macro('vd', { - from: points.shoulderDart, + from: points.shoulderPoint, to: points.waistCenter, - x: points.shoulderDart.x +sa + 35, + x: points.shoulderPoint.x +sa + 35 +extraOffset, }) macro('vd', { from: points.hps, to: points.waistCenter, - x: points.shoulderDart.x +sa + 45, + x: points.shoulderPoint.x +sa + 45 +extraOffset, }) macro('vd', { from: points.waistCenter, diff --git a/designs/noble/src/backOutside.js b/designs/noble/src/backOutside.js index 26ac4b4ef67..1f80f5d2741 100644 --- a/designs/noble/src/backOutside.js +++ b/designs/noble/src/backOutside.js @@ -16,6 +16,9 @@ export default function (part) { macro, } = part.shorthand() + if( options.dartPosition != 'shoulder' ) { + return part + } paths.dart = new Path() .move(points.shoulderDart) diff --git a/designs/noble/src/backPoints.js b/designs/noble/src/backPoints.js index b784cb72781..03c68c4d184 100644 --- a/designs/noble/src/backPoints.js +++ b/designs/noble/src/backPoints.js @@ -40,11 +40,8 @@ export default function (part) { // let dartCpAdjustment = Math.abs( options.shoulderDartPosition -.5) +.05 let dartCpAdjustment = aDiff /50 - console.log({dartCpAdjustment: dartCpAdjustment }); - // points.shoulderDartCpUp = points.shoulderDart.shiftFractionTowards( points.dartTip, options.upperDartLength) points.shoulderDartCpUp = points.shoulderDart.shiftFractionTowards( points.dartTip, 1 - dartCpAdjustment) - // points.shoulderDartCpDown = points.shoulderDart.shiftFractionTowards( points.dartTip, 1 +(1-options.upperDartLength) ) points.shoulderDartCpDown = points.shoulderDart.shiftFractionTowards( points.dartTip, 1 +dartCpAdjustment ) let iLength = (new Path() @@ -56,8 +53,6 @@ export default function (part) { let diff = 0 let angle = 0 do { - console.log({angle: points.waistSide.angle( points.dartBottomRight ) }) - angle = diff*( oLength > iLength ? -.1 : .1 ) points.dartBottomRight = points.dartBottomRight.rotate( angle, points.waistSide ) @@ -67,8 +62,6 @@ export default function (part) { .curve(points.shoulderDart, points.shoulderDartCpUp, points.dartTip) .curve(points.shoulderDartCpDown, points.dartRightCp, points.dartBottomRight)).length(); - console.log({diff:diff, oLength: oLength, iLength: iLength}) - diff = oLength -iLength iteration ++ diff --git a/designs/noble/src/frontOutside.js b/designs/noble/src/frontOutside.js index c59f8c60814..c94d12fb6dc 100644 --- a/designs/noble/src/frontOutside.js +++ b/designs/noble/src/frontOutside.js @@ -56,8 +56,7 @@ export default function (part) { .move(points.waistDartRight) .line(points.sideHem) .line(points.armhole) - .curve(points.armholeCp2, points.armholeOutsidePitchCp1, points.armholeOutsidePitch) - .curve(points.armholeOutsidePitchCp2, points.armholeDartOutsideCp1, points.armholeDartOutside) + .join(paths.armholeOutside.reverse()) .join(paths.princessSeam) .close() .attr('class', 'fabric') diff --git a/designs/noble/src/frontPoints.js b/designs/noble/src/frontPoints.js index 07c81297cb2..3f0895bc006 100644 --- a/designs/noble/src/frontPoints.js +++ b/designs/noble/src/frontPoints.js @@ -21,6 +21,7 @@ export default function (part) { // Hide Bella paths for (let key of Object.keys(paths)) paths[key].render = false for (let i in snippets) delete snippets[i] + //removing macros not required from Bella delete points.titleAnchor delete points.__titleNr @@ -104,12 +105,18 @@ export default function (part) { points.armholeCp2 = armholePathOutside.ops[2].cp2.clone() } - paths.armholeInside = new Path() - .move(points.armholeDartInside) - .curve(points.armholeDartInsideCp2, points.armholeInsidePitchCp1, points.armholeInsidePitch) - .curve(points.armholeInsidePitchCp2, points.shoulderCp1, points.shoulder) - .setRender(false) - .attr('class', 'lining') + if( points.armholeDartInside.sitsRoughlyOn( points.armholeInsidePitch ) ) { + paths.armholeInside = new Path() + .move(points.armholeDartInside) + .curve(points.armholeInsidePitchCp2, points.shoulderCp1, points.shoulder) + .setRender(false) + } else { + paths.armholeInside = new Path() + .move(points.armholeDartInside) + .curve(points.armholeDartInsideCp2, points.armholeInsidePitchCp1, points.armholeInsidePitch) + .curve(points.armholeInsidePitchCp2, points.shoulderCp1, points.shoulder) + .setRender(false) + } let rotateAngle = points.shoulderDartInside.angle(points.bustA) - points.bustDartTop.angle(points.bustA) @@ -165,18 +172,24 @@ export default function (part) { points.armholeOutsidePitch = points.armholeOutsidePitch.rotate(spreadAngle, points.bustA) points.armholeOutsidePitchCp1 = points.armholeOutsidePitchCp1.rotate(spreadAngle, points.bustA) - paths.armholeOutside = new Path() - .move(points.armholeDartOutside) - .curve(points.armholeDartOutsideCp1, points.armholeOutsidePitchCp2, points.armholeOutsidePitch) - .curve(points.armholeOutsidePitchCp1, points.armholeCp2, points.armhole) - .setRender(false) - .attr('class', 'lining') + if( points.armhole.sitsRoughlyOn( points.armholeOutsidePitch ) ) { + paths.armholeOutside = new Path() + .move(points.armholeDartOutside) + .curve(points.armholeDartOutsideCp1, points.armholeOutsidePitchCp2, points.armhole) + .setRender(true) + } else { + paths.armholeOutside = new Path() + .move(points.armholeDartOutside) + .curve(points.armholeDartOutsideCp1, points.armholeOutsidePitchCp2, points.armholeOutsidePitch) + .curve(points.armholeOutsidePitchCp1, points.armholeCp2, points.armhole) + .setRender(false) + } + paths.armholeTempDart = new Path() .move(points.armholeDartOutside) ._curve(points.armholeDartCpBottom, points.armholeDartTip) .curve_(points.armholeDartCpTop, points.armholeDartInside) .setRender(false) - .attr('class', 'lining') points.shoulderDartTipCpDownOutside = points.shoulderDartOutside.shiftFractionTowards( points.bust, @@ -205,9 +218,7 @@ export default function (part) { paths.armholeInsideSeam = new Path() .move(points.waistDartLeft) .curve(points.waistDartLeftCp, points.armholeDartTipCpDownInside, points.armholeDartTip) - // .line(points.armholeDartInside) .setRender(false) - .attr('class', 'lining') paths.sOutsideSeam = new Path() .move(points.waistDartRight) @@ -236,7 +247,6 @@ export default function (part) { let lInside = shoulderInsideSeam.length() let iteration = 1 let diff = 0 - // points.bustAcp = points.bustA.clone() do { points.waistDartRight = points.waistDartRight.rotate(diff * 0.1, points.sideHemInitial) diff --git a/designs/noble/src/index.js b/designs/noble/src/index.js index a6d0d039782..f6a2400d722 100644 --- a/designs/noble/src/index.js +++ b/designs/noble/src/index.js @@ -1,13 +1,8 @@ -// import freesewing from '@freesewing/core' -// import Bella from '@freesewing/bella' -// import plugins from '@freesewing/plugin-bundle' -// import config from '../config' import freesewing from '@freesewing/core' import Bella from '@freesewing/bella' import bundle from '@freesewing/plugin-bundle' import config from '../config' // Parts -// Parts import draftBackPoints from './backPoints' import draftBackInside from './backInside' import draftBackOutside from './backOutside' @@ -18,15 +13,6 @@ import draftFrontOutside from './frontOutside' // Create design const Noble = new freesewing.Design(config, bundle) -// console.log( 'bella back') -// measurements.highBust = (measurements.highBust == undefined || measurements.highBust == 0 ) ? measurements.chest *1.035 : measurements.highBust -// measurements.bustSpan = (measurements.bustSpan == undefined || measurements.bustSpan == 0 ) ? measurements.waistBack *.47 : measurements.bustSpan -// measurements.underbust = (measurements.underbust == undefined || measurements.underbust == 0 ) ? (measurements.chest +measurements.waist) *.5 : measurements.underbust -// measurements.hpsToBust = (measurements.hpsToBust == undefined || measurements.hpsToBust == 0 ) ? measurements.hpsToWaistFront *.59 : measurements.hpsToBust - -// // Get to work -// console.log({ hpsToBust : measurements.hpsToBust} ) - // Attach draft methods to prototype Noble.prototype.draftBellaBack = function (part) { return new Bella(this.settings).draftBack(part) @@ -35,14 +21,6 @@ Noble.prototype.draftBellaFrontSideDart = function (part) { return new Bella(this.settings).draftFrontSideDart(part) } -// Pattern.prototype.draftFrontSideDart = (part) => draftFrontSideDart(part) - -// Pattern.prototype.draftBackPoints = (part) => draftBackPoints(part) -// Pattern.prototype.draftBackInside = (part) => draftBackInside(part) -// Pattern.prototype.draftBackOutside = (part) => draftBackOutside(part) -// Pattern.prototype.draftFrontPoints = (part) => draftFrontPoints(part) -// Pattern.prototype.draftFrontInside = (part) => draftFrontInside(part) -// Pattern.prototype.draftFrontOutside = (part) => draftFrontOutside(part) Noble.prototype.draftBackPoints = draftBackPoints Noble.prototype.draftBackInside = draftBackInside Noble.prototype.draftBackOutside = draftBackOutside From 3eb893e4b28537dfbbc83f4a07351bb1e9dd2158 Mon Sep 17 00:00:00 2001 From: Wouter van Wageningen Date: Tue, 21 Jun 2022 02:37:59 +0000 Subject: [PATCH 7/9] Doc1 --- .../org/docs/patterns/noble/cutting/en.md | 36 +++++++++ markdown/org/docs/patterns/noble/en.md | 5 ++ markdown/org/docs/patterns/noble/fabric/en.md | 18 +++++ .../docs/patterns/noble/instructions/en.md | 80 +++++++++++++++++++ .../docs/patterns/noble/measurements/en.md | 5 ++ markdown/org/docs/patterns/noble/needs/en.md | 21 +++++ .../patterns/noble/options/armholedepth/en.md | 9 +++ .../noble/options/backarmholecurvature/en.md | 9 +++ .../noble/options/backarmholepitchdepth/en.md | 9 +++ .../noble/options/backarmholeslant/en.md | 9 +++ .../noble/options/backdartheight/en.md | 9 +++ .../patterns/noble/options/backhemslope/en.md | 9 +++ .../noble/options/backneckcutout/en.md | 10 +++ .../noble/options/bustdartcurve/en.md | 14 ++++ .../noble/options/bustdartlength/en.md | 14 ++++ .../patterns/noble/options/bustspanease/en.md | 11 +++ .../patterns/noble/options/chestease/en.md | 9 +++ .../org/docs/patterns/noble/options/en.md | 5 ++ .../noble/options/frontarmholecurvature/en.md | 9 +++ .../options/frontarmholepitchdepth/en.md | 9 +++ .../noble/options/frontshoulderwidth/en.md | 9 +++ .../options/fullchesteasereduction/en.md | 10 +++ .../noble/options/highbustwidth/en.md | 9 +++ .../options/shouldertoshoulderease/en.md | 9 +++ .../noble/options/waistdartlength/en.md | 13 +++ .../patterns/noble/options/waistease/en.md | 9 +++ 26 files changed, 359 insertions(+) create mode 100644 markdown/org/docs/patterns/noble/cutting/en.md create mode 100644 markdown/org/docs/patterns/noble/en.md create mode 100644 markdown/org/docs/patterns/noble/fabric/en.md create mode 100644 markdown/org/docs/patterns/noble/instructions/en.md create mode 100644 markdown/org/docs/patterns/noble/measurements/en.md create mode 100644 markdown/org/docs/patterns/noble/needs/en.md create mode 100644 markdown/org/docs/patterns/noble/options/armholedepth/en.md create mode 100644 markdown/org/docs/patterns/noble/options/backarmholecurvature/en.md create mode 100644 markdown/org/docs/patterns/noble/options/backarmholepitchdepth/en.md create mode 100644 markdown/org/docs/patterns/noble/options/backarmholeslant/en.md create mode 100644 markdown/org/docs/patterns/noble/options/backdartheight/en.md create mode 100644 markdown/org/docs/patterns/noble/options/backhemslope/en.md create mode 100644 markdown/org/docs/patterns/noble/options/backneckcutout/en.md create mode 100644 markdown/org/docs/patterns/noble/options/bustdartcurve/en.md create mode 100644 markdown/org/docs/patterns/noble/options/bustdartlength/en.md create mode 100644 markdown/org/docs/patterns/noble/options/bustspanease/en.md create mode 100644 markdown/org/docs/patterns/noble/options/chestease/en.md create mode 100644 markdown/org/docs/patterns/noble/options/en.md create mode 100644 markdown/org/docs/patterns/noble/options/frontarmholecurvature/en.md create mode 100644 markdown/org/docs/patterns/noble/options/frontarmholepitchdepth/en.md create mode 100644 markdown/org/docs/patterns/noble/options/frontshoulderwidth/en.md create mode 100644 markdown/org/docs/patterns/noble/options/fullchesteasereduction/en.md create mode 100644 markdown/org/docs/patterns/noble/options/highbustwidth/en.md create mode 100644 markdown/org/docs/patterns/noble/options/shouldertoshoulderease/en.md create mode 100644 markdown/org/docs/patterns/noble/options/waistdartlength/en.md create mode 100644 markdown/org/docs/patterns/noble/options/waistease/en.md diff --git a/markdown/org/docs/patterns/noble/cutting/en.md b/markdown/org/docs/patterns/noble/cutting/en.md new file mode 100644 index 00000000000..fa1a872a523 --- /dev/null +++ b/markdown/org/docs/patterns/noble/cutting/en.md @@ -0,0 +1,36 @@ +--- +title: "Noble body block: Cutting Instructions" +--- + +**Main fabric** + +- Cut **1 Front Inside** part on the fold. +- Cut **2 Front Outside** part. + +### Shoulder dart + +- Cut **2 Back Inside** part. +- Cut **2 Back Outside** part. + +### Armhole dart + +- Cut **2 Back** part. + +These cutting instructions are just for the default Noble block. Adjust your cutting accordingly if you have/are making changes to the block. + + + +If you do not have someone to help pin you into Noble then you may find it easier to Cut 2 Front Inside parts with seam allowance and sew the backs up when constructing so you can pin in the front. + + + + + +###### Noble is a block, not a pattern + +A block is a basic shape on which other patterns are based. +They are sometimes also called slopers, although purists will argue that a block and a sloper are different things. + +Blocks are typically not made as-is but rather serve as a basis for other patterns. + + diff --git a/markdown/org/docs/patterns/noble/en.md b/markdown/org/docs/patterns/noble/en.md new file mode 100644 index 00000000000..c531609f8ec --- /dev/null +++ b/markdown/org/docs/patterns/noble/en.md @@ -0,0 +1,5 @@ +--- +title: "Noble body block" +--- + + diff --git a/markdown/org/docs/patterns/noble/fabric/en.md b/markdown/org/docs/patterns/noble/fabric/en.md new file mode 100644 index 00000000000..731e8fab313 --- /dev/null +++ b/markdown/org/docs/patterns/noble/fabric/en.md @@ -0,0 +1,18 @@ +--- +title: "Noble body block: Fabric Options" +--- + +If you are making a default Noble to see how it fits we recommend a fabric such as **Calico (Muslin)** or a cheaper fabric that matches the drape and stretch of the fabric you intend to make a finalised version of Noble with. + +You can use scraps of fabrics from your stash so don't worry about buying fabric specifically for Noble. + + + +###### Noble is a block, not a pattern + +A block is a basic shape on which other patterns are based. +They are sometimes also called slopers, although purists will argue that a block and a sloper are different things. + +Blocks are typically not made as-is but rather serve as a basis for other patterns. + + diff --git a/markdown/org/docs/patterns/noble/instructions/en.md b/markdown/org/docs/patterns/noble/instructions/en.md new file mode 100644 index 00000000000..6d64c8808d7 --- /dev/null +++ b/markdown/org/docs/patterns/noble/instructions/en.md @@ -0,0 +1,80 @@ +--- +title: "Noble body block: Sewing Instructions" +--- + + + +###### Noble is a block, not a pattern + +A block is a basic shape on which other patterns are based. +They are sometimes also called slopers, although purists will argue that a block and a sloper are different things. + +Blocks are typically not made as-is but rather serve as a basis for other patterns so the instructions below will not go in depth about closures or finishes and are for the default Noble block. + +Noble is based on the Bella body block + + + +### Step 1: Mock-up Construction + +- Sew the front inside to the front outside, good sides together. + +### Shoulder seam + +- Sew the back inside to the back outside, good sides together. + +### Armhole seam + +- Close the back darts. + +### Both + +- Sew the front to the backs at the shoulders, good sides together. +- Sew the front to the backs at the side seams, good sides together. + + + +If you are making adjustments you may wish to sew the seams wrong sides together to make them easier to adjust. + + + +### Step 2: Try it on + +- Try it on and check the fit by pinning the back closed whilst wearing it. +- Make any alterations and try it on again. +- Repeat until you are happy. + + + +If you do not have someone to help with pinning, you may find it easier to cut the front part in two with seam allowance rather than on a fold and sew the back seam up so that you can pin in the front when trying on. + +Keep an eye out for anything you keep doing whilst wearing the mock-up, are you pulling it down? Constantly adjusting the shoulder? etc. Things like these are signs of where the pattern may need adjusting. + +Sometimes you may need to wear the mock-up for an extended amount of time to get a better sense of the fit so don't be afraid to walk around in it for a couple of hours. + + + + + +Remember to treat Noble as a basis rather than a final product, so adjust what you need to get the desired look. +For instance: + +- Change the neck line +- Add/change the closure allowances +- Alter the dart placements +- Add a collar + +It is all up to you! Experiment and go forth! + + + +### Step 3: Make a paper pattern + +- Once happy with all your changes unpick your mockup and make a paper pattern based off of it. +- Now you have a pattern you can use to produce a garment. + + + +It is best practice to make a paper pattern from the mock-up if you have made any alterations, as this will allow you to clean up any lines but also means you have a pattern that you can keep producing garments from. + + diff --git a/markdown/org/docs/patterns/noble/measurements/en.md b/markdown/org/docs/patterns/noble/measurements/en.md new file mode 100644 index 00000000000..008efce20e2 --- /dev/null +++ b/markdown/org/docs/patterns/noble/measurements/en.md @@ -0,0 +1,5 @@ +--- +title: "Noble body block: Required Measurements" +--- + + diff --git a/markdown/org/docs/patterns/noble/needs/en.md b/markdown/org/docs/patterns/noble/needs/en.md new file mode 100644 index 00000000000..8c538112332 --- /dev/null +++ b/markdown/org/docs/patterns/noble/needs/en.md @@ -0,0 +1,21 @@ +--- +title: "Noble body block: What You Need" +--- + +To make Noble, you will need the following: + +- Basic sewing supplies +- About 0.5 metres (0.6 yards) of a suitable fabric ([see Noble Fabric options](/docs/patterns/noble/fabric/)) + +This list is for a default Noble Block. If you have/are making changes to the block you may need to get additional items such as closures, binding etc. + + + +###### Noble is a block, not a pattern + +A block is a basic shape on which other patterns are based. +They are sometimes also called slopers, although purists will argue that a block and a sloper are different things. + +Blocks are typically not made as-is but rather serve as a basis for other patterns. + + diff --git a/markdown/org/docs/patterns/noble/options/armholedepth/en.md b/markdown/org/docs/patterns/noble/options/armholedepth/en.md new file mode 100644 index 00000000000..428f856226d --- /dev/null +++ b/markdown/org/docs/patterns/noble/options/armholedepth/en.md @@ -0,0 +1,9 @@ +--- +title: "Armhole depth" +--- + +--- + +The **armhole depth** option controls the depth of the armhole. + +## Effect of this option on the pattern diff --git a/markdown/org/docs/patterns/noble/options/backarmholecurvature/en.md b/markdown/org/docs/patterns/noble/options/backarmholecurvature/en.md new file mode 100644 index 00000000000..163088b2943 --- /dev/null +++ b/markdown/org/docs/patterns/noble/options/backarmholecurvature/en.md @@ -0,0 +1,9 @@ +--- +title: "Back armhole curvature" +--- + +--- + +The **back armhole curvature** option controls how much the armhole is scooped at out the bottom in the back. + +## Effect of this option on the pattern diff --git a/markdown/org/docs/patterns/noble/options/backarmholepitchdepth/en.md b/markdown/org/docs/patterns/noble/options/backarmholepitchdepth/en.md new file mode 100644 index 00000000000..24108f65bda --- /dev/null +++ b/markdown/org/docs/patterns/noble/options/backarmholepitchdepth/en.md @@ -0,0 +1,9 @@ +--- +title: "Back armhole pitch depth" +--- + +--- + +The **back armhole pitch depth** option controls the vertical position of the armhole pitch point at the back. + +## Effect of this option on the pattern diff --git a/markdown/org/docs/patterns/noble/options/backarmholeslant/en.md b/markdown/org/docs/patterns/noble/options/backarmholeslant/en.md new file mode 100644 index 00000000000..59479228432 --- /dev/null +++ b/markdown/org/docs/patterns/noble/options/backarmholeslant/en.md @@ -0,0 +1,9 @@ +--- +title: "Back armhole slant" +--- + +--- + +The **back armhole slant** slightly rotates the armhole around the back pitch point. + +## Effect of this option on the pattern diff --git a/markdown/org/docs/patterns/noble/options/backdartheight/en.md b/markdown/org/docs/patterns/noble/options/backdartheight/en.md new file mode 100644 index 00000000000..15a443f28d8 --- /dev/null +++ b/markdown/org/docs/patterns/noble/options/backdartheight/en.md @@ -0,0 +1,9 @@ +--- +title: "Back dart height" +--- + +--- + +The **back dart height** option controls the height (length if you will) of the back dart. + +## Effect of this option on the pattern diff --git a/markdown/org/docs/patterns/noble/options/backhemslope/en.md b/markdown/org/docs/patterns/noble/options/backhemslope/en.md new file mode 100644 index 00000000000..eff831b263a --- /dev/null +++ b/markdown/org/docs/patterns/noble/options/backhemslope/en.md @@ -0,0 +1,9 @@ +--- +title: "Back hem slope" +--- + +--- + +The **back hem slope** option controls the slope of the hem at the back. + +## Effect of this option on the pattern diff --git a/markdown/org/docs/patterns/noble/options/backneckcutout/en.md b/markdown/org/docs/patterns/noble/options/backneckcutout/en.md new file mode 100644 index 00000000000..749d3e90c6e --- /dev/null +++ b/markdown/org/docs/patterns/noble/options/backneckcutout/en.md @@ -0,0 +1,10 @@ +--- +title: "Back neck cutout" +--- + +--- + +The **back neck cutout** option controls how far the neck opening is scooped out at the back. + +## Effect of this option on the pattern + diff --git a/markdown/org/docs/patterns/noble/options/bustdartcurve/en.md b/markdown/org/docs/patterns/noble/options/bustdartcurve/en.md new file mode 100644 index 00000000000..39e5f208fe8 --- /dev/null +++ b/markdown/org/docs/patterns/noble/options/bustdartcurve/en.md @@ -0,0 +1,14 @@ +--- +title: "Bust dart curve" +--- + +--- + +![The effect of the bust dart curve option on the pattern](sample.png) + +The **bust dart curve** option controls the curvature of the bust dart. +From straight to slightly curved. + +## Effect of this option on the pattern + +![This image shows the effect of this option by superimposing several variants that have a different value for this option](bella_bustdartcurve_sample.svg "Effect of this option on the pattern") diff --git a/markdown/org/docs/patterns/noble/options/bustdartlength/en.md b/markdown/org/docs/patterns/noble/options/bustdartlength/en.md new file mode 100644 index 00000000000..1bfc6396b62 --- /dev/null +++ b/markdown/org/docs/patterns/noble/options/bustdartlength/en.md @@ -0,0 +1,14 @@ +--- +title: "Bust dart length" +--- + +--- + +![The effect of the bust dart length option on the pattern](sample.png) + +The **bust dart length** option controls the length of the bust dart. +The maximum length brings the dart all the way to the bust apex. + +## Effect of this option on the pattern + +![This image shows the effect of this option by superimposing several variants that have a different value for this option](bella_bustdartlength_sample.svg "Effect of this option on the pattern") diff --git a/markdown/org/docs/patterns/noble/options/bustspanease/en.md b/markdown/org/docs/patterns/noble/options/bustspanease/en.md new file mode 100644 index 00000000000..4e82fecb5e4 --- /dev/null +++ b/markdown/org/docs/patterns/noble/options/bustspanease/en.md @@ -0,0 +1,11 @@ +--- +title: "Bust span ease" +--- + +--- + +The **bust span ease** option controls how much ease is applied to the bust span. + +This will not add ease to the garment, but merely influence the bust point + +## Effect of this option on the pattern diff --git a/markdown/org/docs/patterns/noble/options/chestease/en.md b/markdown/org/docs/patterns/noble/options/chestease/en.md new file mode 100644 index 00000000000..dc88c6634cf --- /dev/null +++ b/markdown/org/docs/patterns/noble/options/chestease/en.md @@ -0,0 +1,9 @@ +--- +title: "Chest ease" +--- + +--- + +The **chest ease** option controls the amount of ease at the fullest part of your chest. + +## Effect of this option on the pattern diff --git a/markdown/org/docs/patterns/noble/options/en.md b/markdown/org/docs/patterns/noble/options/en.md new file mode 100644 index 00000000000..ecdc9bbb1e4 --- /dev/null +++ b/markdown/org/docs/patterns/noble/options/en.md @@ -0,0 +1,5 @@ +--- +title: "Bella body block: Design Options" +--- + + diff --git a/markdown/org/docs/patterns/noble/options/frontarmholecurvature/en.md b/markdown/org/docs/patterns/noble/options/frontarmholecurvature/en.md new file mode 100644 index 00000000000..d14ad8128e6 --- /dev/null +++ b/markdown/org/docs/patterns/noble/options/frontarmholecurvature/en.md @@ -0,0 +1,9 @@ +--- +title: "Front armhole curvature" +--- + +--- + +Controls how deep the armhole is scooped out at the front bottom + +## Effect of this option on the pattern diff --git a/markdown/org/docs/patterns/noble/options/frontarmholepitchdepth/en.md b/markdown/org/docs/patterns/noble/options/frontarmholepitchdepth/en.md new file mode 100644 index 00000000000..c513394b6e9 --- /dev/null +++ b/markdown/org/docs/patterns/noble/options/frontarmholepitchdepth/en.md @@ -0,0 +1,9 @@ +--- +title: "Front armhole pitch depth" +--- + +--- + +The **front armhole pitch depth** option controls the vertical position of the armhole pitch point at the front. + +## Effect of this option on the pattern diff --git a/markdown/org/docs/patterns/noble/options/frontshoulderwidth/en.md b/markdown/org/docs/patterns/noble/options/frontshoulderwidth/en.md new file mode 100644 index 00000000000..2eabe58a351 --- /dev/null +++ b/markdown/org/docs/patterns/noble/options/frontshoulderwidth/en.md @@ -0,0 +1,9 @@ +--- +title: "Front shoulder width" +--- + +--- + +The **front shoulder width** option controls the width of the shoulders at the front, relative to the back. + +## Effect of this option on the pattern diff --git a/markdown/org/docs/patterns/noble/options/fullchesteasereduction/en.md b/markdown/org/docs/patterns/noble/options/fullchesteasereduction/en.md new file mode 100644 index 00000000000..d912c4f27a7 --- /dev/null +++ b/markdown/org/docs/patterns/noble/options/fullchesteasereduction/en.md @@ -0,0 +1,10 @@ +--- +title: "Full chest ease reduction" +--- + +--- + +Allows you to independently reduce the ease around the chest to make it fit tight(er) in that area + +## Effect of this option on the pattern + diff --git a/markdown/org/docs/patterns/noble/options/highbustwidth/en.md b/markdown/org/docs/patterns/noble/options/highbustwidth/en.md new file mode 100644 index 00000000000..f18b9cdb68f --- /dev/null +++ b/markdown/org/docs/patterns/noble/options/highbustwidth/en.md @@ -0,0 +1,9 @@ +--- +title: "High bust width" +--- + +--- + +The **high bust width** option allows you to tweak the high bust width at the front. + +## Effect of this option on the pattern diff --git a/markdown/org/docs/patterns/noble/options/shouldertoshoulderease/en.md b/markdown/org/docs/patterns/noble/options/shouldertoshoulderease/en.md new file mode 100644 index 00000000000..ea161d3eeec --- /dev/null +++ b/markdown/org/docs/patterns/noble/options/shouldertoshoulderease/en.md @@ -0,0 +1,9 @@ +--- +title: "Shoulder to Shoulder Ease" +--- + +--- + +The **Shoulder to Shoulder Ease** option allows you to add ease between the shoulders. + +## Effect of this option on the pattern diff --git a/markdown/org/docs/patterns/noble/options/waistdartlength/en.md b/markdown/org/docs/patterns/noble/options/waistdartlength/en.md new file mode 100644 index 00000000000..1108727ff08 --- /dev/null +++ b/markdown/org/docs/patterns/noble/options/waistdartlength/en.md @@ -0,0 +1,13 @@ +--- +title: "Waist dart length" +--- + +--- + +![The effect of the waist dart length option on the pattern](sample.png) + +The **waist dart length** option controls the length of the waist dart towards the bust. + +## Effect of this option on the pattern + +![This image shows the effect of this option by superimposing several variants that have a different value for this option](bella_waistdartlength_sample.svg "Effect of this option on the pattern") diff --git a/markdown/org/docs/patterns/noble/options/waistease/en.md b/markdown/org/docs/patterns/noble/options/waistease/en.md new file mode 100644 index 00000000000..f4143bcc2cb --- /dev/null +++ b/markdown/org/docs/patterns/noble/options/waistease/en.md @@ -0,0 +1,9 @@ +--- +title: "Waist ease" +--- + +--- + +The **waist ease** option controls the amount of ease at your waist. + +## Effect of this option on the pattern From b51844615d95fe632f1df64be7aec6c86f34d7ba Mon Sep 17 00:00:00 2001 From: Wouter van Wageningen Date: Tue, 21 Jun 2022 04:44:13 +0000 Subject: [PATCH 8/9] More docs and fix --- designs/noble/src/frontPoints.js | 4 ++-- .../patterns/noble/options/armholedartposition/en.md | 9 +++++++++ .../org/docs/patterns/noble/options/bustdartcurve/en.md | 4 ---- .../org/docs/patterns/noble/options/bustdartlength/en.md | 4 ---- .../patterns/noble/options/shoulderdartposition/en.md | 9 +++++++++ .../docs/patterns/noble/options/upperdartlength/en.md | 9 +++++++++ .../docs/patterns/noble/options/waistdartlength/en.md | 4 ---- 7 files changed, 29 insertions(+), 14 deletions(-) create mode 100644 markdown/org/docs/patterns/noble/options/armholedartposition/en.md create mode 100644 markdown/org/docs/patterns/noble/options/shoulderdartposition/en.md create mode 100644 markdown/org/docs/patterns/noble/options/upperdartlength/en.md diff --git a/designs/noble/src/frontPoints.js b/designs/noble/src/frontPoints.js index 3f0895bc006..84d12245946 100644 --- a/designs/noble/src/frontPoints.js +++ b/designs/noble/src/frontPoints.js @@ -45,7 +45,7 @@ export default function (part) { points.shoulderDartInside = points.hps.shiftFractionTowards( points.shoulder, - options.shoulderDartPosition + (options.dartPosition == 'shoulder' ? options.shoulderDartPosition : .5) ) points.orgShoulder = points.shoulder.clone() points.orgArmhole = points.armhole.clone() @@ -176,7 +176,7 @@ export default function (part) { paths.armholeOutside = new Path() .move(points.armholeDartOutside) .curve(points.armholeDartOutsideCp1, points.armholeOutsidePitchCp2, points.armhole) - .setRender(true) + .setRender(false) } else { paths.armholeOutside = new Path() .move(points.armholeDartOutside) diff --git a/markdown/org/docs/patterns/noble/options/armholedartposition/en.md b/markdown/org/docs/patterns/noble/options/armholedartposition/en.md new file mode 100644 index 00000000000..1a0c11580f4 --- /dev/null +++ b/markdown/org/docs/patterns/noble/options/armholedartposition/en.md @@ -0,0 +1,9 @@ +--- +title: "Armhole Dart Position" +--- + +--- + +The **Armhole Dart Position** option allows you to move the position of the dart/princess seam. + +## Effect of this option on the pattern diff --git a/markdown/org/docs/patterns/noble/options/bustdartcurve/en.md b/markdown/org/docs/patterns/noble/options/bustdartcurve/en.md index 39e5f208fe8..6504bd99308 100644 --- a/markdown/org/docs/patterns/noble/options/bustdartcurve/en.md +++ b/markdown/org/docs/patterns/noble/options/bustdartcurve/en.md @@ -4,11 +4,7 @@ title: "Bust dart curve" --- -![The effect of the bust dart curve option on the pattern](sample.png) - The **bust dart curve** option controls the curvature of the bust dart. From straight to slightly curved. ## Effect of this option on the pattern - -![This image shows the effect of this option by superimposing several variants that have a different value for this option](bella_bustdartcurve_sample.svg "Effect of this option on the pattern") diff --git a/markdown/org/docs/patterns/noble/options/bustdartlength/en.md b/markdown/org/docs/patterns/noble/options/bustdartlength/en.md index 1bfc6396b62..40871394120 100644 --- a/markdown/org/docs/patterns/noble/options/bustdartlength/en.md +++ b/markdown/org/docs/patterns/noble/options/bustdartlength/en.md @@ -4,11 +4,7 @@ title: "Bust dart length" --- -![The effect of the bust dart length option on the pattern](sample.png) - The **bust dart length** option controls the length of the bust dart. The maximum length brings the dart all the way to the bust apex. ## Effect of this option on the pattern - -![This image shows the effect of this option by superimposing several variants that have a different value for this option](bella_bustdartlength_sample.svg "Effect of this option on the pattern") diff --git a/markdown/org/docs/patterns/noble/options/shoulderdartposition/en.md b/markdown/org/docs/patterns/noble/options/shoulderdartposition/en.md new file mode 100644 index 00000000000..3d9b9bbcf76 --- /dev/null +++ b/markdown/org/docs/patterns/noble/options/shoulderdartposition/en.md @@ -0,0 +1,9 @@ +--- +title: "Shoulder Dart Position" +--- + +--- + +The **Shoulder Dart Position** option allows you to move the position of the dart/princess seam. + +## Effect of this option on the pattern diff --git a/markdown/org/docs/patterns/noble/options/upperdartlength/en.md b/markdown/org/docs/patterns/noble/options/upperdartlength/en.md new file mode 100644 index 00000000000..7c503656308 --- /dev/null +++ b/markdown/org/docs/patterns/noble/options/upperdartlength/en.md @@ -0,0 +1,9 @@ +--- +title: "Upper Dart Length" +--- + +--- + +The **Upper Dart Length** controls the length of the upper dart, 100% is all teh way to the bust point. + +## Effect of this option on the pattern diff --git a/markdown/org/docs/patterns/noble/options/waistdartlength/en.md b/markdown/org/docs/patterns/noble/options/waistdartlength/en.md index 1108727ff08..0eca8850cce 100644 --- a/markdown/org/docs/patterns/noble/options/waistdartlength/en.md +++ b/markdown/org/docs/patterns/noble/options/waistdartlength/en.md @@ -4,10 +4,6 @@ title: "Waist dart length" --- -![The effect of the waist dart length option on the pattern](sample.png) - The **waist dart length** option controls the length of the waist dart towards the bust. ## Effect of this option on the pattern - -![This image shows the effect of this option by superimposing several variants that have a different value for this option](bella_waistdartlength_sample.svg "Effect of this option on the pattern") From c9bce4bfdd8d7b8ae69e23c418eb8ef8b4e7d557 Mon Sep 17 00:00:00 2001 From: Wouter van Wageningen Date: Tue, 21 Jun 2022 04:49:36 +0000 Subject: [PATCH 9/9] Remove unused option --- designs/noble/config/index.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/designs/noble/config/index.js b/designs/noble/config/index.js index 5e5309af038..4bedaf3b7b9 100644 --- a/designs/noble/config/index.js +++ b/designs/noble/config/index.js @@ -102,10 +102,9 @@ export default { bustDartLength: { pct: 90, min: 75, max: 100 }, waistDartLength: { pct: 90, min: 75, max: 95 }, bustDartCurve: { pct: 100, min: 0, max: 100 }, - shoulderDartPosition: { pct: 50, min: 10, max: 90 }, + shoulderDartPosition: { pct: 50, min: 10, max: 90, hide: function(settings) {(settings.options.dartPosition != 'shoulder')} }, upperDartLength: { pct: 90, min: 80, max: 95 }, - armholeDartPosition: { pct: 50, min: 10, max: 90 }, - dartOutsideCP: { pct: 0, min: -200, max: 200 }, + armholeDartPosition: { pct: 50, min: 10, max: 90, hide: function(settings) {(settings.options.dartPosition != 'shoulder')} }, dartPosition: { dflt: 'shoulder', list: ['shoulder','armhole'] }, }