sparkles: Added sleevecapTopFactor options
This commit is contained in:
parent
5196e4ef20
commit
e0775b5dd4
5 changed files with 86 additions and 79 deletions
|
@ -1,70 +0,0 @@
|
||||||
import { version } from "../package.json";
|
|
||||||
|
|
||||||
export default {
|
|
||||||
name: "brian",
|
|
||||||
version: version,
|
|
||||||
measurements: [
|
|
||||||
"bicepsCircumference",
|
|
||||||
"centerBackNeckToWaist",
|
|
||||||
"chestCircumference",
|
|
||||||
"naturalWaistToHip",
|
|
||||||
"neckCircumference",
|
|
||||||
"shoulderSlope",
|
|
||||||
"shoulderToShoulder",
|
|
||||||
"shoulderToWrist",
|
|
||||||
"wristCircumference"
|
|
||||||
],
|
|
||||||
dependencies: {
|
|
||||||
back: "base",
|
|
||||||
front: "back",
|
|
||||||
sleevecap: "front",
|
|
||||||
sleeve: "sleevecap"
|
|
||||||
},
|
|
||||||
inject: {
|
|
||||||
back: "base",
|
|
||||||
front: "back",
|
|
||||||
sleeve: "sleevecap"
|
|
||||||
},
|
|
||||||
hide: [
|
|
||||||
"base",
|
|
||||||
"sleevecap"
|
|
||||||
],
|
|
||||||
options: {
|
|
||||||
// Constants
|
|
||||||
brianFitSleeve: true,
|
|
||||||
brianFitCollar: true,
|
|
||||||
collarFactor: 4.8,
|
|
||||||
|
|
||||||
// Percentages
|
|
||||||
acrossBackFactor: { pct: 97, min: 93, max: 100 },
|
|
||||||
armholeDepthFactor: { pct: 60, min: 50, max: 70 },
|
|
||||||
backNeckCutout: { pct: 5, min: 2, max: 8 },
|
|
||||||
bicepsEase: { pct: 15, min: 0, max: 50 },
|
|
||||||
chestEase: { pct: 8, min: -4, max: 20 },
|
|
||||||
collarEase: { pct: 3.5, min: 0, max: 10 },
|
|
||||||
cuffEase: { pct: 20, min: 0, max: 200 },
|
|
||||||
frontArmholeDeeper: { pct: 0.5, min: 0, max: 1.5 },
|
|
||||||
lengthBonus: { pct: 0, min: -4, max: 60 },
|
|
||||||
shoulderEase: { pct: 0, min: -2, max: 6 },
|
|
||||||
shoulderSlopeReduction: { pct: 0, min: 0, max: 8 },
|
|
||||||
sleevecapEase: { pct: 1, min: 0, max: 10 },
|
|
||||||
sleevecapBackFactorX: { pct: 60, min: 35, max: 65 },
|
|
||||||
sleevecapBackFactorY: { pct: 33, min: 35, max: 65 },
|
|
||||||
sleevecapFrontFactorX: { pct: 55, min: 35, max: 65 },
|
|
||||||
sleevecapFrontFactorY: { pct: 33, min: 35, max: 65 },
|
|
||||||
sleevecapQ1Offset: { pct: 3, min: 0, max: 7 },
|
|
||||||
sleevecapQ2Offset: { pct: 5.5, min: 0, max: 7 },
|
|
||||||
sleevecapQ3Offset: { pct: 4.5, min: 0, max: 7 },
|
|
||||||
sleevecapQ4Offset: { pct: 1, min: 0, max: 7 },
|
|
||||||
sleevecapQ1Spread1: { pct: 6, min: 4, max: 20 },
|
|
||||||
sleevecapQ1Spread2: { pct: 15, min: 4, max: 20 },
|
|
||||||
sleevecapQ2Spread1: { pct: 15, min: 4, max: 20 },
|
|
||||||
sleevecapQ2Spread2: { pct: 10, min: 4, max: 20 },
|
|
||||||
sleevecapQ3Spread1: { pct: 10, min: 4, max: 20 },
|
|
||||||
sleevecapQ3Spread2: { pct: 8, min: 4, max: 20 },
|
|
||||||
sleevecapQ4Spread1: { pct: 7, min: 4, max: 20 },
|
|
||||||
sleevecapQ4Spread2: { pct: 7, min: 4, max: 20 },
|
|
||||||
sleeveWidthGuarantee: { pct: 90, min: 25, max: 100 },
|
|
||||||
sleeveLengthBonus: { pct: 0, min:-40, max: 10 },
|
|
||||||
}
|
|
||||||
};
|
|
69
packages/brian/config/index.js
Normal file
69
packages/brian/config/index.js
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
import { version } from "../package.json";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "brian",
|
||||||
|
version: version,
|
||||||
|
measurements: [
|
||||||
|
"bicepsCircumference",
|
||||||
|
"centerBackNeckToWaist",
|
||||||
|
"chestCircumference",
|
||||||
|
"naturalWaistToHip",
|
||||||
|
"neckCircumference",
|
||||||
|
"shoulderSlope",
|
||||||
|
"shoulderToShoulder",
|
||||||
|
"shoulderToWrist",
|
||||||
|
"wristCircumference"
|
||||||
|
],
|
||||||
|
dependencies: {
|
||||||
|
back: "base",
|
||||||
|
front: "back",
|
||||||
|
sleevecap: "front",
|
||||||
|
sleeve: "sleevecap"
|
||||||
|
},
|
||||||
|
inject: {
|
||||||
|
back: "base",
|
||||||
|
front: "back",
|
||||||
|
sleeve: "sleevecap"
|
||||||
|
},
|
||||||
|
hide: ["base", "sleevecap"],
|
||||||
|
options: {
|
||||||
|
// Constants
|
||||||
|
brianFitSleeve: true,
|
||||||
|
brianFitCollar: true,
|
||||||
|
collarFactor: 4.8,
|
||||||
|
|
||||||
|
// Percentages
|
||||||
|
acrossBackFactor: { pct: 97, min: 93, max: 100 },
|
||||||
|
armholeDepthFactor: { pct: 60, min: 50, max: 70 },
|
||||||
|
backNeckCutout: { pct: 5, min: 2, max: 8 },
|
||||||
|
bicepsEase: { pct: 15, min: 0, max: 50 },
|
||||||
|
chestEase: { pct: 8, min: -4, max: 20 },
|
||||||
|
collarEase: { pct: 3.5, min: 0, max: 10 },
|
||||||
|
cuffEase: { pct: 20, min: 0, max: 200 },
|
||||||
|
frontArmholeDeeper: { pct: 0.5, min: 0, max: 1.5 },
|
||||||
|
lengthBonus: { pct: 0, min: -4, max: 60 },
|
||||||
|
shoulderEase: { pct: 0, min: -2, max: 6 },
|
||||||
|
shoulderSlopeReduction: { pct: 0, min: 0, max: 8 },
|
||||||
|
sleevecapEase: { pct: 1, min: 0, max: 10 },
|
||||||
|
sleevecapTopFactorX: { pct: 50, min: 25, max: 75 },
|
||||||
|
sleevecapTopFactorY: { pct: 100, min: 35, max: 165 },
|
||||||
|
sleevecapBackFactorX: { pct: 60, min: 35, max: 65 },
|
||||||
|
sleevecapBackFactorY: { pct: 33, min: 35, max: 65 },
|
||||||
|
sleevecapFrontFactorX: { pct: 55, min: 35, max: 65 },
|
||||||
|
sleevecapFrontFactorY: { pct: 33, min: 35, max: 65 },
|
||||||
|
sleevecapQ1Offset: { pct: 3, min: 0, max: 7 },
|
||||||
|
sleevecapQ2Offset: { pct: 5.5, min: 0, max: 7 },
|
||||||
|
sleevecapQ3Offset: { pct: 4.5, min: 0, max: 7 },
|
||||||
|
sleevecapQ4Offset: { pct: 1, min: 0, max: 7 },
|
||||||
|
sleevecapQ1Spread1: { pct: 6, min: 4, max: 20 },
|
||||||
|
sleevecapQ1Spread2: { pct: 15, min: 4, max: 20 },
|
||||||
|
sleevecapQ2Spread1: { pct: 15, min: 4, max: 20 },
|
||||||
|
sleevecapQ2Spread2: { pct: 10, min: 4, max: 20 },
|
||||||
|
sleevecapQ3Spread1: { pct: 10, min: 4, max: 20 },
|
||||||
|
sleevecapQ3Spread2: { pct: 8, min: 4, max: 20 },
|
||||||
|
sleevecapQ4Spread1: { pct: 7, min: 4, max: 20 },
|
||||||
|
sleevecapQ4Spread2: { pct: 7, min: 4, max: 20 },
|
||||||
|
sleeveWidthGuarantee: { pct: 90, min: 25, max: 100 },
|
||||||
|
sleeveLengthBonus: { pct: 0, min: -40, max: 10 }
|
||||||
|
}
|
||||||
|
};
|
|
@ -148,11 +148,12 @@ let settings1 = { ...settings};
|
||||||
}
|
}
|
||||||
var pattern1 = new freesewing.patterns.brian(settings1);
|
var pattern1 = new freesewing.patterns.brian(settings1);
|
||||||
pattern1.use(freesewing.plugins.theme);
|
pattern1.use(freesewing.plugins.theme);
|
||||||
//pattern1.use(freesewing.plugins.designer);
|
pattern1.use(freesewing.plugins.designer);
|
||||||
pattern1.settings.options.lengthBonus =0.1;
|
pattern1.settings.options.lengthBonus =0.1;
|
||||||
//pattern1.settings.only="base";
|
//pattern1.settings.only="base";
|
||||||
//pattern1.settings.layout=false;
|
//pattern1.settings.layout=false;
|
||||||
pattern1.sampleOption("chestEase");
|
pattern1.sampleOption("sleevecapTopFactorX");
|
||||||
|
//pattern1.draft();
|
||||||
console.log(pattern1);
|
console.log(pattern1);
|
||||||
document.getElementById("svg1").innerHTML = pattern1.render();
|
document.getElementById("svg1").innerHTML = pattern1.render();
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import freesewing from "freesewing";
|
import freesewing from "freesewing";
|
||||||
import plugins from "@freesewing/plugin-bundle";
|
import plugins from "@freesewing/plugin-bundle";
|
||||||
import config from "../config/config";
|
import config from "../config";
|
||||||
// Parts
|
// Parts
|
||||||
import draftBase from "./base";
|
import draftBase from "./base";
|
||||||
import draftBack from "./back";
|
import draftBack from "./back";
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
import freesewing from "freesewing";
|
|
||||||
|
|
||||||
/** Calculates the differece between actual and optimal sleevecap length
|
/** Calculates the differece between actual and optimal sleevecap length
|
||||||
* Positive values mean sleevecap is longer than armhole
|
* Positive values mean sleevecap is longer than armhole
|
||||||
*/
|
*/
|
||||||
|
@ -22,10 +20,11 @@ function draftSleevecap(part, run) {
|
||||||
points.centerBiceps = new Point(0, 0);
|
points.centerBiceps = new Point(0, 0);
|
||||||
points.centerCap = points.centerBiceps.shift(
|
points.centerCap = points.centerBiceps.shift(
|
||||||
90,
|
90,
|
||||||
measurements.bicepsCircumference *
|
options.sleevecapTopFactorY *
|
||||||
(1 + options.bicepsEase) *
|
(measurements.bicepsCircumference *
|
||||||
options.armholeDepthFactor *
|
(1 + options.bicepsEase) *
|
||||||
store.get("sleeveFactor")
|
options.armholeDepthFactor *
|
||||||
|
store.get("sleeveFactor"))
|
||||||
);
|
);
|
||||||
|
|
||||||
// Left and right biceps points, limit impact of sleeveFactor to 25%
|
// Left and right biceps points, limit impact of sleeveFactor to 25%
|
||||||
|
@ -38,6 +37,14 @@ function draftSleevecap(part, run) {
|
||||||
);
|
);
|
||||||
points.bicepsRight = points.bicepsLeft.flipX(points.centerBiceps);
|
points.bicepsRight = points.bicepsLeft.flipX(points.centerBiceps);
|
||||||
|
|
||||||
|
// Adapt sleeve center axis
|
||||||
|
points.capLeft = new Point(points.bicepsLeft.x, points.centerCap.y);
|
||||||
|
points.capRight = points.capLeft.flipX();
|
||||||
|
points.centerCap = points.capLeft.shiftFractionTowards(
|
||||||
|
points.capRight,
|
||||||
|
options.sleevecapTopFactorX
|
||||||
|
);
|
||||||
|
|
||||||
// Pitch points
|
// Pitch points
|
||||||
let width = points.bicepsRight.x;
|
let width = points.bicepsRight.x;
|
||||||
let height = points.centerCap.y;
|
let height = points.centerCap.y;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue