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"] + }); } }