construction: Paperless sleeve
This commit is contained in:
parent
686bb2ffa7
commit
4f46b431aa
4 changed files with 42 additions and 23 deletions
|
@ -27,7 +27,7 @@
|
||||||
var pattern = freesewing.patterns.brian
|
var pattern = freesewing.patterns.brian
|
||||||
.with(debug)
|
.with(debug)
|
||||||
.with(freesewing.plugins.theme)
|
.with(freesewing.plugins.theme)
|
||||||
//.with(freesewing.plugins.designer)
|
// .with(freesewing.plugins.designer)
|
||||||
pattern.settings.measurements = {
|
pattern.settings.measurements = {
|
||||||
bicepsCircumference: 335,
|
bicepsCircumference: 335,
|
||||||
centerBackNeckToWaist: 480,
|
centerBackNeckToWaist: 480,
|
||||||
|
@ -42,7 +42,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
pattern.settings.mode = 'draft';
|
pattern.settings.mode = 'draft';
|
||||||
pattern.settings.paperless = true;
|
//pattern.settings.paperless = true;
|
||||||
pattern.settings.sa = 10;
|
pattern.settings.sa = 10;
|
||||||
pattern.settings.units = 'metric';
|
pattern.settings.units = 'metric';
|
||||||
pattern.draft();
|
pattern.draft();
|
||||||
|
|
2
packages/brian/package-lock.json
generated
2
packages/brian/package-lock.json
generated
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@freesewing-patterns/brian",
|
"name": "@freesewing-patterns/brian",
|
||||||
"version": "0.1.0",
|
"version": "0.6.0",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"version": "0.1.0",
|
"version": "0.6.0",
|
||||||
"name": "@freesewing-patterns/brian",
|
"name": "@freesewing-patterns/brian",
|
||||||
"description": "Freesewing pattern for a basic body block for menswear",
|
"description": "Freesewing pattern for a basic body block for menswear",
|
||||||
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
|
"author": "Joost De Cock <joost@decock.org> (https://github.com/joostdecock)",
|
||||||
|
|
|
@ -31,15 +31,15 @@ function draftSleevecap(part, run) {
|
||||||
// Left and right biceps points, limit impact of sleeveFactor to 25%
|
// Left and right biceps points, limit impact of sleeveFactor to 25%
|
||||||
let halfWidth =
|
let halfWidth =
|
||||||
(measurements.bicepsCircumference * (1 + options.bicepsEase)) / 2;
|
(measurements.bicepsCircumference * (1 + options.bicepsEase)) / 2;
|
||||||
points.leftBiceps = points.centerBiceps.shift(
|
points.bicepsLeft = points.centerBiceps.shift(
|
||||||
180,
|
180,
|
||||||
halfWidth * options.sleeveWidthGuarantee +
|
halfWidth * options.sleeveWidthGuarantee +
|
||||||
halfWidth * (1 - options.sleeveWidthGuarantee) * store.get("sleeveFactor")
|
halfWidth * (1 - options.sleeveWidthGuarantee) * store.get("sleeveFactor")
|
||||||
);
|
);
|
||||||
points.rightBiceps = points.leftBiceps.flipX(points.centerBiceps);
|
points.bicepsRight = points.bicepsLeft.flipX(points.centerBiceps);
|
||||||
|
|
||||||
// Pitch points
|
// Pitch points
|
||||||
let width = points.rightBiceps.x;
|
let width = points.bicepsRight.x;
|
||||||
let height = points.centerCap.y;
|
let height = points.centerCap.y;
|
||||||
points.backPitch = new Point(
|
points.backPitch = new Point(
|
||||||
-1 * width * options.sleevecapBackFactorX,
|
-1 * width * options.sleevecapBackFactorX,
|
||||||
|
@ -53,7 +53,7 @@ function draftSleevecap(part, run) {
|
||||||
// 4 sleevecap quadrants
|
// 4 sleevecap quadrants
|
||||||
// Base points
|
// Base points
|
||||||
points.capQ1Base = points.frontPitch.shiftFractionTowards(
|
points.capQ1Base = points.frontPitch.shiftFractionTowards(
|
||||||
points.rightBiceps,
|
points.bicepsRight,
|
||||||
0.5
|
0.5
|
||||||
);
|
);
|
||||||
points.capQ2Base = points.frontPitch.shiftFractionTowards(
|
points.capQ2Base = points.frontPitch.shiftFractionTowards(
|
||||||
|
@ -65,13 +65,13 @@ function draftSleevecap(part, run) {
|
||||||
0.5
|
0.5
|
||||||
);
|
);
|
||||||
points.capQ4Base = points.backPitch.shiftFractionTowards(
|
points.capQ4Base = points.backPitch.shiftFractionTowards(
|
||||||
points.leftBiceps,
|
points.bicepsLeft,
|
||||||
0.5
|
0.5
|
||||||
);
|
);
|
||||||
// Offset points
|
// Offset points
|
||||||
let baseOffset = measurements.bicepsCircumference * (1 + options.bicepsEase);
|
let baseOffset = measurements.bicepsCircumference * (1 + options.bicepsEase);
|
||||||
points.capQ1 = points.capQ1Base.shift(
|
points.capQ1 = points.capQ1Base.shift(
|
||||||
points.rightBiceps.angle(points.frontPitch) + 90,
|
points.bicepsRight.angle(points.frontPitch) + 90,
|
||||||
baseOffset * options.sleevecapQ1Offset
|
baseOffset * options.sleevecapQ1Offset
|
||||||
);
|
);
|
||||||
points.capQ2 = points.capQ2Base.shift(
|
points.capQ2 = points.capQ2Base.shift(
|
||||||
|
@ -83,16 +83,16 @@ function draftSleevecap(part, run) {
|
||||||
baseOffset * options.sleevecapQ3Offset
|
baseOffset * options.sleevecapQ3Offset
|
||||||
);
|
);
|
||||||
points.capQ4 = points.capQ4Base.shift(
|
points.capQ4 = points.capQ4Base.shift(
|
||||||
points.leftBiceps.angle(points.backPitch) - 90,
|
points.bicepsLeft.angle(points.backPitch) - 90,
|
||||||
baseOffset * options.sleevecapQ4Offset
|
baseOffset * options.sleevecapQ4Offset
|
||||||
);
|
);
|
||||||
// Control points
|
// Control points
|
||||||
points.capQ1Cp1 = points.capQ1.shift(
|
points.capQ1Cp1 = points.capQ1.shift(
|
||||||
points.frontPitch.angle(points.rightBiceps),
|
points.frontPitch.angle(points.bicepsRight),
|
||||||
baseOffset * options.sleevecapQ1Spread1
|
baseOffset * options.sleevecapQ1Spread1
|
||||||
);
|
);
|
||||||
points.capQ1Cp2 = points.capQ1.shift(
|
points.capQ1Cp2 = points.capQ1.shift(
|
||||||
points.frontPitch.angle(points.rightBiceps),
|
points.frontPitch.angle(points.bicepsRight),
|
||||||
baseOffset * options.sleevecapQ1Spread2 * -1
|
baseOffset * options.sleevecapQ1Spread2 * -1
|
||||||
);
|
);
|
||||||
points.capQ2Cp1 = points.capQ2.shift(
|
points.capQ2Cp1 = points.capQ2.shift(
|
||||||
|
@ -112,22 +112,22 @@ function draftSleevecap(part, run) {
|
||||||
baseOffset * options.sleevecapQ3Spread2 * -1
|
baseOffset * options.sleevecapQ3Spread2 * -1
|
||||||
);
|
);
|
||||||
points.capQ4Cp1 = points.capQ4.shift(
|
points.capQ4Cp1 = points.capQ4.shift(
|
||||||
points.leftBiceps.angle(points.backPitch),
|
points.bicepsLeft.angle(points.backPitch),
|
||||||
baseOffset * options.sleevecapQ4Spread1
|
baseOffset * options.sleevecapQ4Spread1
|
||||||
);
|
);
|
||||||
points.capQ4Cp2 = points.capQ4.shift(
|
points.capQ4Cp2 = points.capQ4.shift(
|
||||||
points.leftBiceps.angle(points.backPitch),
|
points.bicepsLeft.angle(points.backPitch),
|
||||||
baseOffset * options.sleevecapQ4Spread2 * -1
|
baseOffset * options.sleevecapQ4Spread2 * -1
|
||||||
);
|
);
|
||||||
|
|
||||||
// Sleevecap seamline
|
// Sleevecap seamline
|
||||||
paths.sleevecap = new Path()
|
paths.sleevecap = new Path()
|
||||||
.move(points.rightBiceps)
|
.move(points.bicepsRight)
|
||||||
.curve(points.rightBiceps, points.capQ1Cp1, points.capQ1)
|
.curve(points.bicepsRight, points.capQ1Cp1, points.capQ1)
|
||||||
.curve(points.capQ1Cp2, points.capQ2Cp1, points.capQ2)
|
.curve(points.capQ1Cp2, points.capQ2Cp1, points.capQ2)
|
||||||
.curve(points.capQ2Cp2, points.capQ3Cp1, points.capQ3)
|
.curve(points.capQ2Cp2, points.capQ3Cp1, points.capQ3)
|
||||||
.curve(points.capQ3Cp2, points.capQ4Cp1, points.capQ4)
|
.curve(points.capQ3Cp2, points.capQ4Cp1, points.capQ4)
|
||||||
.curve(points.capQ4Cp2, points.leftBiceps, points.leftBiceps);
|
.curve(points.capQ4Cp2, points.bicepsLeft, points.bicepsLeft);
|
||||||
|
|
||||||
// Store sleevecap length
|
// Store sleevecap length
|
||||||
store.set("sleevecapLength", paths.sleevecap.length());
|
store.set("sleevecapLength", paths.sleevecap.length());
|
||||||
|
@ -166,7 +166,7 @@ var sleeve = {
|
||||||
// Wrist
|
// Wrist
|
||||||
let top = paths.sleevecap.bbox().topLeft.y;
|
let top = paths.sleevecap.bbox().topLeft.y;
|
||||||
debug("Sleevecap height is ", units(Math.abs(top)));
|
debug("Sleevecap height is ", units(Math.abs(top)));
|
||||||
debug("Sleeve width is ", units(points.rightBiceps.x * 2));
|
debug("Sleeve width is ", units(points.bicepsRight.x * 2));
|
||||||
points.centerWrist = new Point(
|
points.centerWrist = new Point(
|
||||||
0,
|
0,
|
||||||
top + measurements.shoulderToWrist * (1 + options.sleeveLengthBonus)
|
top + measurements.shoulderToWrist * (1 + options.sleeveLengthBonus)
|
||||||
|
@ -180,12 +180,13 @@ var sleeve = {
|
||||||
// Paths
|
// Paths
|
||||||
paths.sleevecap.render = false;
|
paths.sleevecap.render = false;
|
||||||
paths.seam = new Path()
|
paths.seam = new Path()
|
||||||
.move(points.leftBiceps)
|
.move(points.bicepsLeft)
|
||||||
.move(points.wristLeft)
|
.move(points.wristLeft)
|
||||||
.move(points.wristRight)
|
.move(points.wristRight)
|
||||||
.line(points.rightBiceps)
|
.line(points.bicepsRight)
|
||||||
.join(paths.sleevecap)
|
.join(paths.sleevecap)
|
||||||
.close();
|
.close()
|
||||||
|
.attr("class", "fabric");
|
||||||
|
|
||||||
// Anchor point for sampling
|
// Anchor point for sampling
|
||||||
points.gridAnchor = points.origin;
|
points.gridAnchor = points.origin;
|
||||||
|
@ -218,7 +219,25 @@ var sleeve = {
|
||||||
|
|
||||||
// Paperless?
|
// Paperless?
|
||||||
if (paperless) {
|
if (paperless) {
|
||||||
//shared.dimensions(macro, points, Path, sa);
|
macro("vd", {
|
||||||
|
from: points.wristLeft,
|
||||||
|
to: points.bicepsLeft,
|
||||||
|
x: points.bicepsLeft.x - sa - 15
|
||||||
|
});
|
||||||
|
macro("vd", {
|
||||||
|
from: points.wristLeft,
|
||||||
|
to: points.sleeveTip,
|
||||||
|
x: points.bicepsLeft.x - sa - 30
|
||||||
|
});
|
||||||
|
macro("hd", {
|
||||||
|
from: points.bicepsLeft,
|
||||||
|
to: points.bicepsRight,
|
||||||
|
y: points.sleeveTip.y - sa - 30
|
||||||
|
});
|
||||||
|
macro("pd", {
|
||||||
|
path: paths.sleevecap.reverse(),
|
||||||
|
d: -1 * sa - 15
|
||||||
|
});
|
||||||
}
|
}
|
||||||
return part;
|
return part;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue