diff --git a/packages/simon/index.html b/packages/simon/index.html
index 2e4d9dac526..4455a8289f5 100644
--- a/packages/simon/index.html
+++ b/packages/simon/index.html
@@ -19,6 +19,7 @@
+
@@ -102,19 +103,21 @@
let settings1 = { ...settings };
var pattern1 = new freesewing.patterns.simon(settings1);
pattern1.use(freesewing.plugins.theme);
- pattern1.use(freesewing.plugins.designer);
+ //pattern1.use(freesewing.plugins.designer);
pattern1.use(freesewing.plugins.flip);
+ pattern1.use(freesewing.plugins.banner);
pattern1.use(freesewing.plugins.debug);
pattern1.settings.options.yokeDart = 0;
pattern1.settings.options.lengthBonus = 0.1;
- pattern1.settings.options.hemStyle = "aseball";
- pattern1.settings.options.buttonholePlacketStyle = "classic";
+ pattern1.settings.options.hemStyle = "slashed";
+ pattern1.settings.options.buttonholePlacketType = "seperate";
+ pattern1.settings.options.buttonholePlacketStyle = "seamless";
pattern1.settings.options.cuffButtonRows = 2;
pattern1.settings.options.barrelCuffNarrowButton = "yes";
pattern1.settings.options.cuffStyle = "straightBarrelCuff";
pattern1.settings.options.splitYoke = "yes";
pattern1.settings.sa = 10;
- pattern1.settings.only = ["frontLeft"];
+ pattern1.settings.nly = ["sleeve"];
pattern1.draft();
document.getElementById("svg1").innerHTML = pattern1.render();
diff --git a/packages/simon/package-lock.json b/packages/simon/package-lock.json
index 3a6b482a805..9755ec5919d 100644
--- a/packages/simon/package-lock.json
+++ b/packages/simon/package-lock.json
@@ -1320,6 +1320,11 @@
"integrity": "sha512-lhC+2+o5STB4JBUk2JVY4qAkcSsm+kIQzkmycr83Z8Y/6iD6Ap/WsJxlVL0PsuZe6QLjYqJkfqBlbFs5vC121Q==",
"dev": true
},
+ "@freesewing/plugin-banner": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@freesewing/plugin-banner/-/plugin-banner-0.2.0.tgz",
+ "integrity": "sha512-URf6rpXtq9woxu8/NRlTsCDU/CxAY2wm92lBqVkqvMIzQRx1BDPnowXe/F5QnT6hfh/HIKUaAyA9AYlyia8nTA=="
+ },
"@freesewing/plugin-bundle": {
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/@freesewing/plugin-bundle/-/plugin-bundle-0.7.1.tgz",
diff --git a/packages/simon/package.json b/packages/simon/package.json
index 282199982a1..4e6d59b4785 100644
--- a/packages/simon/package.json
+++ b/packages/simon/package.json
@@ -48,6 +48,7 @@
},
"dependencies": {
"@freesewing/brian": "^0.22.0",
+ "@freesewing/plugin-banner": "0.2.0",
"@freesewing/plugin-bundle": "^0.7.1",
"@freesewing/plugin-buttons": "0.1.0",
"@freesewing/plugin-flip": "0.1.1",
diff --git a/packages/simon/src/back.js b/packages/simon/src/back.js
index ddd15aa8cba..f46550f3948 100644
--- a/packages/simon/src/back.js
+++ b/packages/simon/src/back.js
@@ -216,6 +216,10 @@ export default part => {
.move(paths.sa.end())
.line(points.cbYoke)
.attr("class", "fabric sa");
+ macro("banner", {
+ path: "hemSa",
+ text: ["hem", ": 3x", "seamAllowance"]
+ });
}
}
diff --git a/packages/simon/src/buttonholeplacket.js b/packages/simon/src/buttonholeplacket.js
index 73ebd20a822..02c86dd9c97 100644
--- a/packages/simon/src/buttonholeplacket.js
+++ b/packages/simon/src/buttonholeplacket.js
@@ -184,6 +184,40 @@ export default part => {
// Paperless?
if (paperless) {
+ let offset = 0;
+ for (let pid of [
+ "placketBottomOuterEdgeUnder",
+ "placketBottomOuterEdgeFold",
+ "placketBottomOuterEdgeOver",
+ "placketCfHem",
+ "placketBottomInnerEdgeOver",
+ "placketBottomInnerEdgeFold",
+ "placketBottomInnerEdgeUnder"
+ ]) {
+ offset += 15;
+ macro("hd", {
+ from: points.placketBottomEdge,
+ to: points[pid],
+ y: points.placketBottomEdge.y + offset + 3 * sa
+ });
+ }
+ let len =
+ points.cfNeck.dist(points.cfHips) * (1 - options.buttonFreeLength);
+ points.button0 = points.placketTopEdge;
+ let j;
+ for (let i = 0; i < options.buttons; i++) {
+ j = i + 1;
+ macro("vd", {
+ from: points["button" + j],
+ to: points["button" + i],
+ x: points.placketTopEdge.x - 15
+ });
+ }
+ macro("vd", {
+ from: points.placketBottomEdge,
+ to: points.placketTopEdge,
+ x: points.placketTopEdge.x - 30
+ });
}
return part;
diff --git a/packages/simon/src/collar.js b/packages/simon/src/collar.js
index 0496810a7a7..c6e9dfc3e6b 100644
--- a/packages/simon/src/collar.js
+++ b/packages/simon/src/collar.js
@@ -74,7 +74,6 @@ export default part => {
delta = draft(tweak);
tweak = tweak * (1 - delta / 1000);
run++;
- console.log("tweak is", tweak, "run", run, "delta", delta);
} while (Math.abs(delta) > 1 && run < 20);
paths.seam = new Path()
diff --git a/packages/simon/src/frontleft-classic-cuton.js b/packages/simon/src/frontleft-classic-cuton.js
index 64780d9c09a..bc2fdfd8621 100644
--- a/packages/simon/src/frontleft-classic-cuton.js
+++ b/packages/simon/src/frontleft-classic-cuton.js
@@ -189,6 +189,11 @@ export default part => {
to: points.neck,
y: points.placketTopEdge.y - offset - sa - 15
});
+ macro("hd", {
+ from: points.placketTopEdge,
+ to: points.shoulder,
+ y: points.placketTopEdge.y - offset - sa - 30
+ });
let len =
points.cfNeck.dist(points.cfHips) * (1 - options.buttonFreeLength);
points.button0 = points.placketTopEdge;
diff --git a/packages/simon/src/frontleft-classic-seperate.js b/packages/simon/src/frontleft-classic-seperate.js
index a5c6dafe1ab..2bbd3f06be6 100644
--- a/packages/simon/src/frontleft-classic-seperate.js
+++ b/packages/simon/src/frontleft-classic-seperate.js
@@ -38,6 +38,16 @@ export default part => {
// Title
macro("title", { at: points.title, nr: "2a", title: "frontLeft" });
+ delete snippets["cfWaist-notch"];
+ delete snippets["cfHips-notch"];
+ delete snippets["cfArmhole-notch"];
+ points.edgeArmhole = new Point(points.neckEdge.x, points.armhole.y);
+ points.edgeWaist = new Point(points.neckEdge.x, points.waist.y);
+ points.edgeHips = new Point(points.neckEdge.x, points.hips.y);
+ macro("sprinkle", {
+ snippet: "notch",
+ on: ["edgeArmhole", "edgeWaist", "edgeHips"]
+ });
if (sa) {
paths.saFromArmhole.end().x = points.neckEdge.x - sa;
paths.hemSa.start().x = points.neckEdge.x - sa;
@@ -50,6 +60,32 @@ export default part => {
// Paperless?
if (paperless) {
+ macro("hd", {
+ from: points.neckEdge,
+ to: points.neck,
+ y: points.neck.y - sa - 15
+ });
+ macro("hd", {
+ from: points.neckEdge,
+ to: points.shoulder,
+ y: points.neck.y - sa - 30
+ });
+ macro("vd", {
+ from: points.neckEdge,
+ to: points.neck,
+ x: points.neckEdge.x - sa - 15
+ });
+ macro("vd", {
+ from: points.hemEdge,
+ to: points.neck,
+ x: points.neckEdge.x - sa - 30
+ });
+ for (let pid of ["Armhole", "Waist", "Hips"]) {
+ macro("hd", {
+ from: points["edge" + pid],
+ to: points[pid.toLowerCase()]
+ });
+ }
}
return part;
};
diff --git a/packages/simon/src/frontleft-seamless.js b/packages/simon/src/frontleft-seamless.js
index 6597ce79cce..075b165d72c 100644
--- a/packages/simon/src/frontleft-seamless.js
+++ b/packages/simon/src/frontleft-seamless.js
@@ -18,7 +18,6 @@ export default part => {
options
} = part.shorthand();
- console.log("seamless buttonjholes");
let fold = options.buttonholePlacketFoldWidth;
let width = options.buttonholePlacketWidth;
points.placketCfNeck = points.cfNeck;
@@ -79,6 +78,43 @@ export default part => {
// Paperless?
if (paperless) {
+ let offset = 0;
+ for (let pid of [
+ "placketBottomFold2",
+ "placketBottomFold1",
+ "cfHem",
+ "slashEnd",
+ "hips"
+ ]) {
+ offset += 15;
+ macro("hd", {
+ from: points.placketBottomEdge,
+ to: points[pid],
+ y: points.placketBottomEdge.y + offset + 3 * sa
+ });
+ }
+ macro("hd", {
+ from: points.placketTopEdge,
+ to: points.neck,
+ y: points.neck.y - 15 - sa
+ });
+ let len =
+ points.cfNeck.dist(points.cfHips) * (1 - options.buttonFreeLength);
+ points.button0 = points.placketTopEdge;
+ let j;
+ for (let i = 0; i < options.buttons; i++) {
+ j = i + 1;
+ macro("vd", {
+ from: points["button" + j],
+ to: points["button" + i],
+ x: points.placketTopEdge.x - 15
+ });
+ }
+ macro("vd", {
+ from: points.placketBottomEdge,
+ to: points.placketTopEdge,
+ x: points.placketTopEdge.x - 30
+ });
}
return part;
};
diff --git a/packages/simon/src/frontleft.js b/packages/simon/src/frontleft.js
index 0b24ba98fbd..4c21b88aa2f 100644
--- a/packages/simon/src/frontleft.js
+++ b/packages/simon/src/frontleft.js
@@ -10,104 +10,115 @@ export default part => {
paperless,
points,
macro,
- Path
+ Path,
+ paths
} = part.shorthand();
- if (complete && paperless) {
- macro("ld", {
- from: points.neck,
- to: points.shoulder,
- d: 15 + sa
+ if (complete) {
+ macro("banner", {
+ path: "hemSa",
+ text: ["hem", ": 3x", "seamAllowance"]
});
- macro("pd", {
- path: new Path()
- .move(points.armholePitch)
- .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder),
- d: -15
+ macro("banner", {
+ path: "saFrench",
+ text: ["frenchSeam", ": 2x", "seamAllowance"]
});
- macro("vd", {
- from: points.armhole,
- to: points.armholePitch,
- x: points.armhole.x + 15 + sa * 2
- });
- macro("vd", {
- from: points.armhole,
- to: points.shoulder,
- x: points.armhole.x + 30 + sa * 2
- });
- macro("vd", {
- from: points.armhole,
- to: points.neck,
- x: points.armhole.x + 45 + sa * 2
- });
- macro("vd", {
- from: points.waist,
- to: points.armhole,
- x: points.armhole.x + 15 + sa * 2
- });
- macro("vd", {
- from: points.hips,
- to: points.armhole,
- x: points.armhole.x + 30 + sa * 2
- });
- if (options.hemStyle === "baseball") {
- macro("vd", {
- from: points.bballStart,
- to: points.bballEnd,
- x: points.hips.x + 15 + 2 * sa
+ if (paperless) {
+ macro("ld", {
+ from: points.neck,
+ to: points.shoulder,
+ d: 15 + sa
+ });
+ macro("pd", {
+ path: new Path()
+ .move(points.armholePitch)
+ .curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder),
+ d: -15
});
macro("vd", {
- from: points.bballStart,
- to: points.hips,
- x: points.hips.x + 30 + 2 * sa
+ from: points.armhole,
+ to: points.armholePitch,
+ x: points.armhole.x + 15 + sa * 2
});
macro("vd", {
- from: points.bballStart,
- to: points.armhole,
- x: points.hips.x + 45 + 2 * sa
+ from: points.armhole,
+ to: points.shoulder,
+ x: points.armhole.x + 30 + sa * 2
});
macro("vd", {
- from: points.bballStart,
+ from: points.armhole,
to: points.neck,
- x: points.hips.x + 60 + 2 * sa
- });
- macro("hd", {
- from: points.bballStart,
- to: points.bballEnd,
- y: points.bballStart.y + 15 + 3 * sa
- });
- } else if (options.hemStyle === "slashed") {
- macro("vd", {
- from: points.slashEnd,
- to: points.slashStart,
- x: points.hips.x + 15 + 3 * sa
+ x: points.armhole.x + 45 + sa * 2
});
macro("vd", {
- from: points.slashEnd,
- to: points.hips,
- x: points.hips.x + 30 + 3 * sa
- });
- macro("vd", {
- from: points.slashEnd,
+ from: points.waist,
to: points.armhole,
- x: points.hips.x + 45 + 3 * sa
+ x: points.armhole.x + 15 + sa * 2
});
macro("vd", {
- from: points.slashEnd,
- to: points.neck,
- x: points.hips.x + 60 + 3 * sa
- });
- } else {
- macro("vd", {
- from: points.hem,
+ from: points.hips,
to: points.armhole,
- x: points.armhole.x + 45 + 2 * sa
- });
- macro("vd", {
- from: points.hem,
- to: points.neck,
- x: points.armhole.x + 60 + 2 * sa
+ x: points.armhole.x + 30 + sa * 2
});
+ if (options.hemStyle === "baseball") {
+ macro("vd", {
+ from: points.bballStart,
+ to: points.bballEnd,
+ x: points.hips.x + 15 + 2 * sa
+ });
+ macro("vd", {
+ from: points.bballStart,
+ to: points.hips,
+ x: points.hips.x + 30 + 2 * sa
+ });
+ macro("vd", {
+ from: points.bballStart,
+ to: points.armhole,
+ x: points.hips.x + 45 + 2 * sa
+ });
+ macro("vd", {
+ from: points.bballStart,
+ to: points.neck,
+ x: points.hips.x + 60 + 2 * sa
+ });
+ macro("hd", {
+ from: points.bballStart,
+ to: points.bballEnd,
+ y: points.bballStart.y + 15 + 3 * sa
+ });
+ } else if (options.hemStyle === "slashed") {
+ macro("vd", {
+ from: points.slashEnd,
+ to: points.slashStart,
+ x: points.hips.x + 15 + 3 * sa
+ });
+ macro("vd", {
+ from: points.slashEnd,
+ to: points.hips,
+ x: points.hips.x + 30 + 3 * sa
+ });
+ macro("vd", {
+ from: points.slashEnd,
+ to: points.armhole,
+ x: points.hips.x + 45 + 3 * sa
+ });
+ macro("vd", {
+ from: points.slashEnd,
+ to: points.neck,
+ x: points.hips.x + 60 + 3 * sa
+ });
+ } else {
+ macro("vd", {
+ from: points.hem,
+ to: points.armhole,
+ x: points.armhole.x + 45 + 2 * sa
+ });
+ macro("vd", {
+ from: points.hem,
+ to: points.neck,
+ x: points.armhole.x + 60 + 2 * sa
+ });
+ }
}
}
diff --git a/packages/simon/src/shared.js b/packages/simon/src/shared.js
index 8fb63d598bc..cb41a1e5e7e 100644
--- a/packages/simon/src/shared.js
+++ b/packages/simon/src/shared.js
@@ -68,7 +68,7 @@ export const decorateBarrelCuff = part => {
// Title
points.title = new Point(points.bottomRight.x / 2, points.bottomRight.y / 2);
macro("title", {
- nr: 10,
+ nr: 11,
title: "cuff",
at: points.title,
scale: 0.8
@@ -139,7 +139,7 @@ export const decorateFrenchCuff = part => {
// Title
points.title = new Point(points.bottomRight.x / 2, points.bottomRight.y / 2);
macro("title", {
- nr: 10,
+ nr: 11,
title: "cuff",
at: points.title,
scale: 0.8
diff --git a/packages/simon/src/sleeve.js b/packages/simon/src/sleeve.js
index 2f314f231f6..842633f8b3c 100644
--- a/packages/simon/src/sleeve.js
+++ b/packages/simon/src/sleeve.js
@@ -164,12 +164,17 @@ export default part => {
macro("grainline", { from: points.cuffMid, to: points.sleeveTip });
if (sa) {
- paths.sa = paths.frenchBase
- .offset(sa * 2)
+ paths.sa = paths.frenchBase.offset(sa * 2);
+ paths.frenchSa = paths.sa.clone();
+ paths.sa = paths.sa
.join(paths.saBase.offset(sa))
.join(paths.cuffBase.offset(sa))
.close()
.attr("class", "fabric sa");
+ macro("banner", {
+ path: "frenchSa",
+ text: ["frenchSean", ": 2x", "seamAllowance"]
+ });
}
}