chore: Linter changes
This commit is contained in:
parent
dfdfc46ded
commit
f191151ee4
354 changed files with 2467 additions and 2472 deletions
|
@ -1,13 +1,19 @@
|
||||||
2.15.1:
|
2.15.1:
|
||||||
date: 2021-04-20
|
date: 2021-04-24
|
||||||
|
|
||||||
Added:
|
Added:
|
||||||
|
charlie:
|
||||||
|
- Added a curved waistband option
|
||||||
simon:
|
simon:
|
||||||
- Added some dimensions to clarify the X value of shoulder/armhole points
|
- Added some dimensions to clarify the X value of shoulder/armhole points
|
||||||
|
|
||||||
Fixed:
|
Fixed:
|
||||||
charlie:
|
charlie:
|
||||||
- Keep `frontPocketSlantRound` and `frontPocketSlantBend` options
|
- Keep `frontPocketSlantRound` and `frontPocketSlantBend` options
|
||||||
from being zero
|
from being zero
|
||||||
|
core:
|
||||||
|
- Fixed bug in the dependency resolved when dependecies are passed as a string
|
||||||
|
See [#971](https://github.com/freesewing/freesewing/issues/971)
|
||||||
|
|
||||||
2.15.0:
|
2.15.0:
|
||||||
date: 2021-04-15
|
date: 2021-04-15
|
||||||
|
|
14
package.json
14
package.json
|
@ -14,12 +14,9 @@
|
||||||
"homepage": "https://freesewing.org/",
|
"homepage": "https://freesewing.org/",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"lint": "eslint --fix 'src/*.js'",
|
|
||||||
"kickstart": "npx lerna bootstrap && npx lerna run build --no-bail && npx lerna run build",
|
"kickstart": "npx lerna bootstrap && npx lerna run build --no-bail && npx lerna run build",
|
||||||
"clean": "rimraf dist",
|
"clean": "rimraf dist",
|
||||||
"test": "lerna run test",
|
"test": "lerna run test",
|
||||||
"jsonlint": "yarn --silent jsonlint:files | xargs -n1 jsonlint -q -c && echo \"jsonlint: no lint errors\"",
|
|
||||||
"jsonlint:files": "find . -name \"*.json\" | grep -v -f .eslintignore",
|
|
||||||
"prettier": "npx prettier --write 'packages/**/src/*.js' 'packages/**/config/*.js' 'packages/**/example/src/*' 'packages/i18n/src/locales/**/*.*'",
|
"prettier": "npx prettier --write 'packages/**/src/*.js' 'packages/**/config/*.js' 'packages/**/example/src/*' 'packages/i18n/src/locales/**/*.*'",
|
||||||
"reconfigure": "npx babel-node scripts/reconfigure.js",
|
"reconfigure": "npx babel-node scripts/reconfigure.js",
|
||||||
"dxf": "npx babel-node scripts/export-dxf.js",
|
"dxf": "npx babel-node scripts/export-dxf.js",
|
||||||
|
@ -71,22 +68,11 @@
|
||||||
"codecov": "^3.7.2",
|
"codecov": "^3.7.2",
|
||||||
"cross-env": "^7.0.2",
|
"cross-env": "^7.0.2",
|
||||||
"deep-freeze": "^0.0.1",
|
"deep-freeze": "^0.0.1",
|
||||||
"eslint": "^7.6.0",
|
|
||||||
"eslint-config-prettier": "^7.2.0",
|
|
||||||
"eslint-config-standard": "^15.0.1",
|
|
||||||
"eslint-config-standard-react": "^10.0.0",
|
|
||||||
"eslint-plugin-import": "^2.22.0",
|
|
||||||
"eslint-plugin-node": "^11.1.0",
|
|
||||||
"eslint-plugin-prettier": "^3.1.4",
|
|
||||||
"eslint-plugin-promise": "^4.0.0",
|
|
||||||
"eslint-plugin-react": "^7.20.5",
|
|
||||||
"eslint-plugin-standard": "^5.0.0",
|
|
||||||
"esm": "^3.2.25",
|
"esm": "^3.2.25",
|
||||||
"file-saver": "^2.0.2",
|
"file-saver": "^2.0.2",
|
||||||
"fs-extra": "^9.1.0",
|
"fs-extra": "^9.1.0",
|
||||||
"husky": "^4.2.5",
|
"husky": "^4.2.5",
|
||||||
"js-yaml": "^4.0.0",
|
"js-yaml": "^4.0.0",
|
||||||
"jsonlint": "^1.6.3",
|
|
||||||
"lerna": "^3.22.1",
|
"lerna": "^3.22.1",
|
||||||
"mocha": "^8.1.0",
|
"mocha": "^8.1.0",
|
||||||
"mustache": "^4.0.1",
|
"mustache": "^4.0.1",
|
||||||
|
|
|
@ -18,8 +18,8 @@ export default {
|
||||||
'necklineDrop',
|
'necklineDrop',
|
||||||
'shoulderStrapWidth',
|
'shoulderStrapWidth',
|
||||||
'shoulderStrapPlacement',
|
'shoulderStrapPlacement',
|
||||||
'lengthBonus'
|
'lengthBonus',
|
||||||
]
|
],
|
||||||
},
|
},
|
||||||
measurements: [
|
measurements: [
|
||||||
'biceps',
|
'biceps',
|
||||||
|
@ -29,15 +29,15 @@ export default {
|
||||||
'neck',
|
'neck',
|
||||||
'shoulderSlope',
|
'shoulderSlope',
|
||||||
'shoulderToShoulder',
|
'shoulderToShoulder',
|
||||||
'hips'
|
'hips',
|
||||||
],
|
],
|
||||||
dependencies: {
|
dependencies: {
|
||||||
front: 'base',
|
front: 'base',
|
||||||
back: 'front'
|
back: 'front',
|
||||||
},
|
},
|
||||||
inject: {
|
inject: {
|
||||||
front: 'base',
|
front: 'base',
|
||||||
back: 'front'
|
back: 'front',
|
||||||
},
|
},
|
||||||
hide: ['base'],
|
hide: ['base'],
|
||||||
options: {
|
options: {
|
||||||
|
@ -63,6 +63,6 @@ export default {
|
||||||
necklineDrop: { pct: 20, min: 10, max: 35 },
|
necklineDrop: { pct: 20, min: 10, max: 35 },
|
||||||
stretchFactor: { pct: 5, min: 0, max: 15 },
|
stretchFactor: { pct: 5, min: 0, max: 15 },
|
||||||
shoulderStrapWidth: { pct: 15, min: 10, max: 40 },
|
shoulderStrapWidth: { pct: 15, min: 10, max: 40 },
|
||||||
shoulderStrapPlacement: { pct: 40, min: 20, max: 80 }
|
shoulderStrapPlacement: { pct: 40, min: 20, max: 80 },
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ export default function (part) {
|
||||||
macro,
|
macro,
|
||||||
utils,
|
utils,
|
||||||
units,
|
units,
|
||||||
measurements
|
measurements,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
// Lower back neck a bit
|
// Lower back neck a bit
|
||||||
|
@ -88,7 +88,7 @@ export default function (part) {
|
||||||
macro('cutonfold', {
|
macro('cutonfold', {
|
||||||
from: points.cfNeck,
|
from: points.cfNeck,
|
||||||
to: points.cfHem,
|
to: points.cfHem,
|
||||||
grainline: true
|
grainline: true,
|
||||||
})
|
})
|
||||||
|
|
||||||
macro('title', { at: points.title, nr: 2, title: 'back' })
|
macro('title', { at: points.title, nr: 2, title: 'back' })
|
||||||
|
@ -102,7 +102,7 @@ export default function (part) {
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.cbHem,
|
from: points.cbHem,
|
||||||
to: points.cbNeck,
|
to: points.cbNeck,
|
||||||
x: points.cbHem.x - sa - 15
|
x: points.cbHem.x - sa - 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ export default function (part) {
|
||||||
measurements,
|
measurements,
|
||||||
complete,
|
complete,
|
||||||
paperless,
|
paperless,
|
||||||
macro
|
macro,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
// Hide Brian paths
|
// Hide Brian paths
|
||||||
|
@ -120,7 +120,7 @@ export default function (part) {
|
||||||
macro('cutonfold', {
|
macro('cutonfold', {
|
||||||
from: points.cfNeck,
|
from: points.cfNeck,
|
||||||
to: points.cfHem,
|
to: points.cfHem,
|
||||||
grainline: true
|
grainline: true,
|
||||||
})
|
})
|
||||||
points.title = new Point(points.waist.x / 2, points.waist.y)
|
points.title = new Point(points.waist.x / 2, points.waist.y)
|
||||||
macro('title', { at: points.title, nr: 1, title: 'front' })
|
macro('title', { at: points.title, nr: 1, title: 'front' })
|
||||||
|
@ -161,7 +161,7 @@ export default function (part) {
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.cfHem,
|
from: points.cfHem,
|
||||||
to: points.cfNeck,
|
to: points.cfNeck,
|
||||||
x: points.cfHem.x - sa - 15
|
x: points.cfHem.x - sa - 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,36 +2,36 @@ export function dimensions(macro, points, sa) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cfHem,
|
from: points.cfHem,
|
||||||
to: points.hem,
|
to: points.hem,
|
||||||
y: points.hem.y + sa * 2.5 + 15
|
y: points.hem.y + sa * 2.5 + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cfNeck,
|
from: points.cfNeck,
|
||||||
to: points.strapLeft,
|
to: points.strapLeft,
|
||||||
y: points.neck.y - sa - 15
|
y: points.neck.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cfNeck,
|
from: points.cfNeck,
|
||||||
to: points.strapRight,
|
to: points.strapRight,
|
||||||
y: points.neck.y - sa - 30
|
y: points.neck.y - sa - 30,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.hem,
|
from: points.hem,
|
||||||
to: points.armhole,
|
to: points.armhole,
|
||||||
x: points.armhole.x + sa + 15
|
x: points.armhole.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.hem,
|
from: points.hem,
|
||||||
to: points.strapRight,
|
to: points.strapRight,
|
||||||
x: points.armhole.x + sa + 30
|
x: points.armhole.x + sa + 30,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.hem,
|
from: points.hem,
|
||||||
to: points.strapLeft,
|
to: points.strapLeft,
|
||||||
x: points.armhole.x + sa + 45
|
x: points.armhole.x + sa + 45,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cfNeck,
|
from: points.cfNeck,
|
||||||
to: points.armhole,
|
to: points.armhole,
|
||||||
y: points.neck.y - sa - 45
|
y: points.neck.y - sa - 45,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@ export default {
|
||||||
tags: ['accessories'],
|
tags: ['accessories'],
|
||||||
optionGroups: {
|
optionGroups: {
|
||||||
fit: ['backOpening', 'chestDepth'],
|
fit: ['backOpening', 'chestDepth'],
|
||||||
style: ['lengthBonus', 'bibLength', 'bibWidth', 'strapWidth']
|
style: ['lengthBonus', 'bibLength', 'bibWidth', 'strapWidth'],
|
||||||
},
|
},
|
||||||
measurements: ['chest', 'waist', 'hips', 'hpsToWaistBack', 'waistToKnee'],
|
measurements: ['chest', 'waist', 'hips', 'hpsToWaistBack', 'waistToKnee'],
|
||||||
dependencies: {},
|
dependencies: {},
|
||||||
|
@ -24,6 +24,6 @@ export default {
|
||||||
chestDepth: { pct: 22, min: 15, max: 90 },
|
chestDepth: { pct: 22, min: 15, max: 90 },
|
||||||
bibLength: { pct: 75, min: 0, max: 90 },
|
bibLength: { pct: 75, min: 0, max: 90 },
|
||||||
bibWidth: { pct: 100, min: 50, max: 125 },
|
bibWidth: { pct: 100, min: 50, max: 125 },
|
||||||
strapWidth: { pct: 60, min: 20, max: 100 }
|
strapWidth: { pct: 60, min: 20, max: 100 },
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@ export default function (part) {
|
||||||
complete,
|
complete,
|
||||||
sa,
|
sa,
|
||||||
paperless,
|
paperless,
|
||||||
macro
|
macro,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
let chestWidth = measurements.chest / 4
|
let chestWidth = measurements.chest / 4
|
||||||
|
@ -111,7 +111,7 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
nr: 1,
|
nr: 1,
|
||||||
at: points.title,
|
at: points.title,
|
||||||
title: 'Front'
|
title: 'Front',
|
||||||
})
|
})
|
||||||
|
|
||||||
points.scaleboxAnchor = points.pocketLeftBottom.shiftFractionTowards(points.bottomRight, 0.5)
|
points.scaleboxAnchor = points.pocketLeftBottom.shiftFractionTowards(points.bottomRight, 0.5)
|
||||||
|
@ -119,12 +119,12 @@ export default function (part) {
|
||||||
|
|
||||||
macro('crossBox', {
|
macro('crossBox', {
|
||||||
from: points.topRightHem,
|
from: points.topRightHem,
|
||||||
to: points.crossBoxTo1
|
to: points.crossBoxTo1,
|
||||||
})
|
})
|
||||||
macro('crossBox', {
|
macro('crossBox', {
|
||||||
from: points.topRightBack,
|
from: points.topRightBack,
|
||||||
to: points.crossBoxTo2,
|
to: points.crossBoxTo2,
|
||||||
text: 'attachment'
|
text: 'attachment',
|
||||||
})
|
})
|
||||||
|
|
||||||
if (sa) {
|
if (sa) {
|
||||||
|
@ -133,7 +133,7 @@ export default function (part) {
|
||||||
|
|
||||||
macro('cutonfold', {
|
macro('cutonfold', {
|
||||||
from: points.topCOF,
|
from: points.topCOF,
|
||||||
to: points.bottomCOF
|
to: points.bottomCOF,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -142,42 +142,42 @@ export default function (part) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bottomLeft,
|
from: points.bottomLeft,
|
||||||
to: points.bottomRight,
|
to: points.bottomRight,
|
||||||
y: points.bottomLeft.y + sa + 15
|
y: points.bottomLeft.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.topLeft,
|
from: points.topLeft,
|
||||||
to: points.topRight,
|
to: points.topRight,
|
||||||
y: points.topLeft.y - sa - 15
|
y: points.topLeft.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomLeft,
|
from: points.bottomLeft,
|
||||||
to: points.topLeft,
|
to: points.topLeft,
|
||||||
x: points.topLeft.x - sa - 15
|
x: points.topLeft.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomRight,
|
from: points.bottomRight,
|
||||||
to: points.topRightBack,
|
to: points.topRightBack,
|
||||||
x: points.topRightBack.x + sa + 15
|
x: points.topRightBack.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.topRightBack,
|
from: points.topRightBack,
|
||||||
to: points.topRight,
|
to: points.topRight,
|
||||||
x: points.topRightBack.x + sa + 15
|
x: points.topRightBack.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.topLeft,
|
from: points.topLeft,
|
||||||
to: points.topLeftHem,
|
to: points.topLeftHem,
|
||||||
x: points.topLeftHem.x + sa + 15
|
x: points.topLeftHem.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.topLeftHem,
|
from: points.topLeftHem,
|
||||||
to: points.bottomLeftHem,
|
to: points.bottomLeftHem,
|
||||||
x: points.topLeftHem.x + sa + 15
|
x: points.topLeftHem.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomLeftHem,
|
from: points.bottomLeftHem,
|
||||||
to: points.bottomLeft,
|
to: points.bottomLeft,
|
||||||
x: points.bottomLeftHem.x + sa + 15
|
x: points.bottomLeftHem.x + sa + 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -58,8 +58,8 @@ const crossBox = {
|
||||||
.attr('data-text', so.text)
|
.attr('data-text', so.text)
|
||||||
.attr('data-text-class', 'center')
|
.attr('data-text-class', 'center')
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create new design
|
// Create new design
|
||||||
|
|
|
@ -11,7 +11,7 @@ export default function (part) {
|
||||||
complete,
|
complete,
|
||||||
sa,
|
sa,
|
||||||
paperless,
|
paperless,
|
||||||
macro
|
macro,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
let apronLength =
|
let apronLength =
|
||||||
|
@ -49,7 +49,7 @@ export default function (part) {
|
||||||
|
|
||||||
macro('cutonfold', {
|
macro('cutonfold', {
|
||||||
from: points.topCOF,
|
from: points.topCOF,
|
||||||
to: points.bottomCOF
|
to: points.bottomCOF,
|
||||||
})
|
})
|
||||||
|
|
||||||
// Complete?
|
// Complete?
|
||||||
|
@ -60,7 +60,7 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
nr: 3,
|
nr: 3,
|
||||||
at: points.title,
|
at: points.title,
|
||||||
title: 'Pocket'
|
title: 'Pocket',
|
||||||
})
|
})
|
||||||
if (sa) {
|
if (sa) {
|
||||||
paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
|
paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
|
||||||
|
@ -72,12 +72,12 @@ export default function (part) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bottomLeft,
|
from: points.bottomLeft,
|
||||||
to: points.bottomRight,
|
to: points.bottomRight,
|
||||||
y: points.bottomLeft.y + sa + 15
|
y: points.bottomLeft.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomLeft,
|
from: points.bottomLeft,
|
||||||
to: points.topLeft,
|
to: points.topLeft,
|
||||||
x: points.topLeft.x - sa - 15
|
x: points.topLeft.x - sa - 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ export default function (part) {
|
||||||
complete,
|
complete,
|
||||||
sa,
|
sa,
|
||||||
paperless,
|
paperless,
|
||||||
macro
|
macro,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
let chestWidth = measurements.chest / 4
|
let chestWidth = measurements.chest / 4
|
||||||
|
@ -89,7 +89,7 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
nr: 2,
|
nr: 2,
|
||||||
at: points.title,
|
at: points.title,
|
||||||
title: 'Strap'
|
title: 'Strap',
|
||||||
})
|
})
|
||||||
macro('crossBox', { from: points.topLeft, to: points.topMiddleHem })
|
macro('crossBox', { from: points.topLeft, to: points.topMiddleHem })
|
||||||
macro('crossBox', { from: points.bottomLeftHem, to: points.bottomMiddle })
|
macro('crossBox', { from: points.bottomLeftHem, to: points.bottomMiddle })
|
||||||
|
@ -103,27 +103,27 @@ export default function (part) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bottomLeft,
|
from: points.bottomLeft,
|
||||||
to: points.bottomRight,
|
to: points.bottomRight,
|
||||||
y: points.bottomLeft.y + sa + 15
|
y: points.bottomLeft.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomLeft,
|
from: points.bottomLeft,
|
||||||
to: points.topLeft,
|
to: points.topLeft,
|
||||||
x: points.topLeft.x - sa - 15
|
x: points.topLeft.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.topMiddle,
|
from: points.topMiddle,
|
||||||
to: points.topMiddleHem,
|
to: points.topMiddleHem,
|
||||||
x: points.topMiddleHem.x + sa + 15
|
x: points.topMiddleHem.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.topMiddleHem,
|
from: points.topMiddleHem,
|
||||||
to: points.bottomMiddleHem,
|
to: points.bottomMiddleHem,
|
||||||
x: points.topMiddleHem.x + sa + 15
|
x: points.topMiddleHem.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomMiddleHem,
|
from: points.bottomMiddleHem,
|
||||||
to: points.bottomMiddle,
|
to: points.bottomMiddle,
|
||||||
x: points.bottomMiddleHem.x + sa + 15
|
x: points.bottomMiddleHem.x + sa + 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,9 +17,9 @@ export default {
|
||||||
'backArmholeSlant',
|
'backArmholeSlant',
|
||||||
'backArmholeCurvature',
|
'backArmholeCurvature',
|
||||||
'frontArmholePitchDepth',
|
'frontArmholePitchDepth',
|
||||||
'backArmholePitchDepth'
|
'backArmholePitchDepth',
|
||||||
],
|
],
|
||||||
advanced: ['backNeckCutout', 'backHemSlope', 'frontShoulderWidth', 'highBustWidth']
|
advanced: ['backNeckCutout', 'backHemSlope', 'frontShoulderWidth', 'highBustWidth'],
|
||||||
},
|
},
|
||||||
measurements: [
|
measurements: [
|
||||||
'highBust',
|
'highBust',
|
||||||
|
@ -33,17 +33,17 @@ export default {
|
||||||
'hpsToWaistFront',
|
'hpsToWaistFront',
|
||||||
'hpsToWaistBack',
|
'hpsToWaistBack',
|
||||||
'shoulderToShoulder',
|
'shoulderToShoulder',
|
||||||
'shoulderSlope'
|
'shoulderSlope',
|
||||||
// FIXME: Measurement from waist up to armhole (for sleeveless)
|
// FIXME: Measurement from waist up to armhole (for sleeveless)
|
||||||
],
|
],
|
||||||
dependencies: {
|
dependencies: {
|
||||||
back: 'frontSideDart'
|
back: 'frontSideDart',
|
||||||
},
|
},
|
||||||
inject: {},
|
inject: {},
|
||||||
hide: [],
|
hide: [],
|
||||||
parts: [
|
parts: [
|
||||||
'back',
|
'back',
|
||||||
'frontSideDart'
|
'frontSideDart',
|
||||||
// 'frontShoulderDart'
|
// 'frontShoulderDart'
|
||||||
],
|
],
|
||||||
options: {
|
options: {
|
||||||
|
@ -75,6 +75,6 @@ export default {
|
||||||
highBustWidth: { pct: 86, max: 92, min: 80 },
|
highBustWidth: { pct: 86, max: 92, min: 80 },
|
||||||
bustDartLength: { pct: 90, min: 75, max: 100 },
|
bustDartLength: { pct: 90, min: 75, max: 100 },
|
||||||
waistDartLength: { pct: 90, min: 75, max: 95 },
|
waistDartLength: { pct: 90, min: 75, max: 95 },
|
||||||
bustDartCurve: { pct: 100, min: 0, max: 100 }
|
bustDartCurve: { pct: 100, min: 0, max: 100 },
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@ export default function (part) {
|
||||||
macro,
|
macro,
|
||||||
utils,
|
utils,
|
||||||
measurements,
|
measurements,
|
||||||
raise
|
raise,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
// Get to work
|
// Get to work
|
||||||
|
@ -186,15 +186,15 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
nr: 2,
|
nr: 2,
|
||||||
title: 'back',
|
title: 'back',
|
||||||
at: points.titleAnchor
|
at: points.titleAnchor,
|
||||||
})
|
})
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: new Point(points.hps.x / 2, points.shoulder.y),
|
from: new Point(points.hps.x / 2, points.shoulder.y),
|
||||||
to: new Point(points.hps.x / 2, points.waistSide.y)
|
to: new Point(points.hps.x / 2, points.waistSide.y),
|
||||||
})
|
})
|
||||||
macro('sprinkle', {
|
macro('sprinkle', {
|
||||||
snippet: 'bnotch',
|
snippet: 'bnotch',
|
||||||
on: ['armholePitch', 'bustCenter']
|
on: ['armholePitch', 'bustCenter'],
|
||||||
})
|
})
|
||||||
|
|
||||||
if (sa) paths.sa = paths.saBase.offset(sa).attr('class', 'fabric sa')
|
if (sa) paths.sa = paths.saBase.offset(sa).attr('class', 'fabric sa')
|
||||||
|
@ -203,92 +203,92 @@ export default function (part) {
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waistCenter,
|
from: points.waistCenter,
|
||||||
to: points.dartTip,
|
to: points.dartTip,
|
||||||
x: points.cbNeck.x - sa - 15
|
x: points.cbNeck.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waistCenter,
|
from: points.waistCenter,
|
||||||
to: points.cbNeck,
|
to: points.cbNeck,
|
||||||
x: points.cbNeck.x - sa - 30
|
x: points.cbNeck.x - sa - 30,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waistCenter,
|
from: points.waistCenter,
|
||||||
to: points.hps,
|
to: points.hps,
|
||||||
x: points.cbNeck.x - sa - 45
|
x: points.cbNeck.x - sa - 45,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbNeck,
|
from: points.cbNeck,
|
||||||
to: points.waistCenter,
|
to: points.waistCenter,
|
||||||
y: points.waistCenter.y + sa + 15
|
y: points.waistCenter.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbNeck,
|
from: points.cbNeck,
|
||||||
to: points.dartBottomLeft,
|
to: points.dartBottomLeft,
|
||||||
y: points.waistCenter.y + sa + 30
|
y: points.waistCenter.y + sa + 30,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbNeck,
|
from: points.cbNeck,
|
||||||
to: points.dartBottomRight,
|
to: points.dartBottomRight,
|
||||||
y: points.waistCenter.y + sa + 45
|
y: points.waistCenter.y + sa + 45,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.dartBottomLeft,
|
from: points.dartBottomLeft,
|
||||||
to: points.dartBottomRight,
|
to: points.dartBottomRight,
|
||||||
y: points.waistCenter.y + sa + 15
|
y: points.waistCenter.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbNeck,
|
from: points.cbNeck,
|
||||||
to: points.waistSide,
|
to: points.waistSide,
|
||||||
y: points.waistCenter.y + sa + 60
|
y: points.waistCenter.y + sa + 60,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbNeck,
|
from: points.cbNeck,
|
||||||
to: points.armhole,
|
to: points.armhole,
|
||||||
y: points.waistCenter.y + sa + 75
|
y: points.waistCenter.y + sa + 75,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waistSide,
|
from: points.waistSide,
|
||||||
to: points.armhole,
|
to: points.armhole,
|
||||||
x: points.armhole.x + sa + 15
|
x: points.armhole.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waistSide,
|
from: points.waistSide,
|
||||||
to: points.armholePitch,
|
to: points.armholePitch,
|
||||||
x: points.armhole.x + sa + 30
|
x: points.armhole.x + sa + 30,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waistSide,
|
from: points.waistSide,
|
||||||
to: points.shoulder,
|
to: points.shoulder,
|
||||||
x: points.armhole.x + sa + 45
|
x: points.armhole.x + sa + 45,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waistSide,
|
from: points.waistSide,
|
||||||
to: points.hps,
|
to: points.hps,
|
||||||
x: points.armhole.x + sa + 60
|
x: points.armhole.x + sa + 60,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waistCenter,
|
from: points.waistCenter,
|
||||||
to: points.waistSide,
|
to: points.waistSide,
|
||||||
x: points.waistSide.x + sa + 15
|
x: points.waistSide.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbNeck,
|
from: points.cbNeck,
|
||||||
to: points.hps,
|
to: points.hps,
|
||||||
y: points.hps.y - sa - 15
|
y: points.hps.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbNeck,
|
from: points.cbNeck,
|
||||||
to: points.armholePitch,
|
to: points.armholePitch,
|
||||||
y: points.hps.y - sa - 30
|
y: points.hps.y - sa - 30,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbNeck,
|
from: points.cbNeck,
|
||||||
to: points.shoulder,
|
to: points.shoulder,
|
||||||
y: points.hps.y - sa - 45
|
y: points.hps.y - sa - 45,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbNeck,
|
from: points.cbNeck,
|
||||||
to: points.armhole,
|
to: points.armhole,
|
||||||
y: points.hps.y - sa - 60
|
y: points.hps.y - sa - 60,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@ export default function (part) {
|
||||||
paperless,
|
paperless,
|
||||||
macro,
|
macro,
|
||||||
utils,
|
utils,
|
||||||
measurements
|
measurements,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
// Get to work
|
// Get to work
|
||||||
|
@ -200,7 +200,7 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
at: points.titleAnchor,
|
at: points.titleAnchor,
|
||||||
nr: 1,
|
nr: 1,
|
||||||
title: 'front'
|
title: 'front',
|
||||||
})
|
})
|
||||||
points.scaleboxAnchor = points.titleAnchor.shift(-90, 70)
|
points.scaleboxAnchor = points.titleAnchor.shift(-90, 70)
|
||||||
macro('scalebox', { at: points.scaleboxAnchor })
|
macro('scalebox', { at: points.scaleboxAnchor })
|
||||||
|
@ -212,11 +212,11 @@ export default function (part) {
|
||||||
macro('cutonfold', {
|
macro('cutonfold', {
|
||||||
from: points.cfNeck,
|
from: points.cfNeck,
|
||||||
to: points.cfHem,
|
to: points.cfHem,
|
||||||
grainline: true
|
grainline: true,
|
||||||
})
|
})
|
||||||
macro('sprinkle', {
|
macro('sprinkle', {
|
||||||
snippet: 'notch',
|
snippet: 'notch',
|
||||||
on: ['bust', 'armholePitch', 'cfBust']
|
on: ['bust', 'armholePitch', 'cfBust'],
|
||||||
})
|
})
|
||||||
|
|
||||||
if (sa) {
|
if (sa) {
|
||||||
|
@ -227,102 +227,102 @@ export default function (part) {
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.cfHem,
|
from: points.cfHem,
|
||||||
to: points.waistDartTip,
|
to: points.waistDartTip,
|
||||||
x: 0 - 15
|
x: 0 - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.cfHem,
|
from: points.cfHem,
|
||||||
to: points.bust,
|
to: points.bust,
|
||||||
x: 0 - 30
|
x: 0 - 30,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.cfHem,
|
from: points.cfHem,
|
||||||
to: points.cfNeck,
|
to: points.cfNeck,
|
||||||
x: 0 - 45
|
x: 0 - 45,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.cfHem,
|
from: points.cfHem,
|
||||||
to: points.hps,
|
to: points.hps,
|
||||||
x: 0 - 60
|
x: 0 - 60,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cfBust,
|
from: points.cfBust,
|
||||||
to: points.bust,
|
to: points.bust,
|
||||||
y: points.bust.y - 15
|
y: points.bust.y - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cfBust,
|
from: points.cfBust,
|
||||||
to: points.bustDartTip,
|
to: points.bustDartTip,
|
||||||
y: points.bust.y - 30
|
y: points.bust.y - 30,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cfHem,
|
from: points.cfHem,
|
||||||
to: points.waistDartLeft,
|
to: points.waistDartLeft,
|
||||||
y: points.cfHem.y + sa + 15
|
y: points.cfHem.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cfHem,
|
from: points.cfHem,
|
||||||
to: points.waistDartRight,
|
to: points.waistDartRight,
|
||||||
y: points.cfHem.y + sa + 30
|
y: points.cfHem.y + sa + 30,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cfHem,
|
from: points.cfHem,
|
||||||
to: points.sideHem,
|
to: points.sideHem,
|
||||||
y: points.cfHem.y + sa + 45
|
y: points.cfHem.y + sa + 45,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cfHem,
|
from: points.cfHem,
|
||||||
to: points.bustDartBottom,
|
to: points.bustDartBottom,
|
||||||
y: points.cfHem.y + sa + 60
|
y: points.cfHem.y + sa + 60,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cfHem,
|
from: points.cfHem,
|
||||||
to: points.bustDartTop,
|
to: points.bustDartTop,
|
||||||
y: points.cfHem.y + sa + 75
|
y: points.cfHem.y + sa + 75,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.sideHem,
|
from: points.sideHem,
|
||||||
to: points.bustDartBottom,
|
to: points.bustDartBottom,
|
||||||
x: points.bustDartTop.x + sa + 15
|
x: points.bustDartTop.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.sideHem,
|
from: points.sideHem,
|
||||||
to: points.bustDartTop,
|
to: points.bustDartTop,
|
||||||
x: points.bustDartTop.x + sa + 30
|
x: points.bustDartTop.x + sa + 30,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.sideHem,
|
from: points.sideHem,
|
||||||
to: points.armhole,
|
to: points.armhole,
|
||||||
x: points.bustDartTop.x + sa + 45
|
x: points.bustDartTop.x + sa + 45,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.sideHem,
|
from: points.sideHem,
|
||||||
to: points.armholePitch,
|
to: points.armholePitch,
|
||||||
x: points.bustDartTop.x + sa + 60
|
x: points.bustDartTop.x + sa + 60,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.sideHem,
|
from: points.sideHem,
|
||||||
to: points.shoulder,
|
to: points.shoulder,
|
||||||
x: points.bustDartTop.x + sa + 75
|
x: points.bustDartTop.x + sa + 75,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cfNeck,
|
from: points.cfNeck,
|
||||||
to: points.hps,
|
to: points.hps,
|
||||||
y: points.hps.y - sa - 15
|
y: points.hps.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cfNeck,
|
from: points.cfNeck,
|
||||||
to: points.armholePitch,
|
to: points.armholePitch,
|
||||||
y: points.hps.y - sa - 30
|
y: points.hps.y - sa - 30,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cfNeck,
|
from: points.cfNeck,
|
||||||
to: points.shoulder,
|
to: points.shoulder,
|
||||||
y: points.hps.y - sa - 45
|
y: points.hps.y - sa - 45,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cfNeck,
|
from: points.cfNeck,
|
||||||
to: points.armhole,
|
to: points.armhole,
|
||||||
y: points.hps.y - sa - 60
|
y: points.hps.y - sa - 60,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,14 +11,14 @@ export default {
|
||||||
tags: ['top', 'basics'],
|
tags: ['top', 'basics'],
|
||||||
optionGroups: {
|
optionGroups: {
|
||||||
fit: ['collarEase', 'adjustmentRibbon'],
|
fit: ['collarEase', 'adjustmentRibbon'],
|
||||||
style: ['tipWidth', 'knotWidth', 'bowLength', 'bowStyle', 'endStyle']
|
style: ['tipWidth', 'knotWidth', 'bowLength', 'bowStyle', 'endStyle'],
|
||||||
},
|
},
|
||||||
measurements: ['neck'],
|
measurements: ['neck'],
|
||||||
dependencies: {},
|
dependencies: {},
|
||||||
inject: {
|
inject: {
|
||||||
bow1: 'base',
|
bow1: 'base',
|
||||||
bow2: 'base',
|
bow2: 'base',
|
||||||
bow3: 'base'
|
bow3: 'base',
|
||||||
},
|
},
|
||||||
hide: ['base'],
|
hide: ['base'],
|
||||||
parts: ['ribbon'],
|
parts: ['ribbon'],
|
||||||
|
@ -28,39 +28,39 @@ export default {
|
||||||
ribbonWidth: {
|
ribbonWidth: {
|
||||||
pct: 6,
|
pct: 6,
|
||||||
min: 5,
|
min: 5,
|
||||||
max: 8
|
max: 8,
|
||||||
},
|
},
|
||||||
tipWidth: {
|
tipWidth: {
|
||||||
pct: 15,
|
pct: 15,
|
||||||
min: 0,
|
min: 0,
|
||||||
max: 20
|
max: 20,
|
||||||
},
|
},
|
||||||
knotWidth: {
|
knotWidth: {
|
||||||
pct: 7,
|
pct: 7,
|
||||||
min: 5,
|
min: 5,
|
||||||
max: 10
|
max: 10,
|
||||||
},
|
},
|
||||||
bowLength: {
|
bowLength: {
|
||||||
pct: 28,
|
pct: 28,
|
||||||
min: 23,
|
min: 23,
|
||||||
max: 33
|
max: 33,
|
||||||
},
|
},
|
||||||
collarEase: {
|
collarEase: {
|
||||||
pct: 3,
|
pct: 3,
|
||||||
min: 0,
|
min: 0,
|
||||||
max: 6
|
max: 6,
|
||||||
},
|
},
|
||||||
bowStyle: {
|
bowStyle: {
|
||||||
dflt: 'butterfly',
|
dflt: 'butterfly',
|
||||||
list: ['diamond', 'butterfly', 'square', 'widesquare']
|
list: ['diamond', 'butterfly', 'square', 'widesquare'],
|
||||||
},
|
},
|
||||||
endStyle: {
|
endStyle: {
|
||||||
dflt: 'straight',
|
dflt: 'straight',
|
||||||
list: ['straight', 'pointed', 'rounded']
|
list: ['straight', 'pointed', 'rounded'],
|
||||||
},
|
},
|
||||||
adjustmentRibbon: {
|
adjustmentRibbon: {
|
||||||
bool: false
|
bool: false,
|
||||||
},
|
},
|
||||||
adjustmentRibbonWidth: 20
|
adjustmentRibbonWidth: 20,
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@ export default function (part) {
|
||||||
measurements,
|
measurements,
|
||||||
complete,
|
complete,
|
||||||
paperless,
|
paperless,
|
||||||
macro
|
macro,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
if (options.bowStyle === 'square') options.tipWidth = options.knotWidth
|
if (options.bowStyle === 'square') options.tipWidth = options.knotWidth
|
||||||
|
@ -23,7 +23,7 @@ export default function (part) {
|
||||||
'tipWidth',
|
'tipWidth',
|
||||||
'knotWidth',
|
'knotWidth',
|
||||||
'bowLength',
|
'bowLength',
|
||||||
'collarEase'
|
'collarEase',
|
||||||
])
|
])
|
||||||
store.set(option, measurements.neck * options[option])
|
store.set(option, measurements.neck * options[option])
|
||||||
|
|
||||||
|
@ -76,13 +76,13 @@ export default function (part) {
|
||||||
from: points.tip2Bottom,
|
from: points.tip2Bottom,
|
||||||
to: points.tip,
|
to: points.tip,
|
||||||
via: points.roundBottom,
|
via: points.roundBottom,
|
||||||
prefix: 'bottom'
|
prefix: 'bottom',
|
||||||
})
|
})
|
||||||
macro('round', {
|
macro('round', {
|
||||||
from: points.tip,
|
from: points.tip,
|
||||||
to: points.tip2Top,
|
to: points.tip2Top,
|
||||||
via: points.roundTop,
|
via: points.roundTop,
|
||||||
prefix: 'top'
|
prefix: 'top',
|
||||||
})
|
})
|
||||||
paths.cap = paths.bottomRounded.join(paths.topRounded)
|
paths.cap = paths.bottomRounded.join(paths.topRounded)
|
||||||
}
|
}
|
||||||
|
@ -146,53 +146,53 @@ export default function (part) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.knotBottom,
|
from: points.knotBottom,
|
||||||
to: points.tip2Bottom,
|
to: points.tip2Bottom,
|
||||||
y: baseY
|
y: baseY,
|
||||||
})
|
})
|
||||||
baseY += 15
|
baseY += 15
|
||||||
if (options.bowStyle === 'butterfly' || options.bowStyle === 'diamond') {
|
if (options.bowStyle === 'butterfly' || options.bowStyle === 'diamond') {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.tip1Bottom,
|
from: points.tip1Bottom,
|
||||||
to: points.tip2Bottom,
|
to: points.tip2Bottom,
|
||||||
y: baseY
|
y: baseY,
|
||||||
})
|
})
|
||||||
baseY += 15
|
baseY += 15
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.tip1Bottom,
|
from: points.tip1Bottom,
|
||||||
to: points.tip1Top
|
to: points.tip1Top,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.transitionBottomRight,
|
from: points.transitionBottomRight,
|
||||||
to: points.tip2Bottom,
|
to: points.tip2Bottom,
|
||||||
y: baseY
|
y: baseY,
|
||||||
})
|
})
|
||||||
baseY += 15
|
baseY += 15
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bandBottomRight,
|
from: points.bandBottomRight,
|
||||||
to: points.tip2Bottom,
|
to: points.tip2Bottom,
|
||||||
y: baseY
|
y: baseY,
|
||||||
})
|
})
|
||||||
baseY += 15
|
baseY += 15
|
||||||
store.set('baseY', baseY)
|
store.set('baseY', baseY)
|
||||||
|
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bandBottomRight,
|
from: points.bandBottomRight,
|
||||||
to: points.bandTopRight
|
to: points.bandTopRight,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.transitionBottomRight,
|
from: points.transitionBottomRight,
|
||||||
to: points.transitionTopRight
|
to: points.transitionTopRight,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.tip2Bottom,
|
from: points.tip2Bottom,
|
||||||
to: points.tip2Top,
|
to: points.tip2Top,
|
||||||
x: points.tip.x + 15 + sa
|
x: points.tip.x + 15 + sa,
|
||||||
})
|
})
|
||||||
if (options.endStyle !== 'straight') {
|
if (options.endStyle !== 'straight') {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.tip2Bottom,
|
from: points.tip2Bottom,
|
||||||
to: points.tip,
|
to: points.tip,
|
||||||
y: points.tip2Bottom.y + 15 + sa
|
y: points.tip2Bottom.y + 15 + sa,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@ export default function (part) {
|
||||||
|
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.grainlineStart,
|
from: points.grainlineStart,
|
||||||
to: points.tip.shift(180, 20)
|
to: points.tip.shift(180, 20),
|
||||||
})
|
})
|
||||||
|
|
||||||
paths.seam = new Path()
|
paths.seam = new Path()
|
||||||
|
@ -26,7 +26,7 @@ export default function (part) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bandBottomLeft,
|
from: points.bandBottomLeft,
|
||||||
to: points.tip2Bottom,
|
to: points.tip2Bottom,
|
||||||
y: store.get('baseY')
|
y: store.get('baseY'),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
if (sa) {
|
if (sa) {
|
||||||
|
@ -36,7 +36,7 @@ export default function (part) {
|
||||||
at: points.titleAnchor,
|
at: points.titleAnchor,
|
||||||
nr: 1,
|
nr: 1,
|
||||||
title: 'bowTie',
|
title: 'bowTie',
|
||||||
scale: store.get('tipWidth') / 75
|
scale: store.get('tipWidth') / 75,
|
||||||
})
|
})
|
||||||
points.scaleboxAnchor = points.bandTopLeft.shift(30, 80)
|
points.scaleboxAnchor = points.bandTopLeft.shift(30, 80)
|
||||||
macro('scalebox', { at: points.scaleboxAnchor })
|
macro('scalebox', { at: points.scaleboxAnchor })
|
||||||
|
|
|
@ -9,7 +9,7 @@ export default function (part) {
|
||||||
macro,
|
macro,
|
||||||
sa,
|
sa,
|
||||||
store,
|
store,
|
||||||
paperless
|
paperless,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
if (!options.adjustmentRibbon) {
|
if (!options.adjustmentRibbon) {
|
||||||
|
@ -24,7 +24,7 @@ export default function (part) {
|
||||||
|
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.grainlineStart,
|
from: points.grainlineStart,
|
||||||
to: points.tip.shift(180, 20)
|
to: points.tip.shift(180, 20),
|
||||||
})
|
})
|
||||||
|
|
||||||
paths.seam = new Path()
|
paths.seam = new Path()
|
||||||
|
@ -42,7 +42,7 @@ export default function (part) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bandBottomLeft,
|
from: points.bandBottomLeft,
|
||||||
to: points.tip2Bottom,
|
to: points.tip2Bottom,
|
||||||
y: store.get('baseY')
|
y: store.get('baseY'),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
if (sa) {
|
if (sa) {
|
||||||
|
@ -52,7 +52,7 @@ export default function (part) {
|
||||||
at: points.titleAnchor,
|
at: points.titleAnchor,
|
||||||
nr: 2,
|
nr: 2,
|
||||||
title: 'bowTie',
|
title: 'bowTie',
|
||||||
scale: store.get('tipWidth') / 75
|
scale: store.get('tipWidth') / 75,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ export default function (part) {
|
||||||
macro,
|
macro,
|
||||||
sa,
|
sa,
|
||||||
store,
|
store,
|
||||||
paperless
|
paperless,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
if (!options.adjustmentRibbon) {
|
if (!options.adjustmentRibbon) {
|
||||||
|
@ -24,7 +24,7 @@ export default function (part) {
|
||||||
|
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.grainlineStart,
|
from: points.grainlineStart,
|
||||||
to: points.tip.shift(180, 20)
|
to: points.tip.shift(180, 20),
|
||||||
})
|
})
|
||||||
|
|
||||||
paths.seam = new Path()
|
paths.seam = new Path()
|
||||||
|
@ -42,7 +42,7 @@ export default function (part) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bandBottomLeft,
|
from: points.bandBottomLeft,
|
||||||
to: points.tip2Bottom,
|
to: points.tip2Bottom,
|
||||||
y: store.get('baseY')
|
y: store.get('baseY'),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
if (sa) {
|
if (sa) {
|
||||||
|
@ -52,7 +52,7 @@ export default function (part) {
|
||||||
at: points.titleAnchor,
|
at: points.titleAnchor,
|
||||||
nr: 3,
|
nr: 3,
|
||||||
title: 'bowTie',
|
title: 'bowTie',
|
||||||
scale: store.get('tipWidth') / 75
|
scale: store.get('tipWidth') / 75,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ export default function (part) {
|
||||||
points,
|
points,
|
||||||
paths,
|
paths,
|
||||||
sa,
|
sa,
|
||||||
paperless
|
paperless,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
if (options.adjustmentRibbon) {
|
if (options.adjustmentRibbon) {
|
||||||
|
@ -44,19 +44,19 @@ export default function (part) {
|
||||||
at: points.titleAnchor,
|
at: points.titleAnchor,
|
||||||
nr: 2,
|
nr: 2,
|
||||||
title: 'ribbon',
|
title: 'ribbon',
|
||||||
scale: 0.3
|
scale: 0.3,
|
||||||
})
|
})
|
||||||
|
|
||||||
if (paperless) {
|
if (paperless) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bottomLeft,
|
from: points.bottomLeft,
|
||||||
to: points.bottomRight,
|
to: points.bottomRight,
|
||||||
y: points.bottomLeft.y + 15 + sa
|
y: points.bottomLeft.y + 15 + sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomRight,
|
from: points.bottomRight,
|
||||||
to: points.topRight,
|
to: points.topRight,
|
||||||
x: points.topRight.x + 15 + sa
|
x: points.topRight.x + 15 + sa,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,7 @@ export default {
|
||||||
'shoulderEase',
|
'shoulderEase',
|
||||||
'lengthBonus',
|
'lengthBonus',
|
||||||
'sleeveLengthBonus',
|
'sleeveLengthBonus',
|
||||||
'sleeveBend'
|
'sleeveBend',
|
||||||
],
|
],
|
||||||
advanced: [
|
advanced: [
|
||||||
'acrossBackFactor',
|
'acrossBackFactor',
|
||||||
|
@ -27,8 +27,8 @@ export default {
|
||||||
'frontArmholeDeeper',
|
'frontArmholeDeeper',
|
||||||
'shoulderSlopeReduction',
|
'shoulderSlopeReduction',
|
||||||
'sleevecapHeight',
|
'sleevecapHeight',
|
||||||
'sleevecapEase'
|
'sleevecapEase',
|
||||||
]
|
],
|
||||||
},
|
},
|
||||||
measurements: [
|
measurements: [
|
||||||
'biceps',
|
'biceps',
|
||||||
|
@ -40,19 +40,19 @@ export default {
|
||||||
'shoulderToElbow',
|
'shoulderToElbow',
|
||||||
'shoulderToShoulder',
|
'shoulderToShoulder',
|
||||||
'shoulderToWrist',
|
'shoulderToWrist',
|
||||||
'wrist'
|
'wrist',
|
||||||
],
|
],
|
||||||
dependencies: {
|
dependencies: {
|
||||||
back: 'base',
|
back: 'base',
|
||||||
front: 'back',
|
front: 'back',
|
||||||
topSleeve: 'sleeve',
|
topSleeve: 'sleeve',
|
||||||
underSleeve: 'sleeve'
|
underSleeve: 'sleeve',
|
||||||
},
|
},
|
||||||
inject: {
|
inject: {
|
||||||
back: 'base',
|
back: 'base',
|
||||||
front: 'back',
|
front: 'back',
|
||||||
topSleeve: 'sleeve',
|
topSleeve: 'sleeve',
|
||||||
underSleeve: 'sleeve'
|
underSleeve: 'sleeve',
|
||||||
},
|
},
|
||||||
hide: ['base', 'sleeve'],
|
hide: ['base', 'sleeve'],
|
||||||
options: {
|
options: {
|
||||||
|
@ -77,6 +77,6 @@ export default {
|
||||||
sleeveBend: { deg: 10, min: 0, max: 20 },
|
sleeveBend: { deg: 10, min: 0, max: 20 },
|
||||||
sleevecapHeight: { pct: 45, min: 40, max: 60 },
|
sleevecapHeight: { pct: 45, min: 40, max: 60 },
|
||||||
sleevecapEase: { pct: 1, min: 0, max: 10 },
|
sleevecapEase: { pct: 1, min: 0, max: 10 },
|
||||||
sleeveLengthBonus: { pct: 0, min: -20, max: 15 }
|
sleeveLengthBonus: { pct: 0, min: -20, max: 15 },
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,49 +4,49 @@ export default function (part, s) {
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points[s + 'WristLeft'],
|
from: points[s + 'WristLeft'],
|
||||||
to: points[s + 'WristRight'],
|
to: points[s + 'WristRight'],
|
||||||
d: 15
|
d: 15,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points[s + 'ElbowLeft'],
|
from: points[s + 'ElbowLeft'],
|
||||||
to: points.elbowRight
|
to: points.elbowRight,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points[s + 'LeftEdge'],
|
from: points[s + 'LeftEdge'],
|
||||||
to: points[s + 'RightEdge']
|
to: points[s + 'RightEdge'],
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points[s + 'LeftEdge'],
|
from: points[s + 'LeftEdge'],
|
||||||
to: points[s + 'ElbowLeft'],
|
to: points[s + 'ElbowLeft'],
|
||||||
y: points[s + 'WristRight'].y + 3 * sa + 15
|
y: points[s + 'WristRight'].y + 3 * sa + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points[s + 'LeftEdge'],
|
from: points[s + 'LeftEdge'],
|
||||||
to: points[s + 'WristLeft'],
|
to: points[s + 'WristLeft'],
|
||||||
y: points[s + 'WristRight'].y + 3 * sa + 30
|
y: points[s + 'WristRight'].y + 3 * sa + 30,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points[s + 'LeftEdge'],
|
from: points[s + 'LeftEdge'],
|
||||||
to: points[s + 'WristRight'],
|
to: points[s + 'WristRight'],
|
||||||
y: points[s + 'WristRight'].y + 3 * sa + 45
|
y: points[s + 'WristRight'].y + 3 * sa + 45,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points[s + 'LeftEdge'],
|
from: points[s + 'LeftEdge'],
|
||||||
to: points.elbowRight,
|
to: points.elbowRight,
|
||||||
y: points[s + 'WristRight'].y + 3 * sa + 60
|
y: points[s + 'WristRight'].y + 3 * sa + 60,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points[s + 'ElbowLeft'],
|
from: points[s + 'ElbowLeft'],
|
||||||
to: points[s + 'LeftEdge'],
|
to: points[s + 'LeftEdge'],
|
||||||
x: points[s + 'LeftEdge'].x - sa - 15
|
x: points[s + 'LeftEdge'].x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points[s + 'WristLeft'],
|
from: points[s + 'WristLeft'],
|
||||||
to: points[s + 'LeftEdge'],
|
to: points[s + 'LeftEdge'],
|
||||||
x: points[s + 'LeftEdge'].x - sa - 30
|
x: points[s + 'LeftEdge'].x - sa - 30,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points[s + 'WristRight'],
|
from: points[s + 'WristRight'],
|
||||||
to: points[s + 'LeftEdge'],
|
to: points[s + 'LeftEdge'],
|
||||||
x: points[s + 'LeftEdge'].x - sa - 45
|
x: points[s + 'LeftEdge'].x - sa - 45,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
at: points.armCenter,
|
at: points.armCenter,
|
||||||
nr: 3,
|
nr: 3,
|
||||||
title: 'topsleeve'
|
title: 'topsleeve',
|
||||||
})
|
})
|
||||||
|
|
||||||
if (sa) {
|
if (sa) {
|
||||||
|
@ -41,27 +41,27 @@ export default function (part) {
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.tsLeftEdge,
|
from: points.tsLeftEdge,
|
||||||
to: points.top,
|
to: points.top,
|
||||||
x: points.tsLeftEdge.x - sa - 15
|
x: points.tsLeftEdge.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.tsLeftEdge,
|
from: points.tsLeftEdge,
|
||||||
to: points.top,
|
to: points.top,
|
||||||
y: points.top.x - sa - 15
|
y: points.top.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.tsLeftEdge,
|
from: points.tsLeftEdge,
|
||||||
to: points.backPitchPoint,
|
to: points.backPitchPoint,
|
||||||
y: points.top.x - sa - 30
|
y: points.top.x - sa - 30,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.tsLeftEdge,
|
from: points.tsLeftEdge,
|
||||||
to: points.tsRightEdge,
|
to: points.tsRightEdge,
|
||||||
y: points.top.x - sa - 45
|
y: points.top.x - sa - 45,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.tsRightEdge,
|
from: points.tsRightEdge,
|
||||||
to: points.backPitchPoint,
|
to: points.backPitchPoint,
|
||||||
x: points.tsRightEdge.x + sa + 15
|
x: points.tsRightEdge.x + sa + 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
at: points.armCenter,
|
at: points.armCenter,
|
||||||
nr: 4,
|
nr: 4,
|
||||||
title: 'undersleeve'
|
title: 'undersleeve',
|
||||||
})
|
})
|
||||||
|
|
||||||
if (sa) {
|
if (sa) {
|
||||||
|
@ -42,12 +42,12 @@ export default function (part) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.usLeftEdge,
|
from: points.usLeftEdge,
|
||||||
to: points.usTip,
|
to: points.usTip,
|
||||||
y: points.usTip.y - sa - 15
|
y: points.usTip.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.tsRightEdge,
|
from: points.tsRightEdge,
|
||||||
to: points.usTip,
|
to: points.usTip,
|
||||||
x: points.tsRightEdge.x + sa + 15
|
x: points.tsRightEdge.x + sa + 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ export default {
|
||||||
'bicepsEase',
|
'bicepsEase',
|
||||||
'cuffEase',
|
'cuffEase',
|
||||||
'shoulderEase',
|
'shoulderEase',
|
||||||
'waistEase'
|
'waistEase',
|
||||||
],
|
],
|
||||||
style: [
|
style: [
|
||||||
'primaryBustDart',
|
'primaryBustDart',
|
||||||
|
@ -32,7 +32,7 @@ export default {
|
||||||
'secondaryBustDart',
|
'secondaryBustDart',
|
||||||
'secondaryBustDartLength',
|
'secondaryBustDartLength',
|
||||||
'primaryBustDartShaping',
|
'primaryBustDartShaping',
|
||||||
'sleeveLengthBonus'
|
'sleeveLengthBonus',
|
||||||
],
|
],
|
||||||
advanced: [
|
advanced: [
|
||||||
'acrossBackFactor',
|
'acrossBackFactor',
|
||||||
|
@ -60,10 +60,10 @@ export default {
|
||||||
'sleevecapQ3Spread1',
|
'sleevecapQ3Spread1',
|
||||||
'sleevecapQ3Spread2',
|
'sleevecapQ3Spread2',
|
||||||
'sleevecapQ4Spread1',
|
'sleevecapQ4Spread1',
|
||||||
'sleevecapQ4Spread2'
|
'sleevecapQ4Spread2',
|
||||||
]
|
],
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
},
|
},
|
||||||
measurements: [
|
measurements: [
|
||||||
'biceps',
|
'biceps',
|
||||||
|
@ -80,19 +80,19 @@ export default {
|
||||||
'shoulderToShoulder',
|
'shoulderToShoulder',
|
||||||
'shoulderToWrist',
|
'shoulderToWrist',
|
||||||
'shoulderSlope',
|
'shoulderSlope',
|
||||||
'wrist'
|
'wrist',
|
||||||
],
|
],
|
||||||
dependencies: {
|
dependencies: {
|
||||||
frontBase: 'back',
|
frontBase: 'back',
|
||||||
front: ['back', 'frontBase'],
|
front: ['back', 'frontBase'],
|
||||||
sleevecap: ['front', 'frontBase', 'back'],
|
sleevecap: ['front', 'frontBase', 'back'],
|
||||||
sleeve: ['sleevecap', 'front', 'frontBase', 'back']
|
sleeve: ['sleevecap', 'front', 'frontBase', 'back'],
|
||||||
},
|
},
|
||||||
inject: {
|
inject: {
|
||||||
back: 'base',
|
back: 'base',
|
||||||
frontBase: 'base',
|
frontBase: 'base',
|
||||||
front: 'frontBase',
|
front: 'frontBase',
|
||||||
sleeve: 'sleevecap'
|
sleeve: 'sleevecap',
|
||||||
},
|
},
|
||||||
hide: ['frontBase', 'sleevecap'],
|
hide: ['frontBase', 'sleevecap'],
|
||||||
options: {
|
options: {
|
||||||
|
@ -125,9 +125,9 @@ export default {
|
||||||
'14:00',
|
'14:00',
|
||||||
'15:00',
|
'15:00',
|
||||||
'16:00',
|
'16:00',
|
||||||
'17:00'
|
'17:00',
|
||||||
],
|
],
|
||||||
dflt: '06:00'
|
dflt: '06:00',
|
||||||
},
|
},
|
||||||
secondaryBustDart: {
|
secondaryBustDart: {
|
||||||
list: [
|
list: [
|
||||||
|
@ -146,9 +146,9 @@ export default {
|
||||||
'14:00',
|
'14:00',
|
||||||
'15:00',
|
'15:00',
|
||||||
'16:00',
|
'16:00',
|
||||||
'17:00'
|
'17:00',
|
||||||
],
|
],
|
||||||
dflt: '13:30'
|
dflt: '13:30',
|
||||||
},
|
},
|
||||||
|
|
||||||
// Percentages
|
// Percentages
|
||||||
|
@ -191,6 +191,6 @@ export default {
|
||||||
sleevecapQ4Spread1: { pct: 7, min: 4, max: 20 },
|
sleevecapQ4Spread1: { pct: 7, min: 4, max: 20 },
|
||||||
sleevecapQ4Spread2: { pct: 7, min: 4, max: 20 },
|
sleevecapQ4Spread2: { pct: 7, min: 4, max: 20 },
|
||||||
sleeveLengthBonus: { pct: 0, min: -40, max: 10 },
|
sleeveLengthBonus: { pct: 0, min: -40, max: 10 },
|
||||||
frontScyeDart: { pct: 25, min: 0, max: 45 }
|
frontScyeDart: { pct: 25, min: 0, max: 45 },
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@ export default (part) => {
|
||||||
Point,
|
Point,
|
||||||
options,
|
options,
|
||||||
utils,
|
utils,
|
||||||
store
|
store,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
// Shoulder dart
|
// Shoulder dart
|
||||||
|
@ -189,88 +189,88 @@ export default (part) => {
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.cbWaist,
|
from: points.cbWaist,
|
||||||
to: points.cbNeck,
|
to: points.cbNeck,
|
||||||
x: -15 - sa
|
x: -15 - sa,
|
||||||
})
|
})
|
||||||
if (options.waistDart) {
|
if (options.waistDart) {
|
||||||
let y = points.waist.y + 15 + sa
|
let y = points.waist.y + 15 + sa
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbWaist,
|
from: points.cbWaist,
|
||||||
to: points.waistDart1,
|
to: points.waistDart1,
|
||||||
y
|
y,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbWaist,
|
from: points.cbWaist,
|
||||||
to: points.waistDartEdge,
|
to: points.waistDartEdge,
|
||||||
y: y + 15
|
y: y + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbWaist,
|
from: points.cbWaist,
|
||||||
to: points.waistDart2,
|
to: points.waistDart2,
|
||||||
y: y + 30
|
y: y + 30,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbWaist,
|
from: points.cbWaist,
|
||||||
to: points.waist,
|
to: points.waist,
|
||||||
y: y + 45
|
y: y + 45,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbWaist,
|
from: points.cbWaist,
|
||||||
to: points.armhole,
|
to: points.armhole,
|
||||||
y: y + 60
|
y: y + 60,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waistDart2,
|
from: points.waistDart2,
|
||||||
to: points.waistDartTip,
|
to: points.waistDartTip,
|
||||||
x: points.waistDart2.x + 15
|
x: points.waistDart2.x + 15,
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
let y = points.waist.y + 15 + sa
|
let y = points.waist.y + 15 + sa
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbWaist,
|
from: points.cbWaist,
|
||||||
to: points.waist,
|
to: points.waist,
|
||||||
y: points.waist.y + 15 + sa
|
y: points.waist.y + 15 + sa,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbWaist,
|
from: points.cbWaist,
|
||||||
to: points.armhole,
|
to: points.armhole,
|
||||||
y: y + 30
|
y: y + 30,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
let x = points.armhole.x + 15 + sa
|
let x = points.armhole.x + 15 + sa
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waist,
|
from: points.waist,
|
||||||
to: points.armhole,
|
to: points.armhole,
|
||||||
x
|
x,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waist,
|
from: points.waist,
|
||||||
to: points.armholePitch,
|
to: points.armholePitch,
|
||||||
x: x + 15
|
x: x + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waist,
|
from: points.waist,
|
||||||
to: points.shoulder,
|
to: points.shoulder,
|
||||||
x: x + 30
|
x: x + 30,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waist,
|
from: points.waist,
|
||||||
to: points.hps,
|
to: points.hps,
|
||||||
x: x + 45
|
x: x + 45,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbNeck,
|
from: points.cbNeck,
|
||||||
to: points.armholePitch,
|
to: points.armholePitch,
|
||||||
y: points.armholePitch.y + 25
|
y: points.armholePitch.y + 25,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbNeck,
|
from: points.cbNeck,
|
||||||
to: points.hps,
|
to: points.hps,
|
||||||
y: points.hps.y - sa - 15
|
y: points.hps.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbNeck,
|
from: points.cbNeck,
|
||||||
to: points.shoulder,
|
to: points.shoulder,
|
||||||
y: points.hps.y - sa - 30
|
y: points.hps.y - sa - 30,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -92,7 +92,7 @@ export const getDartPaths = (Path, points) => [
|
||||||
new Path()
|
new Path()
|
||||||
.line(points.secondaryBustDart1)
|
.line(points.secondaryBustDart1)
|
||||||
.line(points.secondaryBustDartTip)
|
.line(points.secondaryBustDartTip)
|
||||||
.line(points.secondaryBustDart2)
|
.line(points.secondaryBustDart2),
|
||||||
]
|
]
|
||||||
|
|
||||||
export const getSaDartPaths = (Path, points) => [
|
export const getSaDartPaths = (Path, points) => [
|
||||||
|
@ -103,7 +103,7 @@ export const getSaDartPaths = (Path, points) => [
|
||||||
new Path()
|
new Path()
|
||||||
.line(points.secondaryBustDart1)
|
.line(points.secondaryBustDart1)
|
||||||
.line(points.secondaryBustDartEdge)
|
.line(points.secondaryBustDartEdge)
|
||||||
.line(points.secondaryBustDart2)
|
.line(points.secondaryBustDart2),
|
||||||
]
|
]
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -15,7 +15,7 @@ import {
|
||||||
getDartInsertionPoint,
|
getDartInsertionPoint,
|
||||||
getDartLocationsAsNumbers,
|
getDartLocationsAsNumbers,
|
||||||
getDartPaths,
|
getDartPaths,
|
||||||
getSaDartPaths
|
getSaDartPaths,
|
||||||
} from './dart-utils'
|
} from './dart-utils'
|
||||||
|
|
||||||
export default (part) => {
|
export default (part) => {
|
||||||
|
@ -31,7 +31,7 @@ export default (part) => {
|
||||||
paperless,
|
paperless,
|
||||||
macro,
|
macro,
|
||||||
snippets,
|
snippets,
|
||||||
Snippet
|
Snippet,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -167,83 +167,83 @@ export default (part) => {
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.cfWaist,
|
from: points.cfWaist,
|
||||||
to: points.bustPoint,
|
to: points.bustPoint,
|
||||||
x: tl.x - 15 - sa
|
x: tl.x - 15 - sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.cfWaist,
|
from: points.cfWaist,
|
||||||
to: points.cfNeck,
|
to: points.cfNeck,
|
||||||
x: tl.x - 30 - sa
|
x: tl.x - 30 - sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.cfWaist,
|
from: points.cfWaist,
|
||||||
to: points.hps,
|
to: points.hps,
|
||||||
x: tl.x - 45 - sa
|
x: tl.x - 45 - sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waist,
|
from: points.waist,
|
||||||
to: points.armhole,
|
to: points.armhole,
|
||||||
x: br.x + 15 + sa
|
x: br.x + 15 + sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waist,
|
from: points.waist,
|
||||||
to: points.armholePitch,
|
to: points.armholePitch,
|
||||||
x: br.x + 30 + sa
|
x: br.x + 30 + sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waist,
|
from: points.waist,
|
||||||
to: points.shoulder,
|
to: points.shoulder,
|
||||||
x: br.x + 45 + sa
|
x: br.x + 45 + sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waist,
|
from: points.waist,
|
||||||
to: points.hps,
|
to: points.hps,
|
||||||
x: br.x + 60 + sa
|
x: br.x + 60 + sa,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cfNeck,
|
from: points.cfNeck,
|
||||||
to: points.hps,
|
to: points.hps,
|
||||||
y: tl.y - 15 - sa
|
y: tl.y - 15 - sa,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cfNeck,
|
from: points.cfNeck,
|
||||||
to: points.shoulder,
|
to: points.shoulder,
|
||||||
y: tl.y - 30 - sa
|
y: tl.y - 30 - sa,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cfNeck,
|
from: points.cfNeck,
|
||||||
to: points.armhole,
|
to: points.armhole,
|
||||||
y: tl.y - 30 - sa
|
y: tl.y - 30 - sa,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cfWaist,
|
from: points.cfWaist,
|
||||||
to: points.bustPoint,
|
to: points.bustPoint,
|
||||||
y: br.y + 15 + sa
|
y: br.y + 15 + sa,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cfWaist,
|
from: points.cfWaist,
|
||||||
to: points.waist,
|
to: points.waist,
|
||||||
y: br.y + 30 + sa
|
y: br.y + 30 + sa,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.primaryBustDart1,
|
from: points.primaryBustDart1,
|
||||||
to: points.primaryBustDart2,
|
to: points.primaryBustDart2,
|
||||||
d: 15
|
d: 15,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.primaryBustDart2,
|
from: points.primaryBustDart2,
|
||||||
to: points.primaryBustDartTip,
|
to: points.primaryBustDartTip,
|
||||||
d: 15
|
d: 15,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.primaryBustDart2,
|
from: points.primaryBustDart2,
|
||||||
to: points.primaryBustDartTip,
|
to: points.primaryBustDartTip,
|
||||||
d: 15
|
d: 15,
|
||||||
})
|
})
|
||||||
if (loc2 !== 0 && loc1 !== loc2) {
|
if (loc2 !== 0 && loc1 !== loc2) {
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.secondaryBustDart2,
|
from: points.secondaryBustDart2,
|
||||||
to: points.secondaryBustDartTip,
|
to: points.secondaryBustDartTip,
|
||||||
d: 15
|
d: 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@ export default (part) => {
|
||||||
snippets,
|
snippets,
|
||||||
complete,
|
complete,
|
||||||
paperless,
|
paperless,
|
||||||
macro
|
macro,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
// Wrist
|
// Wrist
|
||||||
|
@ -88,26 +88,26 @@ export default (part) => {
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.wristLeft,
|
from: points.wristLeft,
|
||||||
to: points.bicepsLeft,
|
to: points.bicepsLeft,
|
||||||
x: points.bicepsLeft.x - sa - 15
|
x: points.bicepsLeft.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.wristLeft,
|
from: points.wristLeft,
|
||||||
to: points.sleeveTip,
|
to: points.sleeveTip,
|
||||||
x: points.bicepsLeft.x - sa - 30
|
x: points.bicepsLeft.x - sa - 30,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bicepsLeft,
|
from: points.bicepsLeft,
|
||||||
to: points.bicepsRight,
|
to: points.bicepsRight,
|
||||||
y: points.sleeveTip.y - sa - 30
|
y: points.sleeveTip.y - sa - 30,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.wristLeft,
|
from: points.wristLeft,
|
||||||
to: points.wristRight,
|
to: points.wristRight,
|
||||||
y: points.wristLeft.y + sa + 30
|
y: points.wristLeft.y + sa + 30,
|
||||||
})
|
})
|
||||||
macro('pd', {
|
macro('pd', {
|
||||||
path: paths.sleevecap.reverse(),
|
path: paths.sleevecap.reverse(),
|
||||||
d: -1 * sa - 15
|
d: -1 * sa - 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
return part
|
return part
|
||||||
|
|
|
@ -162,7 +162,7 @@ function redrawSleevecapFront(part, delta) {
|
||||||
'capQ2Cp1',
|
'capQ2Cp1',
|
||||||
'capQ2',
|
'capQ2',
|
||||||
'capQ2Base',
|
'capQ2Base',
|
||||||
'capQ2Cp2'
|
'capQ2Cp2',
|
||||||
]) {
|
]) {
|
||||||
points[p].x += (points[p].x / factor) * delta * -1
|
points[p].x += (points[p].x / factor) * delta * -1
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,7 @@ export default {
|
||||||
'cuffEase',
|
'cuffEase',
|
||||||
'shoulderEase',
|
'shoulderEase',
|
||||||
'lengthBonus',
|
'lengthBonus',
|
||||||
'sleeveLengthBonus'
|
'sleeveLengthBonus',
|
||||||
],
|
],
|
||||||
advanced: [
|
advanced: [
|
||||||
'acrossBackFactor',
|
'acrossBackFactor',
|
||||||
|
@ -46,10 +46,10 @@ export default {
|
||||||
'sleevecapQ3Spread1',
|
'sleevecapQ3Spread1',
|
||||||
'sleevecapQ3Spread2',
|
'sleevecapQ3Spread2',
|
||||||
'sleevecapQ4Spread1',
|
'sleevecapQ4Spread1',
|
||||||
'sleevecapQ4Spread2'
|
'sleevecapQ4Spread2',
|
||||||
]
|
],
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
},
|
},
|
||||||
measurements: [
|
measurements: [
|
||||||
'biceps',
|
'biceps',
|
||||||
|
@ -60,18 +60,18 @@ export default {
|
||||||
'shoulderSlope',
|
'shoulderSlope',
|
||||||
'shoulderToShoulder',
|
'shoulderToShoulder',
|
||||||
'shoulderToWrist',
|
'shoulderToWrist',
|
||||||
'wrist'
|
'wrist',
|
||||||
],
|
],
|
||||||
dependencies: {
|
dependencies: {
|
||||||
back: 'base',
|
back: 'base',
|
||||||
front: 'back',
|
front: 'back',
|
||||||
sleevecap: 'front',
|
sleevecap: 'front',
|
||||||
sleeve: 'sleevecap'
|
sleeve: 'sleevecap',
|
||||||
},
|
},
|
||||||
inject: {
|
inject: {
|
||||||
back: 'base',
|
back: 'base',
|
||||||
front: 'back',
|
front: 'back',
|
||||||
sleeve: 'sleevecap'
|
sleeve: 'sleevecap',
|
||||||
},
|
},
|
||||||
hide: ['base', 'sleevecap'],
|
hide: ['base', 'sleevecap'],
|
||||||
options: {
|
options: {
|
||||||
|
@ -112,6 +112,6 @@ export default {
|
||||||
sleevecapQ4Spread1: { pct: 7, min: 4, max: 20 },
|
sleevecapQ4Spread1: { pct: 7, min: 4, max: 20 },
|
||||||
sleevecapQ4Spread2: { pct: 7, min: 4, max: 20 },
|
sleevecapQ4Spread2: { pct: 7, min: 4, max: 20 },
|
||||||
sleeveWidthGuarantee: { pct: 90, min: 25, max: 100 },
|
sleeveWidthGuarantee: { pct: 90, min: 25, max: 100 },
|
||||||
sleeveLengthBonus: { pct: 0, min: -40, max: 10 }
|
sleeveLengthBonus: { pct: 0, min: -40, max: 10 },
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@ export default (part) => {
|
||||||
snippets,
|
snippets,
|
||||||
complete,
|
complete,
|
||||||
paperless,
|
paperless,
|
||||||
macro
|
macro,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
points.anchor = points.hps.clone()
|
points.anchor = points.hps.clone()
|
||||||
|
@ -34,7 +34,7 @@ export default (part) => {
|
||||||
macro('cutonfold', {
|
macro('cutonfold', {
|
||||||
from: points.cbNeck,
|
from: points.cbNeck,
|
||||||
to: points.cbHips,
|
to: points.cbHips,
|
||||||
grainline: true
|
grainline: true,
|
||||||
})
|
})
|
||||||
|
|
||||||
macro('title', { at: points.title, nr: 2, title: 'back' })
|
macro('title', { at: points.title, nr: 2, title: 'back' })
|
||||||
|
@ -56,27 +56,27 @@ export default (part) => {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbHips,
|
from: points.cbHips,
|
||||||
to: points.hips,
|
to: points.hips,
|
||||||
y: points.hips.y + sa + 15
|
y: points.hips.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.cbHips,
|
from: points.cbHips,
|
||||||
to: points.cbWaist,
|
to: points.cbWaist,
|
||||||
x: points.cbHips.x - sa - 15
|
x: points.cbHips.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.cbHips,
|
from: points.cbHips,
|
||||||
to: points.cbNeck,
|
to: points.cbNeck,
|
||||||
x: points.cbHips.x - sa - 30
|
x: points.cbHips.x - sa - 30,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbNeck,
|
from: points.cbNeck,
|
||||||
to: points.neck,
|
to: points.neck,
|
||||||
y: points.neck.y - sa - 15
|
y: points.neck.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbNeck,
|
from: points.cbNeck,
|
||||||
to: points.shoulder,
|
to: points.shoulder,
|
||||||
y: points.neck.y - sa - 30
|
y: points.neck.y - sa - 30,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ export default (part) => {
|
||||||
Path,
|
Path,
|
||||||
paths,
|
paths,
|
||||||
utils,
|
utils,
|
||||||
complete
|
complete,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
store.set('shoulderEase', (measurements.shoulderToShoulder * options.shoulderEase) / 2)
|
store.set('shoulderEase', (measurements.shoulderToShoulder * options.shoulderEase) / 2)
|
||||||
|
|
|
@ -14,7 +14,7 @@ export default (part) => {
|
||||||
measurements,
|
measurements,
|
||||||
complete,
|
complete,
|
||||||
paperless,
|
paperless,
|
||||||
macro
|
macro,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
// Cut arm a bit deeper at the front
|
// Cut arm a bit deeper at the front
|
||||||
|
@ -49,7 +49,7 @@ export default (part) => {
|
||||||
macro('cutonfold', {
|
macro('cutonfold', {
|
||||||
from: points.cfNeck,
|
from: points.cfNeck,
|
||||||
to: points.cfHips,
|
to: points.cfHips,
|
||||||
grainline: true
|
grainline: true,
|
||||||
})
|
})
|
||||||
macro('title', { at: points.title, nr: 1, title: 'front' })
|
macro('title', { at: points.title, nr: 1, title: 'front' })
|
||||||
snippets.armholePitchNotch = new Snippet('notch', points.armholePitch)
|
snippets.armholePitchNotch = new Snippet('notch', points.armholePitch)
|
||||||
|
@ -70,27 +70,27 @@ export default (part) => {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cfHips,
|
from: points.cfHips,
|
||||||
to: points.hips,
|
to: points.hips,
|
||||||
y: points.hips.y + sa + 15
|
y: points.hips.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.cfHips,
|
from: points.cfHips,
|
||||||
to: points.cfWaist,
|
to: points.cfWaist,
|
||||||
x: points.cfHips.x - sa - 15
|
x: points.cfHips.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.cfHips,
|
from: points.cfHips,
|
||||||
to: points.cfNeck,
|
to: points.cfNeck,
|
||||||
x: points.cfHips.x - sa - 30
|
x: points.cfHips.x - sa - 30,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cfNeck,
|
from: points.cfNeck,
|
||||||
to: points.neck,
|
to: points.neck,
|
||||||
y: points.neck.y - sa - 15
|
y: points.neck.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cfNeck,
|
from: points.cfNeck,
|
||||||
to: points.shoulder,
|
to: points.shoulder,
|
||||||
y: points.neck.y - sa - 30
|
y: points.neck.y - sa - 30,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -41,33 +41,33 @@ export function dimensions(macro, points, Path, sa) {
|
||||||
.curve(points.armholeCp2, points.armholeHollowCp1, points.armholeHollow)
|
.curve(points.armholeCp2, points.armholeHollowCp1, points.armholeHollow)
|
||||||
.curve(points.armholeHollowCp2, points.armholePitchCp1, points.armholePitch)
|
.curve(points.armholeHollowCp2, points.armholePitchCp1, points.armholePitch)
|
||||||
.curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder),
|
.curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder),
|
||||||
d: sa + 15
|
d: sa + 15,
|
||||||
})
|
})
|
||||||
macro('pd', {
|
macro('pd', {
|
||||||
path: new Path()
|
path: new Path()
|
||||||
.move(points.armholePitch)
|
.move(points.armholePitch)
|
||||||
.curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder),
|
.curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder),
|
||||||
d: -15
|
d: -15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.hips,
|
from: points.hips,
|
||||||
to: points.armhole,
|
to: points.armhole,
|
||||||
x: points.hips.x + sa + 15
|
x: points.hips.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.hips,
|
from: points.hips,
|
||||||
to: points.armholePitch,
|
to: points.armholePitch,
|
||||||
x: points.hips.x + sa + 30
|
x: points.hips.x + sa + 30,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.hips,
|
from: points.hips,
|
||||||
to: points.shoulder,
|
to: points.shoulder,
|
||||||
x: points.hips.x + sa + 45
|
x: points.hips.x + sa + 45,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.hips,
|
from: points.hips,
|
||||||
to: points.neck,
|
to: points.neck,
|
||||||
x: points.hips.x + sa + 60
|
x: points.hips.x + sa + 60,
|
||||||
})
|
})
|
||||||
macro('ld', { from: points.neck, to: points.shoulder, d: sa + 15 })
|
macro('ld', { from: points.neck, to: points.shoulder, d: sa + 15 })
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@ export default (part) => {
|
||||||
snippets,
|
snippets,
|
||||||
complete,
|
complete,
|
||||||
paperless,
|
paperless,
|
||||||
macro
|
macro,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
// Wrist
|
// Wrist
|
||||||
|
@ -71,26 +71,26 @@ export default (part) => {
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.wristLeft,
|
from: points.wristLeft,
|
||||||
to: points.bicepsLeft,
|
to: points.bicepsLeft,
|
||||||
x: points.bicepsLeft.x - sa - 15
|
x: points.bicepsLeft.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.wristLeft,
|
from: points.wristLeft,
|
||||||
to: points.sleeveTip,
|
to: points.sleeveTip,
|
||||||
x: points.bicepsLeft.x - sa - 30
|
x: points.bicepsLeft.x - sa - 30,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bicepsLeft,
|
from: points.bicepsLeft,
|
||||||
to: points.bicepsRight,
|
to: points.bicepsRight,
|
||||||
y: points.sleeveTip.y - sa - 30
|
y: points.sleeveTip.y - sa - 30,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.wristLeft,
|
from: points.wristLeft,
|
||||||
to: points.wristRight,
|
to: points.wristRight,
|
||||||
y: points.wristLeft.y + sa + 30
|
y: points.wristLeft.y + sa + 30,
|
||||||
})
|
})
|
||||||
macro('pd', {
|
macro('pd', {
|
||||||
path: paths.sleevecap.reverse(),
|
path: paths.sleevecap.reverse(),
|
||||||
d: -1 * sa - 15
|
d: -1 * sa - 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
return part
|
return part
|
||||||
|
|
|
@ -11,13 +11,13 @@ export default {
|
||||||
tags: ['underwear', 'bottom', 'basics'],
|
tags: ['underwear', 'bottom', 'basics'],
|
||||||
optionGroups: {
|
optionGroups: {
|
||||||
fit: ['bulge', 'stretch', 'legStretch', 'backRise'],
|
fit: ['bulge', 'stretch', 'legStretch', 'backRise'],
|
||||||
style: ['rise', 'legBonus']
|
style: ['rise', 'legBonus'],
|
||||||
},
|
},
|
||||||
measurements: ['hips', 'upperLeg', 'waistToHips', 'waistToUpperLeg'],
|
measurements: ['hips', 'upperLeg', 'waistToHips', 'waistToUpperLeg'],
|
||||||
dependencies: {
|
dependencies: {
|
||||||
side: ['back', 'front'],
|
side: ['back', 'front'],
|
||||||
front: 'inset',
|
front: 'inset',
|
||||||
inset: 'back'
|
inset: 'back',
|
||||||
},
|
},
|
||||||
options: {
|
options: {
|
||||||
// Constants
|
// Constants
|
||||||
|
@ -48,6 +48,6 @@ export default {
|
||||||
rise: { pct: 10, min: 0, max: 25 },
|
rise: { pct: 10, min: 0, max: 25 },
|
||||||
stretch: { pct: 15, min: 5, max: 25 },
|
stretch: { pct: 15, min: 5, max: 25 },
|
||||||
legStretch: { pct: 40, min: 25, max: 45 },
|
legStretch: { pct: 40, min: 25, max: 45 },
|
||||||
backRise: { pct: 5, min: 0, max: 10 }
|
backRise: { pct: 5, min: 0, max: 10 },
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@ export default function (part) {
|
||||||
complete,
|
complete,
|
||||||
paperless,
|
paperless,
|
||||||
macro,
|
macro,
|
||||||
utils
|
utils,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
// Initialize
|
// Initialize
|
||||||
|
@ -97,12 +97,12 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
at: points.title,
|
at: points.title,
|
||||||
nr: 1,
|
nr: 1,
|
||||||
title: 'back'
|
title: 'back',
|
||||||
})
|
})
|
||||||
macro('cutonfold', {
|
macro('cutonfold', {
|
||||||
from: points.center,
|
from: points.center,
|
||||||
to: points.gussetTop,
|
to: points.gussetTop,
|
||||||
grainline: true
|
grainline: true,
|
||||||
})
|
})
|
||||||
snippets.logo = new Snippet('logo', points.title.shift(90, 50))
|
snippets.logo = new Snippet('logo', points.title.shift(90, 50))
|
||||||
snippets.backNotch = new Snippet(
|
snippets.backNotch = new Snippet(
|
||||||
|
@ -116,42 +116,42 @@ export default function (part) {
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.gussetTop,
|
from: points.gussetTop,
|
||||||
to: points.center,
|
to: points.center,
|
||||||
x: points.center.x - 15
|
x: points.center.x - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.gussetRight,
|
from: points.gussetRight,
|
||||||
to: points.center,
|
to: points.center,
|
||||||
x: points.center.x - 30
|
x: points.center.x - 30,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.legRight,
|
from: points.legRight,
|
||||||
to: points.sideRight,
|
to: points.sideRight,
|
||||||
x: points.legRight.x + 15 + sa
|
x: points.legRight.x + 15 + sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.legRight,
|
from: points.legRight,
|
||||||
to: points.center,
|
to: points.center,
|
||||||
x: points.legRight.x + 30 + sa
|
x: points.legRight.x + 30 + sa,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.center,
|
from: points.center,
|
||||||
to: points.sideRight,
|
to: points.sideRight,
|
||||||
y: points.center.y - 15 - sa
|
y: points.center.y - 15 - sa,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.gussetTop,
|
from: points.gussetTop,
|
||||||
to: points.gussetRight,
|
to: points.gussetRight,
|
||||||
y: points.gussetRight.y + 15 + sa * 2
|
y: points.gussetRight.y + 15 + sa * 2,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.gussetTop,
|
from: points.gussetTop,
|
||||||
to: points.legRight,
|
to: points.legRight,
|
||||||
y: points.gussetRight.y + 30 + sa * 2
|
y: points.gussetRight.y + 30 + sa * 2,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.gussetRight,
|
from: points.gussetRight,
|
||||||
to: points.legRight,
|
to: points.legRight,
|
||||||
d: -15 - sa * 2
|
d: -15 - sa * 2,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ export default function (part) {
|
||||||
paperless,
|
paperless,
|
||||||
macro,
|
macro,
|
||||||
snippets,
|
snippets,
|
||||||
Snippet
|
Snippet,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
// Initialize
|
// Initialize
|
||||||
|
@ -169,11 +169,11 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
at: points.midMid,
|
at: points.midMid,
|
||||||
nr: 2,
|
nr: 2,
|
||||||
title: 'front'
|
title: 'front',
|
||||||
})
|
})
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.dartJoin,
|
from: points.dartJoin,
|
||||||
to: points.topMid
|
to: points.topMid,
|
||||||
})
|
})
|
||||||
snippets.sideNotch = new Snippet('notch', points.midRight)
|
snippets.sideNotch = new Snippet('notch', points.midRight)
|
||||||
points.curveNotch = new Path()
|
points.curveNotch = new Path()
|
||||||
|
@ -189,44 +189,44 @@ export default function (part) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.topLeft,
|
from: points.topLeft,
|
||||||
to: points.topRight,
|
to: points.topRight,
|
||||||
y: points.topLeft.y - 15 - sa
|
y: points.topLeft.y - 15 - sa,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.midLeft,
|
from: points.midLeft,
|
||||||
to: points.midRight,
|
to: points.midRight,
|
||||||
y: points.topLeft.y - 30 - sa
|
y: points.topLeft.y - 30 - sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.midLeft,
|
from: points.midLeft,
|
||||||
to: points.topMid,
|
to: points.topMid,
|
||||||
x: points.midLeft.x - 15 - sa
|
x: points.midLeft.x - 15 - sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.midLeft,
|
from: points.midLeft,
|
||||||
to: points.topLeft,
|
to: points.topLeft,
|
||||||
x: points.midLeft.x - 30 - sa
|
x: points.midLeft.x - 30 - sa,
|
||||||
})
|
})
|
||||||
if (options.bulge === 0) {
|
if (options.bulge === 0) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.leftTuskLeft,
|
from: points.leftTuskLeft,
|
||||||
to: points.rightTuskRight,
|
to: points.rightTuskRight,
|
||||||
y: points.leftTuskLeft.y + 15 + sa
|
y: points.leftTuskLeft.y + 15 + sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.leftTuskLeft,
|
from: points.leftTuskLeft,
|
||||||
to: points.topLeft,
|
to: points.topLeft,
|
||||||
x: points.midLeft.x - 45 - sa
|
x: points.midLeft.x - 45 - sa,
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.leftTuskLeft,
|
from: points.leftTuskLeft,
|
||||||
to: points.topLeft,
|
to: points.topLeft,
|
||||||
x: points.midLeft.x - 45 - sa
|
x: points.midLeft.x - 45 - sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.leftTuskRight,
|
from: points.leftTuskRight,
|
||||||
to: points.topLeft,
|
to: points.topLeft,
|
||||||
x: points.midLeft.x - 60 - sa
|
x: points.midLeft.x - 60 - sa,
|
||||||
})
|
})
|
||||||
points.narrowRight = new Path()
|
points.narrowRight = new Path()
|
||||||
.move(points.midRight)
|
.move(points.midRight)
|
||||||
|
@ -240,32 +240,32 @@ export default function (part) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.narrowLeft,
|
from: points.narrowLeft,
|
||||||
to: points.narrowRight,
|
to: points.narrowRight,
|
||||||
y: points.narrowLeft.y
|
y: points.narrowLeft.y,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.leftTuskRight,
|
from: points.leftTuskRight,
|
||||||
to: points.rightTuskLeft,
|
to: points.rightTuskLeft,
|
||||||
y: points.rightTuskLeft.y + 15 + sa
|
y: points.rightTuskLeft.y + 15 + sa,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.leftTuskLeft,
|
from: points.leftTuskLeft,
|
||||||
to: points.rightTuskRight,
|
to: points.rightTuskRight,
|
||||||
y: points.rightTuskLeft.y + 30 + sa
|
y: points.rightTuskLeft.y + 30 + sa,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.rightTuskLeft,
|
from: points.rightTuskLeft,
|
||||||
to: points.rightTuskRight,
|
to: points.rightTuskRight,
|
||||||
d: -15 - sa
|
d: -15 - sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.narrowRight,
|
from: points.narrowRight,
|
||||||
to: points.topRight,
|
to: points.topRight,
|
||||||
x: points.topRight.x + 15 + sa
|
x: points.topRight.x + 15 + sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.dartJoin,
|
from: points.dartJoin,
|
||||||
to: points.topRight,
|
to: points.topRight,
|
||||||
x: points.topRight.x + 30 + sa
|
x: points.topRight.x + 30 + sa,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@ export default function (part) {
|
||||||
paperless,
|
paperless,
|
||||||
macro,
|
macro,
|
||||||
Snippet,
|
Snippet,
|
||||||
snippets
|
snippets,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
// Initialize
|
// Initialize
|
||||||
|
@ -62,11 +62,11 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
at: points.title.shift(-90, 15),
|
at: points.title.shift(-90, 15),
|
||||||
nr: 4,
|
nr: 4,
|
||||||
title: 'inset'
|
title: 'inset',
|
||||||
})
|
})
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.bottomLeft.shift(0, 15),
|
from: points.bottomLeft.shift(0, 15),
|
||||||
to: points.topLeft.shift(0, 15)
|
to: points.topLeft.shift(0, 15),
|
||||||
})
|
})
|
||||||
snippets.notch = new Snippet(
|
snippets.notch = new Snippet(
|
||||||
'notch',
|
'notch',
|
||||||
|
@ -82,22 +82,22 @@ export default function (part) {
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomLeft,
|
from: points.bottomLeft,
|
||||||
to: points.topLeft,
|
to: points.topLeft,
|
||||||
x: points.topLeft.x - 15 - sa
|
x: points.topLeft.x - 15 - sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomRight,
|
from: points.bottomRight,
|
||||||
to: points.tip,
|
to: points.tip,
|
||||||
x: points.tip.x + 15 + sa
|
x: points.tip.x + 15 + sa,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bottomLeft,
|
from: points.bottomLeft,
|
||||||
to: points.bottomRight,
|
to: points.bottomRight,
|
||||||
y: points.bottomRight.y + 15 + sa
|
y: points.bottomRight.y + 15 + sa,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bottomLeft,
|
from: points.bottomLeft,
|
||||||
to: points.tip,
|
to: points.tip,
|
||||||
y: points.bottomRight.y + 30 + sa
|
y: points.bottomRight.y + 30 + sa,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ export default function (part) {
|
||||||
macro,
|
macro,
|
||||||
utils,
|
utils,
|
||||||
snippets,
|
snippets,
|
||||||
Snippet
|
Snippet,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
// Initialize
|
// Initialize
|
||||||
|
@ -65,7 +65,7 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
at: points.title.shift(90, 30),
|
at: points.title.shift(90, 30),
|
||||||
nr: 3,
|
nr: 3,
|
||||||
title: 'side'
|
title: 'side',
|
||||||
})
|
})
|
||||||
macro('scalebox', { at: points.title.shift(-90, 40) })
|
macro('scalebox', { at: points.title.shift(-90, 40) })
|
||||||
if (sa) {
|
if (sa) {
|
||||||
|
@ -77,7 +77,7 @@ export default function (part) {
|
||||||
}
|
}
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: new Point(points.bottomRight.x / 2, points.bottomRight.y),
|
from: new Point(points.bottomRight.x / 2, points.bottomRight.y),
|
||||||
to: new Point(points.bottomRight.x / 2, points.topRight.y)
|
to: new Point(points.bottomRight.x / 2, points.topRight.y),
|
||||||
})
|
})
|
||||||
snippets.frontNotch = new Snippet(
|
snippets.frontNotch = new Snippet(
|
||||||
'notch',
|
'notch',
|
||||||
|
@ -94,22 +94,22 @@ export default function (part) {
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomLeft,
|
from: points.bottomLeft,
|
||||||
to: points.topLeft,
|
to: points.topLeft,
|
||||||
x: points.topLeft.x - 15 - sa
|
x: points.topLeft.x - 15 - sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomRight,
|
from: points.bottomRight,
|
||||||
to: points.topRight,
|
to: points.topRight,
|
||||||
x: points.topRight.x + 15 + sa
|
x: points.topRight.x + 15 + sa,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.topLeft,
|
from: points.topLeft,
|
||||||
to: points.topRight,
|
to: points.topRight,
|
||||||
y: points.topLeft.y - 15 - sa
|
y: points.topLeft.y - 15 - sa,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bottomLeft,
|
from: points.bottomLeft,
|
||||||
to: points.bottomRight,
|
to: points.bottomRight,
|
||||||
y: points.bottomLeft.y + 15 + sa
|
y: points.bottomLeft.y + 15 + sa,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ export default {
|
||||||
'sleeveBend',
|
'sleeveBend',
|
||||||
'sleeveLengthBonus',
|
'sleeveLengthBonus',
|
||||||
'waistEase',
|
'waistEase',
|
||||||
'seatEase'
|
'seatEase',
|
||||||
],
|
],
|
||||||
advanced: [
|
advanced: [
|
||||||
'backNeckCutout',
|
'backNeckCutout',
|
||||||
|
@ -30,7 +30,7 @@ export default {
|
||||||
'shoulderSlopeReduction',
|
'shoulderSlopeReduction',
|
||||||
'sleevecapHeight',
|
'sleevecapHeight',
|
||||||
'sleevecapEase',
|
'sleevecapEase',
|
||||||
'contour'
|
'contour',
|
||||||
],
|
],
|
||||||
pockets: [
|
pockets: [
|
||||||
'pocketPlacementHorizontal',
|
'pocketPlacementHorizontal',
|
||||||
|
@ -46,10 +46,10 @@ export default {
|
||||||
'innerPocketPlacement',
|
'innerPocketPlacement',
|
||||||
'innerPocketWidth',
|
'innerPocketWidth',
|
||||||
'innerPocketDepth',
|
'innerPocketDepth',
|
||||||
'innerPocketWeltHeight'
|
'innerPocketWeltHeight',
|
||||||
],
|
],
|
||||||
style: ['beltWidth', 'buttonSpacingHorizontal', 'cuffLength', 'length'],
|
style: ['beltWidth', 'buttonSpacingHorizontal', 'cuffLength', 'length'],
|
||||||
collar: ['collarHeight', 'collarSpread', 'collarFlare']
|
collar: ['collarHeight', 'collarSpread', 'collarFlare'],
|
||||||
},
|
},
|
||||||
measurements: [
|
measurements: [
|
||||||
'biceps',
|
'biceps',
|
||||||
|
@ -70,7 +70,7 @@ export default {
|
||||||
// For breasts
|
// For breasts
|
||||||
'highBust',
|
'highBust',
|
||||||
'bustSpan',
|
'bustSpan',
|
||||||
'hpsToBust'
|
'hpsToBust',
|
||||||
],
|
],
|
||||||
dependencies: {
|
dependencies: {
|
||||||
bentBack: 'bentBase',
|
bentBack: 'bentBase',
|
||||||
|
@ -95,7 +95,7 @@ export default {
|
||||||
innerPocketBag: 'carltonFront',
|
innerPocketBag: 'carltonFront',
|
||||||
innerPocketTab: 'carltonFront',
|
innerPocketTab: 'carltonFront',
|
||||||
front: 'carltonFront',
|
front: 'carltonFront',
|
||||||
side: 'front'
|
side: 'front',
|
||||||
},
|
},
|
||||||
inject: {
|
inject: {
|
||||||
bentBack: 'bentBase',
|
bentBack: 'bentBase',
|
||||||
|
@ -109,7 +109,7 @@ export default {
|
||||||
collar: 'collarStand',
|
collar: 'collarStand',
|
||||||
pocketLining: 'pocket',
|
pocketLining: 'pocket',
|
||||||
front: 'carltonFront',
|
front: 'carltonFront',
|
||||||
side: 'front'
|
side: 'front',
|
||||||
},
|
},
|
||||||
hide: [
|
hide: [
|
||||||
'bentBase',
|
'bentBase',
|
||||||
|
@ -118,7 +118,7 @@ export default {
|
||||||
'bentSleeve',
|
'bentSleeve',
|
||||||
'bentTopSleeve',
|
'bentTopSleeve',
|
||||||
'bentUnderSleeve',
|
'bentUnderSleeve',
|
||||||
'carltonFront'
|
'carltonFront',
|
||||||
],
|
],
|
||||||
parts: [
|
parts: [
|
||||||
'back',
|
'back',
|
||||||
|
@ -136,7 +136,7 @@ export default {
|
||||||
'chestPocketBag',
|
'chestPocketBag',
|
||||||
'innerPocketWelt',
|
'innerPocketWelt',
|
||||||
'innerPocketBag',
|
'innerPocketBag',
|
||||||
'innerPocketTab'
|
'innerPocketTab',
|
||||||
],
|
],
|
||||||
options: {
|
options: {
|
||||||
// Constants
|
// Constants
|
||||||
|
@ -193,6 +193,6 @@ export default {
|
||||||
collarFlare: { pct: 20, min: 0, max: 40 },
|
collarFlare: { pct: 20, min: 0, max: 40 },
|
||||||
|
|
||||||
// Carlita-specific options
|
// Carlita-specific options
|
||||||
contour: { pct: 50, min: 25, max: 75 }
|
contour: { pct: 50, min: 25, max: 75 },
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@ export default function (part) {
|
||||||
macro,
|
macro,
|
||||||
Point,
|
Point,
|
||||||
paths,
|
paths,
|
||||||
Path
|
Path,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -82,7 +82,7 @@ export default function (part) {
|
||||||
'armholeHollow',
|
'armholeHollow',
|
||||||
'armholeHollowCp2',
|
'armholeHollowCp2',
|
||||||
'armholePitchCp1',
|
'armholePitchCp1',
|
||||||
'armholePitch'
|
'armholePitch',
|
||||||
]
|
]
|
||||||
// Store these, we'll use them in the side part
|
// Store these, we'll use them in the side part
|
||||||
store.set('side', side)
|
store.set('side', side)
|
||||||
|
@ -176,7 +176,7 @@ export default function (part) {
|
||||||
'chestPocketTopLeft',
|
'chestPocketTopLeft',
|
||||||
'chestPocketTopRight',
|
'chestPocketTopRight',
|
||||||
'chestPocketBottomLeft',
|
'chestPocketBottomLeft',
|
||||||
'chestPocketBottomRight'
|
'chestPocketBottomRight',
|
||||||
]
|
]
|
||||||
for (let i of belowBust) {
|
for (let i of belowBust) {
|
||||||
// Round points depend on options, so add a check
|
// Round points depend on options, so add a check
|
||||||
|
@ -349,7 +349,7 @@ export default function (part) {
|
||||||
snippets.button3Right = new Snippet('button', points.button3Right).attr('data-scale', 2)
|
snippets.button3Right = new Snippet('button', points.button3Right).attr('data-scale', 2)
|
||||||
macro('sprinkle', {
|
macro('sprinkle', {
|
||||||
snippet: 'notch',
|
snippet: 'notch',
|
||||||
on: ['cfNeck', 'rollLineStart', 'bustPoint', 'chestPocketTopLeft', 'chestPocketBottomLeft']
|
on: ['cfNeck', 'rollLineStart', 'bustPoint', 'chestPocketTopLeft', 'chestPocketBottomLeft'],
|
||||||
})
|
})
|
||||||
points.logo = points.cfSeat.shiftFractionTowards(points.cfHem, 0.5)
|
points.logo = points.cfSeat.shiftFractionTowards(points.cfHem, 0.5)
|
||||||
snippets.logo = new Snippet('logo', points.logo)
|
snippets.logo = new Snippet('logo', points.logo)
|
||||||
|
@ -369,122 +369,122 @@ export default function (part) {
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.hemEdge,
|
from: points.hemEdge,
|
||||||
to: points.flbHem,
|
to: points.flbHem,
|
||||||
d: 15
|
d: 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.hemEdge,
|
from: points.hemEdge,
|
||||||
to: points.psHem,
|
to: points.psHem,
|
||||||
y: points.psHem.y + 15 + 3 * sa
|
y: points.psHem.y + 15 + 3 * sa,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.rollLineStart,
|
from: points.rollLineStart,
|
||||||
to: points.pocketTopLeft,
|
to: points.pocketTopLeft,
|
||||||
y: points.pocketFlapBottomLeft.y
|
y: points.pocketFlapBottomLeft.y,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.pocketFlapTopLeft,
|
from: points.pocketFlapTopLeft,
|
||||||
to: points.button3Right,
|
to: points.button3Right,
|
||||||
x: points.bustPoint.x + sa + 15
|
x: points.bustPoint.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.pocketTopLeft,
|
from: points.pocketTopLeft,
|
||||||
to: points.button3Right,
|
to: points.button3Right,
|
||||||
x: points.bustPoint.x + sa + 30
|
x: points.bustPoint.x + sa + 30,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.chestPocketBottomLeft,
|
from: points.chestPocketBottomLeft,
|
||||||
to: points.button3Right,
|
to: points.button3Right,
|
||||||
x: points.bustPoint.x - 15
|
x: points.bustPoint.x - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.rollLineStart,
|
from: points.rollLineStart,
|
||||||
to: points.chestPocketBottomLeft,
|
to: points.chestPocketBottomLeft,
|
||||||
y: points.chestPocketBottomLeft.y + 15
|
y: points.chestPocketBottomLeft.y + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.rollLineStart,
|
from: points.rollLineStart,
|
||||||
to: points.button3Left,
|
to: points.button3Left,
|
||||||
y: points.button3Left.y + 15
|
y: points.button3Left.y + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.button3Left,
|
from: points.button3Left,
|
||||||
to: points.button3Right,
|
to: points.button3Right,
|
||||||
y: points.button3Left.y + 15
|
y: points.button3Left.y + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.psHem,
|
from: points.psHem,
|
||||||
to: points.bustPoint,
|
to: points.bustPoint,
|
||||||
x: points.bustPoint.x + sa + 45
|
x: points.bustPoint.x + sa + 45,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.psHem,
|
from: points.psHem,
|
||||||
to: points.armholePitch,
|
to: points.armholePitch,
|
||||||
x: points.armholePitch.x + sa + 15
|
x: points.armholePitch.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.armholePitch,
|
from: points.armholePitch,
|
||||||
to: points.shoulder,
|
to: points.shoulder,
|
||||||
x: points.shoulder.x + sa + 15
|
x: points.shoulder.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.armholePitch,
|
from: points.armholePitch,
|
||||||
to: points.neck,
|
to: points.neck,
|
||||||
x: points.shoulder.x + sa + 30
|
x: points.shoulder.x + sa + 30,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.rollLineStart,
|
from: points.rollLineStart,
|
||||||
to: points.collarTip,
|
to: points.collarTip,
|
||||||
x: points.rollLineStart.x - sa - 15
|
x: points.rollLineStart.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.button2Left,
|
from: points.button2Left,
|
||||||
to: points.rollLineStart,
|
to: points.rollLineStart,
|
||||||
x: points.rollLineStart.x - sa - 15
|
x: points.rollLineStart.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.button1Left,
|
from: points.button1Left,
|
||||||
to: points.button2Left,
|
to: points.button2Left,
|
||||||
x: points.rollLineStart.x - sa - 15
|
x: points.rollLineStart.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.hemEdge,
|
from: points.hemEdge,
|
||||||
to: points.collarTip,
|
to: points.collarTip,
|
||||||
x: points.rollLineStart.x - sa - 30
|
x: points.rollLineStart.x - sa - 30,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.lapelStraightEnd,
|
from: points.lapelStraightEnd,
|
||||||
to: points.collarTip,
|
to: points.collarTip,
|
||||||
y: points.collarTip.y - sa - 15
|
y: points.collarTip.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.lapelStraightEnd,
|
from: points.lapelStraightEnd,
|
||||||
to: points.cfNeck,
|
to: points.cfNeck,
|
||||||
y: points.collarTip.y - sa - 30
|
y: points.collarTip.y - sa - 30,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.lapelStraightEnd,
|
from: points.lapelStraightEnd,
|
||||||
to: points.rollLineEnd,
|
to: points.rollLineEnd,
|
||||||
y: points.collarTip.y - sa - 45
|
y: points.collarTip.y - sa - 45,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.lapelStraightEnd,
|
from: points.lapelStraightEnd,
|
||||||
to: points.neck,
|
to: points.neck,
|
||||||
y: points.neck.y - sa - 15
|
y: points.neck.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.lapelStraightEnd,
|
from: points.lapelStraightEnd,
|
||||||
to: points.armholePitch,
|
to: points.armholePitch,
|
||||||
y: points.neck.y - sa - 30
|
y: points.neck.y - sa - 30,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.lapelStraightEnd,
|
from: points.lapelStraightEnd,
|
||||||
to: points.shoulder,
|
to: points.shoulder,
|
||||||
y: points.neck.y - sa - 45
|
y: points.neck.y - sa - 45,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.lapelStraightEnd,
|
from: points.lapelStraightEnd,
|
||||||
to: points.armhole,
|
to: points.armhole,
|
||||||
y: points.neck.y - sa - 60
|
y: points.neck.y - sa - 60,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,7 @@ for (let m of [
|
||||||
'draftChestPocketBag',
|
'draftChestPocketBag',
|
||||||
'draftInnerPocketWelt',
|
'draftInnerPocketWelt',
|
||||||
'draftInnerPocketBag',
|
'draftInnerPocketBag',
|
||||||
'draftInnerPocketTab'
|
'draftInnerPocketTab',
|
||||||
]) {
|
]) {
|
||||||
Pattern.prototype[m] = function (part) {
|
Pattern.prototype[m] = function (part) {
|
||||||
return new Carlton(this.settings)[m](part)
|
return new Carlton(this.settings)[m](part)
|
||||||
|
|
|
@ -10,7 +10,7 @@ export default function (part) {
|
||||||
macro,
|
macro,
|
||||||
Point,
|
Point,
|
||||||
paths,
|
paths,
|
||||||
Path
|
Path,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
// Give points their original names
|
// Give points their original names
|
||||||
|
@ -39,7 +39,7 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
at: points.title,
|
at: points.title,
|
||||||
nr: '1b',
|
nr: '1b',
|
||||||
title: 'side'
|
title: 'side',
|
||||||
})
|
})
|
||||||
|
|
||||||
points.logo = points.psHem.shiftFractionTowards(points.seat, 0.5)
|
points.logo = points.psHem.shiftFractionTowards(points.seat, 0.5)
|
||||||
|
@ -49,7 +49,7 @@ export default function (part) {
|
||||||
points.grainlineTo = new Point(points.grainlineFrom.x, points.armholePitchCp1.y)
|
points.grainlineTo = new Point(points.grainlineFrom.x, points.armholePitchCp1.y)
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.grainlineFrom,
|
from: points.grainlineFrom,
|
||||||
to: points.grainlineTo
|
to: points.grainlineTo,
|
||||||
})
|
})
|
||||||
snippets.bust = new Snippet('notch', points.bustPoint)
|
snippets.bust = new Snippet('notch', points.bustPoint)
|
||||||
|
|
||||||
|
@ -66,56 +66,56 @@ export default function (part) {
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.psHem,
|
from: points.psHem,
|
||||||
to: points.psWaist,
|
to: points.psWaist,
|
||||||
x: points.psWaist.x - sa - 15
|
x: points.psWaist.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.psHem,
|
from: points.psHem,
|
||||||
to: points.bustPoint,
|
to: points.bustPoint,
|
||||||
x: points.bustPoint.x - sa - 15
|
x: points.bustPoint.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.hem,
|
from: points.hem,
|
||||||
to: points.seat,
|
to: points.seat,
|
||||||
x: points.hem.x + sa + 15
|
x: points.hem.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.hem,
|
from: points.hem,
|
||||||
to: points.waist,
|
to: points.waist,
|
||||||
x: points.hem.x + sa + 30
|
x: points.hem.x + sa + 30,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.hem,
|
from: points.hem,
|
||||||
to: points.armhole,
|
to: points.armhole,
|
||||||
x: points.hem.x + sa + 45
|
x: points.hem.x + sa + 45,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.hem,
|
from: points.hem,
|
||||||
to: points.armholePitch,
|
to: points.armholePitch,
|
||||||
x: points.hem.x + sa + 60
|
x: points.hem.x + sa + 60,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.psWaist,
|
from: points.psWaist,
|
||||||
to: points.waist
|
to: points.waist,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bustPoint,
|
from: points.bustPoint,
|
||||||
to: points.waist,
|
to: points.waist,
|
||||||
y: points.bustPoint.y
|
y: points.bustPoint.y,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bustPoint,
|
from: points.bustPoint,
|
||||||
to: points.armholePitch,
|
to: points.armholePitch,
|
||||||
y: points.armholePitch.y - sa - 15
|
y: points.armholePitch.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bustPoint,
|
from: points.bustPoint,
|
||||||
to: points.armhole,
|
to: points.armhole,
|
||||||
y: points.armholePitch.y - sa - 30
|
y: points.armholePitch.y - sa - 30,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.psHem,
|
from: points.psHem,
|
||||||
to: points.hem,
|
to: points.hem,
|
||||||
y: points.hem.y + 3 * sa + 15
|
y: points.hem.y + 3 * sa + 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@ export default {
|
||||||
'sleeveBend',
|
'sleeveBend',
|
||||||
'sleeveLengthBonus',
|
'sleeveLengthBonus',
|
||||||
'waistEase',
|
'waistEase',
|
||||||
'seatEase'
|
'seatEase',
|
||||||
],
|
],
|
||||||
advanced: [
|
advanced: [
|
||||||
'backNeckCutout',
|
'backNeckCutout',
|
||||||
|
@ -29,7 +29,7 @@ export default {
|
||||||
'lapelReduction',
|
'lapelReduction',
|
||||||
'shoulderSlopeReduction',
|
'shoulderSlopeReduction',
|
||||||
'sleevecapHeight',
|
'sleevecapHeight',
|
||||||
'sleevecapEase'
|
'sleevecapEase',
|
||||||
],
|
],
|
||||||
pockets: [
|
pockets: [
|
||||||
'pocketPlacementHorizontal',
|
'pocketPlacementHorizontal',
|
||||||
|
@ -45,10 +45,10 @@ export default {
|
||||||
'innerPocketPlacement',
|
'innerPocketPlacement',
|
||||||
'innerPocketWidth',
|
'innerPocketWidth',
|
||||||
'innerPocketDepth',
|
'innerPocketDepth',
|
||||||
'innerPocketWeltHeight'
|
'innerPocketWeltHeight',
|
||||||
],
|
],
|
||||||
style: ['beltWidth', 'buttonSpacingHorizontal', 'cuffLength', 'length'],
|
style: ['beltWidth', 'buttonSpacingHorizontal', 'cuffLength', 'length'],
|
||||||
collar: ['collarHeight', 'collarSpread', 'collarFlare']
|
collar: ['collarHeight', 'collarSpread', 'collarFlare'],
|
||||||
},
|
},
|
||||||
measurements: [
|
measurements: [
|
||||||
'biceps',
|
'biceps',
|
||||||
|
@ -65,7 +65,7 @@ export default {
|
||||||
'wrist',
|
'wrist',
|
||||||
'waistToFloor',
|
'waistToFloor',
|
||||||
'waistToSeat',
|
'waistToSeat',
|
||||||
'seat'
|
'seat',
|
||||||
],
|
],
|
||||||
dependencies: {
|
dependencies: {
|
||||||
bentBack: 'bentBase',
|
bentBack: 'bentBase',
|
||||||
|
@ -88,7 +88,7 @@ export default {
|
||||||
chestPocketBag: 'front',
|
chestPocketBag: 'front',
|
||||||
innerPocketWelt: 'front',
|
innerPocketWelt: 'front',
|
||||||
innerPocketBag: 'front',
|
innerPocketBag: 'front',
|
||||||
innerPocketTab: 'front'
|
innerPocketTab: 'front',
|
||||||
},
|
},
|
||||||
inject: {
|
inject: {
|
||||||
bentBack: 'bentBase',
|
bentBack: 'bentBase',
|
||||||
|
@ -100,7 +100,7 @@ export default {
|
||||||
topSleeve: 'bentTopSleeve',
|
topSleeve: 'bentTopSleeve',
|
||||||
underSleeve: 'bentUnderSleeve',
|
underSleeve: 'bentUnderSleeve',
|
||||||
collar: 'collarStand',
|
collar: 'collarStand',
|
||||||
pocketLining: 'pocket'
|
pocketLining: 'pocket',
|
||||||
},
|
},
|
||||||
hide: ['bentBase', 'bentBack', 'bentFront', 'bentSleeve', 'bentTopSleeve', 'bentUnderSleeve'],
|
hide: ['bentBase', 'bentBack', 'bentFront', 'bentSleeve', 'bentTopSleeve', 'bentUnderSleeve'],
|
||||||
options: {
|
options: {
|
||||||
|
@ -155,6 +155,6 @@ export default {
|
||||||
cuffLength: { pct: 15, min: 10, max: 20 },
|
cuffLength: { pct: 15, min: 10, max: 20 },
|
||||||
collarHeight: { pct: 9.6, min: 8, max: 11 },
|
collarHeight: { pct: 9.6, min: 8, max: 11 },
|
||||||
collarSpread: { deg: 4, min: 2, max: 6 },
|
collarSpread: { deg: 4, min: 2, max: 6 },
|
||||||
collarFlare: { pct: 20, min: 0, max: 40 }
|
collarFlare: { pct: 20, min: 0, max: 40 },
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ export default function (part) {
|
||||||
macro,
|
macro,
|
||||||
Point,
|
Point,
|
||||||
paths,
|
paths,
|
||||||
Path
|
Path,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
calculateRatios(part)
|
calculateRatios(part)
|
||||||
|
@ -96,12 +96,12 @@ export default function (part) {
|
||||||
if (complete) {
|
if (complete) {
|
||||||
macro('sprinkle', {
|
macro('sprinkle', {
|
||||||
snippet: 'bnotch',
|
snippet: 'bnotch',
|
||||||
on: ['shoulder', 'bpTriangleTip']
|
on: ['shoulder', 'bpTriangleTip'],
|
||||||
})
|
})
|
||||||
|
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.cbWaist,
|
from: points.cbWaist,
|
||||||
to: points.bpStart
|
to: points.bpStart,
|
||||||
})
|
})
|
||||||
|
|
||||||
points.logo = new Point(points.armhole.x * 0.7, points.dartTip.y)
|
points.logo = new Point(points.armhole.x * 0.7, points.dartTip.y)
|
||||||
|
@ -122,102 +122,102 @@ export default function (part) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bpBottom,
|
from: points.bpBottom,
|
||||||
to: points.cbWaist,
|
to: points.cbWaist,
|
||||||
y: points.cbWaist.y + 15 + sa
|
y: points.cbWaist.y + 15 + sa,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbWaist,
|
from: points.cbWaist,
|
||||||
to: points.dartLeft,
|
to: points.dartLeft,
|
||||||
y: points.cbWaist.y + 15 + sa
|
y: points.cbWaist.y + 15 + sa,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.dartLeft,
|
from: points.dartLeft,
|
||||||
to: points.dartRight,
|
to: points.dartRight,
|
||||||
y: points.cbWaist.y + 15 + sa
|
y: points.cbWaist.y + 15 + sa,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.dartRight,
|
from: points.dartRight,
|
||||||
to: points.waist,
|
to: points.waist,
|
||||||
y: points.cbWaist.y + 15 + sa
|
y: points.cbWaist.y + 15 + sa,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbWaist,
|
from: points.cbWaist,
|
||||||
to: points.waist,
|
to: points.waist,
|
||||||
y: points.cbWaist.y + 30 + sa
|
y: points.cbWaist.y + 30 + sa,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bpBottom,
|
from: points.bpBottom,
|
||||||
to: points.waist,
|
to: points.waist,
|
||||||
y: points.cbWaist.y + 45 + sa
|
y: points.cbWaist.y + 45 + sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waist,
|
from: points.waist,
|
||||||
to: points.armhole,
|
to: points.armhole,
|
||||||
x: points.armhole.x + 15 + sa
|
x: points.armhole.x + 15 + sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.armhole,
|
from: points.armhole,
|
||||||
to: points.armholePitch,
|
to: points.armholePitch,
|
||||||
x: points.armhole.x + 15 + sa
|
x: points.armhole.x + 15 + sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.armhole,
|
from: points.armhole,
|
||||||
to: points.shoulder,
|
to: points.shoulder,
|
||||||
x: points.armhole.x + 30 + sa
|
x: points.armhole.x + 30 + sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waist,
|
from: points.waist,
|
||||||
to: points.shoulder,
|
to: points.shoulder,
|
||||||
x: points.armhole.x + 45 + sa
|
x: points.armhole.x + 45 + sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.dartRight,
|
from: points.dartRight,
|
||||||
to: points.dartTip,
|
to: points.dartTip,
|
||||||
x: points.dartRight.x + 15
|
x: points.dartRight.x + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bpBottom,
|
from: points.bpBottom,
|
||||||
to: points.bpTop,
|
to: points.bpTop,
|
||||||
x: points.bpTop.x - 15 - sa
|
x: points.bpTop.x - 15 - sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bpTop,
|
from: points.bpTop,
|
||||||
to: points.cbNeck,
|
to: points.cbNeck,
|
||||||
x: points.bpTop.x - 15 - sa
|
x: points.bpTop.x - 15 - sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bpBottom,
|
from: points.bpBottom,
|
||||||
to: points.neck,
|
to: points.neck,
|
||||||
x: points.bpTop.x - 30 - sa
|
x: points.bpTop.x - 30 - sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bpStart,
|
from: points.bpStart,
|
||||||
to: points.bpTriangleTip,
|
to: points.bpTriangleTip,
|
||||||
x: points.bpTriangleEdge.x + 15
|
x: points.bpTriangleEdge.x + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bpStart,
|
from: points.bpStart,
|
||||||
to: points.bpTriangleEdge,
|
to: points.bpTriangleEdge,
|
||||||
y: points.bpTriangleEdge.y + 15
|
y: points.bpTriangleEdge.y + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbNeck,
|
from: points.cbNeck,
|
||||||
to: points.neck,
|
to: points.neck,
|
||||||
y: points.neck.y - 15 - sa
|
y: points.neck.y - 15 - sa,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbNeck,
|
from: points.cbNeck,
|
||||||
to: points.armholePitch,
|
to: points.armholePitch,
|
||||||
y: points.neck.y - 30 - sa
|
y: points.neck.y - 30 - sa,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbNeck,
|
from: points.cbNeck,
|
||||||
to: points.shoulder,
|
to: points.shoulder,
|
||||||
y: points.neck.y - 45 - sa
|
y: points.neck.y - 45 - sa,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbNeck,
|
from: points.cbNeck,
|
||||||
to: points.armhole,
|
to: points.armhole,
|
||||||
y: points.neck.y - 60 - sa
|
y: points.neck.y - 60 - sa,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ export default function (part) {
|
||||||
macro,
|
macro,
|
||||||
Point,
|
Point,
|
||||||
paths,
|
paths,
|
||||||
Path
|
Path,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
let length = 1.6 * (store.get('cbToDart') + store.get('dartToSide'))
|
let length = 1.6 * (store.get('cbToDart') + store.get('dartToSide'))
|
||||||
|
@ -27,7 +27,7 @@ export default function (part) {
|
||||||
via: points.topLeft,
|
via: points.topLeft,
|
||||||
prefix: 'roundTop',
|
prefix: 'roundTop',
|
||||||
radius: width / 4,
|
radius: width / 4,
|
||||||
render: true
|
render: true,
|
||||||
})
|
})
|
||||||
macro('round', {
|
macro('round', {
|
||||||
from: points.topLeft,
|
from: points.topLeft,
|
||||||
|
@ -35,7 +35,7 @@ export default function (part) {
|
||||||
via: points.bottomLeft,
|
via: points.bottomLeft,
|
||||||
prefix: 'roundBottom',
|
prefix: 'roundBottom',
|
||||||
radius: width / 4,
|
radius: width / 4,
|
||||||
render: true
|
render: true,
|
||||||
})
|
})
|
||||||
|
|
||||||
// Paths
|
// Paths
|
||||||
|
@ -56,7 +56,7 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
at: points.title,
|
at: points.title,
|
||||||
nr: 6,
|
nr: 6,
|
||||||
title: 'belt'
|
title: 'belt',
|
||||||
})
|
})
|
||||||
points.logo = new Point(points.bottomRight.x * 0.75, points.bottomRight.y * 0.65)
|
points.logo = new Point(points.bottomRight.x * 0.75, points.bottomRight.y * 0.65)
|
||||||
snippets.logo = new Snippet('logo', points.logo)
|
snippets.logo = new Snippet('logo', points.logo)
|
||||||
|
@ -71,22 +71,22 @@ export default function (part) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.roundBottomStart,
|
from: points.roundBottomStart,
|
||||||
to: points.roundBottomEnd,
|
to: points.roundBottomEnd,
|
||||||
y: points.roundBottomEnd.y + sa + 15
|
y: points.roundBottomEnd.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.roundBottomStart,
|
from: points.roundBottomStart,
|
||||||
to: points.button,
|
to: points.button,
|
||||||
y: points.roundBottomEnd.y + sa + 30
|
y: points.roundBottomEnd.y + sa + 30,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.roundBottomStart,
|
from: points.roundBottomStart,
|
||||||
to: points.bottomRight,
|
to: points.bottomRight,
|
||||||
y: points.roundBottomEnd.y + sa + 45
|
y: points.roundBottomEnd.y + sa + 45,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomRight,
|
from: points.bottomRight,
|
||||||
to: points.topRight,
|
to: points.topRight,
|
||||||
x: points.topRight.x + sa + 15
|
x: points.topRight.x + sa + 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ export default function (part) {
|
||||||
macro,
|
macro,
|
||||||
Point,
|
Point,
|
||||||
paths,
|
paths,
|
||||||
Path
|
Path,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
points.topLeft = new Point(0, 0)
|
points.topLeft = new Point(0, 0)
|
||||||
|
@ -47,12 +47,12 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
at: points.title,
|
at: points.title,
|
||||||
nr: 17,
|
nr: 17,
|
||||||
title: 'chestPocketBag'
|
title: 'chestPocketBag',
|
||||||
})
|
})
|
||||||
|
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.bottomLeft.shift(0, 10),
|
from: points.bottomLeft.shift(0, 10),
|
||||||
to: points.topLeft.shift(0, 10)
|
to: points.topLeft.shift(0, 10),
|
||||||
})
|
})
|
||||||
|
|
||||||
if (sa) {
|
if (sa) {
|
||||||
|
@ -61,14 +61,14 @@ export default function (part) {
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.bottomRight.shift(180, 15),
|
from: points.bottomRight.shift(180, 15),
|
||||||
to: points.topRight.shift(180, 15),
|
to: points.topRight.shift(180, 15),
|
||||||
text: units(store.get('chestPocketBagDepth') * 2)
|
text: units(store.get('chestPocketBagDepth') * 2),
|
||||||
})
|
})
|
||||||
|
|
||||||
if (paperless) {
|
if (paperless) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bottomLeft,
|
from: points.bottomLeft,
|
||||||
to: points.bottomRight,
|
to: points.bottomRight,
|
||||||
y: points.bottomLeft.y + sa + 15
|
y: points.bottomLeft.y + sa + 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,7 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
at: points.title,
|
at: points.title,
|
||||||
nr: 12,
|
nr: 12,
|
||||||
title: 'chestPocketWelt'
|
title: 'chestPocketWelt',
|
||||||
})
|
})
|
||||||
|
|
||||||
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
|
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
|
||||||
|
@ -33,12 +33,12 @@ export default function (part) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bottomLeft,
|
from: points.bottomLeft,
|
||||||
to: points.bottomRight,
|
to: points.bottomRight,
|
||||||
y: points.bottomLeft.y + sa + 15
|
y: points.bottomLeft.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomRight,
|
from: points.bottomRight,
|
||||||
to: points.topRight,
|
to: points.topRight,
|
||||||
x: points.topRight.x + sa + 15
|
x: points.topRight.x + sa + 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,20 +37,20 @@ export default function (part) {
|
||||||
let rotate = {
|
let rotate = {
|
||||||
1: {
|
1: {
|
||||||
pivot: 'cutBottom1',
|
pivot: 'cutBottom1',
|
||||||
points: ['cutBottom2', 'cutTop1', 'cutTop2', 'q2Cp1', 'q2Cp2']
|
points: ['cutBottom2', 'cutTop1', 'cutTop2', 'q2Cp1', 'q2Cp2'],
|
||||||
},
|
},
|
||||||
2: {
|
2: {
|
||||||
pivot: 'cutBottom2',
|
pivot: 'cutBottom2',
|
||||||
points: ['cutBottom3', 'cutTop2', 'cutTop3', 'q3Cp1', 'q3Cp2']
|
points: ['cutBottom3', 'cutTop2', 'cutTop3', 'q3Cp1', 'q3Cp2'],
|
||||||
},
|
},
|
||||||
3: {
|
3: {
|
||||||
pivot: 'cutBottom3',
|
pivot: 'cutBottom3',
|
||||||
points: ['standTip', 'bottomRight', 'cutTop4', 'cutTop3', 'q4Cp1']
|
points: ['standTip', 'bottomRight', 'cutTop4', 'cutTop3', 'q4Cp1'],
|
||||||
},
|
},
|
||||||
4: {
|
4: {
|
||||||
pivot: 'standTip',
|
pivot: 'standTip',
|
||||||
points: ['topRight', 'bottomRight', 'cutTop4']
|
points: ['topRight', 'bottomRight', 'cutTop4'],
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
let angle = -1 * options.collarSpread
|
let angle = -1 * options.collarSpread
|
||||||
|
@ -77,7 +77,7 @@ export default function (part) {
|
||||||
'rot2cutTop3',
|
'rot2cutTop3',
|
||||||
'rot2cutBottom3',
|
'rot2cutBottom3',
|
||||||
'rot2q3Cp1',
|
'rot2q3Cp1',
|
||||||
'rot2q3Cp2'
|
'rot2q3Cp2',
|
||||||
])
|
])
|
||||||
points[i] = points[i].shift(angle, distance)
|
points[i] = points[i].shift(angle, distance)
|
||||||
|
|
||||||
|
@ -172,7 +172,7 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
at: points.title,
|
at: points.title,
|
||||||
nr: 8,
|
nr: 8,
|
||||||
title: 'collar'
|
title: 'collar',
|
||||||
})
|
})
|
||||||
|
|
||||||
// Remove grainline from collarstand part
|
// Remove grainline from collarstand part
|
||||||
|
@ -180,7 +180,7 @@ export default function (part) {
|
||||||
macro('cutonfold', {
|
macro('cutonfold', {
|
||||||
from: points.topLeft,
|
from: points.topLeft,
|
||||||
to: points.standTop,
|
to: points.standTop,
|
||||||
grainline: true
|
grainline: true,
|
||||||
})
|
})
|
||||||
|
|
||||||
if (sa) {
|
if (sa) {
|
||||||
|
@ -196,47 +196,47 @@ export default function (part) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.standTop,
|
from: points.standTop,
|
||||||
to: points.rot3standTip,
|
to: points.rot3standTip,
|
||||||
y: points.rot4bottomRight.y + sa + 15
|
y: points.rot4bottomRight.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.standTop,
|
from: points.standTop,
|
||||||
to: points.rot4bottomRight,
|
to: points.rot4bottomRight,
|
||||||
y: points.rot4bottomRight.y + sa + 30
|
y: points.rot4bottomRight.y + sa + 30,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.standTop,
|
from: points.standTop,
|
||||||
to: points.rot4topRight,
|
to: points.rot4topRight,
|
||||||
y: points.rot4bottomRight.y + sa + 45
|
y: points.rot4bottomRight.y + sa + 45,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.standTop,
|
from: points.standTop,
|
||||||
to: points.topLeft,
|
to: points.topLeft,
|
||||||
x: points.topLeft.x - 15
|
x: points.topLeft.x - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.rot3standTip,
|
from: points.rot3standTip,
|
||||||
to: points.topLeft,
|
to: points.topLeft,
|
||||||
x: points.topLeft.x - 30
|
x: points.topLeft.x - 30,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.rot4topRight,
|
from: points.rot4topRight,
|
||||||
to: points.topLeft,
|
to: points.topLeft,
|
||||||
x: points.rot4topRight.x + sa + 15
|
x: points.rot4topRight.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.rot4bottomRight,
|
from: points.rot4bottomRight,
|
||||||
to: points.topLeft,
|
to: points.topLeft,
|
||||||
x: points.rot4topRight.x + sa + 30
|
x: points.rot4topRight.x + sa + 30,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.rot4bottomRight,
|
from: points.rot4bottomRight,
|
||||||
to: points.rot4topRight,
|
to: points.rot4topRight,
|
||||||
d: -1 * sa - 15
|
d: -1 * sa - 15,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.rot3standTip,
|
from: points.rot3standTip,
|
||||||
to: points.rot4bottomRight,
|
to: points.rot4bottomRight,
|
||||||
d: -1 * sa - 15
|
d: -1 * sa - 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ export default function (part) {
|
||||||
macro,
|
macro,
|
||||||
Point,
|
Point,
|
||||||
paths,
|
paths,
|
||||||
Path
|
Path,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
let height = measurements.chest * options.collarHeight
|
let height = measurements.chest * options.collarHeight
|
||||||
|
@ -48,12 +48,12 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
at: points.title,
|
at: points.title,
|
||||||
nr: 7,
|
nr: 7,
|
||||||
title: 'collarStand'
|
title: 'collarStand',
|
||||||
})
|
})
|
||||||
|
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.bottomLeft,
|
from: points.bottomLeft,
|
||||||
to: points.standTop
|
to: points.standTop,
|
||||||
})
|
})
|
||||||
|
|
||||||
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
|
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
|
||||||
|
@ -62,17 +62,17 @@ export default function (part) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.standTipLeft,
|
from: points.standTipLeft,
|
||||||
to: points.standTip,
|
to: points.standTip,
|
||||||
y: points.standTip.y + sa + 15
|
y: points.standTip.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomLeft,
|
from: points.bottomLeft,
|
||||||
to: points.standTop,
|
to: points.standTop,
|
||||||
x: points.standTip.x + sa + 15
|
x: points.standTip.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.standTip,
|
from: points.standTip,
|
||||||
to: points.standTop,
|
to: points.standTop,
|
||||||
x: points.standTip.x + sa + 30
|
x: points.standTip.x + sa + 30,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,14 +13,14 @@ export default function (part) {
|
||||||
to: points.bottomRight,
|
to: points.bottomRight,
|
||||||
via: points.bottomLeft,
|
via: points.bottomLeft,
|
||||||
radius: store.get('cuffRadius'),
|
radius: store.get('cuffRadius'),
|
||||||
prefix: 'roundLeft'
|
prefix: 'roundLeft',
|
||||||
})
|
})
|
||||||
macro('round', {
|
macro('round', {
|
||||||
from: points.bottomLeft,
|
from: points.bottomLeft,
|
||||||
to: points.topRight,
|
to: points.topRight,
|
||||||
via: points.bottomRight,
|
via: points.bottomRight,
|
||||||
radius: store.get('cuffRadius'),
|
radius: store.get('cuffRadius'),
|
||||||
prefix: 'roundRight'
|
prefix: 'roundRight',
|
||||||
})
|
})
|
||||||
|
|
||||||
paths.seam = new Path()
|
paths.seam = new Path()
|
||||||
|
@ -39,12 +39,12 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
at: points.title,
|
at: points.title,
|
||||||
nr: 9,
|
nr: 9,
|
||||||
title: 'cuffFacing'
|
title: 'cuffFacing',
|
||||||
})
|
})
|
||||||
|
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.bottomLeft.shift(0, 10 + store.get('cuffRadius')),
|
from: points.bottomLeft.shift(0, 10 + store.get('cuffRadius')),
|
||||||
to: points.topLeft.shift(0, 10 + store.get('cuffRadius'))
|
to: points.topLeft.shift(0, 10 + store.get('cuffRadius')),
|
||||||
})
|
})
|
||||||
|
|
||||||
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
|
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
|
||||||
|
@ -53,22 +53,22 @@ export default function (part) {
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.roundRightStart,
|
from: points.roundRightStart,
|
||||||
to: points.roundRightEnd,
|
to: points.roundRightEnd,
|
||||||
x: points.topRight.x + sa + 15
|
x: points.topRight.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.roundRightStart,
|
from: points.roundRightStart,
|
||||||
to: points.topRight,
|
to: points.topRight,
|
||||||
x: points.topRight.x + sa + 30
|
x: points.topRight.x + sa + 30,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.roundRightStart,
|
from: points.roundRightStart,
|
||||||
to: points.roundRightEnd,
|
to: points.roundRightEnd,
|
||||||
y: points.bottomRight.y + sa + 15
|
y: points.bottomRight.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.roundLeftStart,
|
from: points.roundLeftStart,
|
||||||
to: points.roundRightEnd,
|
to: points.roundRightEnd,
|
||||||
y: points.bottomRight.y + sa + 30
|
y: points.bottomRight.y + sa + 30,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@ export default function (part) {
|
||||||
macro,
|
macro,
|
||||||
Point,
|
Point,
|
||||||
paths,
|
paths,
|
||||||
Path
|
Path,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
calculateRatios(part)
|
calculateRatios(part)
|
||||||
|
@ -75,14 +75,14 @@ export default function (part) {
|
||||||
to: points.pocketBottomRight,
|
to: points.pocketBottomRight,
|
||||||
via: points.pocketBottomLeft,
|
via: points.pocketBottomLeft,
|
||||||
prefix: 'pocketRoundLeft',
|
prefix: 'pocketRoundLeft',
|
||||||
radius
|
radius,
|
||||||
})
|
})
|
||||||
macro('round', {
|
macro('round', {
|
||||||
from: points.pocketBottomLeft,
|
from: points.pocketBottomLeft,
|
||||||
to: points.pocketTopRight,
|
to: points.pocketTopRight,
|
||||||
via: points.pocketBottomRight,
|
via: points.pocketBottomRight,
|
||||||
prefix: 'pocketRoundRight',
|
prefix: 'pocketRoundRight',
|
||||||
radius
|
radius,
|
||||||
})
|
})
|
||||||
store.set('pocketRadius', radius)
|
store.set('pocketRadius', radius)
|
||||||
}
|
}
|
||||||
|
@ -110,14 +110,14 @@ export default function (part) {
|
||||||
to: points.pocketFlapBottomRight,
|
to: points.pocketFlapBottomRight,
|
||||||
via: points.pocketFlapBottomLeft,
|
via: points.pocketFlapBottomLeft,
|
||||||
prefix: 'pocketFlapRoundLeft',
|
prefix: 'pocketFlapRoundLeft',
|
||||||
radius
|
radius,
|
||||||
})
|
})
|
||||||
macro('round', {
|
macro('round', {
|
||||||
from: points.pocketFlapBottomLeft,
|
from: points.pocketFlapBottomLeft,
|
||||||
to: points.pocketFlapTopRight,
|
to: points.pocketFlapTopRight,
|
||||||
via: points.pocketFlapBottomRight,
|
via: points.pocketFlapBottomRight,
|
||||||
prefix: 'pocketFlapRoundRight',
|
prefix: 'pocketFlapRoundRight',
|
||||||
radius
|
radius,
|
||||||
})
|
})
|
||||||
store.set('pocketFlapRadius', radius)
|
store.set('pocketFlapRadius', radius)
|
||||||
}
|
}
|
||||||
|
@ -139,7 +139,7 @@ export default function (part) {
|
||||||
'chestPocketTopLeft',
|
'chestPocketTopLeft',
|
||||||
'chestPocketBottomLeft',
|
'chestPocketBottomLeft',
|
||||||
'chestPocketTopRight',
|
'chestPocketTopRight',
|
||||||
'chestPocketBottomRight'
|
'chestPocketBottomRight',
|
||||||
])
|
])
|
||||||
points[i] = points[i].rotate(options.chestPocketAngle, points.chestPocketAnchor)
|
points[i] = points[i].rotate(options.chestPocketAngle, points.chestPocketAnchor)
|
||||||
store.set('chestPocketBagDepth', points.button3Left.dx(points.chestPocketBottomLeft))
|
store.set('chestPocketBagDepth', points.button3Left.dx(points.chestPocketBottomLeft))
|
||||||
|
@ -306,7 +306,7 @@ export default function (part) {
|
||||||
|
|
||||||
macro('sprinkle', {
|
macro('sprinkle', {
|
||||||
snippet: 'notch',
|
snippet: 'notch',
|
||||||
on: ['shoulder', 'cfNeck', 'rollLineStart', 'waist', 'seat']
|
on: ['shoulder', 'cfNeck', 'rollLineStart', 'waist', 'seat'],
|
||||||
})
|
})
|
||||||
|
|
||||||
points.logo = new Point(points.chestPocketTopRight.x, points.armhole.y)
|
points.logo = new Point(points.chestPocketTopRight.x, points.armhole.y)
|
||||||
|
@ -314,7 +314,7 @@ export default function (part) {
|
||||||
|
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.cfHem,
|
from: points.cfHem,
|
||||||
to: points.cfNeck
|
to: points.cfNeck,
|
||||||
})
|
})
|
||||||
|
|
||||||
if (sa) {
|
if (sa) {
|
||||||
|
@ -329,142 +329,142 @@ export default function (part) {
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.hemEdge,
|
from: points.hemEdge,
|
||||||
to: points.flbHem,
|
to: points.flbHem,
|
||||||
d: 15
|
d: 15,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.flbHem,
|
from: points.flbHem,
|
||||||
to: points.hem,
|
to: points.hem,
|
||||||
d: 15
|
d: 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.hemEdge,
|
from: points.hemEdge,
|
||||||
to: points.hem,
|
to: points.hem,
|
||||||
y: points.hem.y + 15 + 3 * sa
|
y: points.hem.y + 15 + 3 * sa,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.rollLineStart,
|
from: points.rollLineStart,
|
||||||
to: points.pocketTopLeft,
|
to: points.pocketTopLeft,
|
||||||
y: points.pocketFlapBottomLeft.y
|
y: points.pocketFlapBottomLeft.y,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.pocketFlapTopRight,
|
from: points.pocketFlapTopRight,
|
||||||
to: points.waist,
|
to: points.waist,
|
||||||
x: points.pocketTopRight.x - 15
|
x: points.pocketTopRight.x - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.pocketTopRight,
|
from: points.pocketTopRight,
|
||||||
to: points.waist,
|
to: points.waist,
|
||||||
x: points.pocketTopRight.x - 30
|
x: points.pocketTopRight.x - 30,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.chestPocketBottomLeft,
|
from: points.chestPocketBottomLeft,
|
||||||
to: points.waist,
|
to: points.waist,
|
||||||
x: points.chestPocketBottomLeft.x - 15
|
x: points.chestPocketBottomLeft.x - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.rollLineStart,
|
from: points.rollLineStart,
|
||||||
to: points.chestPocketBottomLeft,
|
to: points.chestPocketBottomLeft,
|
||||||
y: points.chestPocketBottomLeft.y + 15
|
y: points.chestPocketBottomLeft.y + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.rollLineStart,
|
from: points.rollLineStart,
|
||||||
to: points.button3Left,
|
to: points.button3Left,
|
||||||
y: points.button3Left.y + 15
|
y: points.button3Left.y + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.button3Left,
|
from: points.button3Left,
|
||||||
to: points.button3Right,
|
to: points.button3Right,
|
||||||
y: points.button3Left.y + 15
|
y: points.button3Left.y + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.hem,
|
from: points.hem,
|
||||||
to: points.seat,
|
to: points.seat,
|
||||||
x: points.hem.x + sa + 15
|
x: points.hem.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.hem,
|
from: points.hem,
|
||||||
to: points.waist,
|
to: points.waist,
|
||||||
x: points.hem.x + sa + 30
|
x: points.hem.x + sa + 30,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.hem,
|
from: points.hem,
|
||||||
to: points.armhole,
|
to: points.armhole,
|
||||||
x: points.hem.x + sa + 45
|
x: points.hem.x + sa + 45,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.armhole,
|
from: points.armhole,
|
||||||
to: points.armholePitch,
|
to: points.armholePitch,
|
||||||
x: points.armhole.x + sa + 15
|
x: points.armhole.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.armhole,
|
from: points.armhole,
|
||||||
to: points.shoulder,
|
to: points.shoulder,
|
||||||
x: points.armhole.x + sa + 30
|
x: points.armhole.x + sa + 30,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.armhole,
|
from: points.armhole,
|
||||||
to: points.neck,
|
to: points.neck,
|
||||||
x: points.armhole.x + sa + 45
|
x: points.armhole.x + sa + 45,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.rollLineStart,
|
from: points.rollLineStart,
|
||||||
to: points.collarTip,
|
to: points.collarTip,
|
||||||
x: points.rollLineStart.x - sa - 15
|
x: points.rollLineStart.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.button2Left,
|
from: points.button2Left,
|
||||||
to: points.rollLineStart,
|
to: points.rollLineStart,
|
||||||
x: points.rollLineStart.x - sa - 15
|
x: points.rollLineStart.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.button1Left,
|
from: points.button1Left,
|
||||||
to: points.button2Left,
|
to: points.button2Left,
|
||||||
x: points.rollLineStart.x - sa - 15
|
x: points.rollLineStart.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.hemEdge,
|
from: points.hemEdge,
|
||||||
to: points.collarTip,
|
to: points.collarTip,
|
||||||
x: points.rollLineStart.x - sa - 30
|
x: points.rollLineStart.x - sa - 30,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.hemEdge,
|
from: points.hemEdge,
|
||||||
to: points.neck,
|
to: points.neck,
|
||||||
x: points.rollLineStart.x - sa - 45
|
x: points.rollLineStart.x - sa - 45,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.lapelStraightEnd,
|
from: points.lapelStraightEnd,
|
||||||
to: points.collarTip,
|
to: points.collarTip,
|
||||||
y: points.collarTip.y - sa - 15
|
y: points.collarTip.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.lapelStraightEnd,
|
from: points.lapelStraightEnd,
|
||||||
to: points.cfNeck,
|
to: points.cfNeck,
|
||||||
y: points.collarTip.y - sa - 30
|
y: points.collarTip.y - sa - 30,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.lapelStraightEnd,
|
from: points.lapelStraightEnd,
|
||||||
to: points.rollLineEnd,
|
to: points.rollLineEnd,
|
||||||
y: points.collarTip.y - sa - 45
|
y: points.collarTip.y - sa - 45,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.lapelStraightEnd,
|
from: points.lapelStraightEnd,
|
||||||
to: points.neck,
|
to: points.neck,
|
||||||
y: points.neck.y - sa - 15
|
y: points.neck.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.lapelStraightEnd,
|
from: points.lapelStraightEnd,
|
||||||
to: points.armholePitch,
|
to: points.armholePitch,
|
||||||
y: points.neck.y - sa - 30
|
y: points.neck.y - sa - 30,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.lapelStraightEnd,
|
from: points.lapelStraightEnd,
|
||||||
to: points.shoulder,
|
to: points.shoulder,
|
||||||
y: points.neck.y - sa - 45
|
y: points.neck.y - sa - 45,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.lapelStraightEnd,
|
from: points.lapelStraightEnd,
|
||||||
to: points.armhole,
|
to: points.armhole,
|
||||||
y: points.neck.y - sa - 60
|
y: points.neck.y - sa - 60,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ export default function (part) {
|
||||||
macro,
|
macro,
|
||||||
Point,
|
Point,
|
||||||
paths,
|
paths,
|
||||||
Path
|
Path,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
points.topLeft = new Point(0, 0)
|
points.topLeft = new Point(0, 0)
|
||||||
|
@ -48,12 +48,12 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
at: points.title,
|
at: points.title,
|
||||||
nr: 14,
|
nr: 14,
|
||||||
title: 'innerPocketBag'
|
title: 'innerPocketBag',
|
||||||
})
|
})
|
||||||
|
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.bottomLeft.shift(0, 10),
|
from: points.bottomLeft.shift(0, 10),
|
||||||
to: points.topLeft.shift(0, 10)
|
to: points.topLeft.shift(0, 10),
|
||||||
})
|
})
|
||||||
|
|
||||||
if (sa) {
|
if (sa) {
|
||||||
|
@ -62,14 +62,14 @@ export default function (part) {
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.bottomRight.shift(180, 15),
|
from: points.bottomRight.shift(180, 15),
|
||||||
to: points.topRight.shift(180, 15),
|
to: points.topRight.shift(180, 15),
|
||||||
text: units(store.get('innerPocketWidth') * options.innerPocketDepth * 2)
|
text: units(store.get('innerPocketWidth') * options.innerPocketDepth * 2),
|
||||||
})
|
})
|
||||||
|
|
||||||
if (paperless) {
|
if (paperless) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bottomLeft,
|
from: points.bottomLeft,
|
||||||
to: points.bottomRight,
|
to: points.bottomRight,
|
||||||
y: points.bottomLeft.y + sa + 15
|
y: points.bottomLeft.y + sa + 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,12 +24,12 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
at: points.title,
|
at: points.title,
|
||||||
nr: 15,
|
nr: 15,
|
||||||
title: 'innerPocketTab'
|
title: 'innerPocketTab',
|
||||||
})
|
})
|
||||||
|
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.top,
|
from: points.top,
|
||||||
to: points.top.shift(-45, points.top.x * 0.7)
|
to: points.top.shift(-45, points.top.x * 0.7),
|
||||||
})
|
})
|
||||||
|
|
||||||
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'lining sa')
|
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'lining sa')
|
||||||
|
@ -38,17 +38,17 @@ export default function (part) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.topLeft,
|
from: points.topLeft,
|
||||||
to: points.top,
|
to: points.top,
|
||||||
y: points.topLeft.y - sa - 15
|
y: points.topLeft.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.topLeft,
|
from: points.topLeft,
|
||||||
to: points.topRight,
|
to: points.topRight,
|
||||||
y: points.topLeft.y - sa - 30
|
y: points.topLeft.y - sa - 30,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottom,
|
from: points.bottom,
|
||||||
to: points.topRight,
|
to: points.topRight,
|
||||||
x: points.topRight.x + sa + 15
|
x: points.topRight.x + sa + 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,12 +43,12 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
at: points.title,
|
at: points.title,
|
||||||
nr: 13,
|
nr: 13,
|
||||||
title: 'innerPocketWelt'
|
title: 'innerPocketWelt',
|
||||||
})
|
})
|
||||||
|
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.bottomLeft.shift(0, 10),
|
from: points.bottomLeft.shift(0, 10),
|
||||||
to: points.topLeft.shift(0, 10)
|
to: points.topLeft.shift(0, 10),
|
||||||
})
|
})
|
||||||
|
|
||||||
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
|
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
|
||||||
|
@ -57,22 +57,22 @@ export default function (part) {
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.realBottomRight,
|
from: points.realBottomRight,
|
||||||
to: points.realTopRight,
|
to: points.realTopRight,
|
||||||
x: points.topRight.x + sa + 15
|
x: points.topRight.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomRight,
|
from: points.bottomRight,
|
||||||
to: points.topRight,
|
to: points.topRight,
|
||||||
x: points.topRight.x + sa + 30
|
x: points.topRight.x + sa + 30,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.realBottomLeft,
|
from: points.realBottomLeft,
|
||||||
to: points.realBottomRight,
|
to: points.realBottomRight,
|
||||||
y: points.bottomLeft.y + sa + 15
|
y: points.bottomLeft.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bottomLeft,
|
from: points.bottomLeft,
|
||||||
to: points.bottomRight,
|
to: points.bottomRight,
|
||||||
y: points.bottomLeft.y + sa + 30
|
y: points.bottomLeft.y + sa + 30,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ export default function (part) {
|
||||||
macro,
|
macro,
|
||||||
Point,
|
Point,
|
||||||
paths,
|
paths,
|
||||||
Path
|
Path,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
points.topLeft = new Point(0, 0)
|
points.topLeft = new Point(0, 0)
|
||||||
|
@ -24,14 +24,14 @@ export default function (part) {
|
||||||
to: points.bottomRight,
|
to: points.bottomRight,
|
||||||
via: points.bottomLeft,
|
via: points.bottomLeft,
|
||||||
radius: store.get('pocketRadius'),
|
radius: store.get('pocketRadius'),
|
||||||
prefix: 'roundLeft'
|
prefix: 'roundLeft',
|
||||||
})
|
})
|
||||||
macro('round', {
|
macro('round', {
|
||||||
from: points.bottomLeft,
|
from: points.bottomLeft,
|
||||||
to: points.topRight,
|
to: points.topRight,
|
||||||
via: points.bottomRight,
|
via: points.bottomRight,
|
||||||
radius: store.get('pocketRadius'),
|
radius: store.get('pocketRadius'),
|
||||||
prefix: 'roundRight'
|
prefix: 'roundRight',
|
||||||
})
|
})
|
||||||
|
|
||||||
paths.seam = new Path()
|
paths.seam = new Path()
|
||||||
|
@ -57,12 +57,12 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
at: points.title,
|
at: points.title,
|
||||||
nr: 10,
|
nr: 10,
|
||||||
title: 'pocket'
|
title: 'pocket',
|
||||||
})
|
})
|
||||||
|
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.bottomLeft.shift(0, 10 + (store.get('pocketRadius') || 0)),
|
from: points.bottomLeft.shift(0, 10 + (store.get('pocketRadius') || 0)),
|
||||||
to: points.edgeLeft.shift(0, 10 + (store.get('pocketRadius') || 0))
|
to: points.edgeLeft.shift(0, 10 + (store.get('pocketRadius') || 0)),
|
||||||
})
|
})
|
||||||
|
|
||||||
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
|
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
|
||||||
|
@ -71,23 +71,23 @@ export default function (part) {
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomRight,
|
from: points.bottomRight,
|
||||||
to: points.topRight,
|
to: points.topRight,
|
||||||
x: points.topRight.x + sa + 15
|
x: points.topRight.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomRight,
|
from: points.bottomRight,
|
||||||
to: points.edgeRight,
|
to: points.edgeRight,
|
||||||
x: points.topRight.x + sa + 30
|
x: points.topRight.x + sa + 30,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.edgeLeft,
|
from: points.edgeLeft,
|
||||||
to: points.edgeRight,
|
to: points.edgeRight,
|
||||||
y: points.edgeRight.y - sa - 15
|
y: points.edgeRight.y - sa - 15,
|
||||||
})
|
})
|
||||||
if (options.pocketRadius > 0) {
|
if (options.pocketRadius > 0) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.roundRightStart,
|
from: points.roundRightStart,
|
||||||
to: points.roundRightEnd,
|
to: points.roundRightEnd,
|
||||||
y: points.bottomRight.y + sa + 15
|
y: points.bottomRight.y + sa + 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ export default function (part) {
|
||||||
macro,
|
macro,
|
||||||
Point,
|
Point,
|
||||||
paths,
|
paths,
|
||||||
Path
|
Path,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
points.topLeft = new Point(0, 0)
|
points.topLeft = new Point(0, 0)
|
||||||
|
@ -22,14 +22,14 @@ export default function (part) {
|
||||||
to: points.bottomRight,
|
to: points.bottomRight,
|
||||||
via: points.bottomLeft,
|
via: points.bottomLeft,
|
||||||
radius: store.get('pocketFlapRadius'),
|
radius: store.get('pocketFlapRadius'),
|
||||||
prefix: 'roundLeft'
|
prefix: 'roundLeft',
|
||||||
})
|
})
|
||||||
macro('round', {
|
macro('round', {
|
||||||
from: points.bottomLeft,
|
from: points.bottomLeft,
|
||||||
to: points.topRight,
|
to: points.topRight,
|
||||||
via: points.bottomRight,
|
via: points.bottomRight,
|
||||||
radius: store.get('pocketFlapRadius'),
|
radius: store.get('pocketFlapRadius'),
|
||||||
prefix: 'roundRight'
|
prefix: 'roundRight',
|
||||||
})
|
})
|
||||||
|
|
||||||
paths.seam = new Path()
|
paths.seam = new Path()
|
||||||
|
@ -49,12 +49,12 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
at: points.title,
|
at: points.title,
|
||||||
nr: 11,
|
nr: 11,
|
||||||
title: 'pocketFlap'
|
title: 'pocketFlap',
|
||||||
})
|
})
|
||||||
|
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.bottomLeft.shift(0, points.topRight.x / 5),
|
from: points.bottomLeft.shift(0, points.topRight.x / 5),
|
||||||
to: points.topLeft.shift(0, points.topRight.x / 5)
|
to: points.topLeft.shift(0, points.topRight.x / 5),
|
||||||
})
|
})
|
||||||
|
|
||||||
if (sa) {
|
if (sa) {
|
||||||
|
@ -65,24 +65,24 @@ export default function (part) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.topLeft,
|
from: points.topLeft,
|
||||||
to: points.topRight,
|
to: points.topRight,
|
||||||
y: points.topLeft.y - sa - 15
|
y: points.topLeft.y - sa - 15,
|
||||||
})
|
})
|
||||||
if (options.pocketFlapRadius > 0) {
|
if (options.pocketFlapRadius > 0) {
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.roundRightStart,
|
from: points.roundRightStart,
|
||||||
to: points.roundRightEnd,
|
to: points.roundRightEnd,
|
||||||
x: points.topRight.x + sa + 15
|
x: points.topRight.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.roundRightStart,
|
from: points.roundRightStart,
|
||||||
to: points.topRight,
|
to: points.topRight,
|
||||||
x: points.topRight.x + sa + 30
|
x: points.topRight.x + sa + 30,
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomRight,
|
from: points.bottomRight,
|
||||||
to: points.topRight,
|
to: points.topRight,
|
||||||
x: points.topRight.x + sa + 15
|
x: points.topRight.x + sa + 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ export default function (part) {
|
||||||
macro,
|
macro,
|
||||||
Point,
|
Point,
|
||||||
paths,
|
paths,
|
||||||
Path
|
Path,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
points.topLeft = points.bottomLeft.shiftFractionTowards(points.topLeft, 0.75)
|
points.topLeft = points.bottomLeft.shiftFractionTowards(points.topLeft, 0.75)
|
||||||
|
@ -20,14 +20,14 @@ export default function (part) {
|
||||||
to: points.bottomRight,
|
to: points.bottomRight,
|
||||||
via: points.bottomLeft,
|
via: points.bottomLeft,
|
||||||
radius: store.get('pocketRadius'),
|
radius: store.get('pocketRadius'),
|
||||||
prefix: 'roundLeft'
|
prefix: 'roundLeft',
|
||||||
})
|
})
|
||||||
macro('round', {
|
macro('round', {
|
||||||
from: points.bottomLeft,
|
from: points.bottomLeft,
|
||||||
to: points.topRight,
|
to: points.topRight,
|
||||||
via: points.bottomRight,
|
via: points.bottomRight,
|
||||||
radius: store.get('pocketRadius'),
|
radius: store.get('pocketRadius'),
|
||||||
prefix: 'roundRight'
|
prefix: 'roundRight',
|
||||||
})
|
})
|
||||||
|
|
||||||
paths.seam = new Path()
|
paths.seam = new Path()
|
||||||
|
@ -49,12 +49,12 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
at: points.title,
|
at: points.title,
|
||||||
nr: 16,
|
nr: 16,
|
||||||
title: 'pocketLining'
|
title: 'pocketLining',
|
||||||
})
|
})
|
||||||
|
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.bottomLeft.shift(0, 10 + (store.get('pocketRadius') || 0)),
|
from: points.bottomLeft.shift(0, 10 + (store.get('pocketRadius') || 0)),
|
||||||
to: points.topLeft.shift(0, 10 + (store.get('pocketRadius') || 0))
|
to: points.topLeft.shift(0, 10 + (store.get('pocketRadius') || 0)),
|
||||||
})
|
})
|
||||||
|
|
||||||
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'lining sa')
|
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'lining sa')
|
||||||
|
@ -63,18 +63,18 @@ export default function (part) {
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomRight,
|
from: points.bottomRight,
|
||||||
to: points.topRight,
|
to: points.topRight,
|
||||||
x: points.topRight.x + sa + 15
|
x: points.topRight.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.topLeft,
|
from: points.topLeft,
|
||||||
to: points.topRight,
|
to: points.topRight,
|
||||||
y: points.topRight.y - sa - 15
|
y: points.topRight.y - sa - 15,
|
||||||
})
|
})
|
||||||
if (options.pocketRadius > 0) {
|
if (options.pocketRadius > 0) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.roundRightStart,
|
from: points.roundRightStart,
|
||||||
to: points.roundRightEnd,
|
to: points.roundRightEnd,
|
||||||
y: points.bottomRight.y + sa + 15
|
y: points.bottomRight.y + sa + 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ export default function (part) {
|
||||||
macro,
|
macro,
|
||||||
Point,
|
Point,
|
||||||
paths,
|
paths,
|
||||||
Path
|
Path,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
let length = store.get('waistToHem') - store.get('beltWidth') / 2
|
let length = store.get('waistToHem') - store.get('beltWidth') / 2
|
||||||
|
@ -71,56 +71,56 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
at: points.title,
|
at: points.title,
|
||||||
nr: 5,
|
nr: 5,
|
||||||
title: 'tail'
|
title: 'tail',
|
||||||
})
|
})
|
||||||
|
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.fold2Bottom.shift(0, 10),
|
from: points.fold2Bottom.shift(0, 10),
|
||||||
to: points.fold2Top.shift(0, 10)
|
to: points.fold2Top.shift(0, 10),
|
||||||
})
|
})
|
||||||
|
|
||||||
if (sa) paths.sa = paths.seam.offset(sa).close().attr('class', 'fabric sa')
|
if (sa) paths.sa = paths.seam.offset(sa).close().attr('class', 'fabric sa')
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.fold4Bottom.shift(0, 15),
|
from: points.fold4Bottom.shift(0, 15),
|
||||||
to: points.fold4Top.shift(0, 15),
|
to: points.fold4Top.shift(0, 15),
|
||||||
text: units(length)
|
text: units(length),
|
||||||
})
|
})
|
||||||
|
|
||||||
if (paperless) {
|
if (paperless) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbBottom,
|
from: points.cbBottom,
|
||||||
to: points.fold1Bottom,
|
to: points.fold1Bottom,
|
||||||
y: points.cbBottom.y + sa + 15
|
y: points.cbBottom.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.fold1Bottom,
|
from: points.fold1Bottom,
|
||||||
to: points.fold2Bottom,
|
to: points.fold2Bottom,
|
||||||
y: points.cbBottom.y + sa + 15
|
y: points.cbBottom.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.fold2Bottom,
|
from: points.fold2Bottom,
|
||||||
to: points.fold3Bottom,
|
to: points.fold3Bottom,
|
||||||
y: points.cbBottom.y + sa + 15
|
y: points.cbBottom.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.fold3Bottom,
|
from: points.fold3Bottom,
|
||||||
to: points.fold4Bottom,
|
to: points.fold4Bottom,
|
||||||
y: points.cbBottom.y + sa + 15
|
y: points.cbBottom.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.fold4Bottom,
|
from: points.fold4Bottom,
|
||||||
to: points.fold5Bottom,
|
to: points.fold5Bottom,
|
||||||
y: points.cbBottom.y + sa + 15
|
y: points.cbBottom.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.fold5Bottom,
|
from: points.fold5Bottom,
|
||||||
to: points.waistBottom,
|
to: points.waistBottom,
|
||||||
y: points.cbBottom.y + sa + 15
|
y: points.cbBottom.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbBottom,
|
from: points.cbBottom,
|
||||||
to: points.waistBottom,
|
to: points.waistBottom,
|
||||||
y: points.cbBottom.y + sa + 30
|
y: points.cbBottom.y + sa + 30,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@ export default function (part) {
|
||||||
paths,
|
paths,
|
||||||
Path,
|
Path,
|
||||||
Snippet,
|
Snippet,
|
||||||
snippets
|
snippets,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
// Add cuff
|
// Add cuff
|
||||||
|
@ -25,7 +25,7 @@ export default function (part) {
|
||||||
via: points.cuffBottomRight,
|
via: points.cuffBottomRight,
|
||||||
radius: length / 3,
|
radius: length / 3,
|
||||||
render: true,
|
render: true,
|
||||||
prefix: 'round'
|
prefix: 'round',
|
||||||
})
|
})
|
||||||
store.set('topCuffWidth', points.tsWristLeft.dist(points.tsWristRight))
|
store.set('topCuffWidth', points.tsWristLeft.dist(points.tsWristRight))
|
||||||
store.set('cuffLength', length)
|
store.set('cuffLength', length)
|
||||||
|
@ -55,7 +55,7 @@ export default function (part) {
|
||||||
if (complete) {
|
if (complete) {
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.boxBottom,
|
from: points.boxBottom,
|
||||||
to: points.top
|
to: points.top,
|
||||||
})
|
})
|
||||||
macro('scalebox', { at: points.tsWristLeftHelperTop })
|
macro('scalebox', { at: points.tsWristLeftHelperTop })
|
||||||
delete snippets.logo
|
delete snippets.logo
|
||||||
|
@ -68,70 +68,70 @@ export default function (part) {
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.tsWristLeft,
|
from: points.tsWristLeft,
|
||||||
to: points.tsWristRight,
|
to: points.tsWristRight,
|
||||||
d: -15
|
d: -15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.tsWristLeft,
|
from: points.tsWristLeft,
|
||||||
to: points.tsElbowLeft,
|
to: points.tsElbowLeft,
|
||||||
x: points.tsLeftEdge.x - sa - 15
|
x: points.tsLeftEdge.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.tsWristLeft,
|
from: points.tsWristLeft,
|
||||||
to: points.tsLeftEdge,
|
to: points.tsLeftEdge,
|
||||||
x: points.tsLeftEdge.x - sa - 30
|
x: points.tsLeftEdge.x - sa - 30,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.cuffBottomLeft,
|
from: points.cuffBottomLeft,
|
||||||
to: points.tsWristLeft,
|
to: points.tsWristLeft,
|
||||||
d: 15 + sa
|
d: 15 + sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.cuffBottomRight,
|
from: points.cuffBottomRight,
|
||||||
to: points.usWristRight,
|
to: points.usWristRight,
|
||||||
x: points.usWristRight.x + 15 + sa
|
x: points.usWristRight.x + 15 + sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.usWristRight,
|
from: points.usWristRight,
|
||||||
to: points.elbowRight,
|
to: points.elbowRight,
|
||||||
x: points.elbowRight.x + 15 + sa
|
x: points.elbowRight.x + 15 + sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.usWristRight,
|
from: points.usWristRight,
|
||||||
to: points.tsRightEdge,
|
to: points.tsRightEdge,
|
||||||
x: points.elbowRight.x + 30 + sa
|
x: points.elbowRight.x + 30 + sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.usWristRight,
|
from: points.usWristRight,
|
||||||
to: points.backPitchPoint,
|
to: points.backPitchPoint,
|
||||||
x: points.elbowRight.x + 45 + sa
|
x: points.elbowRight.x + 45 + sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.usWristRight,
|
from: points.usWristRight,
|
||||||
to: points.top,
|
to: points.top,
|
||||||
x: points.elbowRight.x + 60 + sa
|
x: points.elbowRight.x + 60 + sa,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.tsElbowLeft,
|
from: points.tsElbowLeft,
|
||||||
to: points.elbowRight
|
to: points.elbowRight,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.tsLeftEdge,
|
from: points.tsLeftEdge,
|
||||||
to: points.tsRightEdge
|
to: points.tsRightEdge,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.tsLeftEdge,
|
from: points.tsLeftEdge,
|
||||||
to: points.top,
|
to: points.top,
|
||||||
y: points.top.y - sa - 15
|
y: points.top.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.tsLeftEdge,
|
from: points.tsLeftEdge,
|
||||||
to: points.backPitchPoint,
|
to: points.backPitchPoint,
|
||||||
y: points.top.y - sa - 30
|
y: points.top.y - sa - 30,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.tsLeftEdge,
|
from: points.tsLeftEdge,
|
||||||
to: points.tsRightEdge,
|
to: points.tsRightEdge,
|
||||||
y: points.top.y - sa - 45
|
y: points.top.y - sa - 45,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ export default function (part) {
|
||||||
macro,
|
macro,
|
||||||
Point,
|
Point,
|
||||||
paths,
|
paths,
|
||||||
Path
|
Path,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
// Add cuff
|
// Add cuff
|
||||||
|
@ -24,7 +24,7 @@ export default function (part) {
|
||||||
via: points.cuffBottomRight,
|
via: points.cuffBottomRight,
|
||||||
radius: length / 3,
|
radius: length / 3,
|
||||||
render: true,
|
render: true,
|
||||||
prefix: 'round'
|
prefix: 'round',
|
||||||
})
|
})
|
||||||
store.set('underCuffWidth', points.usWristLeft.dist(points.usWristRight))
|
store.set('underCuffWidth', points.usWristLeft.dist(points.usWristRight))
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ export default function (part) {
|
||||||
if (complete) {
|
if (complete) {
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.boxBottom,
|
from: points.boxBottom,
|
||||||
to: new Point(points.top.x, points.usLeftEdge.y)
|
to: new Point(points.top.x, points.usLeftEdge.y),
|
||||||
})
|
})
|
||||||
|
|
||||||
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
|
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
|
||||||
|
@ -60,56 +60,56 @@ export default function (part) {
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.usWristLeft,
|
from: points.usWristLeft,
|
||||||
to: points.usWristRight,
|
to: points.usWristRight,
|
||||||
d: -15
|
d: -15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.usWristLeft,
|
from: points.usWristLeft,
|
||||||
to: points.usElbowLeft,
|
to: points.usElbowLeft,
|
||||||
x: points.usLeftEdge.x - sa - 15
|
x: points.usLeftEdge.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.usWristLeft,
|
from: points.usWristLeft,
|
||||||
to: points.usLeftEdge,
|
to: points.usLeftEdge,
|
||||||
x: points.usLeftEdge.x - sa - 30
|
x: points.usLeftEdge.x - sa - 30,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.cuffBottomLeft,
|
from: points.cuffBottomLeft,
|
||||||
to: points.usWristLeft,
|
to: points.usWristLeft,
|
||||||
d: 15 + sa
|
d: 15 + sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.cuffBottomRight,
|
from: points.cuffBottomRight,
|
||||||
to: points.usWristRight,
|
to: points.usWristRight,
|
||||||
x: points.usWristRight.x + 15 + sa
|
x: points.usWristRight.x + 15 + sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.usWristRight,
|
from: points.usWristRight,
|
||||||
to: points.elbowRight,
|
to: points.elbowRight,
|
||||||
x: points.elbowRight.x + 15 + sa
|
x: points.elbowRight.x + 15 + sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.usWristRight,
|
from: points.usWristRight,
|
||||||
to: points.usTip,
|
to: points.usTip,
|
||||||
x: points.elbowRight.x + 30 + sa
|
x: points.elbowRight.x + 30 + sa,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.usElbowLeft,
|
from: points.usElbowLeft,
|
||||||
to: points.elbowRight
|
to: points.elbowRight,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.usLeftEdge,
|
from: points.usLeftEdge,
|
||||||
to: points.usRightEdge,
|
to: points.usRightEdge,
|
||||||
d: -15
|
d: -15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.usLeftEdge,
|
from: points.usLeftEdge,
|
||||||
to: points.usTip,
|
to: points.usTip,
|
||||||
y: points.usTip.y - sa - 15
|
y: points.usTip.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.usLeftEdge,
|
from: points.usLeftEdge,
|
||||||
to: points.usTip,
|
to: points.usTip,
|
||||||
x: points.usLeftEdge.x - sa - 15
|
x: points.usLeftEdge.x - sa - 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@ export default {
|
||||||
tags: ['underwear', 'top'],
|
tags: ['underwear', 'top'],
|
||||||
optionGroups: {
|
optionGroups: {
|
||||||
fit: ['waistReduction', 'panels'],
|
fit: ['waistReduction', 'panels'],
|
||||||
style: ['backOpening', 'backRise', 'backDrop', 'frontRise', 'frontDrop', 'hipRise']
|
style: ['backOpening', 'backRise', 'backDrop', 'frontRise', 'frontDrop', 'hipRise'],
|
||||||
},
|
},
|
||||||
measurements: ['underbust', 'waist', 'hips', 'waistToUnderbust', 'waistToHips'],
|
measurements: ['underbust', 'waist', 'hips', 'waistToUnderbust', 'waistToHips'],
|
||||||
dependencies: {
|
dependencies: {
|
||||||
|
@ -21,7 +21,7 @@ export default {
|
||||||
panel4: 'panels',
|
panel4: 'panels',
|
||||||
panel5: 'panels',
|
panel5: 'panels',
|
||||||
panel6: 'panels',
|
panel6: 'panels',
|
||||||
panels: 'base'
|
panels: 'base',
|
||||||
},
|
},
|
||||||
inject: {
|
inject: {
|
||||||
panel1: 'panels',
|
panel1: 'panels',
|
||||||
|
@ -30,14 +30,14 @@ export default {
|
||||||
panel4: 'panels',
|
panel4: 'panels',
|
||||||
panel5: 'panels',
|
panel5: 'panels',
|
||||||
panel6: 'panels',
|
panel6: 'panels',
|
||||||
panels: 'base'
|
panels: 'base',
|
||||||
},
|
},
|
||||||
hide: ['panels', 'base'],
|
hide: ['panels', 'base'],
|
||||||
options: {
|
options: {
|
||||||
// Lists
|
// Lists
|
||||||
panels: {
|
panels: {
|
||||||
list: ['11', '13'],
|
list: ['11', '13'],
|
||||||
dflt: '13'
|
dflt: '13',
|
||||||
},
|
},
|
||||||
|
|
||||||
// Percentages
|
// Percentages
|
||||||
|
@ -47,6 +47,6 @@ export default {
|
||||||
backDrop: { pct: 2, min: 0, max: 5 },
|
backDrop: { pct: 2, min: 0, max: 5 },
|
||||||
frontRise: { pct: 4, min: 0.1, max: 8 },
|
frontRise: { pct: 4, min: 0.1, max: 8 },
|
||||||
frontDrop: { pct: 5, min: 0, max: 10 },
|
frontDrop: { pct: 5, min: 0, max: 10 },
|
||||||
hipRise: { pct: 5, min: 0, max: 15 }
|
hipRise: { pct: 5, min: 0, max: 15 },
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,13 +19,13 @@ export default function (part) {
|
||||||
macro('cutonfold', {
|
macro('cutonfold', {
|
||||||
to: points.bottomCF,
|
to: points.bottomCF,
|
||||||
from: points.topCF,
|
from: points.topCF,
|
||||||
grainline: true
|
grainline: true,
|
||||||
})
|
})
|
||||||
points.title = points.waistCF.shiftFractionTowards(points.underbustGap1Left, 0.5)
|
points.title = points.waistCF.shiftFractionTowards(points.underbustGap1Left, 0.5)
|
||||||
macro('title', {
|
macro('title', {
|
||||||
nr: 1,
|
nr: 1,
|
||||||
title: '',
|
title: '',
|
||||||
at: points.title
|
at: points.title,
|
||||||
})
|
})
|
||||||
if (sa) paths.sa = paths.panel1.offset(sa).attr('class', 'fabric sa')
|
if (sa) paths.sa = paths.panel1.offset(sa).attr('class', 'fabric sa')
|
||||||
}
|
}
|
||||||
|
@ -35,36 +35,36 @@ export default function (part) {
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomCF,
|
from: points.bottomCF,
|
||||||
to: points.waistCF,
|
to: points.waistCF,
|
||||||
x: points.topCF.x - sa - 15
|
x: points.topCF.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waistCF,
|
from: points.waistCF,
|
||||||
to: points.topCF,
|
to: points.topCF,
|
||||||
x: points.topCF.x - sa - 15
|
x: points.topCF.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.hipsGap1,
|
from: points.hipsGap1,
|
||||||
to: points.waistGap1Left,
|
to: points.waistGap1Left,
|
||||||
x: points.hipsGap1.x + sa + 15
|
x: points.hipsGap1.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waistGap1Left,
|
from: points.waistGap1Left,
|
||||||
to: points.underbustGap1Left,
|
to: points.underbustGap1Left,
|
||||||
x: points.hipsGap1.x + sa + 15
|
x: points.hipsGap1.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bottomCF,
|
from: points.bottomCF,
|
||||||
to: points.hipsGap1,
|
to: points.hipsGap1,
|
||||||
y: points.bottomCF.y + sa + 15
|
y: points.bottomCF.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.topCF,
|
from: points.topCF,
|
||||||
to: points.underbustGap1Left,
|
to: points.underbustGap1Left,
|
||||||
y: points.topCF.y - sa - 15
|
y: points.topCF.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.waistCF,
|
from: points.waistCF,
|
||||||
to: points.waistGap1Left
|
to: points.waistGap1Left,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -41,21 +41,21 @@ export default function (part) {
|
||||||
macro('cutonfold', {
|
macro('cutonfold', {
|
||||||
to: points.bottomCF,
|
to: points.bottomCF,
|
||||||
from: points.topCF,
|
from: points.topCF,
|
||||||
grainline: true
|
grainline: true,
|
||||||
})
|
})
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
to: points.topABsplit.translate(translation, 0),
|
to: points.topABsplit.translate(translation, 0),
|
||||||
from: new Point(
|
from: new Point(
|
||||||
points.topABsplit.translate(translation, 0).x,
|
points.topABsplit.translate(translation, 0).x,
|
||||||
points.hipsGap1.translate(translation, 0).y
|
points.hipsGap1.translate(translation, 0).y
|
||||||
)
|
),
|
||||||
})
|
})
|
||||||
points.midwayAB = points.topABsplit.shiftFractionTowards(points.bottomABsplit, 0.5)
|
points.midwayAB = points.topABsplit.shiftFractionTowards(points.bottomABsplit, 0.5)
|
||||||
points.titleA = points.underbustCF.shiftFractionTowards(points.midwayAB, 0.5)
|
points.titleA = points.underbustCF.shiftFractionTowards(points.midwayAB, 0.5)
|
||||||
macro('title', {
|
macro('title', {
|
||||||
nr: '1a',
|
nr: '1a',
|
||||||
prefix: 'panel1a',
|
prefix: 'panel1a',
|
||||||
at: points.titleA
|
at: points.titleA,
|
||||||
})
|
})
|
||||||
points.titleB = points.hipsGap1
|
points.titleB = points.hipsGap1
|
||||||
.translate(translation, 0)
|
.translate(translation, 0)
|
||||||
|
@ -63,7 +63,7 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
nr: '1b',
|
nr: '1b',
|
||||||
prefix: 'panel1b',
|
prefix: 'panel1b',
|
||||||
at: points.titleB
|
at: points.titleB,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,12 +73,12 @@ export default function (part) {
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomCF,
|
from: points.bottomCF,
|
||||||
to: points.waistCF,
|
to: points.waistCF,
|
||||||
x: points.topCF.x - sa - 30
|
x: points.topCF.x - sa - 30,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waistCF,
|
from: points.waistCF,
|
||||||
to: points.topCF,
|
to: points.topCF,
|
||||||
x: points.topCF.x - sa - 30
|
x: points.topCF.x - sa - 30,
|
||||||
})
|
})
|
||||||
points.waistAB = utils.beamsIntersect(
|
points.waistAB = utils.beamsIntersect(
|
||||||
points.topABsplit,
|
points.topABsplit,
|
||||||
|
@ -89,61 +89,61 @@ export default function (part) {
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomABsplit,
|
from: points.bottomABsplit,
|
||||||
to: points.waistAB,
|
to: points.waistAB,
|
||||||
x: points.topCF.x - sa - 15
|
x: points.topCF.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waistAB,
|
from: points.waistAB,
|
||||||
to: points.topABsplit,
|
to: points.topABsplit,
|
||||||
x: points.topCF.x - sa - 15
|
x: points.topCF.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bottomCF,
|
from: points.bottomCF,
|
||||||
to: points.bottomABsplit,
|
to: points.bottomABsplit,
|
||||||
y: points.bottomCF.y + sa + 15
|
y: points.bottomCF.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.waistCF,
|
from: points.waistCF,
|
||||||
to: points.waistAB
|
to: points.waistAB,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.topCF,
|
from: points.topCF,
|
||||||
to: points.topABsplit,
|
to: points.topABsplit,
|
||||||
y: points.topCF.y - sa - 15
|
y: points.topCF.y - sa - 15,
|
||||||
})
|
})
|
||||||
// 1b
|
// 1b
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.hipsGap1.translate(translation, 0),
|
from: points.hipsGap1.translate(translation, 0),
|
||||||
to: points.waistGap1Left.translate(translation, 0),
|
to: points.waistGap1Left.translate(translation, 0),
|
||||||
x: points.underbustGap1Left.translate(translation, 0).x + sa + 15
|
x: points.underbustGap1Left.translate(translation, 0).x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waistGap1Left.translate(translation, 0),
|
from: points.waistGap1Left.translate(translation, 0),
|
||||||
to: points.underbustGap1Left.translate(translation, 0),
|
to: points.underbustGap1Left.translate(translation, 0),
|
||||||
x: points.underbustGap1Left.translate(translation, 0).x + sa + 15
|
x: points.underbustGap1Left.translate(translation, 0).x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomABsplit.translate(translation, 0),
|
from: points.bottomABsplit.translate(translation, 0),
|
||||||
to: points.waistAB.translate(translation, 0),
|
to: points.waistAB.translate(translation, 0),
|
||||||
x: points.underbustGap1Left.translate(translation, 0).x + sa + 30
|
x: points.underbustGap1Left.translate(translation, 0).x + sa + 30,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waistAB.translate(translation, 0),
|
from: points.waistAB.translate(translation, 0),
|
||||||
to: points.topABsplit.translate(translation, 0),
|
to: points.topABsplit.translate(translation, 0),
|
||||||
x: points.underbustGap1Left.translate(translation, 0).x + sa + 30
|
x: points.underbustGap1Left.translate(translation, 0).x + sa + 30,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bottomABsplit.translate(translation, 0),
|
from: points.bottomABsplit.translate(translation, 0),
|
||||||
to: points.hipsGap1.translate(translation, 0),
|
to: points.hipsGap1.translate(translation, 0),
|
||||||
y: points.bottomABsplit.y + sa + 15
|
y: points.bottomABsplit.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.waistAB.translate(translation, 0),
|
from: points.waistAB.translate(translation, 0),
|
||||||
to: points.waistGap1Left.translate(translation, 0)
|
to: points.waistGap1Left.translate(translation, 0),
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.topABsplit.translate(translation, 0),
|
from: points.topABsplit.translate(translation, 0),
|
||||||
to: points.underbustGap1Left.translate(translation, 0),
|
to: points.underbustGap1Left.translate(translation, 0),
|
||||||
y: points.topABsplit.y - sa - 15
|
y: points.topABsplit.y - sa - 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,13 +19,13 @@ export default function (part) {
|
||||||
points.grainlineBottom = new Point(points.grainlineTop.x, points.hipsGap2.y)
|
points.grainlineBottom = new Point(points.grainlineTop.x, points.hipsGap2.y)
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.grainlineBottom,
|
from: points.grainlineBottom,
|
||||||
to: points.grainlineTop
|
to: points.grainlineTop,
|
||||||
})
|
})
|
||||||
points.title = points.grainlineTop.shift(-90, points.grainlineTop.dy(points.waistGap2Left) / 2)
|
points.title = points.grainlineTop.shift(-90, points.grainlineTop.dy(points.waistGap2Left) / 2)
|
||||||
macro('title', {
|
macro('title', {
|
||||||
nr: 2,
|
nr: 2,
|
||||||
title: '',
|
title: '',
|
||||||
at: points.title
|
at: points.title,
|
||||||
})
|
})
|
||||||
if (sa) paths.sa = paths.panel2.offset(sa).attr('class', 'fabric sa')
|
if (sa) paths.sa = paths.panel2.offset(sa).attr('class', 'fabric sa')
|
||||||
}
|
}
|
||||||
|
@ -35,36 +35,36 @@ export default function (part) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.hipsGap1,
|
from: points.hipsGap1,
|
||||||
to: points.hipsGap2,
|
to: points.hipsGap2,
|
||||||
y: points.hipsGap1.y + sa + 15
|
y: points.hipsGap1.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.waistGap1Right,
|
from: points.waistGap1Right,
|
||||||
to: points.waistGap2Left
|
to: points.waistGap2Left,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.underbustGap1Right,
|
from: points.underbustGap1Right,
|
||||||
to: points.underbustGap2Left,
|
to: points.underbustGap2Left,
|
||||||
y: points.underbustGap1Right.y - sa - 15
|
y: points.underbustGap1Right.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.hipsGap1,
|
from: points.hipsGap1,
|
||||||
to: points.waistGap1Right,
|
to: points.waistGap1Right,
|
||||||
x: points.hipsGap1.x - sa - 15
|
x: points.hipsGap1.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waistGap1Right,
|
from: points.waistGap1Right,
|
||||||
to: points.underbustGap1Right,
|
to: points.underbustGap1Right,
|
||||||
x: points.hipsGap1.x - sa - 15
|
x: points.hipsGap1.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.hipsGap2,
|
from: points.hipsGap2,
|
||||||
to: points.waistGap1Right,
|
to: points.waistGap1Right,
|
||||||
x: points.hipsGap2.x + sa + 15
|
x: points.hipsGap2.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waistGap1Right,
|
from: points.waistGap1Right,
|
||||||
to: points.underbustGap2Left,
|
to: points.underbustGap2Left,
|
||||||
x: points.hipsGap2.x + sa + 15
|
x: points.hipsGap2.x + sa + 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,13 +19,13 @@ export default function (part) {
|
||||||
points.grainlineBottom = new Point(points.grainlineTop.x, points.hipsGap3.y)
|
points.grainlineBottom = new Point(points.grainlineTop.x, points.hipsGap3.y)
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.grainlineBottom,
|
from: points.grainlineBottom,
|
||||||
to: points.grainlineTop
|
to: points.grainlineTop,
|
||||||
})
|
})
|
||||||
points.title = points.grainlineTop.shift(-90, points.grainlineTop.dy(points.waistGap3Left) / 2)
|
points.title = points.grainlineTop.shift(-90, points.grainlineTop.dy(points.waistGap3Left) / 2)
|
||||||
macro('title', {
|
macro('title', {
|
||||||
nr: 3,
|
nr: 3,
|
||||||
title: '',
|
title: '',
|
||||||
at: points.title
|
at: points.title,
|
||||||
})
|
})
|
||||||
if (sa) paths.sa = paths.panel3.offset(sa).attr('class', 'fabric sa')
|
if (sa) paths.sa = paths.panel3.offset(sa).attr('class', 'fabric sa')
|
||||||
}
|
}
|
||||||
|
@ -35,36 +35,36 @@ export default function (part) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.hipsGap2,
|
from: points.hipsGap2,
|
||||||
to: points.hipsGap3,
|
to: points.hipsGap3,
|
||||||
y: points.hipsGap2.y + sa + 15
|
y: points.hipsGap2.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.waistGap2Right,
|
from: points.waistGap2Right,
|
||||||
to: points.waistGap3Left
|
to: points.waistGap3Left,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.underbustGap2Right,
|
from: points.underbustGap2Right,
|
||||||
to: points.underbustGap3Left,
|
to: points.underbustGap3Left,
|
||||||
y: points.underbustGap2Right.y - sa - 15
|
y: points.underbustGap2Right.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.hipsGap2,
|
from: points.hipsGap2,
|
||||||
to: points.waistGap2Right,
|
to: points.waistGap2Right,
|
||||||
x: points.hipsGap2.x - sa - 15
|
x: points.hipsGap2.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waistGap2Right,
|
from: points.waistGap2Right,
|
||||||
to: points.underbustGap2Right,
|
to: points.underbustGap2Right,
|
||||||
x: points.hipsGap2.x - sa - 15
|
x: points.hipsGap2.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.hipsGap3,
|
from: points.hipsGap3,
|
||||||
to: points.waistGap2Right,
|
to: points.waistGap2Right,
|
||||||
x: points.hipsGap3.x + sa + 15
|
x: points.hipsGap3.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waistGap2Right,
|
from: points.waistGap2Right,
|
||||||
to: points.underbustGap3Left,
|
to: points.underbustGap3Left,
|
||||||
x: points.hipsGap3.x + sa + 15
|
x: points.hipsGap3.x + sa + 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,13 +19,13 @@ export default function (part) {
|
||||||
points.grainlineBottom = new Point(points.grainlineTop.x, points.hipsGap4.y)
|
points.grainlineBottom = new Point(points.grainlineTop.x, points.hipsGap4.y)
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.grainlineBottom,
|
from: points.grainlineBottom,
|
||||||
to: points.grainlineTop
|
to: points.grainlineTop,
|
||||||
})
|
})
|
||||||
points.title = points.grainlineTop.shift(-90, points.grainlineTop.dy(points.waistGap4Left) / 2)
|
points.title = points.grainlineTop.shift(-90, points.grainlineTop.dy(points.waistGap4Left) / 2)
|
||||||
macro('title', {
|
macro('title', {
|
||||||
nr: 4,
|
nr: 4,
|
||||||
title: '',
|
title: '',
|
||||||
at: points.title
|
at: points.title,
|
||||||
})
|
})
|
||||||
points.logo = points.grainlineTop.shiftFractionTowards(points.grainlineBottom, 0.8)
|
points.logo = points.grainlineTop.shiftFractionTowards(points.grainlineBottom, 0.8)
|
||||||
snippets.logo = new Snippet('logo', points.logo).attr('data-scale', 0.8)
|
snippets.logo = new Snippet('logo', points.logo).attr('data-scale', 0.8)
|
||||||
|
@ -38,36 +38,36 @@ export default function (part) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.hipsGap3,
|
from: points.hipsGap3,
|
||||||
to: points.hipsGap4,
|
to: points.hipsGap4,
|
||||||
y: points.hipsGap3.y + sa + 15
|
y: points.hipsGap3.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.waistGap3Right,
|
from: points.waistGap3Right,
|
||||||
to: points.waistGap4Left
|
to: points.waistGap4Left,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.underbustGap3Right,
|
from: points.underbustGap3Right,
|
||||||
to: points.underbustGap4Left,
|
to: points.underbustGap4Left,
|
||||||
y: points.underbustGap4Left.y - sa - 15
|
y: points.underbustGap4Left.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.hipsGap3,
|
from: points.hipsGap3,
|
||||||
to: points.waistGap3Right,
|
to: points.waistGap3Right,
|
||||||
x: points.hipsGap3.x - sa - 15
|
x: points.hipsGap3.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waistGap3Right,
|
from: points.waistGap3Right,
|
||||||
to: points.underbustGap3Right,
|
to: points.underbustGap3Right,
|
||||||
x: points.hipsGap3.x - sa - 15
|
x: points.hipsGap3.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.hipsGap4,
|
from: points.hipsGap4,
|
||||||
to: points.waistGap3Right,
|
to: points.waistGap3Right,
|
||||||
x: points.hipsGap4.x + sa + 15
|
x: points.hipsGap4.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waistGap3Right,
|
from: points.waistGap3Right,
|
||||||
to: points.underbustGap4Left,
|
to: points.underbustGap4Left,
|
||||||
x: points.hipsGap4.x + sa + 15
|
x: points.hipsGap4.x + sa + 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,13 +19,13 @@ export default function (part) {
|
||||||
points.grainlineBottom = new Point(points.grainlineTop.x, points.hipsGap5.y)
|
points.grainlineBottom = new Point(points.grainlineTop.x, points.hipsGap5.y)
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.grainlineBottom,
|
from: points.grainlineBottom,
|
||||||
to: points.grainlineTop
|
to: points.grainlineTop,
|
||||||
})
|
})
|
||||||
points.title = points.grainlineTop.shift(-90, points.grainlineTop.dy(points.waistGap5Left) / 2)
|
points.title = points.grainlineTop.shift(-90, points.grainlineTop.dy(points.waistGap5Left) / 2)
|
||||||
macro('title', {
|
macro('title', {
|
||||||
nr: 5,
|
nr: 5,
|
||||||
title: '',
|
title: '',
|
||||||
at: points.title
|
at: points.title,
|
||||||
})
|
})
|
||||||
if (sa) paths.sa = paths.panel5.offset(sa).attr('class', 'fabric sa')
|
if (sa) paths.sa = paths.panel5.offset(sa).attr('class', 'fabric sa')
|
||||||
}
|
}
|
||||||
|
@ -35,36 +35,36 @@ export default function (part) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.hipsGap4,
|
from: points.hipsGap4,
|
||||||
to: points.hipsGap5,
|
to: points.hipsGap5,
|
||||||
y: points.hipsGap4.y + sa + 15
|
y: points.hipsGap4.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.waistGap4Right,
|
from: points.waistGap4Right,
|
||||||
to: points.waistGap5Left
|
to: points.waistGap5Left,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.underbustGap4Right,
|
from: points.underbustGap4Right,
|
||||||
to: points.underbustGap5Left,
|
to: points.underbustGap5Left,
|
||||||
y: points.underbustGap5Left.y - sa - 15
|
y: points.underbustGap5Left.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.hipsGap4,
|
from: points.hipsGap4,
|
||||||
to: points.waistGap4Right,
|
to: points.waistGap4Right,
|
||||||
x: points.hipsGap4.x - sa - 15
|
x: points.hipsGap4.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waistGap4Right,
|
from: points.waistGap4Right,
|
||||||
to: points.underbustGap4Right,
|
to: points.underbustGap4Right,
|
||||||
x: points.hipsGap4.x - sa - 15
|
x: points.hipsGap4.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.hipsGap5,
|
from: points.hipsGap5,
|
||||||
to: points.waistGap4Right,
|
to: points.waistGap4Right,
|
||||||
x: points.hipsGap5.x + sa + 15
|
x: points.hipsGap5.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waistGap4Right,
|
from: points.waistGap4Right,
|
||||||
to: points.underbustGap5Left,
|
to: points.underbustGap5Left,
|
||||||
x: points.hipsGap5.x + sa + 15
|
x: points.hipsGap5.x + sa + 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,18 +19,18 @@ export default function (part) {
|
||||||
points.grainlineBottom = new Point(points.grainlineTop.x, points.hipsGap5.y)
|
points.grainlineBottom = new Point(points.grainlineTop.x, points.hipsGap5.y)
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.grainlineBottom,
|
from: points.grainlineBottom,
|
||||||
to: points.grainlineTop
|
to: points.grainlineTop,
|
||||||
})
|
})
|
||||||
points.title = points.grainlineTop.shift(-90, points.grainlineTop.dy(points.waistGap5Right) / 2)
|
points.title = points.grainlineTop.shift(-90, points.grainlineTop.dy(points.waistGap5Right) / 2)
|
||||||
macro('title', {
|
macro('title', {
|
||||||
nr: 6,
|
nr: 6,
|
||||||
title: '',
|
title: '',
|
||||||
at: points.title
|
at: points.title,
|
||||||
})
|
})
|
||||||
points.scalebox = new Point(points.grainlineTop.x, points.hipsGap5.y - 55)
|
points.scalebox = new Point(points.grainlineTop.x, points.hipsGap5.y - 55)
|
||||||
macro('scalebox', {
|
macro('scalebox', {
|
||||||
at: points.scalebox,
|
at: points.scalebox,
|
||||||
rotate: 90
|
rotate: 90,
|
||||||
})
|
})
|
||||||
if (sa) paths.sa = paths.panel6.offset(sa).attr('class', 'fabric sa')
|
if (sa) paths.sa = paths.panel6.offset(sa).attr('class', 'fabric sa')
|
||||||
}
|
}
|
||||||
|
@ -40,36 +40,36 @@ export default function (part) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.hipsGap5,
|
from: points.hipsGap5,
|
||||||
to: points.backDrop,
|
to: points.backDrop,
|
||||||
y: points.backDrop.y + sa + 15
|
y: points.backDrop.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.waistGap5Right,
|
from: points.waistGap5Right,
|
||||||
to: points.waistCB
|
to: points.waistCB,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.underbustGap5Right,
|
from: points.underbustGap5Right,
|
||||||
to: points.backRise,
|
to: points.backRise,
|
||||||
y: points.backRise.y - sa - 15
|
y: points.backRise.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.hipsGap5,
|
from: points.hipsGap5,
|
||||||
to: points.waistGap5Right,
|
to: points.waistGap5Right,
|
||||||
x: points.hipsGap5.x - sa - 15
|
x: points.hipsGap5.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waistGap5Right,
|
from: points.waistGap5Right,
|
||||||
to: points.underbustGap5Right,
|
to: points.underbustGap5Right,
|
||||||
x: points.hipsGap5.x - sa - 15
|
x: points.hipsGap5.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.backDrop,
|
from: points.backDrop,
|
||||||
to: points.waistCB,
|
to: points.waistCB,
|
||||||
x: points.backDrop.x + sa + 15
|
x: points.backDrop.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.waistCB,
|
from: points.waistCB,
|
||||||
to: points.backRise,
|
to: points.backRise,
|
||||||
x: points.backDrop.x + sa + 15
|
x: points.backDrop.x + sa + 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ export default {
|
||||||
'backPocketHorizontalPlacement',
|
'backPocketHorizontalPlacement',
|
||||||
'backPocketVerticalPlacement',
|
'backPocketVerticalPlacement',
|
||||||
'backPocketWidth',
|
'backPocketWidth',
|
||||||
'backPocketDepth'
|
'backPocketDepth',
|
||||||
],
|
],
|
||||||
frontPockets: [
|
frontPockets: [
|
||||||
'frontPocketSlantDepth',
|
'frontPocketSlantDepth',
|
||||||
|
@ -27,9 +27,9 @@ export default {
|
||||||
'frontPocketSlantBend',
|
'frontPocketSlantBend',
|
||||||
'frontPocketWidth',
|
'frontPocketWidth',
|
||||||
'frontPocketDepth',
|
'frontPocketDepth',
|
||||||
'frontPocketFacing'
|
'frontPocketFacing',
|
||||||
]
|
],
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
advanced: [
|
advanced: [
|
||||||
'crossSeamCurveStart',
|
'crossSeamCurveStart',
|
||||||
|
@ -43,9 +43,9 @@ export default {
|
||||||
'waistBalance',
|
'waistBalance',
|
||||||
'beltLoops',
|
'beltLoops',
|
||||||
{
|
{
|
||||||
fly: ['flyCurve', 'flyLength', 'flyWidth']
|
fly: ['flyCurve', 'flyLength', 'flyWidth'],
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
},
|
},
|
||||||
measurements: [
|
measurements: [
|
||||||
'crossSeam',
|
'crossSeam',
|
||||||
|
@ -59,7 +59,7 @@ export default {
|
||||||
'waistToKnee',
|
'waistToKnee',
|
||||||
'waistToHips',
|
'waistToHips',
|
||||||
'waistToSeat',
|
'waistToSeat',
|
||||||
'waistToUpperLeg'
|
'waistToUpperLeg',
|
||||||
],
|
],
|
||||||
hide: ['titanBack', 'titanFront'],
|
hide: ['titanBack', 'titanFront'],
|
||||||
inject: {
|
inject: {
|
||||||
|
@ -71,7 +71,7 @@ export default {
|
||||||
backPocketInterfacing: 'backPocket',
|
backPocketInterfacing: 'backPocket',
|
||||||
backPocketJet: 'backPocketFacing',
|
backPocketJet: 'backPocketFacing',
|
||||||
flyFacing: 'front',
|
flyFacing: 'front',
|
||||||
flyExtension: 'flyFacing'
|
flyExtension: 'flyFacing',
|
||||||
},
|
},
|
||||||
parts: ['beltLoops'],
|
parts: ['beltLoops'],
|
||||||
dependencies: {
|
dependencies: {
|
||||||
|
@ -79,7 +79,7 @@ export default {
|
||||||
titanFront: 'titanBack',
|
titanFront: 'titanBack',
|
||||||
back: ['titanBack', 'titanFront', 'front'],
|
back: ['titanBack', 'titanFront', 'front'],
|
||||||
waistband: ['titanBack', 'titanFront', 'front', 'back'],
|
waistband: ['titanBack', 'titanFront', 'front', 'back'],
|
||||||
waistbandCurved: ['titanBack', 'titanFront', 'front', 'back']
|
waistbandCurved: ['titanBack', 'titanFront', 'front', 'back'],
|
||||||
},
|
},
|
||||||
options: {
|
options: {
|
||||||
// Constants (from Titan)
|
// Constants (from Titan)
|
||||||
|
@ -141,6 +141,6 @@ export default {
|
||||||
flyWidth: { pct: 15, min: 10, max: 20 },
|
flyWidth: { pct: 15, min: 10, max: 20 },
|
||||||
|
|
||||||
// Waistband
|
// Waistband
|
||||||
beltLoops: { count: 8, min: 6, max: 12 }
|
beltLoops: { count: 8, min: 6, max: 12 },
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,13 +28,13 @@ export default (part) => {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
at: points.titleAnchor,
|
at: points.titleAnchor,
|
||||||
nr: 6,
|
nr: 6,
|
||||||
title: 'backPocketBagFacing'
|
title: 'backPocketBagFacing',
|
||||||
})
|
})
|
||||||
points.grainlineTop = points.waistbandLeft.shiftFractionTowards(points.waistbandRight, 0.15)
|
points.grainlineTop = points.waistbandLeft.shiftFractionTowards(points.waistbandRight, 0.15)
|
||||||
points.grainlineBottom = new Point(points.grainlineTop.x, points.bottomLeft.y)
|
points.grainlineBottom = new Point(points.grainlineTop.x, points.bottomLeft.y)
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.grainlineTop,
|
from: points.grainlineTop,
|
||||||
to: points.grainlineBottom
|
to: points.grainlineBottom,
|
||||||
})
|
})
|
||||||
|
|
||||||
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
|
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
|
||||||
|
@ -43,22 +43,22 @@ export default (part) => {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bottomLeft,
|
from: points.bottomLeft,
|
||||||
to: points.bottomRight,
|
to: points.bottomRight,
|
||||||
y: points.bottomLeft.y + 15
|
y: points.bottomLeft.y + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.waistbandLeft,
|
from: points.waistbandLeft,
|
||||||
to: points.waistbandRight,
|
to: points.waistbandRight,
|
||||||
y: points.waistbandLeft.y - sa - 15
|
y: points.waistbandLeft.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomRight,
|
from: points.bottomRight,
|
||||||
to: points.rightNotch,
|
to: points.rightNotch,
|
||||||
x: points.bottomRight.x + sa + 15
|
x: points.bottomRight.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomRight,
|
from: points.bottomRight,
|
||||||
to: points.waistbandRight,
|
to: points.waistbandRight,
|
||||||
x: points.bottomRight.x + sa + 30
|
x: points.bottomRight.x + sa + 30,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,19 +34,19 @@ export default (part) => {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
at: points.titleAnchor,
|
at: points.titleAnchor,
|
||||||
nr: 3,
|
nr: 3,
|
||||||
title: 'backPocketInterfacing'
|
title: 'backPocketInterfacing',
|
||||||
})
|
})
|
||||||
|
|
||||||
if (paperless) {
|
if (paperless) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bottomLeft,
|
from: points.bottomLeft,
|
||||||
to: points.bottomRight,
|
to: points.bottomRight,
|
||||||
y: points.bottomLeft.y + 15
|
y: points.bottomLeft.y + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomRight,
|
from: points.bottomRight,
|
||||||
to: points.topRight,
|
to: points.topRight,
|
||||||
x: points.topRight.x + 15
|
x: points.topRight.x + 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,25 +32,25 @@ export default (part) => {
|
||||||
at: points.titleAnchor,
|
at: points.titleAnchor,
|
||||||
nr: 4,
|
nr: 4,
|
||||||
title: 'backPocketJet',
|
title: 'backPocketJet',
|
||||||
scale: 0.5
|
scale: 0.5,
|
||||||
})
|
})
|
||||||
points.grainlineTop = points.topLeft.shiftFractionTowards(points.topRight, 0.15)
|
points.grainlineTop = points.topLeft.shiftFractionTowards(points.topRight, 0.15)
|
||||||
points.grainlineBottom = new Point(points.grainlineTop.x, points.bottomLeft.y)
|
points.grainlineBottom = new Point(points.grainlineTop.x, points.bottomLeft.y)
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.grainlineTop,
|
from: points.grainlineTop,
|
||||||
to: points.grainlineBottom
|
to: points.grainlineBottom,
|
||||||
})
|
})
|
||||||
|
|
||||||
if (paperless) {
|
if (paperless) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bottomLeft,
|
from: points.bottomLeft,
|
||||||
to: points.bottomRight,
|
to: points.bottomRight,
|
||||||
y: points.bottomLeft.y + 15
|
y: points.bottomLeft.y + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomRight,
|
from: points.bottomRight,
|
||||||
to: points.topRight,
|
to: points.topRight,
|
||||||
x: points.topRight.x + 15
|
x: points.topRight.x + 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@ export default (part) => {
|
||||||
macro,
|
macro,
|
||||||
snippets,
|
snippets,
|
||||||
Snippet,
|
Snippet,
|
||||||
sa
|
sa,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
points.leftNotch = new Point(store.get('backPocketWidth') / -2, 0)
|
points.leftNotch = new Point(store.get('backPocketWidth') / -2, 0)
|
||||||
|
@ -54,7 +54,7 @@ export default (part) => {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
at: points.titleAnchor,
|
at: points.titleAnchor,
|
||||||
nr: 5,
|
nr: 5,
|
||||||
title: 'backPocketBag'
|
title: 'backPocketBag',
|
||||||
})
|
})
|
||||||
points.logoAnchor = points.foldLeft.shiftFractionTowards(points.bottomRight, 0.5)
|
points.logoAnchor = points.foldLeft.shiftFractionTowards(points.bottomRight, 0.5)
|
||||||
snippets.logo = new Snippet('logo', points.logoAnchor)
|
snippets.logo = new Snippet('logo', points.logoAnchor)
|
||||||
|
@ -62,7 +62,7 @@ export default (part) => {
|
||||||
points.grainlineBottom = new Point(points.grainlineTop.x, points.bottomLeft.y)
|
points.grainlineBottom = new Point(points.grainlineTop.x, points.bottomLeft.y)
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.grainlineTop,
|
from: points.grainlineTop,
|
||||||
to: points.grainlineBottom
|
to: points.grainlineBottom,
|
||||||
})
|
})
|
||||||
|
|
||||||
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'lining sa')
|
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'lining sa')
|
||||||
|
@ -71,27 +71,27 @@ export default (part) => {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bottomLeft,
|
from: points.bottomLeft,
|
||||||
to: points.bottomRight,
|
to: points.bottomRight,
|
||||||
y: points.bottomLeft.y + 15
|
y: points.bottomLeft.y + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomRight,
|
from: points.bottomRight,
|
||||||
to: points.foldRight,
|
to: points.foldRight,
|
||||||
x: points.foldRight.x + 15
|
x: points.foldRight.x + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomRight,
|
from: points.bottomRight,
|
||||||
to: points.rightNotch,
|
to: points.rightNotch,
|
||||||
x: points.foldRight.x + 30
|
x: points.foldRight.x + 30,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomRight,
|
from: points.bottomRight,
|
||||||
to: points.waistbandRight,
|
to: points.waistbandRight,
|
||||||
x: points.foldRight.x + 45
|
x: points.foldRight.x + 45,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.waistbandLeft,
|
from: points.waistbandLeft,
|
||||||
to: points.waistbandRight,
|
to: points.waistbandRight,
|
||||||
y: points.waistbandLeft.y - sa - 15
|
y: points.waistbandLeft.y - sa - 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,7 @@ export default (part) => {
|
||||||
Snippet,
|
Snippet,
|
||||||
sa,
|
sa,
|
||||||
raise,
|
raise,
|
||||||
units
|
units,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
// Mark back pocket
|
// Mark back pocket
|
||||||
|
@ -142,7 +142,7 @@ export default (part) => {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
at: points.titleAnchor,
|
at: points.titleAnchor,
|
||||||
nr: 1,
|
nr: 1,
|
||||||
title: 'back'
|
title: 'back',
|
||||||
})
|
})
|
||||||
snippets.logo = new Snippet('logo', points.titleAnchor.shiftFractionTowards(points.knee, 0.5))
|
snippets.logo = new Snippet('logo', points.titleAnchor.shiftFractionTowards(points.knee, 0.5))
|
||||||
points.slantBottomNotch = new Path()
|
points.slantBottomNotch = new Path()
|
||||||
|
@ -156,20 +156,20 @@ export default (part) => {
|
||||||
)
|
)
|
||||||
macro('sprinkle', {
|
macro('sprinkle', {
|
||||||
snippet: 'bnotch',
|
snippet: 'bnotch',
|
||||||
on: ['grainlineBottom', 'slantBottomNotch', 'slantTopNotch']
|
on: ['grainlineBottom', 'slantBottomNotch', 'slantTopNotch'],
|
||||||
})
|
})
|
||||||
|
|
||||||
macro('bartack', {
|
macro('bartack', {
|
||||||
anchor: points.slantTopNotch,
|
anchor: points.slantTopNotch,
|
||||||
angle: points.slantTopNotch.angle(points.slantBottomNotch) - 90,
|
angle: points.slantTopNotch.angle(points.slantBottomNotch) - 90,
|
||||||
length: sa ? sa / 2 : 5,
|
length: sa ? sa / 2 : 5,
|
||||||
suffix: 'slantTop'
|
suffix: 'slantTop',
|
||||||
})
|
})
|
||||||
macro('bartack', {
|
macro('bartack', {
|
||||||
anchor: points.slantBottomNotch,
|
anchor: points.slantBottomNotch,
|
||||||
length: sa ? sa / 2 : 5,
|
length: sa ? sa / 2 : 5,
|
||||||
angle: 180,
|
angle: 180,
|
||||||
suffix: 'slantBottom'
|
suffix: 'slantBottom',
|
||||||
})
|
})
|
||||||
|
|
||||||
if (sa) {
|
if (sa) {
|
||||||
|
@ -198,101 +198,101 @@ export default (part) => {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.floorIn,
|
from: points.floorIn,
|
||||||
to: points.grainlineBottom,
|
to: points.grainlineBottom,
|
||||||
y: points.floorIn.y - 15
|
y: points.floorIn.y - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.grainlineBottom,
|
from: points.grainlineBottom,
|
||||||
to: points.floorOut,
|
to: points.floorOut,
|
||||||
y: points.floorIn.y - 15
|
y: points.floorIn.y - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.floorIn,
|
from: points.floorIn,
|
||||||
to: points.floorOut,
|
to: points.floorOut,
|
||||||
y: points.floorIn.y - 30
|
y: points.floorIn.y - 30,
|
||||||
})
|
})
|
||||||
|
|
||||||
let y = points.floorIn.y + sa * 6
|
let y = points.floorIn.y + sa * 6
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.fork,
|
from: points.fork,
|
||||||
to: points.grainlineBottom,
|
to: points.grainlineBottom,
|
||||||
y: y + 15
|
y: y + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.grainlineBottom,
|
from: points.grainlineBottom,
|
||||||
to: points.slantBottomNotch,
|
to: points.slantBottomNotch,
|
||||||
y: y + 15
|
y: y + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.grainlineBottom,
|
from: points.grainlineBottom,
|
||||||
to: points.slantOut,
|
to: points.slantOut,
|
||||||
y: y + 30
|
y: y + 30,
|
||||||
})
|
})
|
||||||
|
|
||||||
y = points.styleWaistIn.y - sa
|
y = points.styleWaistIn.y - sa
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.styleWaistIn,
|
from: points.styleWaistIn,
|
||||||
to: points.grainlineTop,
|
to: points.grainlineTop,
|
||||||
y: y - 15
|
y: y - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.fork,
|
from: points.fork,
|
||||||
to: points.grainlineTop,
|
to: points.grainlineTop,
|
||||||
y: y - 30
|
y: y - 30,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.grainlineTop,
|
from: points.grainlineTop,
|
||||||
to: points.waistPocketCenter,
|
to: points.waistPocketCenter,
|
||||||
y: y - 15
|
y: y - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.grainlineTop,
|
from: points.grainlineTop,
|
||||||
to: points.slantOut,
|
to: points.slantOut,
|
||||||
y: y - 30
|
y: y - 30,
|
||||||
})
|
})
|
||||||
|
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.pocketLeft,
|
from: points.pocketLeft,
|
||||||
to: points.pocketRight,
|
to: points.pocketRight,
|
||||||
d: -15
|
d: -15,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.backDartLeft,
|
from: points.backDartLeft,
|
||||||
to: points.backDartRight,
|
to: points.backDartRight,
|
||||||
d: 15
|
d: 15,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.pocketCenter,
|
from: points.pocketCenter,
|
||||||
to: points.waistPocketCenter,
|
to: points.waistPocketCenter,
|
||||||
d: 25
|
d: 25,
|
||||||
})
|
})
|
||||||
|
|
||||||
let x = points.fork.x - sa
|
let x = points.fork.x - sa
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.fork,
|
from: points.fork,
|
||||||
to: points.pocketCenter,
|
to: points.pocketCenter,
|
||||||
x: x - 15
|
x: x - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.fork,
|
from: points.fork,
|
||||||
to: points.waistPocketCenter,
|
to: points.waistPocketCenter,
|
||||||
x: x - 30
|
x: x - 30,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.fork,
|
from: points.fork,
|
||||||
to: points.styleWaistIn,
|
to: points.styleWaistIn,
|
||||||
x: x - 45
|
x: x - 45,
|
||||||
})
|
})
|
||||||
|
|
||||||
x = points.slantOut.x + sa
|
x = points.slantOut.x + sa
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.floorOut,
|
from: points.floorOut,
|
||||||
to: points.slantBottomNotch,
|
to: points.slantBottomNotch,
|
||||||
x: x + 15
|
x: x + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.floorOut,
|
from: points.floorOut,
|
||||||
to: points.slantOut,
|
to: points.slantOut,
|
||||||
x: x + 30
|
x: x + 30,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,13 +40,13 @@ export default (part) => {
|
||||||
nr: 12,
|
nr: 12,
|
||||||
title: 'beltLoops',
|
title: 'beltLoops',
|
||||||
rotation: 90,
|
rotation: 90,
|
||||||
scale: 0.7
|
scale: 0.7,
|
||||||
})
|
})
|
||||||
points.grainlineTop = new Point(points.topRight.x / 2, 0)
|
points.grainlineTop = new Point(points.topRight.x / 2, 0)
|
||||||
points.grainlineBottom = new Point(points.topRight.x / 2, length)
|
points.grainlineBottom = new Point(points.topRight.x / 2, length)
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.grainlineTop,
|
from: points.grainlineTop,
|
||||||
to: points.grainlineBottom
|
to: points.grainlineBottom,
|
||||||
})
|
})
|
||||||
for (let i = 1; i < count; i++) {
|
for (let i = 1; i < count; i++) {
|
||||||
paths[`cut${i}`] = new Path()
|
paths[`cut${i}`] = new Path()
|
||||||
|
@ -59,12 +59,12 @@ export default (part) => {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bottomLeft,
|
from: points.bottomLeft,
|
||||||
to: points.bottomRight,
|
to: points.bottomRight,
|
||||||
y: points.bottomLeft.y + sa + 15
|
y: points.bottomLeft.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomRight,
|
from: points.bottomRight,
|
||||||
to: points.topRight,
|
to: points.topRight,
|
||||||
x: points.bottomRight.x + sa + 15
|
x: points.bottomRight.x + sa + 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,13 +36,13 @@ export default (part) => {
|
||||||
macro('cutonfold', {
|
macro('cutonfold', {
|
||||||
from: points.flyTop,
|
from: points.flyTop,
|
||||||
to: points.flyCorner,
|
to: points.flyCorner,
|
||||||
grainline: true
|
grainline: true,
|
||||||
})
|
})
|
||||||
points.titleAnchor = points.flyCurveStart
|
points.titleAnchor = points.flyCurveStart
|
||||||
macro('title', {
|
macro('title', {
|
||||||
at: points.titleAnchor,
|
at: points.titleAnchor,
|
||||||
nr: 10,
|
nr: 10,
|
||||||
title: 'flyExtention'
|
title: 'flyExtention',
|
||||||
})
|
})
|
||||||
if (sa)
|
if (sa)
|
||||||
paths.sa = paths.saBase
|
paths.sa = paths.saBase
|
||||||
|
|
|
@ -25,13 +25,13 @@ export default (part) => {
|
||||||
points.grainlineBottom = new Point(points.grainlineTop.x, points.flyCurveCp2.y)
|
points.grainlineBottom = new Point(points.grainlineTop.x, points.flyCurveCp2.y)
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.grainlineTop,
|
from: points.grainlineTop,
|
||||||
to: points.grainlineBottom
|
to: points.grainlineBottom,
|
||||||
})
|
})
|
||||||
points.titleAnchor = points.grainlineTop.shiftFractionTowards(points.grainlineBottom, 0.5)
|
points.titleAnchor = points.grainlineTop.shiftFractionTowards(points.grainlineBottom, 0.5)
|
||||||
macro('title', {
|
macro('title', {
|
||||||
at: points.titleAnchor,
|
at: points.titleAnchor,
|
||||||
nr: 9,
|
nr: 9,
|
||||||
title: 'flyFacing'
|
title: 'flyFacing',
|
||||||
})
|
})
|
||||||
if (sa)
|
if (sa)
|
||||||
paths.sa = paths.saBase
|
paths.sa = paths.saBase
|
||||||
|
|
|
@ -27,11 +27,11 @@ export default (part) => {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
at: points.titleAnchor,
|
at: points.titleAnchor,
|
||||||
nr: 8,
|
nr: 8,
|
||||||
title: 'frontPocketBagFacing'
|
title: 'frontPocketBagFacing',
|
||||||
})
|
})
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.slantTop,
|
from: points.slantTop,
|
||||||
to: new Point(points.slantTop.x, points.facingDirection.y)
|
to: new Point(points.slantTop.x, points.facingDirection.y),
|
||||||
})
|
})
|
||||||
snippets.notch = new Snippet('notch', points.facingDirection)
|
snippets.notch = new Snippet('notch', points.facingDirection)
|
||||||
|
|
||||||
|
|
|
@ -34,12 +34,12 @@ export default (part) => {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
at: points.titleAnchor,
|
at: points.titleAnchor,
|
||||||
nr: 7,
|
nr: 7,
|
||||||
title: 'frontPocketBag'
|
title: 'frontPocketBag',
|
||||||
})
|
})
|
||||||
macro('cutonfold', {
|
macro('cutonfold', {
|
||||||
from: points.pocketbagBottomRight,
|
from: points.pocketbagBottomRight,
|
||||||
to: points.pocketbagTopRight,
|
to: points.pocketbagTopRight,
|
||||||
grainline: true
|
grainline: true,
|
||||||
})
|
})
|
||||||
snippets.notch = new Snippet('notch', points.facingDirection)
|
snippets.notch = new Snippet('notch', points.facingDirection)
|
||||||
|
|
||||||
|
@ -55,12 +55,12 @@ export default (part) => {
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.pocketbagBottomRight,
|
from: points.pocketbagBottomRight,
|
||||||
to: points.topPleat,
|
to: points.topPleat,
|
||||||
d: -15
|
d: -15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.pocketFacingBottom,
|
from: points.pocketFacingBottom,
|
||||||
to: points.pocketbagBottomRight,
|
to: points.pocketbagBottomRight,
|
||||||
y: points.pocketbagBottomRight.y + sa + 15
|
y: points.pocketbagBottomRight.y + sa + 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,7 @@ export default (part) => {
|
||||||
utils,
|
utils,
|
||||||
snippets,
|
snippets,
|
||||||
Snippet,
|
Snippet,
|
||||||
sa
|
sa,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
// Helper object holding the Titan side seam path
|
// Helper object holding the Titan side seam path
|
||||||
|
@ -156,7 +156,7 @@ export default (part) => {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
at: points.titleAnchor,
|
at: points.titleAnchor,
|
||||||
nr: 2,
|
nr: 2,
|
||||||
title: 'front'
|
title: 'front',
|
||||||
})
|
})
|
||||||
snippets.logo = new Snippet('logo', points.titleAnchor.shiftFractionTowards(points.knee, 0.666))
|
snippets.logo = new Snippet('logo', points.titleAnchor.shiftFractionTowards(points.knee, 0.666))
|
||||||
points.topPleat = utils.beamsIntersect(
|
points.topPleat = utils.beamsIntersect(
|
||||||
|
@ -180,8 +180,8 @@ export default (part) => {
|
||||||
'topPleat',
|
'topPleat',
|
||||||
'grainlineBottom',
|
'grainlineBottom',
|
||||||
'flyBottom',
|
'flyBottom',
|
||||||
'flyExtensionBottom'
|
'flyExtensionBottom',
|
||||||
]
|
],
|
||||||
})
|
})
|
||||||
let Jseam = new Path()
|
let Jseam = new Path()
|
||||||
.move(points.flyCurveStart)
|
.move(points.flyCurveStart)
|
||||||
|
@ -208,18 +208,18 @@ export default (part) => {
|
||||||
anchor: points.slantTopNotch,
|
anchor: points.slantTopNotch,
|
||||||
angle: points.slantTopNotch.angle(points.slantCurveStart) + 90,
|
angle: points.slantTopNotch.angle(points.slantCurveStart) + 90,
|
||||||
length: sa ? sa / 1.5 : 7.5,
|
length: sa ? sa / 1.5 : 7.5,
|
||||||
suffix: 'slantTop'
|
suffix: 'slantTop',
|
||||||
})
|
})
|
||||||
macro('bartack', {
|
macro('bartack', {
|
||||||
anchor: points.slantBottomNotch,
|
anchor: points.slantBottomNotch,
|
||||||
length: sa ? sa / 2 : 5,
|
length: sa ? sa / 2 : 5,
|
||||||
suffix: 'slantBottom'
|
suffix: 'slantBottom',
|
||||||
})
|
})
|
||||||
macro('bartackFractionAlong', {
|
macro('bartackFractionAlong', {
|
||||||
path: Jseam.reverse(),
|
path: Jseam.reverse(),
|
||||||
start: 0,
|
start: 0,
|
||||||
end: 0.1,
|
end: 0.1,
|
||||||
suffix: 'stom'
|
suffix: 'stom',
|
||||||
})
|
})
|
||||||
|
|
||||||
if (sa) {
|
if (sa) {
|
||||||
|
@ -244,87 +244,87 @@ export default (part) => {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.grainlineBottom,
|
from: points.grainlineBottom,
|
||||||
to: points.floorIn,
|
to: points.floorIn,
|
||||||
y: points.floorIn.y - 15
|
y: points.floorIn.y - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.floorOut,
|
from: points.floorOut,
|
||||||
to: points.grainlineBottom,
|
to: points.grainlineBottom,
|
||||||
y: points.floorIn.y - 15
|
y: points.floorIn.y - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.floorOut,
|
from: points.floorOut,
|
||||||
to: points.floorIn,
|
to: points.floorIn,
|
||||||
y: points.floorIn.y - 30
|
y: points.floorIn.y - 30,
|
||||||
})
|
})
|
||||||
|
|
||||||
let y = points.styleWaistIn.y - sa
|
let y = points.styleWaistIn.y - sa
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.grainlineFrom,
|
from: points.grainlineFrom,
|
||||||
to: points.flyTop,
|
to: points.flyTop,
|
||||||
y: y - 15
|
y: y - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.grainlineFrom,
|
from: points.grainlineFrom,
|
||||||
to: points.styleWaistIn,
|
to: points.styleWaistIn,
|
||||||
y: y - 30
|
y: y - 30,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.grainlineFrom,
|
from: points.grainlineFrom,
|
||||||
to: points.flyBottom,
|
to: points.flyBottom,
|
||||||
y: y - 45
|
y: y - 45,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.grainlineFrom,
|
from: points.grainlineFrom,
|
||||||
to: points.flyExtensionBottom,
|
to: points.flyExtensionBottom,
|
||||||
y: y - 60
|
y: y - 60,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.grainlineFrom,
|
from: points.grainlineFrom,
|
||||||
to: points.fork,
|
to: points.fork,
|
||||||
y: y - 75
|
y: y - 75,
|
||||||
})
|
})
|
||||||
|
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.pocketFacingTop,
|
from: points.pocketFacingTop,
|
||||||
to: points.grainlineFrom,
|
to: points.grainlineFrom,
|
||||||
y: y - 15
|
y: y - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.slantTop,
|
from: points.slantTop,
|
||||||
to: points.grainlineFrom,
|
to: points.grainlineFrom,
|
||||||
y: y - 30
|
y: y - 30,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.slantBottomNotch,
|
from: points.slantBottomNotch,
|
||||||
to: points.grainlineFrom,
|
to: points.grainlineFrom,
|
||||||
y: y - 45
|
y: y - 45,
|
||||||
})
|
})
|
||||||
|
|
||||||
let x = points.fork.x + sa
|
let x = points.fork.x + sa
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.floorIn,
|
from: points.floorIn,
|
||||||
to: points.fork,
|
to: points.fork,
|
||||||
x: x + 15
|
x: x + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.fork,
|
from: points.fork,
|
||||||
to: points.flyExtensionBottom,
|
to: points.flyExtensionBottom,
|
||||||
x: x + 15
|
x: x + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.fork,
|
from: points.fork,
|
||||||
to: points.flyBottom,
|
to: points.flyBottom,
|
||||||
x: x + 30
|
x: x + 30,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.fork,
|
from: points.fork,
|
||||||
to: points.slantTop,
|
to: points.slantTop,
|
||||||
x: x + 45
|
x: x + 45,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.fork,
|
from: points.fork,
|
||||||
to: points.styleWaistIn,
|
to: points.styleWaistIn,
|
||||||
x: x + 60
|
x: x + 60,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ export default (part) => {
|
||||||
snippets,
|
snippets,
|
||||||
Snippet,
|
Snippet,
|
||||||
sa,
|
sa,
|
||||||
units
|
units,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
if (options.waistbandCurve == 0) {
|
if (options.waistbandCurve == 0) {
|
||||||
|
@ -96,8 +96,8 @@ export default (part) => {
|
||||||
'ssLeftBottom',
|
'ssLeftBottom',
|
||||||
'ssRightBottom',
|
'ssRightBottom',
|
||||||
'ssLeftTop',
|
'ssLeftTop',
|
||||||
'ssRightTop'
|
'ssRightTop',
|
||||||
]
|
],
|
||||||
})
|
})
|
||||||
|
|
||||||
points.titleAnchor = points.cfLeftTop.shiftFractionTowards(points.ssLeftBottom, 0.5)
|
points.titleAnchor = points.cfLeftTop.shiftFractionTowards(points.ssLeftBottom, 0.5)
|
||||||
|
@ -105,12 +105,12 @@ export default (part) => {
|
||||||
at: points.titleAnchor,
|
at: points.titleAnchor,
|
||||||
nr: 11,
|
nr: 11,
|
||||||
title: 'waistband',
|
title: 'waistband',
|
||||||
rotation: 90
|
rotation: 90,
|
||||||
})
|
})
|
||||||
|
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.cbTop,
|
from: points.cbTop,
|
||||||
to: points.cbBottom
|
to: points.cbBottom,
|
||||||
})
|
})
|
||||||
|
|
||||||
paths.cf = new Path()
|
paths.cf = new Path()
|
||||||
|
@ -152,129 +152,129 @@ export default (part) => {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.edgeRightBottom,
|
from: points.edgeRightBottom,
|
||||||
to: points.cfLeftBottom,
|
to: points.cfLeftBottom,
|
||||||
y: points.edgeRightBottom.y - sa - 30
|
y: points.edgeRightBottom.y - sa - 30,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.edgeRightBottom,
|
from: points.edgeRightBottom,
|
||||||
to: points.cfLeftBottom,
|
to: points.cfLeftBottom,
|
||||||
x: points.cfLeftBottom.x + sa + 30
|
x: points.cfLeftBottom.x + sa + 30,
|
||||||
})
|
})
|
||||||
|
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.edgeRightBottom,
|
from: points.edgeRightBottom,
|
||||||
to: points.ssRightBottom,
|
to: points.ssRightBottom,
|
||||||
y: points.edgeRightBottom.y - sa - 15
|
y: points.edgeRightBottom.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.edgeRightBottom,
|
from: points.edgeRightBottom,
|
||||||
to: points.ssRightBottom,
|
to: points.ssRightBottom,
|
||||||
x: points.ssRightBottom.x + sa + 15
|
x: points.ssRightBottom.x + sa + 15,
|
||||||
})
|
})
|
||||||
|
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.ssRightBottom,
|
from: points.ssRightBottom,
|
||||||
to: points.cbBottom,
|
to: points.cbBottom,
|
||||||
y: points.ssRightBottom.y - sa - 15
|
y: points.ssRightBottom.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.ssRightBottom,
|
from: points.ssRightBottom,
|
||||||
to: points.cbBottom,
|
to: points.cbBottom,
|
||||||
x: points.cbBottom.x + sa + 15
|
x: points.cbBottom.x + sa + 15,
|
||||||
})
|
})
|
||||||
|
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbBottom,
|
from: points.cbBottom,
|
||||||
to: points.ssLeftBottom,
|
to: points.ssLeftBottom,
|
||||||
y: points.cbBottom.y - sa - 15
|
y: points.cbBottom.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.cbBottom,
|
from: points.cbBottom,
|
||||||
to: points.ssLeftBottom,
|
to: points.ssLeftBottom,
|
||||||
x: points.ssLeftBottom.x + sa + 15
|
x: points.ssLeftBottom.x + sa + 15,
|
||||||
})
|
})
|
||||||
|
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.ssLeftBottom,
|
from: points.ssLeftBottom,
|
||||||
to: points.cfLeftBottom,
|
to: points.cfLeftBottom,
|
||||||
y: points.ssLeftBottom.y - sa - 15
|
y: points.ssLeftBottom.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.ssLeftBottom,
|
from: points.ssLeftBottom,
|
||||||
to: points.cfLeftBottom,
|
to: points.cfLeftBottom,
|
||||||
x: points.cfLeftBottom.x + sa + 15
|
x: points.cfLeftBottom.x + sa + 15,
|
||||||
})
|
})
|
||||||
|
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cfLeftTop,
|
from: points.cfLeftTop,
|
||||||
to: points.cfLeftBottom,
|
to: points.cfLeftBottom,
|
||||||
y: points.cfLeftTop.y + sa + 15
|
y: points.cfLeftTop.y + sa + 15,
|
||||||
})
|
})
|
||||||
|
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.edgeRightBottom,
|
from: points.edgeRightBottom,
|
||||||
to: points.edgeRightTop,
|
to: points.edgeRightTop,
|
||||||
y: points.edgeRightBottom.y - sa - 15
|
y: points.edgeRightBottom.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.edgeRightBottom,
|
from: points.edgeRightBottom,
|
||||||
to: points.edgeRightTop,
|
to: points.edgeRightTop,
|
||||||
x: points.edgeRightTop.x - sa - 15
|
x: points.edgeRightTop.x - sa - 15,
|
||||||
})
|
})
|
||||||
|
|
||||||
// TOP OF WAISTBAND
|
// TOP OF WAISTBAND
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.edgeRightTop,
|
from: points.edgeRightTop,
|
||||||
to: points.cfLeftTop,
|
to: points.cfLeftTop,
|
||||||
y: points.edgeRightTop.y + sa + 30
|
y: points.edgeRightTop.y + sa + 30,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.edgeRightTop,
|
from: points.edgeRightTop,
|
||||||
to: points.cfLeftTop,
|
to: points.cfLeftTop,
|
||||||
x: points.edgeRightTop.x - sa - 30
|
x: points.edgeRightTop.x - sa - 30,
|
||||||
})
|
})
|
||||||
|
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.edgeRightTop,
|
from: points.edgeRightTop,
|
||||||
to: points.ssRightTop,
|
to: points.ssRightTop,
|
||||||
y: points.edgeRightTop.y + sa + 15
|
y: points.edgeRightTop.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.edgeRightTop,
|
from: points.edgeRightTop,
|
||||||
to: points.ssRightTop,
|
to: points.ssRightTop,
|
||||||
x: points.edgeRightTop.x - sa - 15
|
x: points.edgeRightTop.x - sa - 15,
|
||||||
})
|
})
|
||||||
|
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.ssRightTop,
|
from: points.ssRightTop,
|
||||||
to: points.cbTop,
|
to: points.cbTop,
|
||||||
y: points.ssRightTop.y + sa + 15
|
y: points.ssRightTop.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.ssRightTop,
|
from: points.ssRightTop,
|
||||||
to: points.cbTop,
|
to: points.cbTop,
|
||||||
x: points.ssRightBottom.x - sa - 15
|
x: points.ssRightBottom.x - sa - 15,
|
||||||
})
|
})
|
||||||
|
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.cbTop,
|
from: points.cbTop,
|
||||||
to: points.ssLeftTop,
|
to: points.ssLeftTop,
|
||||||
y: points.cbTop.y + sa + 15
|
y: points.cbTop.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.cbTop,
|
from: points.cbTop,
|
||||||
to: points.ssLeftTop,
|
to: points.ssLeftTop,
|
||||||
x: points.cbTop.x - sa - 15
|
x: points.cbTop.x - sa - 15,
|
||||||
})
|
})
|
||||||
|
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.ssLeftTop,
|
from: points.ssLeftTop,
|
||||||
to: points.cfLeftTop,
|
to: points.cfLeftTop,
|
||||||
y: points.ssLeftTop.y + sa + 15
|
y: points.ssLeftTop.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.ssLeftTop,
|
from: points.ssLeftTop,
|
||||||
to: points.cfLeftTop,
|
to: points.cfLeftTop,
|
||||||
x: points.ssLeftTop.x - sa - 15
|
x: points.ssLeftTop.x - sa - 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@ export default (part) => {
|
||||||
macro,
|
macro,
|
||||||
snippets,
|
snippets,
|
||||||
Snippet,
|
Snippet,
|
||||||
sa
|
sa,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
if (options.waistbandCurve > 0) {
|
if (options.waistbandCurve > 0) {
|
||||||
|
@ -49,7 +49,7 @@ export default (part) => {
|
||||||
if (complete) {
|
if (complete) {
|
||||||
macro('sprinkle', {
|
macro('sprinkle', {
|
||||||
snippet: 'notch',
|
snippet: 'notch',
|
||||||
on: ['cfRight', 'cfLeft', 'rsRight', 'rsLeft', 'cbRight', 'cbLeft', 'lsRight', 'lsLeft']
|
on: ['cfRight', 'cfLeft', 'rsRight', 'rsLeft', 'cbRight', 'cbLeft', 'lsRight', 'lsLeft'],
|
||||||
})
|
})
|
||||||
points.titleAnchor = points.top.shiftFractionTowards(points.bottom, 0.4)
|
points.titleAnchor = points.top.shiftFractionTowards(points.bottom, 0.4)
|
||||||
points.logoAnchor = points.top.shiftFractionTowards(points.bottom, 0.6)
|
points.logoAnchor = points.top.shiftFractionTowards(points.bottom, 0.6)
|
||||||
|
@ -57,11 +57,11 @@ export default (part) => {
|
||||||
at: points.titleAnchor,
|
at: points.titleAnchor,
|
||||||
nr: 11,
|
nr: 11,
|
||||||
title: 'waistband',
|
title: 'waistband',
|
||||||
rotation: 90
|
rotation: 90,
|
||||||
})
|
})
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.rsLeft.shift(90, 30),
|
from: points.rsLeft.shift(90, 30),
|
||||||
to: points.rsRight.shift(90, 30)
|
to: points.rsRight.shift(90, 30),
|
||||||
})
|
})
|
||||||
paths.cf = new Path()
|
paths.cf = new Path()
|
||||||
.move(points.cfLeft)
|
.move(points.cfLeft)
|
||||||
|
@ -120,12 +120,12 @@ export default (part) => {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.bottomLeft,
|
from: points.bottomLeft,
|
||||||
to: points.bottomRight,
|
to: points.bottomRight,
|
||||||
y: points.bottomLeft.y + sa + 15
|
y: points.bottomLeft.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.bottomRight,
|
from: points.bottomRight,
|
||||||
to: points.topRight,
|
to: points.topRight,
|
||||||
x: points.bottomRight.x + sa + 15
|
x: points.bottomRight.x + sa + 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,5 +13,5 @@ export default [
|
||||||
'withGist',
|
'withGist',
|
||||||
'withLanguage',
|
'withLanguage',
|
||||||
'withStorage',
|
'withStorage',
|
||||||
'Workbench'
|
'Workbench',
|
||||||
]
|
]
|
||||||
|
|
|
@ -6,6 +6,6 @@ export default function Hooks() {
|
||||||
postSample: [],
|
postSample: [],
|
||||||
preRender: [],
|
preRender: [],
|
||||||
postRender: [],
|
postRender: [],
|
||||||
insertText: []
|
insertText: [],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,5 +15,5 @@ export default {
|
||||||
Snippet,
|
Snippet,
|
||||||
utils,
|
utils,
|
||||||
patterns: {},
|
patterns: {},
|
||||||
plugins: {}
|
plugins: {},
|
||||||
}
|
}
|
||||||
|
|
|
@ -189,7 +189,7 @@ Part.prototype.shorthand = function () {
|
||||||
complete,
|
complete,
|
||||||
paperless,
|
paperless,
|
||||||
events: this.context.events,
|
events: this.context.events,
|
||||||
raise: this.context.raise
|
raise: this.context.raise,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.context.settings.debug) {
|
if (this.context.settings.debug) {
|
||||||
|
@ -241,7 +241,7 @@ Part.prototype.shorthand = function () {
|
||||||
self.context.raise.warning(`Could not set \`name\` property on \`points.${name}\``)
|
self.context.raise.warning(`Could not set \`name\` property on \`points.${name}\``)
|
||||||
}
|
}
|
||||||
return (self.points[name] = value)
|
return (self.points[name] = value)
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
shorthand.points = new Proxy(this.points || {}, pointsProxy)
|
shorthand.points = new Proxy(this.points || {}, pointsProxy)
|
||||||
// Proxy the paths object
|
// Proxy the paths object
|
||||||
|
@ -261,7 +261,7 @@ Part.prototype.shorthand = function () {
|
||||||
self.context.raise.warning(`Could not set \`name\` property on \`paths.${name}\``)
|
self.context.raise.warning(`Could not set \`name\` property on \`paths.${name}\``)
|
||||||
}
|
}
|
||||||
return (self.paths[name] = value)
|
return (self.paths[name] = value)
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
shorthand.paths = new Proxy(this.paths || {}, pathsProxy)
|
shorthand.paths = new Proxy(this.paths || {}, pathsProxy)
|
||||||
// Proxy the snippets object
|
// Proxy the snippets object
|
||||||
|
@ -289,7 +289,7 @@ Part.prototype.shorthand = function () {
|
||||||
self.context.raise.warning(`Could not set \`name\` property on \`snippets.${name}\``)
|
self.context.raise.warning(`Could not set \`name\` property on \`snippets.${name}\``)
|
||||||
}
|
}
|
||||||
return (self.snippets[name] = value)
|
return (self.snippets[name] = value)
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
shorthand.snippets = new Proxy(this.snippets || {}, snippetsProxy)
|
shorthand.snippets = new Proxy(this.snippets || {}, snippetsProxy)
|
||||||
// Proxy the measurements object
|
// Proxy the measurements object
|
||||||
|
@ -301,7 +301,7 @@ Part.prototype.shorthand = function () {
|
||||||
)
|
)
|
||||||
return Reflect.get(...arguments)
|
return Reflect.get(...arguments)
|
||||||
},
|
},
|
||||||
set: (measurements, name, value) => (self.context.settings.measurements[name] = value)
|
set: (measurements, name, value) => (self.context.settings.measurements[name] = value),
|
||||||
}
|
}
|
||||||
shorthand.measurements = new Proxy(this.context.settings.measurements || {}, measurementsProxy)
|
shorthand.measurements = new Proxy(this.context.settings.measurements || {}, measurementsProxy)
|
||||||
// Proxy the options object
|
// Proxy the options object
|
||||||
|
@ -311,7 +311,7 @@ Part.prototype.shorthand = function () {
|
||||||
self.context.raise.warning(`Tried to access \`options.${name}\` but it is \`undefined\``)
|
self.context.raise.warning(`Tried to access \`options.${name}\` but it is \`undefined\``)
|
||||||
return Reflect.get(...arguments)
|
return Reflect.get(...arguments)
|
||||||
},
|
},
|
||||||
set: (options, name, value) => (self.context.settings.options[name] = value)
|
set: (options, name, value) => (self.context.settings.options[name] = value),
|
||||||
}
|
}
|
||||||
shorthand.options = new Proxy(this.context.settings.options || {}, optionsProxy)
|
shorthand.options = new Proxy(this.context.settings.options || {}, optionsProxy)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -8,7 +8,7 @@ import {
|
||||||
pointOnLine,
|
pointOnLine,
|
||||||
pointOnCurve,
|
pointOnCurve,
|
||||||
curveEdge,
|
curveEdge,
|
||||||
round
|
round,
|
||||||
} from './utils'
|
} from './utils'
|
||||||
|
|
||||||
function Path(debug = false) {
|
function Path(debug = false) {
|
||||||
|
@ -514,18 +514,18 @@ function lineBoundingBox(line) {
|
||||||
else
|
else
|
||||||
return {
|
return {
|
||||||
topLeft: new Point(from.x, to.y),
|
topLeft: new Point(from.x, to.y),
|
||||||
bottomRight: new Point(to.x, from.y)
|
bottomRight: new Point(to.x, from.y),
|
||||||
}
|
}
|
||||||
} else if (from.x > to.x) {
|
} else if (from.x > to.x) {
|
||||||
if (from.y < to.y)
|
if (from.y < to.y)
|
||||||
return {
|
return {
|
||||||
topLeft: new Point(to.x, from.y),
|
topLeft: new Point(to.x, from.y),
|
||||||
bottomRight: new Point(from.x, to.y)
|
bottomRight: new Point(from.x, to.y),
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return {
|
return {
|
||||||
topLeft: new Point(to.x, to.y),
|
topLeft: new Point(to.x, to.y),
|
||||||
bottomRight: new Point(from.x, from.y)
|
bottomRight: new Point(from.x, from.y),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -535,7 +535,7 @@ function curveBoundingBox(curve) {
|
||||||
|
|
||||||
return {
|
return {
|
||||||
topLeft: new Point(bb.x.min, bb.y.min),
|
topLeft: new Point(bb.x.min, bb.y.min),
|
||||||
bottomRight: new Point(bb.x.max, bb.y.max)
|
bottomRight: new Point(bb.x.max, bb.y.max),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ export default function Pattern(config = { options: {} }) {
|
||||||
info: [],
|
info: [],
|
||||||
warning: [],
|
warning: [],
|
||||||
error: [],
|
error: [],
|
||||||
debug: []
|
debug: [],
|
||||||
}
|
}
|
||||||
const events = this.events
|
const events = this.events
|
||||||
this.raise = {
|
this.raise = {
|
||||||
|
@ -31,7 +31,7 @@ export default function Pattern(config = { options: {} }) {
|
||||||
},
|
},
|
||||||
debug: function (data) {
|
debug: function (data) {
|
||||||
events.debug.push(data)
|
events.debug.push(data)
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
this.raise.debug(
|
this.raise.debug(
|
||||||
`New \`@freesewing/${config.name}:${config.version}\` pattern using \`@freesewing/core:${version}\``
|
`New \`@freesewing/${config.name}:${config.version}\` pattern using \`@freesewing/core:${version}\``
|
||||||
|
@ -60,7 +60,7 @@ export default function Pattern(config = { options: {} }) {
|
||||||
margin: 2,
|
margin: 2,
|
||||||
layout: true,
|
layout: true,
|
||||||
debug: true,
|
debug: true,
|
||||||
options: {}
|
options: {},
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof this.config.dependencies === 'undefined') this.config.dependencies = {}
|
if (typeof this.config.dependencies === 'undefined') this.config.dependencies = {}
|
||||||
|
@ -100,7 +100,7 @@ export default function Pattern(config = { options: {} }) {
|
||||||
store: this.store,
|
store: this.store,
|
||||||
macros: this.macros,
|
macros: this.macros,
|
||||||
events: this.events,
|
events: this.events,
|
||||||
raise: this.raise
|
raise: this.raise,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Part closure
|
// Part closure
|
||||||
|
@ -130,7 +130,7 @@ Pattern.prototype.apply = function (settings) {
|
||||||
} else if (typeof settings[key] === 'object') {
|
} else if (typeof settings[key] === 'object') {
|
||||||
this.settings[key] = {
|
this.settings[key] = {
|
||||||
...this.settings[key],
|
...this.settings[key],
|
||||||
...settings[key]
|
...settings[key],
|
||||||
}
|
}
|
||||||
} else this.settings[key] = settings[key]
|
} else this.settings[key] = settings[key]
|
||||||
}
|
}
|
||||||
|
@ -172,7 +172,7 @@ Pattern.prototype.draft = function () {
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
this.raise.error([
|
this.raise.error([
|
||||||
`Could not inject part \`${this.config.inject[partName]}\` into part \`${partName}\``,
|
`Could not inject part \`${this.config.inject[partName]}\` into part \`${partName}\``,
|
||||||
err
|
err,
|
||||||
])
|
])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -661,7 +661,7 @@ Pattern.prototype.getRenderProps = function () {
|
||||||
debug: this.events.debug,
|
debug: this.events.debug,
|
||||||
info: this.events.info,
|
info: this.events.info,
|
||||||
warning: this.events.warning,
|
warning: this.events.warning,
|
||||||
error: this.events.error
|
error: this.events.error,
|
||||||
}
|
}
|
||||||
props.parts = {}
|
props.parts = {}
|
||||||
for (let p in this.parts) {
|
for (let p in this.parts) {
|
||||||
|
@ -674,7 +674,7 @@ Pattern.prototype.getRenderProps = function () {
|
||||||
height: this.parts[p].height,
|
height: this.parts[p].height,
|
||||||
width: this.parts[p].width,
|
width: this.parts[p].width,
|
||||||
bottomRight: this.parts[p].bottomRight,
|
bottomRight: this.parts[p].bottomRight,
|
||||||
topLeft: this.parts[p].topLeft
|
topLeft: this.parts[p].topLeft,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,13 +9,13 @@ export default function splitCurve(start, cp1, cp2, end, split) {
|
||||||
start: c1.ops[0].to,
|
start: c1.ops[0].to,
|
||||||
cp1: c1.ops[1].cp1,
|
cp1: c1.ops[1].cp1,
|
||||||
cp2: c1.ops[1].cp2,
|
cp2: c1.ops[1].cp2,
|
||||||
end: c1.ops[1].to
|
end: c1.ops[1].to,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
start: c2.ops[0].to,
|
start: c2.ops[0].to,
|
||||||
cp1: c2.ops[1].cp1,
|
cp1: c2.ops[1].cp1,
|
||||||
cp2: c2.ops[1].cp2,
|
cp2: c2.ops[1].cp2,
|
||||||
end: c2.ops[1].to
|
end: c2.ops[1].to,
|
||||||
}
|
},
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,7 +60,7 @@ Svg.prototype.render = function (pattern) {
|
||||||
let partSvg = this.renderPart(part)
|
let partSvg = this.renderPart(part)
|
||||||
this.layout[partId] = {
|
this.layout[partId] = {
|
||||||
svg: partSvg,
|
svg: partSvg,
|
||||||
transform: part.attributes.getAsArray('transform')
|
transform: part.attributes.getAsArray('transform'),
|
||||||
}
|
}
|
||||||
this.svg += this.openGroup(`${this.idPrefix}part-${partId}`, part.attributes)
|
this.svg += this.openGroup(`${this.idPrefix}part-${partId}`, part.attributes)
|
||||||
this.svg += partSvg
|
this.svg += partSvg
|
||||||
|
|
|
@ -87,13 +87,13 @@ export function pointOnCurve(start, cp1, cp2, end, check) {
|
||||||
)
|
)
|
||||||
let intersections = curve.intersects({
|
let intersections = curve.intersects({
|
||||||
p1: { x: check.x - 1, y: check.y },
|
p1: { x: check.x - 1, y: check.y },
|
||||||
p2: { x: check.x + 1, y: check.y }
|
p2: { x: check.x + 1, y: check.y },
|
||||||
})
|
})
|
||||||
if (intersections.length === 0) {
|
if (intersections.length === 0) {
|
||||||
// Handle edge case of a curve that's a perfect horizontal line
|
// Handle edge case of a curve that's a perfect horizontal line
|
||||||
intersections = curve.intersects({
|
intersections = curve.intersects({
|
||||||
p1: { x: check.x, y: check.y - 1 },
|
p1: { x: check.x, y: check.y - 1 },
|
||||||
p2: { x: check.x, y: check.y + 1 }
|
p2: { x: check.x, y: check.y + 1 },
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,14 +110,14 @@ export function splitCurve(start, cp1, cp2, end, split) {
|
||||||
start: c1.ops[0].to,
|
start: c1.ops[0].to,
|
||||||
cp1: c1.ops[1].cp1,
|
cp1: c1.ops[1].cp1,
|
||||||
cp2: c1.ops[1].cp2,
|
cp2: c1.ops[1].cp2,
|
||||||
end: c1.ops[1].to
|
end: c1.ops[1].to,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
start: c2.ops[0].to,
|
start: c2.ops[0].to,
|
||||||
cp1: c2.ops[1].cp1,
|
cp1: c2.ops[1].cp1,
|
||||||
cp2: c2.ops[1].cp2,
|
cp2: c2.ops[1].cp2,
|
||||||
end: c2.ops[1].to
|
end: c2.ops[1].to,
|
||||||
}
|
},
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -156,7 +156,7 @@ export function lineIntersectsCurve(start, end, from, cp1, cp2, to) {
|
||||||
)
|
)
|
||||||
let line = {
|
let line = {
|
||||||
p1: { x: start.x, y: start.y },
|
p1: { x: start.x, y: start.y },
|
||||||
p2: { x: end.x, y: end.y }
|
p2: { x: end.x, y: end.y },
|
||||||
}
|
}
|
||||||
for (let t of bz.intersects(line)) {
|
for (let t of bz.intersects(line)) {
|
||||||
let isect = bz.get(t)
|
let isect = bz.get(t)
|
||||||
|
|
|
@ -12,7 +12,7 @@ export default {
|
||||||
optionGroups: {
|
optionGroups: {
|
||||||
fit: ['fullness', 'waistReduction'],
|
fit: ['fullness', 'waistReduction'],
|
||||||
style: ['waistbandBelowWaist', 'cuffStyle', 'cuffWidth', 'ventLength'],
|
style: ['waistbandBelowWaist', 'cuffStyle', 'cuffWidth', 'ventLength'],
|
||||||
advanced: ['bandBelowKnee', 'kneeToBelow']
|
advanced: ['bandBelowKnee', 'kneeToBelow'],
|
||||||
},
|
},
|
||||||
parts: [
|
parts: [
|
||||||
'frontpoints',
|
'frontpoints',
|
||||||
|
@ -22,13 +22,13 @@ export default {
|
||||||
'legband',
|
'legband',
|
||||||
'legbandkeystone',
|
'legbandkeystone',
|
||||||
'pocket',
|
'pocket',
|
||||||
'pocketfacing'
|
'pocketfacing',
|
||||||
],
|
],
|
||||||
inject: {
|
inject: {
|
||||||
front: 'frontpoints',
|
front: 'frontpoints',
|
||||||
back: 'frontpoints',
|
back: 'frontpoints',
|
||||||
pocket: 'frontpoints',
|
pocket: 'frontpoints',
|
||||||
pocketfacing: 'frontpoints'
|
pocketfacing: 'frontpoints',
|
||||||
},
|
},
|
||||||
measurements: [
|
measurements: [
|
||||||
'waist',
|
'waist',
|
||||||
|
@ -38,13 +38,13 @@ export default {
|
||||||
'waistToKnee',
|
'waistToKnee',
|
||||||
'waistToHips',
|
'waistToHips',
|
||||||
'waistToFloor',
|
'waistToFloor',
|
||||||
'knee'
|
'knee',
|
||||||
],
|
],
|
||||||
dependencies: {
|
dependencies: {
|
||||||
back: 'front',
|
back: 'front',
|
||||||
legband: ['back', 'front'],
|
legband: ['back', 'front'],
|
||||||
legbandkeystone: ['back', 'front'],
|
legbandkeystone: ['back', 'front'],
|
||||||
waistband: ['back', 'front']
|
waistband: ['back', 'front'],
|
||||||
},
|
},
|
||||||
hide: ['frontpoints'],
|
hide: ['frontpoints'],
|
||||||
options: {
|
options: {
|
||||||
|
@ -68,6 +68,6 @@ export default {
|
||||||
waistReduction: { pct: 1, min: -2, max: 10 },
|
waistReduction: { pct: 1, min: -2, max: 10 },
|
||||||
cuffWidth: { pct: 0, min: -50, max: 150 },
|
cuffWidth: { pct: 0, min: -50, max: 150 },
|
||||||
cuffStyle: { dflt: 'elegant', list: ['traditional', 'elegant', 'keystone'] },
|
cuffStyle: { dflt: 'elegant', list: ['traditional', 'elegant', 'keystone'] },
|
||||||
bandBelowKnee: { pct: 25, min: 15, max: 50 }
|
bandBelowKnee: { pct: 25, min: 15, max: 50 },
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -184,7 +184,7 @@ export default function (part) {
|
||||||
sa,
|
sa,
|
||||||
store,
|
store,
|
||||||
paperless,
|
paperless,
|
||||||
macro
|
macro,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
let tempP = null
|
let tempP = null
|
||||||
|
@ -270,7 +270,7 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
nr: 77,
|
nr: 77,
|
||||||
at: points.title,
|
at: points.title,
|
||||||
title: 'Back'
|
title: 'Back',
|
||||||
})
|
})
|
||||||
points.__titleNr.attr('data-text-class', 'center')
|
points.__titleNr.attr('data-text-class', 'center')
|
||||||
points.__titleName.attr('data-text-class', 'center')
|
points.__titleName.attr('data-text-class', 'center')
|
||||||
|
@ -280,7 +280,7 @@ export default function (part) {
|
||||||
let dist = points.p11.dist(points.p4)
|
let dist = points.p11.dist(points.p4)
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.pA.shift(angle, dist * 0.35),
|
from: points.pA.shift(angle, dist * 0.35),
|
||||||
to: points.pA.shift(angle + 180, dist * 0.35)
|
to: points.pA.shift(angle + 180, dist * 0.35),
|
||||||
})
|
})
|
||||||
|
|
||||||
if (sa) {
|
if (sa) {
|
||||||
|
@ -292,61 +292,61 @@ export default function (part) {
|
||||||
if (paperless) {
|
if (paperless) {
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.topOfVent,
|
from: points.topOfVent,
|
||||||
to: points.p11
|
to: points.p11,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.p2,
|
from: points.p2,
|
||||||
to: points.p4,
|
to: points.p4,
|
||||||
d: 15
|
d: 15,
|
||||||
})
|
})
|
||||||
tempP = paths.sideSeam.intersectsY(points.p3.y)[0]
|
tempP = paths.sideSeam.intersectsY(points.p3.y)[0]
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.p5,
|
from: points.p5,
|
||||||
to: tempP
|
to: tempP,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.p3,
|
from: points.p3,
|
||||||
to: tempP
|
to: tempP,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.p2,
|
from: points.p2,
|
||||||
to: points.p4,
|
to: points.p4,
|
||||||
y: points.p2.y
|
y: points.p2.y,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.p10,
|
from: points.p10,
|
||||||
to: points.p11,
|
to: points.p11,
|
||||||
y: points.p10.y - 15
|
y: points.p10.y - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.p2,
|
from: points.p2,
|
||||||
to: points.p3,
|
to: points.p3,
|
||||||
x: points.p3.x
|
x: points.p3.x,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.p2,
|
from: points.p2,
|
||||||
to: points.p4,
|
to: points.p4,
|
||||||
x: points.p2.x
|
x: points.p2.x,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.p3,
|
from: points.p3,
|
||||||
to: points.p10,
|
to: points.p10,
|
||||||
x: points.p3.x
|
x: points.p3.x,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.p2,
|
from: points.p2,
|
||||||
to: points.p5,
|
to: points.p5,
|
||||||
d: -15
|
d: -15,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.p4,
|
from: points.p4,
|
||||||
to: points.p11,
|
to: points.p11,
|
||||||
d: -15
|
d: -15,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: tempP,
|
from: tempP,
|
||||||
to: points.p4,
|
to: points.p4,
|
||||||
d: 0
|
d: 0,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ export default function (part) {
|
||||||
sa,
|
sa,
|
||||||
store,
|
store,
|
||||||
paperless,
|
paperless,
|
||||||
macro
|
macro,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
const cc = 0.551915024494 // circle constant
|
const cc = 0.551915024494 // circle constant
|
||||||
|
@ -147,7 +147,7 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
nr: 76,
|
nr: 76,
|
||||||
at: points.title,
|
at: points.title,
|
||||||
title: 'Front'
|
title: 'Front',
|
||||||
})
|
})
|
||||||
points.__titleNr.attr('data-text-class', 'center')
|
points.__titleNr.attr('data-text-class', 'center')
|
||||||
points.__titleName.attr('data-text-class', 'center')
|
points.__titleName.attr('data-text-class', 'center')
|
||||||
|
@ -158,7 +158,7 @@ export default function (part) {
|
||||||
|
|
||||||
macro('grainline', {
|
macro('grainline', {
|
||||||
from: points.pocketBL.shiftFractionTowards(points.pocketTL, -0.9),
|
from: points.pocketBL.shiftFractionTowards(points.pocketTL, -0.9),
|
||||||
to: points.pocketTL
|
to: points.pocketTL,
|
||||||
})
|
})
|
||||||
|
|
||||||
if (sa) {
|
if (sa) {
|
||||||
|
@ -170,69 +170,69 @@ export default function (part) {
|
||||||
if (paperless) {
|
if (paperless) {
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.topOfVent,
|
from: points.topOfVent,
|
||||||
to: points.pJ
|
to: points.pJ,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.pocketSide,
|
from: points.pocketSide,
|
||||||
to: points.pocketWaist,
|
to: points.pocketWaist,
|
||||||
y: points.pocketWaist.y + 15
|
y: points.pocketWaist.y + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.pW,
|
from: points.pW,
|
||||||
to: points.pocketWaist,
|
to: points.pocketWaist,
|
||||||
y: points.pocketWaist.y + 15
|
y: points.pocketWaist.y + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.pocketWaist,
|
from: points.pocketWaist,
|
||||||
to: points.flyTop,
|
to: points.flyTop,
|
||||||
y: points.pocketWaist.y + 15
|
y: points.pocketWaist.y + 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.pAextra,
|
from: points.pAextra,
|
||||||
to: points.pR
|
to: points.pR,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.pK,
|
from: points.pK,
|
||||||
to: points.pJ,
|
to: points.pJ,
|
||||||
y: points.pJ.y - 15
|
y: points.pJ.y - 15,
|
||||||
})
|
})
|
||||||
// Keystone original (see above):
|
// Keystone original (see above):
|
||||||
if (keystone) {
|
if (keystone) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.pSlitBottom,
|
from: points.pSlitBottom,
|
||||||
to: points.pJ,
|
to: points.pJ,
|
||||||
y: points.pJ.y - 30
|
y: points.pJ.y - 30,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.pSlitTop,
|
from: points.pSlitTop,
|
||||||
to: points.pSlitBottom,
|
to: points.pSlitBottom,
|
||||||
x: points.pSlitTop.x + 15
|
x: points.pSlitTop.x + 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.pocketSide,
|
from: points.pocketSide,
|
||||||
to: points.pocketWaist,
|
to: points.pocketWaist,
|
||||||
x: points.pocketSide.x
|
x: points.pocketSide.x,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.pW,
|
from: points.pW,
|
||||||
to: points.pR,
|
to: points.pR,
|
||||||
x: points.pR.x
|
x: points.pR.x,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.pR,
|
from: points.pR,
|
||||||
to: points.pK,
|
to: points.pK,
|
||||||
x: points.pR.x
|
x: points.pR.x,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.pW,
|
from: points.pW,
|
||||||
to: points.pZ,
|
to: points.pZ,
|
||||||
x: points.pW.x + 15
|
x: points.pW.x + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.pJ,
|
from: points.pJ,
|
||||||
to: points.pocketWaist,
|
to: points.pocketWaist,
|
||||||
x: points.pocketWaist.x
|
x: points.pocketWaist.x,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ export default function (part) {
|
||||||
sa,
|
sa,
|
||||||
store,
|
store,
|
||||||
paperless,
|
paperless,
|
||||||
macro
|
macro,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
if (options.cuffStyle == 'keystone') {
|
if (options.cuffStyle == 'keystone') {
|
||||||
|
@ -138,7 +138,7 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
nr: 78,
|
nr: 78,
|
||||||
at: points.title,
|
at: points.title,
|
||||||
title: 'LegBand'
|
title: 'LegBand',
|
||||||
})
|
})
|
||||||
points.__titleNr.attr('data-text-class', 'center')
|
points.__titleNr.attr('data-text-class', 'center')
|
||||||
points.__titleName.attr('data-text-class', 'center')
|
points.__titleName.attr('data-text-class', 'center')
|
||||||
|
@ -154,34 +154,34 @@ export default function (part) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.pA,
|
from: points.pA,
|
||||||
to: points.pF,
|
to: points.pF,
|
||||||
y: points.pA.y
|
y: points.pA.y,
|
||||||
})
|
})
|
||||||
if (traditional) {
|
if (traditional) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.pB,
|
from: points.pB,
|
||||||
to: points.pC,
|
to: points.pC,
|
||||||
y: points.pB.y
|
y: points.pB.y,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.pD,
|
from: points.pD,
|
||||||
to: points.pC,
|
to: points.pC,
|
||||||
d: +sa + 15
|
d: +sa + 15,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.pA,
|
from: points.pA,
|
||||||
to: points.pAout,
|
to: points.pAout,
|
||||||
d: +sa + 15
|
d: +sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.pB,
|
from: points.pB,
|
||||||
to: points.pA,
|
to: points.pA,
|
||||||
x: points.pA.x - sa - 15
|
x: points.pA.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.pC,
|
from: points.pC,
|
||||||
to: points.pB,
|
to: points.pB,
|
||||||
x: points.pC.x - (traditional ? 0 : sa + 15)
|
x: points.pC.x - (traditional ? 0 : sa + 15),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ export default function (part) {
|
||||||
sa,
|
sa,
|
||||||
store,
|
store,
|
||||||
paperless,
|
paperless,
|
||||||
macro
|
macro,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
if (options.cuffStyle != 'keystone') {
|
if (options.cuffStyle != 'keystone') {
|
||||||
|
@ -107,7 +107,7 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
nr: 78,
|
nr: 78,
|
||||||
at: points.title,
|
at: points.title,
|
||||||
title: 'LegBand'
|
title: 'LegBand',
|
||||||
})
|
})
|
||||||
|
|
||||||
if (sa) {
|
if (sa) {
|
||||||
|
@ -120,57 +120,57 @@ export default function (part) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.pCout,
|
from: points.pCout,
|
||||||
to: points.pF,
|
to: points.pF,
|
||||||
y: points.pA.y - sa - 15
|
y: points.pA.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.pF,
|
from: points.pF,
|
||||||
to: points.pE,
|
to: points.pE,
|
||||||
y: points.pA.y - sa - 15
|
y: points.pA.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.pE,
|
from: points.pE,
|
||||||
to: points.pA,
|
to: points.pA,
|
||||||
y: points.pA.y - sa - 15
|
y: points.pA.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.pHout,
|
from: points.pHout,
|
||||||
to: points.pG,
|
to: points.pG,
|
||||||
y: points.pG.y + sa + 15
|
y: points.pG.y + sa + 15,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.pC,
|
from: points.pC,
|
||||||
to: points.pB1,
|
to: points.pB1,
|
||||||
d: 15
|
d: 15,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.pB1,
|
from: points.pB1,
|
||||||
to: points.pB2,
|
to: points.pB2,
|
||||||
d: 15
|
d: 15,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.pB2,
|
from: points.pB2,
|
||||||
to: points.pB3,
|
to: points.pB3,
|
||||||
d: 15
|
d: 15,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.pB3,
|
from: points.pB3,
|
||||||
to: points.pH,
|
to: points.pH,
|
||||||
d: 15
|
d: 15,
|
||||||
})
|
})
|
||||||
macro('ld', {
|
macro('ld', {
|
||||||
from: points.pA,
|
from: points.pA,
|
||||||
to: points.pG,
|
to: points.pG,
|
||||||
d: 15 + sa
|
d: 15 + sa,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.pE,
|
from: points.pE,
|
||||||
to: points.pJ,
|
to: points.pJ,
|
||||||
x: points.pJ.x - 15
|
x: points.pJ.x - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.pF,
|
from: points.pF,
|
||||||
to: points.pA,
|
to: points.pA,
|
||||||
x: points.pF.x - 15
|
x: points.pF.x - 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ export default function (part) {
|
||||||
sa,
|
sa,
|
||||||
store,
|
store,
|
||||||
paperless,
|
paperless,
|
||||||
macro
|
macro,
|
||||||
} = part.shorthand()
|
} = part.shorthand()
|
||||||
|
|
||||||
let halfInch = store.get('halfInch')
|
let halfInch = store.get('halfInch')
|
||||||
|
@ -77,7 +77,7 @@ export default function (part) {
|
||||||
macro('title', {
|
macro('title', {
|
||||||
nr: 2,
|
nr: 2,
|
||||||
at: points.title,
|
at: points.title,
|
||||||
title: 'Pocket'
|
title: 'Pocket',
|
||||||
})
|
})
|
||||||
points.__titleNr.attr('data-text-class', 'center')
|
points.__titleNr.attr('data-text-class', 'center')
|
||||||
points.__titleName.attr('data-text-class', 'center')
|
points.__titleName.attr('data-text-class', 'center')
|
||||||
|
@ -93,62 +93,62 @@ export default function (part) {
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.mpocketFacingBR,
|
from: points.mpocketFacingBR,
|
||||||
to: points.mpocketWaist,
|
to: points.mpocketWaist,
|
||||||
y: points.pU.y - sa - 15
|
y: points.pU.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.mpocketWaist,
|
from: points.mpocketWaist,
|
||||||
to: points.pocketTL,
|
to: points.pocketTL,
|
||||||
y: points.pU.y - sa - 15
|
y: points.pU.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.pocketTL,
|
from: points.pocketTL,
|
||||||
to: points.pocketWaist,
|
to: points.pocketWaist,
|
||||||
y: points.pU.y - sa - 15
|
y: points.pU.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.pocketWaist,
|
from: points.pocketWaist,
|
||||||
to: points.pU,
|
to: points.pU,
|
||||||
y: points.pU.y - sa - 15
|
y: points.pU.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.pU,
|
from: points.pU,
|
||||||
to: points.pocketFacingBR,
|
to: points.pocketFacingBR,
|
||||||
y: points.pU.y - sa - 15
|
y: points.pU.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('hd', {
|
macro('hd', {
|
||||||
from: points.pocketWaist,
|
from: points.pocketWaist,
|
||||||
to: points.pocketFacingTL,
|
to: points.pocketFacingTL,
|
||||||
y: points.pU.y - sa - 15
|
y: points.pU.y - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.pU,
|
from: points.pU,
|
||||||
to: points.pocketSide,
|
to: points.pocketSide,
|
||||||
x: points.pocketSide.x + sa + 15
|
x: points.pocketSide.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.pocketTL,
|
from: points.pocketTL,
|
||||||
to: points.pocketBL,
|
to: points.pocketBL,
|
||||||
x: points.pocketTL.x + 15
|
x: points.pocketTL.x + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.pocketSide,
|
from: points.pocketSide,
|
||||||
to: points.mpocketWaist,
|
to: points.mpocketWaist,
|
||||||
x: points.pocketSide.x + sa + 15
|
x: points.pocketSide.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.pocketSide,
|
from: points.pocketSide,
|
||||||
to: points.pocketFacingBR,
|
to: points.pocketFacingBR,
|
||||||
x: points.pocketSide.x + sa + 15
|
x: points.pocketSide.x + sa + 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.mpocketWaist,
|
from: points.mpocketWaist,
|
||||||
to: points.mpocketSide,
|
to: points.mpocketSide,
|
||||||
x: points.mpocketSide.x - sa - 15
|
x: points.mpocketSide.x - sa - 15,
|
||||||
})
|
})
|
||||||
macro('vd', {
|
macro('vd', {
|
||||||
from: points.mpocketSide,
|
from: points.mpocketSide,
|
||||||
to: points.mpocketFacingBR,
|
to: points.mpocketFacingBR,
|
||||||
x: points.mpocketSide.x - sa - 15
|
x: points.mpocketSide.x - sa - 15,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue