1
0
Fork 0

Dimensions, grainline, i18n

This commit is contained in:
woutervdub 2023-11-07 02:22:52 +00:00
parent 78f8f21a39
commit a5c5a7f862
7 changed files with 325 additions and 81 deletions

View file

@ -1,7 +1,138 @@
{
"t": "Tristan",
"d": "A FreeSewing pattern that needs a description",
"p": { },
"s": { },
"o": { }
"p": {
"backInside": "Back inside",
"backOutside": "Back outside",
"backPoints": "Back base",
"frontInside": "Front inside",
"frontOutside": "Front outside",
"frontPoints": "Front base",
"peplumFront": "Peplum front",
"peplumBack": "Peplum back"
},
"s": {},
"o": {
"bustSpanEase": {
"t": "Bust span ease",
"d": "Controls the amount of ease along the bust span"
},
"chestEase": {
"t": "Chest ease",
"d": "Controls the amount of ease at the chest"
},
"shoulderToShoulderEase": {
"t": "Shoulder to shoulder ease",
"d": "Controls the amount of ease along the shoulder to shoulder measurement"
},
"fullChestEaseReduction": {
"t": "Full chest ease reduction",
"d": "Allows you to independently reduce the ease around the chest to make it fit tight(er) in that area"
},
"waistEase": {
"t": "Waist ease",
"d": "Controls the amount of ease at the waist"
},
"frontShoulderWidth": {
"t": "Front shoulder width",
"d": "Controls how much width is added to the shoulder in the front"
},
"highBustWidth": {
"t": "High bust width",
"d": "Controls the width of the high bust"
},
"armholeDepth": {
"t": "Depth of the Armhole",
"d": "Controls how deep the armhole is"
},
"cutDepthBack": {
"t": "Depth of the cut in the back",
"d": "Controls the depth of the cut in the back"
},
"cutDepthFront": {
"t": "Depth of the cut in the front",
"d": "Controls the depth of the cut in the front"
},
"cutRoundnessBack": {
"t": "Roundness of the cut in the back",
"d": "Controls how 'round' the cut in the back is, from V to round to square"
},
"cutRoundnessFront": {
"t": "Roundness of the cut in the front",
"d": "Controls how 'round' the cut in the front is, from V to round to square"
},
"shoulderDartPosition": {
"t": "Shoulder dart position",
"d": "Controls the position of the shoulder dart"
},
"strapWidth": {
"t": "Width of the straps",
"d": "Controls the width of the straps"
},
"upperDartLength": {
"t": "Upper dart length",
"d": "Controls the length of the upper dart"
},
"waistDartLength": {
"t": "Waist dart length",
"d": "Controls the length of the waist dart"
},
"zipperLocation": {
"t": "Zipper location",
"d": "The location of the zipper: side, back, or front"
},
"zipperLocation.front": {
"t": "Front zipper location",
"d": "The location of the zipper will be in the front"
},
"zipperLocation.side": {
"t": "Side zipper location",
"d": "The location of the zipper will be on the side"
},
"zipperLocation.back": {
"t": "Back zipper location",
"d": "The location of the zipper will be in the back"
},
"lacing": {
"t": "Lacing option",
"d": "This removes part of the seam to create an opening for lacing"
},
"lacingYes": {
"t": "Add Lacing",
"d": "Remove part of the seam to create an opening for lacing"
},
"lacingNo": {
"t": "No lacing",
"d": "Close the seams normally"
},
"lacingLocation": {
"t": "Location of the lacing",
"d": "Lacing in the front, or the back"
},
"lacingWidth": {
"t": "Lacing width",
"d": "Width of the lacing opening"
},
"peplum": {
"t": "Peplum",
"d": "Add a peplum"
},
"peplumYes": {
"t": "Add a peplum",
"d": "This will generate the peplum part."
},
"peplumNo": {
"t": "No peplum",
"d": "Pattern will be generated without a peplum"
},
"peplumSize": {
"t": "Peplum size",
"d": "Controls the size of the peplum"
},
"peplumFullness": {
"t": "Peplum fullness",
"d": "Controls the 'fullness' of the peplum. Basically from a half-circle to a full-circle."
}
}
}

View file

@ -42,10 +42,70 @@ export const backInside = {
title: 'backInside',
})
points.grainlineFrom = new Point(points.hps.x / 4, points.cbCut.y)
points.grainlineTo = new Point(points.hps.x / 4, points.waistSide.y)
macro('grainline', {
from: points.grainlineFrom,
to: points.grainlineTo,
})
points.scaleboxAnchor = points.titleAnchor.shiftFractionTowards(points.dartBottomLeft, 0.5)
macro('scalebox', { at: points.scaleboxAnchor, rotate: 270 })
if (sa) {
paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
}
macro('hd', {
from: points.cbCut,
to: points.strapInside,
y: points.strapInside.y - sa - 15,
id: 'cutWidth',
})
macro('hd', {
from: points.cbCut,
to: points.shoulderDart,
y: points.strapInside.y - sa - 25,
id: 'cutToDart',
})
macro('hd', {
from: lacing ? points.lacingWaist : points.waistCenter,
to: points.dartBottomLeft,
y: points.waistCenter.y + sa + 15,
id: 'waistCenterToSide',
})
macro('hd', {
from: points.cbCut,
to: points.dartBottomLeft,
y: points.waistCenter.y + sa + 25,
id: 'waistCutToSide',
})
macro('vd', {
from: lacing ? points.lacingWaist : points.waistCenter,
to: points.cbCut,
x: points.cbCut.x - sa - 15,
id: 'waistToCut',
})
macro('vd', {
from: lacing ? points.lacingWaist : points.waistCenter,
to: points.strapInside,
x: points.cbCut.x - sa - 25,
id: 'waistToStrap',
})
macro('vd', {
from: points.dartBottomLeft,
to: points.shoulderDart,
x: points.shoulderDart.x + sa + 15,
id: 'dartToDart',
})
macro('vd', {
from: points.dartBottomLeft,
to: points.strapInside,
x: points.shoulderDart.x + sa + 25,
id: 'dartToStrap',
})
return part
},
}

View file

@ -31,10 +31,85 @@ export const backOutside = {
title: 'backOutside',
})
points.grainlineFrom = new Point(
Math.max(points.shoulderDart.x, points.dartBottomRight.x),
points.waistSide.y - (points.waistSide.y - points.shoulder.y) * 0.7
)
points.grainlineTo = new Point(points.grainlineFrom.x, points.dartBottomRight.y * 0.95)
macro('grainline', {
from: points.grainlineFrom,
to: points.grainlineTo,
})
if (sa) {
paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
}
const pLeft = paths.dart.edge('left')
macro('hd', {
from: pLeft,
to: points.shoulderDart,
y: points.shoulderDart.y - sa - 15,
id: 'leftToDart',
})
macro('hd', {
from: pLeft,
to: points.strapOutside,
y: points.shoulderDart.y - sa - 25,
id: 'leftToStrap',
})
macro('hd', {
from: pLeft,
to: points.armhole,
y: points.shoulderDart.y - sa - 35,
id: 'leftToArmhole',
})
macro('hd', {
from: pLeft,
to: points.waistSide,
y: points.dartBottomRight.y + sa + 25,
id: 'leftToWaistSide',
})
macro('hd', {
from: points.dartBottomRight,
to: points.waistSide,
y: points.dartBottomRight.y + sa + 15,
id: 'dartToWaistSide',
})
macro('vd', {
from: points.dartBottomRight,
to: pLeft,
x: pLeft.x - sa - 15,
id: 'leftToDart',
})
macro('vd', {
from: points.dartBottomRight,
to: points.shoulderDart,
x: pLeft.x - sa - 25,
id: 'dartToDart',
})
macro('vd', {
from: points.dartBottomRight,
to: points.strapOutside,
x: points.armhole.x + sa + 35,
id: 'dartToStrap',
})
macro('vd', {
from: points.waistSide,
to: points.strapOutside,
x: points.armhole.x + sa + 25,
id: 'sideToStrap',
})
macro('vd', {
from: points.waistSide,
to: points.armhole,
x: points.armhole.x + sa + 15,
id: 'sideToArmhole',
})
return part
},
}

View file

@ -7,7 +7,6 @@ export const backPoints = {
from: nobleBackPoints,
after: frontPoints,
hide: hidePresets.HIDE_ALL,
// options,
draft: ({ points, Path, paths, options, snippets, log, store, part }) => {
const lacing = true == options.lacing && 'back' == options.lacingLocation
@ -23,8 +22,6 @@ export const backPoints = {
points.strapInside = points.shoulderDart.shiftTowards(points.hps, strapWidth / 2)
points.strapOutside = points.shoulderDart.shiftTowards(points.shoulder, strapWidth / 2)
// points.shoulder = points.strapOutside
points.cbCut = new Path()
.move(points.cbNeck)
.curve_(points.cbNeckCp2, points.waistCenter)
@ -64,7 +61,6 @@ export const backPoints = {
180,
options.armholeBackIn * points.armhole.dist(points.dartTip)
)
// .addCircle(4)
points.strapOutsideCp = points.strapOutside.shiftFractionTowards(
points.dartTip.shift(points.dartTip.angle(points.shoulderDart) - 90, strapWidth / 2),

View file

@ -60,23 +60,36 @@ export const frontInside = {
.length()
)
if ('front' != options.zipperLocation) {
macro('cutonfold', {
from: points.cfCut,
to: points.cfHem,
grainline: true,
})
}
if (lacing) {
store.cutlist.addCut({ cut: 2, from: 'fabric' })
paths.originalSide = new Path()
.move(points.lacingCut)
.line(points.cfCut)
.line(points.cfHem)
.line(points.lacingHem)
.setClass('note dashed')
macro('grainline', {
from: points.lacingCut.shift(315, 10),
to: points.lacingHem.shift(45, 10),
grainline: true,
})
} else {
if ('front' == options.zipperLocation) {
store.cutlist.addCut({ cut: 2, from: 'fabric' })
macro('grainline', {
from: points.cfCut.shift(315, 10),
to: points.cfHem.shift(45, 10),
grainline: true,
})
} else {
// store.cutlist.addCut({ cut: 1, from: 'fabric' })
macro('cutonfold', {
from: points.cfCut,
to: points.cfHem,
grainline: true,
})
}
}
snippets.shoulderDartTip = new Snippet('notch', points.shoulderDartTip)
points.titleAnchor = points.waistDartLeft.shiftFractionTowards(
@ -90,9 +103,6 @@ export const frontInside = {
})
points.gridAnchor = points.hps.clone()
points.scaleboxAnchor = points.titleAnchor.shift(-90, 90).shift(0, 10)
// macro('scalebox', { at: points.scaleboxAnchor, rotate: 270 })
if (sa) {
if ('front' == options.zipperLocation) {
paths.sa = paths.seam
@ -105,9 +115,8 @@ export const frontInside = {
}
}
let extraOffset = 0
macro('hd', {
from: points.cfNeck,
from: lacing ? points.lacingHem : points.cfHem,
to: points.shoulderDartInside,
y: points.hps.y - 25,
id: 'hpsToDart',
@ -125,7 +134,7 @@ export const frontInside = {
id: 'hemToDartTip',
})
macro('hd', {
from: points.cfBust,
from: lacing ? points.lacingHem : points.cfHem,
to: points.shoulderDartTip,
y: points.cfHem.y + sa + 25,
id: 'middleToDartTip',
@ -133,26 +142,26 @@ export const frontInside = {
macro('vd', {
from: points.cfHem,
to: points.cfNeck,
x: 0 - 20 - extraOffset,
to: lacing ? points.lacingCut : points.cfCut,
x: 0 - 20,
id: 'hemToNeck',
})
macro('vd', {
from: points.cfHem,
to: points.hps,
x: 0 - 40 - extraOffset,
to: points.strapInside,
x: 0 - 40,
id: 'hemToHps',
})
macro('hd', {
from: points.cfHem,
from: lacing ? points.lacingHem : points.cfHem,
to: points.waistDartLeft,
y: points.cfHem.y + sa + 15,
id: 'middleToDart',
})
macro('hd', {
from: points.cfNeck,
to: points.hps,
y: points.hps.y - sa - 15,
from: lacing ? points.lacingCut : points.cfCut,
to: points.strapInside,
y: points.strapInside.y - sa - 15,
id: 'middleToHps',
})

View file

@ -55,7 +55,7 @@ export const frontOutside = {
})
store.cutlist.removeCut()
store.cutlist.addCut()
store.cutlist.addCut({ cut: 2, from: 'fabric' })
points.snippet = paths.princessSeam.shiftAlong(
paths.princessSeam.length() - store.get('shoulderDartTipNotch')
@ -74,7 +74,8 @@ export const frontOutside = {
if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')
let pLeft = paths.princessSeam.edge('left')
const pLeft = paths.princessSeam.edge('left')
macro('hd', {
from: points.waistDartRight,
to: points.armholeOutsidePitchCp1,
@ -93,6 +94,24 @@ export const frontOutside = {
y: points.sideHemInitial.y + sa + 15,
id: 'leftToSide',
})
macro('hd', {
from: points.shoulderDartOutside,
to: points.strapOutside,
y: points.shoulderDartOutside.y - sa - 15,
id: 'dartToShoulder',
})
macro('hd', {
from: points.snippet,
to: points.strapOutside,
y: points.shoulderDartOutside.y - sa - 25,
id: 'dartPointToShoulder',
})
macro('hd', {
from: pLeft,
to: points.strapOutside,
y: points.shoulderDartOutside.y - sa - 35,
id: 'leftToShoulder',
})
macro('vd', {
from: points.armholeOutsidePitchCp1,
@ -106,35 +125,10 @@ export const frontOutside = {
x: pLeft.x - sa - 15,
id: 'hemToLeft',
})
macro('hd', {
from: points.shoulderDartOutside,
to: points.shoulder,
y: points.shoulderDartOutside.y - sa - 15,
id: 'dartToShoulder',
})
macro('hd', {
from: points.snippet,
to: points.shoulder,
y: points.shoulderDartOutside.y - sa - 25,
id: 'dartPointToShoulder',
})
macro('hd', {
from: pLeft,
to: points.shoulder,
y: points.shoulderDartOutside.y - sa - 35,
id: 'leftToShoulder',
})
macro('hd', {
from: points.waistDartRight,
to: points.shoulder,
y: points.sideHemInitial.y + sa + 45,
id: 'hemDartToShoulder',
})
macro('vd', {
from: points.shoulder,
from: points.strapOutside,
to: points.sideHemInitial,
x: points.shoulder.x,
x: points.sideHemInitial.x + sa + 25,
id: 'hemToShoulder',
})
macro('vd', {
@ -156,20 +150,6 @@ export const frontOutside = {
id: 'shoulderDartToDartPoint',
})
const pArmholeLeft = paths.armhole.edge('left')
macro('hd', {
from: points.waistDartRight,
to: pArmholeLeft,
y: points.sideHemInitial.y + sa + 5,
id: 'hemDartToRight',
})
macro('vd', {
from: pArmholeLeft,
to: points.sideHemInitial,
x: points.sideHemInitial.x + sa + 25,
id: 'hemSideToRight',
})
return part
},
}

View file

@ -69,12 +69,6 @@ export const frontPoints = {
const shoulderWidthOutside = points.shoulderDartOutside.dist(points.shoulder)
let strapWidth = (shoulderWidthInside + shoulderWidthOutside) * options.strapWidth
console.log({
r: strapWidth / shoulderWidthOutside,
sw: shoulderWidthOutside,
strap: strapWidth,
})
if (strapWidth / 2 > shoulderWidthInside) {
strapWidth = shoulderWidthInside * 2
}
@ -87,7 +81,6 @@ export const frontPoints = {
points.strapOutside = points.shoulderDartOutside.shiftTowards(points.shoulder, strapWidth / 2)
points.cfCut = points.cfNeck.shiftFractionTowards(points.cfBust, options.cutDepthFront)
console.log({ cut: points.cfNeck.dist(points.cfCut) })
points.cutSeamInside = new Path()
.move(points.waistDartLeft)
@ -104,7 +97,6 @@ export const frontPoints = {
points.shoulderDartOutside
)
.intersectsY(points.cfCut.y)[0]
// .addCircle(6)
points.cfCutCp = points.cfCut.shiftFractionTowards(
points.cutSeamInside,
@ -153,6 +145,7 @@ export const frontPoints = {
(points.strapInsideCp.x - points.cfCut.x) * options.lacingWidth
)
}
store.set('frontOutsideWaistLength', points.waistDartRight.dist(points.sideHem))
store.set(
'frontInsideWaistLength',