@freesewing/trayvon
Version:
A FreeSewing pattern for a tie
117 lines (94 loc) • 2.57 kB
JavaScript
import {
calculateHelpers,
draftTieShape,
seamAllowance,
tieShapeDimensions,
options,
} from './shared.mjs'
function trayvonLiningTail(params) {
const { Path, Snippet, macro, options, paths, points, sa, snippets, store, absoluteOptions } =
params
calculateHelpers(params)
draftTieShape(params, store.get('backTip') * 2.5, options.knotWidth * 2.5)
// Cut part short
points.cutRight = points.tipRight.shiftTowards(points.midRight, absoluteOptions.tipWidth * 2.5)
points.cutLeft = points.cutRight.flipX()
// Overwrite path
paths.seam = new Path()
.move(points.tip)
.line(points.tipLeft)
.line(points.cutLeft)
.line(points.cutRight)
.line(points.tipRight)
.line(points.tip)
.close()
.addClass('lining')
if (sa) seamAllowance(params, 'lining')
/*
* Annotations
*/
// Cutlist
store.cutlist.addCut({ cut: 1, material: 'lining' })
// Title
macro('title', {
at: points.title,
nr: 6,
title: 'liningTip',
rotation: -90,
})
// Notch
snippets.notch = new Snippet('notch', points.tip)
// Dimensions
tieShapeDimensions(params, true)
return params.part
}
function trayvonLiningTip(params) {
const { Path, Snippet, macro, paths, points, sa, snippets, absoluteOptions, store } = params
calculateHelpers(params)
draftTieShape(params, absoluteOptions.tipWidth * 2.5, absoluteOptions.knotWidth * 2.5)
// Cut part short
points.cutRight = points.tipRight.shiftTowards(points.midRight, absoluteOptions.tipWidth * 2.5)
points.cutLeft = points.cutRight.flipX()
// Overwrite path
paths.seam = new Path()
.move(points.tip)
.line(points.tipLeft)
.line(points.cutLeft)
.line(points.cutRight)
.line(points.tipRight)
.line(points.tip)
.close()
.addClass('lining')
if (sa) seamAllowance(params, 'lining')
/*
* Annotations
*/
// Cutlist
store.cutlist.addCut({ cut: 1, material: 'lining' })
// Title
macro('title', {
at: points.title,
nr: 5,
title: 'liningTip',
rotation: -90,
})
// Notch
snippets.notch = new Snippet('notch', points.tip)
// Miniscale
macro('miniscale', { at: points.gridAnchor })
// Dimensions
tieShapeDimensions(params, true)
return params.part
}
export const liningTail = {
name: 'trayvon.liningTail',
measurements: ['hpsToWaistBack', 'waistToHips', 'neck'],
options,
draft: trayvonLiningTail,
}
export const liningTip = {
name: 'trayvon.liningTip',
measurements: ['hpsToWaistBack', 'waistToHips', 'neck'],
options,
draft: trayvonLiningTip,
}