1
0
Fork 0

Adjusted defaults and armhole calc

This commit is contained in:
woutervdub 2023-10-27 04:43:09 +00:00
parent f71a52eaf8
commit 9807f9a1eb
5 changed files with 99 additions and 44 deletions

View file

@ -1,7 +1,7 @@
import { backPoints } from './backpoints.mjs' import { backPoints } from './backpoints.mjs'
export const backOutside = { export const backOutside = {
name: 'noble.backOutside', name: 'tristan.backOutside',
from: backPoints, from: backPoints,
draft: ({ sa, Point, points, Path, paths, Snippet, snippets, options, macro, part }) => { draft: ({ sa, Point, points, Path, paths, Snippet, snippets, options, macro, part }) => {
paths.cut = new Path() paths.cut = new Path()
@ -27,6 +27,13 @@ export const backOutside = {
.close() .close()
.attr('class', 'fabric') .attr('class', 'fabric')
console.log({
backSide: new Path()
.move(points.waistSide)
.curve_(points.waistSideCp2, points.armhole)
.length(),
})
return part return part
}, },
} }

View file

@ -64,18 +64,30 @@ export const backPoints = {
1 - options.cutRoundnessBack 1 - options.cutRoundnessBack
) )
points.armholeCutCp = points.armhole.shiftFractionTowards( points.armholeCutCp = points.armhole
points.cutSeamOutside, .shift(180, options.armholeBackIn * points.armhole.dist(points.dartTip))
1 - options.cutRoundnessBack .addCircle(4)
) // points.cutSeamOutside = points.armhole.shiftFractionTowards(
// points.cutSeamOutside,
// 1 - options.cutRoundnessBack
// )
points.strapOutsideCp = points.strapOutside.shiftFractionTowards( points.strapOutsideCp = points.strapOutside
points.cutSeamOutside.shift( .shiftFractionTowards(
points.cutSeamOutside.angle(points.shoulderDart) - 90, points.cutSeamOutside.shift(
strapWidth / 2 points.cutSeamOutside.angle(points.shoulderDart) - 90,
), strapWidth / 2
1 - options.cutRoundnessBack ),
) options.armholeFrontDepth
)
.addCircle(2)
// points.strapOutsideCp = points.strapOutside.shiftFractionTowards(
// points.cutSeamOutside.shift(
// points.cutSeamOutside.angle(points.shoulderDart) - 90,
// strapWidth / 2
// ),
// 1 - options.cutRoundnessBack
// ).addCircle(2)
const armHole = new Path() const armHole = new Path()
.move(points.armhole) .move(points.armhole)
@ -90,17 +102,17 @@ export const backPoints = {
).length, ).length,
}) })
var iter = 0 // var iter = 0
while ( // while (
armHole.intersects( // armHole.intersects(
new Path() // new Path()
.move(points.strapOutside) // .move(points.strapOutside)
.curve(points.strapOutsideCp, points.armholeCutCp, points.armhole) // .curve(points.strapOutsideCp, points.armholeCutCp, points.armhole)
).length != 0 && // ).length != 0 &&
++iter < 250 // ++iter < 250
) { // ) {
points.armholeCutCp = points.armholeCutCp.shiftFractionTowards(points.cutSeamOutside, 0.05) // points.armholeCutCp = points.armholeCutCp.shiftFractionTowards(points.cutSeamOutside, 0.05)
} // }
return part return part
}, },

View file

@ -54,6 +54,8 @@ export const frontOutside = {
to: points.grainTop, to: points.grainTop,
}) })
console.log({ frontSide: points.sideHem.dist(points.armhole) })
store.cutlist.removeCut() store.cutlist.removeCut()
store.cutlist.addCut() store.cutlist.addCut()

View file

@ -1,14 +1,26 @@
import { frontPoints as nobleFrontPoints } from '@freesewing/noble' import { frontPoints as nobleFrontPoints } from '@freesewing/noble'
import { hidePresets } from '@freesewing/core' import { hidePresets } from '@freesewing/core'
import * as options from './options.mjs' import * as options from './options.mjs'
import { utils } from 'mocha'
export const frontPoints = { export const frontPoints = {
name: 'tristan.frontPoints', name: 'tristan.frontPoints',
from: nobleFrontPoints, from: nobleFrontPoints,
hide: hidePresets.HIDE_ALL, hide: hidePresets.HIDE_ALL,
options, options,
draft: ({ log, points, Path, paths, snippets, options, macro, utils, store, part }) => { draft: ({
log,
measurements,
Point,
points,
Path,
paths,
snippets,
options,
macro,
utils,
store,
part,
}) => {
const bCircle = 0.552284749831 const bCircle = 0.552284749831
// Hide Noble paths // Hide Noble paths
@ -34,6 +46,7 @@ export const frontPoints = {
strapWidth = shoulderWidthOutside * 2 strapWidth = shoulderWidthOutside * 2
} }
store.set('strapWidth', strapWidth) store.set('strapWidth', strapWidth)
console.log({ strapWidth: strapWidth })
console.log({ options: JSON.parse(JSON.stringify(options)) }) console.log({ options: JSON.parse(JSON.stringify(options)) })
console.log({ paths: JSON.parse(JSON.stringify(paths)) }) console.log({ paths: JSON.parse(JSON.stringify(paths)) })
@ -47,6 +60,7 @@ export const frontPoints = {
// .curve(points.armholeCp2, points.armholePitchCp1, points.armholePitch) // .curve(points.armholeCp2, points.armholePitchCp1, points.armholePitch)
// .curve_(points.armholePitchCp2, points.shoulder) // .curve_(points.armholePitchCp2, points.shoulder)
points.cfCut = points.cfNeck.shiftFractionTowards(points.cfBust, options.cutDepthFront) points.cfCut = points.cfNeck.shiftFractionTowards(points.cfBust, options.cutDepthFront)
console.log({ cut: points.cfNeck.dist(points.cfCut) })
points.cutSeamInside = new Path() points.cutSeamInside = new Path()
.move(points.waistDartLeft) .move(points.waistDartLeft)
@ -63,6 +77,7 @@ export const frontPoints = {
points.shoulderDartOutside points.shoulderDartOutside
) )
.intersectsY(points.cfCut.y)[0] .intersectsY(points.cfCut.y)[0]
.addCircle(6)
points.cfCutCp = points.cfCut.shiftFractionTowards( points.cfCutCp = points.cfCut.shiftFractionTowards(
points.cutSeamInside, points.cutSeamInside,
@ -76,18 +91,28 @@ export const frontPoints = {
1 - options.cutRoundnessFront 1 - options.cutRoundnessFront
) )
points.armholeCutCp = points.armhole.shiftFractionTowards( points.armholeCutCp = points.armhole
points.cutSeamOutside, .shiftFractionTowards(points.bustDartTip, options.armholeFrontIn)
1 - options.cutRoundnessFront .addCircle(4)
) // points.armholeCutCp = points.armhole.shiftFractionTowards(
// points.cutSeamOutside,
// 1 - options.cutRoundnessFront
// ).addCircle(4)
points.strapOutsideCp = points.strapOutside.shiftFractionTowards( points.strapOutsideCp = points.strapOutside.shiftFractionTowards(
points.cutSeamOutside.shift( points.bustDartTip.shift(
points.cutSeamOutside.angle(points.shoulderDartOutside) - 90, points.cutSeamOutside.angle(points.shoulderDartOutside) - 90,
strapWidth / 2 strapWidth / 2
), ),
1 - options.cutRoundnessFront options.armholeFrontDepth
) )
// points.strapOutsideCp = points.strapOutside.shiftFractionTowards(
// points.cutSeamOutside.shift(
// points.cutSeamOutside.angle(points.shoulderDartOutside) - 90,
// strapWidth / 2
// ),
// 1 - options.cutRoundnessFront
// )
const armHole = new Path() const armHole = new Path()
.move(points.armhole) .move(points.armhole)
@ -102,18 +127,22 @@ export const frontPoints = {
).length, ).length,
}) })
var iter = 0 // var iter = 0
while ( // while (
armHole.intersects( // armHole.intersects(
new Path() // new Path()
.move(points.strapOutside) // .move(points.strapOutside)
.curve(points.strapOutsideCp, points.armholeCutCp, points.armhole) // .curve(points.strapOutsideCp, points.armholeCutCp, points.armhole)
).length != 0 && // ).length != 0 &&
++iter < 250 // ++iter < 250
) { // ) {
points.armholeCutCp = points.armholeCutCp.shiftFractionTowards(points.cutSeamOutside, 0.05) // points.armholeCutCp = points.armholeCutCp.shiftFractionTowards(points.cutSeamOutside, 0.05)
} // }
// armhole adjustment
if (points.sideHem.y < points.waistDartRight.y) {
points.sideHem.y = points.waistDartRight.y
}
return part return part
}, },
} }

View file

@ -4,14 +4,19 @@ import { pctBasedOn } from '@freesewing/core'
export const shoulderToShoulderCorrection = 0.995 export const shoulderToShoulderCorrection = 0.995
export const bustDartCurve = 1 export const bustDartCurve = 1
export const bustDartLength = 0.9 export const bustDartLength = 0.9
export const armholeFrontIn = 0.2
export const armholeFrontDepth = 0.65
export const armholeBackIn = 0.6
export const armholeBackDepth = 0.6
export const dartPosition = 'shoulder' export const dartPosition = 'shoulder'
// Percentages // Percentages
export const strapWidth = { pct: 15, min: 5, max: 100, menu: 'style' } export const armholeDepth = { pct: 44, min: 38, max: 55, menu: 'armhole' }
export const strapWidth = { pct: 45, min: 5, max: 100, menu: 'style' }
export const cutDepthFront = { pct: 80, min: 0, max: 125, menu: 'style' } export const cutDepthFront = { pct: 80, min: 0, max: 125, menu: 'style' }
export const cutDepthBack = { pct: 40, min: 0, max: 125, menu: 'style' } export const cutDepthBack = { pct: 40, min: 0, max: 125, menu: 'style' }
// export const cutShape = { pct: 80, min: 0, max: 100, menu: 'style' } // export const cutShape = { pct: 80, min: 0, max: 100, menu: 'style' }
export const cutRoundnessFront = { pct: 10, min: 0, max: 100, menu: 'style' } export const cutRoundnessFront = { pct: 10, min: 0, max: 100, menu: 'style' }
export const cutRoundnessBack = { pct: 10, min: 0, max: 100, menu: 'style' } export const cutRoundnessBack = { pct: 20, min: 0, max: 100, menu: 'style' }
export const bustSpanEase = { pct: 0, min: -5, max: 20, ...pctBasedOn('bustSpan'), menu: 'fit' } export const bustSpanEase = { pct: 0, min: -5, max: 20, ...pctBasedOn('bustSpan'), menu: 'fit' }
export const backHemSlope = { deg: 2.5, min: 0, max: 5, menu: 'advanced' } export const backHemSlope = { deg: 2.5, min: 0, max: 5, menu: 'advanced' }
export const upperDartLength = { pct: 90, min: 80, max: 95, menu: 'darts' } export const upperDartLength = { pct: 90, min: 80, max: 95, menu: 'darts' }