diff --git a/designs/tristan/i18n/en.json b/designs/tristan/i18n/en.json index 7b0495506a5..28cb9c75862 100644 --- a/designs/tristan/i18n/en.json +++ b/designs/tristan/i18n/en.json @@ -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." + } + + } } diff --git a/designs/tristan/src/backinside.mjs b/designs/tristan/src/backinside.mjs index 28f38a00c82..bc5406dcafd 100644 --- a/designs/tristan/src/backinside.mjs +++ b/designs/tristan/src/backinside.mjs @@ -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 }, } diff --git a/designs/tristan/src/backoutside.mjs b/designs/tristan/src/backoutside.mjs index eeece9d74ad..4702a6ed363 100644 --- a/designs/tristan/src/backoutside.mjs +++ b/designs/tristan/src/backoutside.mjs @@ -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 }, } diff --git a/designs/tristan/src/backpoints.mjs b/designs/tristan/src/backpoints.mjs index d0ca42bc0a3..96ccff5d59e 100644 --- a/designs/tristan/src/backpoints.mjs +++ b/designs/tristan/src/backpoints.mjs @@ -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), diff --git a/designs/tristan/src/frontinside.mjs b/designs/tristan/src/frontinside.mjs index 96b3f3fd3f5..82f1ae286a8 100644 --- a/designs/tristan/src/frontinside.mjs +++ b/designs/tristan/src/frontinside.mjs @@ -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', }) diff --git a/designs/tristan/src/frontoutside.mjs b/designs/tristan/src/frontoutside.mjs index 753760cbf21..8d2e250254f 100644 --- a/designs/tristan/src/frontoutside.mjs +++ b/designs/tristan/src/frontoutside.mjs @@ -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 }, } diff --git a/designs/tristan/src/frontpoints.mjs b/designs/tristan/src/frontpoints.mjs index 7eebc20ebd3..167913ddcba 100644 --- a/designs/tristan/src/frontpoints.mjs +++ b/designs/tristan/src/frontpoints.mjs @@ -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',