sparkles: Paperless front left
This commit is contained in:
parent
3f447019e0
commit
c152c42976
12 changed files with 229 additions and 90 deletions
|
@ -19,6 +19,7 @@
|
||||||
<script type="text/javascript" src="../../freesewing/dist/browser.js"></script>
|
<script type="text/javascript" src="../../freesewing/dist/browser.js"></script>
|
||||||
<script type="text/javascript" src="node_modules/@freesewing/plugin-bundle/dist/browser.js"></script>
|
<script type="text/javascript" src="node_modules/@freesewing/plugin-bundle/dist/browser.js"></script>
|
||||||
<script type="text/javascript" src="node_modules/@freesewing/plugin-sprinkle/dist/browser.js"></script>
|
<script type="text/javascript" src="node_modules/@freesewing/plugin-sprinkle/dist/browser.js"></script>
|
||||||
|
<script type="text/javascript" src="node_modules/@freesewing/plugin-banner/dist/browser.js"></script>
|
||||||
<script type="text/javascript" src="dist/browser.js"></script>
|
<script type="text/javascript" src="dist/browser.js"></script>
|
||||||
<!-- <script type="text/javascript" src="node_modules/@freesewing/plugin-theme/dist/browser.js"></script> -->
|
<!-- <script type="text/javascript" src="node_modules/@freesewing/plugin-theme/dist/browser.js"></script> -->
|
||||||
<script type="text/javascript" src="../../plugins/plugin-theme/dist/browser.js"></script>
|
<script type="text/javascript" src="../../plugins/plugin-theme/dist/browser.js"></script>
|
||||||
|
@ -102,19 +103,21 @@
|
||||||
let settings1 = { ...settings };
|
let settings1 = { ...settings };
|
||||||
var pattern1 = new freesewing.patterns.simon(settings1);
|
var pattern1 = new freesewing.patterns.simon(settings1);
|
||||||
pattern1.use(freesewing.plugins.theme);
|
pattern1.use(freesewing.plugins.theme);
|
||||||
pattern1.use(freesewing.plugins.designer);
|
//pattern1.use(freesewing.plugins.designer);
|
||||||
pattern1.use(freesewing.plugins.flip);
|
pattern1.use(freesewing.plugins.flip);
|
||||||
|
pattern1.use(freesewing.plugins.banner);
|
||||||
pattern1.use(freesewing.plugins.debug);
|
pattern1.use(freesewing.plugins.debug);
|
||||||
pattern1.settings.options.yokeDart = 0;
|
pattern1.settings.options.yokeDart = 0;
|
||||||
pattern1.settings.options.lengthBonus = 0.1;
|
pattern1.settings.options.lengthBonus = 0.1;
|
||||||
pattern1.settings.options.hemStyle = "aseball";
|
pattern1.settings.options.hemStyle = "slashed";
|
||||||
pattern1.settings.options.buttonholePlacketStyle = "classic";
|
pattern1.settings.options.buttonholePlacketType = "seperate";
|
||||||
|
pattern1.settings.options.buttonholePlacketStyle = "seamless";
|
||||||
pattern1.settings.options.cuffButtonRows = 2;
|
pattern1.settings.options.cuffButtonRows = 2;
|
||||||
pattern1.settings.options.barrelCuffNarrowButton = "yes";
|
pattern1.settings.options.barrelCuffNarrowButton = "yes";
|
||||||
pattern1.settings.options.cuffStyle = "straightBarrelCuff";
|
pattern1.settings.options.cuffStyle = "straightBarrelCuff";
|
||||||
pattern1.settings.options.splitYoke = "yes";
|
pattern1.settings.options.splitYoke = "yes";
|
||||||
pattern1.settings.sa = 10;
|
pattern1.settings.sa = 10;
|
||||||
pattern1.settings.only = ["frontLeft"];
|
pattern1.settings.nly = ["sleeve"];
|
||||||
pattern1.draft();
|
pattern1.draft();
|
||||||
document.getElementById("svg1").innerHTML = pattern1.render();
|
document.getElementById("svg1").innerHTML = pattern1.render();
|
||||||
|
|
||||||
|
|
5
packages/simon/package-lock.json
generated
5
packages/simon/package-lock.json
generated
|
@ -1320,6 +1320,11 @@
|
||||||
"integrity": "sha512-lhC+2+o5STB4JBUk2JVY4qAkcSsm+kIQzkmycr83Z8Y/6iD6Ap/WsJxlVL0PsuZe6QLjYqJkfqBlbFs5vC121Q==",
|
"integrity": "sha512-lhC+2+o5STB4JBUk2JVY4qAkcSsm+kIQzkmycr83Z8Y/6iD6Ap/WsJxlVL0PsuZe6QLjYqJkfqBlbFs5vC121Q==",
|
||||||
"dev": true
|
"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": {
|
"@freesewing/plugin-bundle": {
|
||||||
"version": "0.7.1",
|
"version": "0.7.1",
|
||||||
"resolved": "https://registry.npmjs.org/@freesewing/plugin-bundle/-/plugin-bundle-0.7.1.tgz",
|
"resolved": "https://registry.npmjs.org/@freesewing/plugin-bundle/-/plugin-bundle-0.7.1.tgz",
|
||||||
|
|
|
@ -48,6 +48,7 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@freesewing/brian": "^0.22.0",
|
"@freesewing/brian": "^0.22.0",
|
||||||
|
"@freesewing/plugin-banner": "0.2.0",
|
||||||
"@freesewing/plugin-bundle": "^0.7.1",
|
"@freesewing/plugin-bundle": "^0.7.1",
|
||||||
"@freesewing/plugin-buttons": "0.1.0",
|
"@freesewing/plugin-buttons": "0.1.0",
|
||||||
"@freesewing/plugin-flip": "0.1.1",
|
"@freesewing/plugin-flip": "0.1.1",
|
||||||
|
|
|
@ -216,6 +216,10 @@ export default part => {
|
||||||
.move(paths.sa.end())
|
.move(paths.sa.end())
|
||||||
.line(points.cbYoke)
|
.line(points.cbYoke)
|
||||||
.attr("class", "fabric sa");
|
.attr("class", "fabric sa");
|
||||||
|
macro("banner", {
|
||||||
|
path: "hemSa",
|
||||||
|
text: ["hem", ": 3x", "seamAllowance"]
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -184,6 +184,40 @@ export default part => {
|
||||||
|
|
||||||
// Paperless?
|
// Paperless?
|
||||||
if (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;
|
return part;
|
||||||
|
|
|
@ -74,7 +74,6 @@ export default part => {
|
||||||
delta = draft(tweak);
|
delta = draft(tweak);
|
||||||
tweak = tweak * (1 - delta / 1000);
|
tweak = tweak * (1 - delta / 1000);
|
||||||
run++;
|
run++;
|
||||||
console.log("tweak is", tweak, "run", run, "delta", delta);
|
|
||||||
} while (Math.abs(delta) > 1 && run < 20);
|
} while (Math.abs(delta) > 1 && run < 20);
|
||||||
|
|
||||||
paths.seam = new Path()
|
paths.seam = new Path()
|
||||||
|
|
|
@ -189,6 +189,11 @@ export default part => {
|
||||||
to: points.neck,
|
to: points.neck,
|
||||||
y: points.placketTopEdge.y - offset - sa - 15
|
y: points.placketTopEdge.y - offset - sa - 15
|
||||||
});
|
});
|
||||||
|
macro("hd", {
|
||||||
|
from: points.placketTopEdge,
|
||||||
|
to: points.shoulder,
|
||||||
|
y: points.placketTopEdge.y - offset - sa - 30
|
||||||
|
});
|
||||||
let len =
|
let len =
|
||||||
points.cfNeck.dist(points.cfHips) * (1 - options.buttonFreeLength);
|
points.cfNeck.dist(points.cfHips) * (1 - options.buttonFreeLength);
|
||||||
points.button0 = points.placketTopEdge;
|
points.button0 = points.placketTopEdge;
|
||||||
|
|
|
@ -38,6 +38,16 @@ export default part => {
|
||||||
// Title
|
// Title
|
||||||
macro("title", { at: points.title, nr: "2a", title: "frontLeft" });
|
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) {
|
if (sa) {
|
||||||
paths.saFromArmhole.end().x = points.neckEdge.x - sa;
|
paths.saFromArmhole.end().x = points.neckEdge.x - sa;
|
||||||
paths.hemSa.start().x = points.neckEdge.x - sa;
|
paths.hemSa.start().x = points.neckEdge.x - sa;
|
||||||
|
@ -50,6 +60,32 @@ export default part => {
|
||||||
|
|
||||||
// Paperless?
|
// Paperless?
|
||||||
if (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;
|
return part;
|
||||||
};
|
};
|
||||||
|
|
|
@ -18,7 +18,6 @@ export default part => {
|
||||||
options
|
options
|
||||||
} = part.shorthand();
|
} = part.shorthand();
|
||||||
|
|
||||||
console.log("seamless buttonjholes");
|
|
||||||
let fold = options.buttonholePlacketFoldWidth;
|
let fold = options.buttonholePlacketFoldWidth;
|
||||||
let width = options.buttonholePlacketWidth;
|
let width = options.buttonholePlacketWidth;
|
||||||
points.placketCfNeck = points.cfNeck;
|
points.placketCfNeck = points.cfNeck;
|
||||||
|
@ -79,6 +78,43 @@ export default part => {
|
||||||
|
|
||||||
// Paperless?
|
// Paperless?
|
||||||
if (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;
|
return part;
|
||||||
};
|
};
|
||||||
|
|
|
@ -10,104 +10,115 @@ export default part => {
|
||||||
paperless,
|
paperless,
|
||||||
points,
|
points,
|
||||||
macro,
|
macro,
|
||||||
Path
|
Path,
|
||||||
|
paths
|
||||||
} = part.shorthand();
|
} = part.shorthand();
|
||||||
|
|
||||||
if (complete && paperless) {
|
if (complete) {
|
||||||
macro("ld", {
|
macro("banner", {
|
||||||
from: points.neck,
|
path: "hemSa",
|
||||||
to: points.shoulder,
|
text: ["hem", ": 3x", "seamAllowance"]
|
||||||
d: 15 + sa
|
|
||||||
});
|
});
|
||||||
macro("pd", {
|
macro("banner", {
|
||||||
path: new Path()
|
path: "saFrench",
|
||||||
.move(points.armholePitch)
|
text: ["frenchSeam", ": 2x", "seamAllowance"]
|
||||||
.curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder),
|
|
||||||
d: -15
|
|
||||||
});
|
});
|
||||||
macro("vd", {
|
if (paperless) {
|
||||||
from: points.armhole,
|
macro("ld", {
|
||||||
to: points.armholePitch,
|
from: points.neck,
|
||||||
x: points.armhole.x + 15 + sa * 2
|
to: points.shoulder,
|
||||||
});
|
d: 15 + sa
|
||||||
macro("vd", {
|
});
|
||||||
from: points.armhole,
|
macro("pd", {
|
||||||
to: points.shoulder,
|
path: new Path()
|
||||||
x: points.armhole.x + 30 + sa * 2
|
.move(points.armholePitch)
|
||||||
});
|
.curve(points.armholePitchCp2, points.shoulderCp1, points.shoulder),
|
||||||
macro("vd", {
|
d: -15
|
||||||
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
|
|
||||||
});
|
});
|
||||||
macro("vd", {
|
macro("vd", {
|
||||||
from: points.bballStart,
|
from: points.armhole,
|
||||||
to: points.hips,
|
to: points.armholePitch,
|
||||||
x: points.hips.x + 30 + 2 * sa
|
x: points.armhole.x + 15 + sa * 2
|
||||||
});
|
});
|
||||||
macro("vd", {
|
macro("vd", {
|
||||||
from: points.bballStart,
|
from: points.armhole,
|
||||||
to: points.armhole,
|
to: points.shoulder,
|
||||||
x: points.hips.x + 45 + 2 * sa
|
x: points.armhole.x + 30 + sa * 2
|
||||||
});
|
});
|
||||||
macro("vd", {
|
macro("vd", {
|
||||||
from: points.bballStart,
|
from: points.armhole,
|
||||||
to: points.neck,
|
to: points.neck,
|
||||||
x: points.hips.x + 60 + 2 * sa
|
x: points.armhole.x + 45 + sa * 2
|
||||||
});
|
|
||||||
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", {
|
macro("vd", {
|
||||||
from: points.slashEnd,
|
from: points.waist,
|
||||||
to: points.hips,
|
|
||||||
x: points.hips.x + 30 + 3 * sa
|
|
||||||
});
|
|
||||||
macro("vd", {
|
|
||||||
from: points.slashEnd,
|
|
||||||
to: points.armhole,
|
to: points.armhole,
|
||||||
x: points.hips.x + 45 + 3 * sa
|
x: points.armhole.x + 15 + sa * 2
|
||||||
});
|
});
|
||||||
macro("vd", {
|
macro("vd", {
|
||||||
from: points.slashEnd,
|
from: points.hips,
|
||||||
to: points.neck,
|
|
||||||
x: points.hips.x + 60 + 3 * sa
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
macro("vd", {
|
|
||||||
from: points.hem,
|
|
||||||
to: points.armhole,
|
to: points.armhole,
|
||||||
x: points.armhole.x + 45 + 2 * sa
|
x: points.armhole.x + 30 + sa * 2
|
||||||
});
|
|
||||||
macro("vd", {
|
|
||||||
from: points.hem,
|
|
||||||
to: points.neck,
|
|
||||||
x: points.armhole.x + 60 + 2 * sa
|
|
||||||
});
|
});
|
||||||
|
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
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -68,7 +68,7 @@ export const decorateBarrelCuff = part => {
|
||||||
// Title
|
// Title
|
||||||
points.title = new Point(points.bottomRight.x / 2, points.bottomRight.y / 2);
|
points.title = new Point(points.bottomRight.x / 2, points.bottomRight.y / 2);
|
||||||
macro("title", {
|
macro("title", {
|
||||||
nr: 10,
|
nr: 11,
|
||||||
title: "cuff",
|
title: "cuff",
|
||||||
at: points.title,
|
at: points.title,
|
||||||
scale: 0.8
|
scale: 0.8
|
||||||
|
@ -139,7 +139,7 @@ export const decorateFrenchCuff = part => {
|
||||||
// Title
|
// Title
|
||||||
points.title = new Point(points.bottomRight.x / 2, points.bottomRight.y / 2);
|
points.title = new Point(points.bottomRight.x / 2, points.bottomRight.y / 2);
|
||||||
macro("title", {
|
macro("title", {
|
||||||
nr: 10,
|
nr: 11,
|
||||||
title: "cuff",
|
title: "cuff",
|
||||||
at: points.title,
|
at: points.title,
|
||||||
scale: 0.8
|
scale: 0.8
|
||||||
|
|
|
@ -164,12 +164,17 @@ export default part => {
|
||||||
macro("grainline", { from: points.cuffMid, to: points.sleeveTip });
|
macro("grainline", { from: points.cuffMid, to: points.sleeveTip });
|
||||||
|
|
||||||
if (sa) {
|
if (sa) {
|
||||||
paths.sa = paths.frenchBase
|
paths.sa = paths.frenchBase.offset(sa * 2);
|
||||||
.offset(sa * 2)
|
paths.frenchSa = paths.sa.clone();
|
||||||
|
paths.sa = paths.sa
|
||||||
.join(paths.saBase.offset(sa))
|
.join(paths.saBase.offset(sa))
|
||||||
.join(paths.cuffBase.offset(sa))
|
.join(paths.cuffBase.offset(sa))
|
||||||
.close()
|
.close()
|
||||||
.attr("class", "fabric sa");
|
.attr("class", "fabric sa");
|
||||||
|
macro("banner", {
|
||||||
|
path: "frenchSa",
|
||||||
|
text: ["frenchSean", ": 2x", "seamAllowance"]
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue