chore: Linter run
This commit is contained in:
parent
8da0b5823d
commit
6d3cee78d9
15 changed files with 152 additions and 167 deletions
|
@ -11,9 +11,17 @@ export default {
|
|||
type: 'pattern',
|
||||
difficulty: 3,
|
||||
optionGroups: {
|
||||
fit: ['headEase'],
|
||||
style: ['lengthRatio', 'goreNumber', 'visorAngle', 'visorWidth','earLength','earWidth','buttonhole'],
|
||||
advanced:['visorLength'],
|
||||
fit: ['headEase'],
|
||||
style: [
|
||||
'lengthRatio',
|
||||
'goreNumber',
|
||||
'visorAngle',
|
||||
'visorWidth',
|
||||
'earLength',
|
||||
'earWidth',
|
||||
'buttonhole',
|
||||
],
|
||||
advanced: ['visorLength'],
|
||||
},
|
||||
measurements: ['head'],
|
||||
dependencies: {},
|
||||
|
@ -21,14 +29,14 @@ export default {
|
|||
hide: [],
|
||||
parts: ['gore', 'visor', 'ear'],
|
||||
options: {
|
||||
headEase: { mm: 19, min: 0, max: 50 },
|
||||
headEase: { mm: 19, min: 0, max: 50 },
|
||||
lengthRatio: { pct: 55, min: 40, max: 60 },
|
||||
goreNumber: { count: 6, min: 4, max: 20 },
|
||||
visorAngle: { deg: 45, min: 10, max: 90 },
|
||||
visorWidth: { mm: 30, min: 5, max: 100 },
|
||||
earLength: { pct: 100, min: 80, max: 150 },
|
||||
earWidth: { pct: 100, min: 80, max: 150 },
|
||||
visorLength: { pct: 100, min: 80, max: 150 },
|
||||
buttonhole: {bool: false}
|
||||
earLength: { pct: 100, min: 80, max: 150 },
|
||||
earWidth: { pct: 100, min: 80, max: 150 },
|
||||
visorLength: { pct: 100, min: 80, max: 150 },
|
||||
buttonhole: { bool: false },
|
||||
},
|
||||
}
|
||||
|
|
|
@ -15,9 +15,9 @@ export default function (part) {
|
|||
} = part.shorthand()
|
||||
|
||||
// Design pattern here
|
||||
let headCircumference = measurements.head + options.headEase
|
||||
let earFlapLength = ((options.lengthRatio * headCircumference) / 2)*options.earLength
|
||||
let earFlapWidth = (headCircumference / 12)*options.earWidth
|
||||
let headCircumference = measurements.head + options.headEase
|
||||
let earFlapLength = ((options.lengthRatio * headCircumference) / 2) * options.earLength
|
||||
let earFlapWidth = (headCircumference / 12) * options.earWidth
|
||||
points.top = new Point(0, 0)
|
||||
points.bottom = new Point(earFlapWidth, earFlapLength)
|
||||
points.topC = points.top.shift(0, points.bottom.x)
|
||||
|
@ -25,14 +25,12 @@ let earFlapWidth = (headCircumference / 12)*options.earWidth
|
|||
points.topCFlipped = points.topC.flipX()
|
||||
points.bottomFlipped = points.bottom.flipX()
|
||||
points.bottomCFlipped = points.bottomC.flipX()
|
||||
paths.seam = new Path()
|
||||
paths.seam = new Path()
|
||||
.move(points.bottom)
|
||||
.curve(points.bottomC, points.topC, points.top)
|
||||
.curve(points.bottomC, points.topC, points.top)
|
||||
.curve(points.topCFlipped, points.bottomCFlipped, points.bottomFlipped)
|
||||
|
||||
paths.hem = new Path()
|
||||
.move(points.bottomFlipped)
|
||||
.line(points.bottom)
|
||||
paths.hem = new Path().move(points.bottomFlipped).line(points.bottom)
|
||||
|
||||
// Complete?
|
||||
if (complete) {
|
||||
|
@ -42,16 +40,17 @@ let earFlapWidth = (headCircumference / 12)*options.earWidth
|
|||
points.title = new Point(0.3 * points.bottom.x, 0.75 * points.bottom.y)
|
||||
macro('title', { at: points.title, nr: 3, title: 'ear flap', scale: 0.5 })
|
||||
macro('miniscale', { at: new Point(0, points.bottom.y * 0.3) })
|
||||
if (options.buttonhole){
|
||||
let buttonholeDistance = (options.lengthRatio * headCircumference) / 2
|
||||
points.buttonhole = new Point (points.top.x, points.bottom.y - buttonholeDistance)
|
||||
snippets.buttonhole = new Snippet('buttonhole-start', points.buttonhole).attr('data-scale', 2)
|
||||
}
|
||||
if (options.buttonhole) {
|
||||
let buttonholeDistance = (options.lengthRatio * headCircumference) / 2
|
||||
points.buttonhole = new Point(points.top.x, points.bottom.y - buttonholeDistance)
|
||||
snippets.buttonhole = new Snippet('buttonhole-start', points.buttonhole).attr('data-scale', 2)
|
||||
}
|
||||
if (sa) {
|
||||
paths.sa = paths.seam.offset(sa)
|
||||
.join(paths.hem.offset(sa*2))
|
||||
.attr('class', 'fabric sa')
|
||||
.close()
|
||||
paths.sa = paths.seam
|
||||
.offset(sa)
|
||||
.join(paths.hem.offset(sa * 2))
|
||||
.attr('class', 'fabric sa')
|
||||
.close()
|
||||
}
|
||||
|
||||
// Paperless?
|
||||
|
@ -66,13 +65,13 @@ let earFlapWidth = (headCircumference / 12)*options.earWidth
|
|||
to: points.top,
|
||||
x: points.bottomFlipped.x - 15 - sa,
|
||||
})
|
||||
if (options.buttonhole){
|
||||
macro('vd', {
|
||||
from: points.bottom,
|
||||
to: points.buttonhole,
|
||||
x: points.bottom.x + 15 + sa,
|
||||
})
|
||||
}
|
||||
if (options.buttonhole) {
|
||||
macro('vd', {
|
||||
from: points.bottom,
|
||||
to: points.buttonhole,
|
||||
x: points.bottom.x + 15 + sa,
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
return part
|
||||
|
|
|
@ -37,19 +37,19 @@ export default function (part) {
|
|||
.curve(points.gore_Cp1, points.gore_Cp2, points.gore_p2)
|
||||
.offset(sa)
|
||||
.setRender(false)
|
||||
points.sa1 = new Point(points.gore_p3.x - (sa*2), points.gore_p3.y - sa)
|
||||
paths.saBase = new Path()
|
||||
.move(points.gore_p3)
|
||||
points.sa1 = new Point(points.gore_p3.x - sa * 2, points.gore_p3.y - sa)
|
||||
paths.saBase = new Path()
|
||||
.move(points.gore_p3)
|
||||
.line(points.p0)
|
||||
.offset(sa*2)
|
||||
.setRender(false)
|
||||
.offset(sa * 2)
|
||||
.setRender(false)
|
||||
paths.sa = new Path()
|
||||
.move(points.gore_p1)
|
||||
.line(points.gore_p1.shift(0, sa))
|
||||
.line(paths.saCurve.start())
|
||||
.join(paths.saCurve)
|
||||
.line(points.sa1)
|
||||
.join(paths.saBase)
|
||||
.line(points.sa1)
|
||||
.join(paths.saBase)
|
||||
.line(points.p0)
|
||||
.attr('class', 'fabric sa')
|
||||
}
|
||||
|
|
|
@ -4,8 +4,8 @@ export default function (part) {
|
|||
|
||||
let headCircumference = measurements.head + options.headEase
|
||||
let headRadius = headCircumference / 2 / Math.PI
|
||||
let visorRadius = (headRadius / Math.sin((options.visorAngle * Math.PI) / 180))
|
||||
let sectorAngle = (Math.PI / 3)*options.visorLength
|
||||
let visorRadius = headRadius / Math.sin((options.visorAngle * Math.PI) / 180)
|
||||
let sectorAngle = (Math.PI / 3) * options.visorLength
|
||||
let visorSectorAngle = (sectorAngle * headRadius) / visorRadius
|
||||
let cpDistance =
|
||||
((4 / 3) * visorRadius * (1 - Math.cos(visorSectorAngle / 2))) / Math.sin(visorSectorAngle / 2)
|
||||
|
@ -13,7 +13,7 @@ export default function (part) {
|
|||
points.origin = new Point(0, 0)
|
||||
points.in1 = new Point(0, 0)
|
||||
points.in2 = points.in1.shift(
|
||||
((90 / Math.PI) * visorSectorAngle),
|
||||
(90 / Math.PI) * visorSectorAngle,
|
||||
2 * visorRadius * Math.sin(visorSectorAngle / 2)
|
||||
)
|
||||
//test circle
|
||||
|
@ -49,27 +49,26 @@ export default function (part) {
|
|||
macro('title', { at: points.ex1.shift(45, 20), nr: 2, title: 'visor', scale: 0.4 })
|
||||
|
||||
if (sa) {
|
||||
paths.saInner = new Path ()
|
||||
.move(points.in2Flipped)
|
||||
.curve(points.in2CFlipped, points.in1CFlipped, points.in1)
|
||||
.curve(points.in1C, points.in2C, points.in2)
|
||||
.offset(sa*-2)
|
||||
.attr('class', 'fabric sa')
|
||||
points.sa1 = new Point(points.in2Flipped.x-sa, paths.saInner.start().y)
|
||||
points.sa2 = new Point(points.in2.x+sa, paths.saInner.start().y)
|
||||
paths.sa = new Path()
|
||||
.move(points.in2)
|
||||
.curve(points.ex2C, points.ex1C, points.ex1)
|
||||
.curve(points.ex1CFlipped, points.ex2CFlipped, points.in2Flipped)
|
||||
.offset(sa*-1)
|
||||
.line(points.sa1)
|
||||
.join(paths .saInner)
|
||||
.line(points.sa2)
|
||||
.close()
|
||||
.attr('class', 'fabric sa')
|
||||
paths.saInner = new Path()
|
||||
.move(points.in2Flipped)
|
||||
.curve(points.in2CFlipped, points.in1CFlipped, points.in1)
|
||||
.curve(points.in1C, points.in2C, points.in2)
|
||||
.offset(sa * -2)
|
||||
.attr('class', 'fabric sa')
|
||||
points.sa1 = new Point(points.in2Flipped.x - sa, paths.saInner.start().y)
|
||||
points.sa2 = new Point(points.in2.x + sa, paths.saInner.start().y)
|
||||
paths.sa = new Path()
|
||||
.move(points.in2)
|
||||
.curve(points.ex2C, points.ex1C, points.ex1)
|
||||
.curve(points.ex1CFlipped, points.ex2CFlipped, points.in2Flipped)
|
||||
.offset(sa * -1)
|
||||
.line(points.sa1)
|
||||
.join(paths.saInner)
|
||||
.line(points.sa2)
|
||||
.close()
|
||||
.attr('class', 'fabric sa')
|
||||
}
|
||||
|
||||
|
||||
// Paperless?
|
||||
if (paperless) {
|
||||
macro('hd', {
|
||||
|
|
|
@ -117,7 +117,7 @@ addThing: Añadir {thing}
|
|||
newThing: Nuevo {thing}
|
||||
newPatternForModel: 'Nuevo {pattern} para {model}'
|
||||
noChanges: No hay cambios
|
||||
no: "no"
|
||||
no: 'no'
|
||||
noPasswordPolicy: No aplicamos una política de contraseña
|
||||
noSeamAllowance: Sin margen de costura
|
||||
notAllOfThisContentIsAvailableInLanguage: No todo este contenido está disponible en español.
|
||||
|
@ -156,7 +156,7 @@ remove: Eliminar
|
|||
removeThing: Eliminar {thing}
|
||||
reportThisOnGithub: Notifícalo en GitHub
|
||||
requiredMeasurements: Medidas requeridas
|
||||
resendActivationEmailMessage: "Complete la dirección de correo electrónico con la que se registró y le enviaremos un nuevo mensaje de confirmación."
|
||||
resendActivationEmailMessage: 'Complete la dirección de correo electrónico con la que se registró y le enviaremos un nuevo mensaje de confirmación.'
|
||||
resendActivationEmail: Reenviar email de activación
|
||||
resetPassword: Restablecer contraseña
|
||||
reset: Reiniciar
|
||||
|
@ -198,7 +198,7 @@ twitter: Twitter
|
|||
txt-footer: Freesewing está hecho por una comunidad de colaboradores<br />con el apoyo financiero de nuestros Patrones
|
||||
txt-tier2: Nuestro nivel más democrático de precios. Puede ser menor que el precio de un café con leche, pero su apoyo significa mucho para nosotros.
|
||||
txt-tier4: Suscríbase a este nivel y le enviaremos parte de nuestro codiciado botín de diseño gratuito a su hogar en cualquier parte del mundo.
|
||||
txt-tier8: "Si no solo desea apoyarnos, sino que quiere ver prosperar en la libertad, este es el nivel para usted. También: botín extra!"
|
||||
txt-tier8: 'Si no solo desea apoyarnos, sino que quiere ver prosperar en la libertad, este es el nivel para usted. También: botín extra!'
|
||||
txt-tiers: 'FreeSewing es alimentado por un modelo de suscripción voluntario'
|
||||
unitsInfo: La liberación es compatible con el sistema métrico y las unidades imperiales. Simplemente elige el que te gustaría usar aquí. (El valor predeterminado es utilizar las unidades configuradas en su cuenta).
|
||||
updated: Actualizado
|
||||
|
@ -240,8 +240,8 @@ noPattern: No tienes ningún patrón (todavía). Crea un nuevo patrón, luego gu
|
|||
modelFirst: Empezar añadiendo mediciones
|
||||
noModel: No has añadido ninguna medición (aún). La Coser libre puede generar patrones de costura hechos a medida. Pero para eso necesitamos mediciones.
|
||||
noModel2: Así que lo primero que debes hacer es añadir una persona y agitar tu cinta de medición.
|
||||
noUserBrowsingTitle: "No puedes navegar por todos los usuarios"
|
||||
noUserBrowsingText: "Tenemos miles de ellos. ¿Seguro que tienes cosas mejores que hacer?"
|
||||
noUserBrowsingTitle: 'No puedes navegar por todos los usuarios'
|
||||
noUserBrowsingText: 'Tenemos miles de ellos. ¿Seguro que tienes cosas mejores que hacer?'
|
||||
usePatternMeasurements: 'Usar las mediciones del patrón original'
|
||||
createReplica: Crear una réplica
|
||||
showDetails: Mostrar detalles
|
||||
|
|
|
@ -7,7 +7,7 @@ patternType: Tipo de patrón
|
|||
patternCreated: Tu esqueleto de patrón ha sido creado en
|
||||
runTheseCommands: Para empezar, ejecuta este comando
|
||||
startRollup: En una terminal, inicia el paquete de rollup en modo reloj
|
||||
startWebpack: "Entrará en la carpeta \"ejemplo\" e iniciará el entorno de desarrollo."
|
||||
startWebpack: 'Entrará en la carpeta "ejemplo" e iniciará el entorno de desarrollo.'
|
||||
devDocsAvailableAt: Documentación para desarrolladores está disponible en
|
||||
talkToUs: Para preguntas, comentarios o sugerencias, únete a nuestro servidor de Discord
|
||||
draftYourPattern: Traza tu patrón
|
||||
|
|
|
@ -6,7 +6,7 @@ emailchangeHeaderOpeningLine: 'Assurez-vous simplement que nous pouvons vous joi
|
|||
emailchangeHiddenIntro: 'Confirmons votre nouvelle adresse e-mail'
|
||||
emailchangeSubject: 'Merci de confirmer votre nouvelle adresse e-mail'
|
||||
emailchangeTitle: 'Merci de confirmer votre nouvelle adresse e-mail'
|
||||
emailchangeWhy: 'Vous avez reçu cet e-mail parce que vous avez changé l''adresse e-mail liée à votre compte sur freesewing.org'
|
||||
emailchangeWhy: "Vous avez reçu cet e-mail parce que vous avez changé l'adresse e-mail liée à votre compte sur freesewing.org"
|
||||
footerCredits: 'Réalisé par Joost De Cock et ses contributeurs avec le soutien financier de mécènes ❤️ '
|
||||
footerSlogan: 'Freesewing est une plate-forme open source pour des patrons de couture sur mesure'
|
||||
goodbyeCopy1: 'Si vous souhaitez expliquer pourquoi vous partez, vous pouvez répondre à ce message.<br>De notre côté, nous ne vous dérangerons plus.'
|
||||
|
|
|
@ -9,20 +9,8 @@ export default {
|
|||
type: 'pattern',
|
||||
difficulty: 3,
|
||||
optionGroups: {
|
||||
fit: [
|
||||
'bicepsEase',
|
||||
'chestEase',
|
||||
'cuffEase',
|
||||
'collarEase',
|
||||
'shoulderEase',
|
||||
'hipsEase',
|
||||
],
|
||||
style: [
|
||||
'lengthBonus',
|
||||
'sleeveLengthBonus',
|
||||
's3Collar',
|
||||
's3Armhole',
|
||||
],
|
||||
fit: ['bicepsEase', 'chestEase', 'cuffEase', 'collarEase', 'shoulderEase', 'hipsEase'],
|
||||
style: ['lengthBonus', 'sleeveLengthBonus', 's3Collar', 's3Armhole'],
|
||||
advanced: [
|
||||
'acrossBackFactor',
|
||||
'armholeDepthFactor',
|
||||
|
|
|
@ -12,7 +12,7 @@ export default function (part) {
|
|||
paperless,
|
||||
sa,
|
||||
options,
|
||||
measurements
|
||||
measurements,
|
||||
} = part.shorthand()
|
||||
|
||||
// Clear paths from Brian
|
||||
|
@ -36,13 +36,13 @@ export default function (part) {
|
|||
'backNeckSeamLength',
|
||||
new Path().move(points.neck).curve_(points.neckCp2, points.cbNeck).length()
|
||||
)
|
||||
store.set(
|
||||
'neckCutoutBack',
|
||||
points.cbNeck.y
|
||||
)
|
||||
store.set('neckCutoutBack', points.cbNeck.y)
|
||||
|
||||
// Paths
|
||||
paths.gussetBase = new Path().move(points.bottom).line(points.armhole).attr('class', 'note stroke-xxl')
|
||||
paths.gussetBase = new Path()
|
||||
.move(points.bottom)
|
||||
.line(points.armhole)
|
||||
.attr('class', 'note stroke-xxl')
|
||||
store.set('gussetLength', paths.gussetBase.length())
|
||||
paths.saBase = new Path()
|
||||
.move(points.armhole)
|
||||
|
@ -52,12 +52,16 @@ export default function (part) {
|
|||
.line(points.s3CollarSplit)
|
||||
.join(paths.backCollar)
|
||||
.attr('class', 'note stroke-xxl')
|
||||
paths.hemBase = new Path().move(points.cbBottom).line(points.bottom).attr('class', 'note stroke-xxl')
|
||||
paths.hemBase = new Path()
|
||||
.move(points.cbBottom)
|
||||
.line(points.bottom)
|
||||
.attr('class', 'note stroke-xxl')
|
||||
paths.gussetBase.render = false
|
||||
paths.saBase.render = false
|
||||
paths.hemBase.render = false
|
||||
|
||||
paths.seam = paths.gussetBase.join(paths.saBase)
|
||||
paths.seam = paths.gussetBase
|
||||
.join(paths.saBase)
|
||||
.clone()
|
||||
.line(points.cbBottom)
|
||||
.join(paths.hemBase)
|
||||
|
@ -69,7 +73,7 @@ export default function (part) {
|
|||
macro('cutonfold', {
|
||||
from: points.cbNeck,
|
||||
to: points.cbBottom,
|
||||
grainline: true
|
||||
grainline: true,
|
||||
})
|
||||
macro('scalebox', { at: new Point(points.armholePitch.x / 2, points.cbWaist.y) })
|
||||
if (sa) {
|
||||
|
|
|
@ -14,7 +14,7 @@ export default function (part) {
|
|||
measurements,
|
||||
macro,
|
||||
snippets,
|
||||
Snippet
|
||||
Snippet,
|
||||
} = part.shorthand()
|
||||
|
||||
// Clear paths from Brian
|
||||
|
@ -31,7 +31,10 @@ export default function (part) {
|
|||
points.cfBottom = new Point(0, points.cfHem.y * 1.27)
|
||||
points.bottom = new Point(points.hem.x * 1.23, points.cfBottom.y * 0.97)
|
||||
points.bottomCp2 = new Point(points.bottom.x, points.cfWaist.y)
|
||||
points.button = new Point(points.s3CollarSplit.x - 2 / 3 * measurements.shoulderToShoulder, points.s3CollarSplit.y + measurements.hpsToBust * 1.17)
|
||||
points.button = new Point(
|
||||
points.s3CollarSplit.x - (2 / 3) * measurements.shoulderToShoulder,
|
||||
points.s3CollarSplit.y + measurements.hpsToBust * 1.17
|
||||
)
|
||||
// end Yuri points
|
||||
|
||||
// Store length of the neck seam
|
||||
|
@ -42,10 +45,7 @@ export default function (part) {
|
|||
.curve(points.neckCp2Front, points.cfNeckCp1, points.cfNeck)
|
||||
.length()
|
||||
)
|
||||
store.set(
|
||||
'neckCutoutFront',
|
||||
points.cfNeck.y
|
||||
)
|
||||
store.set('neckCutoutFront', points.cfNeck.y)
|
||||
|
||||
// Paths
|
||||
paths.saBase = new Path()
|
||||
|
@ -61,24 +61,40 @@ export default function (part) {
|
|||
.line(points.button)
|
||||
.line(points.cfBottom)
|
||||
.attr('class', 'note stroke-xxl')
|
||||
paths.hemBase = new Path().move(points.cfBottom).line(points.bottom).attr('class', 'note stroke-xxl')
|
||||
paths.hemBase = new Path()
|
||||
.move(points.cfBottom)
|
||||
.line(points.bottom)
|
||||
.attr('class', 'note stroke-xxl')
|
||||
paths.saBase.render = false
|
||||
paths.hemBase.render = false
|
||||
paths.buttonBase.render = false
|
||||
|
||||
paths.seam = paths.saBase.clone().join(paths.buttonBase).join(paths.hemBase).close().attr('class', 'fabric')
|
||||
paths.seam = paths.saBase
|
||||
.clone()
|
||||
.join(paths.buttonBase)
|
||||
.join(paths.hemBase)
|
||||
.close()
|
||||
.attr('class', 'fabric')
|
||||
|
||||
// Complete?
|
||||
if (complete) {
|
||||
macro('grainline', {
|
||||
from: points.s3CollarSplit,
|
||||
to: new Point(points.s3CollarSplit.x, points.bottom.y)
|
||||
to: new Point(points.s3CollarSplit.x, points.bottom.y),
|
||||
})
|
||||
snippets.buttonhole = new Snippet('buttonhole-start', points.button.shift(0, 25)).attr('data-rotate', '90').attr('data-scale', '2.5')
|
||||
snippets.button = new Snippet('button', paths.buttonBase.shiftFractionAlong(0.146).shift(0, 30)).attr('data-scale', '3.3')
|
||||
snippets.buttonhole = new Snippet('buttonhole-start', points.button.shift(0, 25))
|
||||
.attr('data-rotate', '90')
|
||||
.attr('data-scale', '2.5')
|
||||
snippets.button = new Snippet(
|
||||
'button',
|
||||
paths.buttonBase.shiftFractionAlong(0.146).shift(0, 30)
|
||||
).attr('data-scale', '3.3')
|
||||
|
||||
if (sa) {
|
||||
paths.sa = paths.hemBase.offset(3 * sa).join(paths.saBase.offset(sa)).join(paths.buttonBase.offset(3 * sa))
|
||||
paths.sa = paths.hemBase
|
||||
.offset(3 * sa)
|
||||
.join(paths.saBase.offset(sa))
|
||||
.join(paths.buttonBase.offset(3 * sa))
|
||||
paths.sa = paths.sa.line(paths.sa.start()).close().attr('class', 'fabric sa')
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,25 +1,14 @@
|
|||
export default function (part) {
|
||||
const {
|
||||
Point,
|
||||
Path,
|
||||
points,
|
||||
paths,
|
||||
Snippet,
|
||||
snippets,
|
||||
complete,
|
||||
sa,
|
||||
paperless,
|
||||
macro,
|
||||
store
|
||||
} = part.shorthand()
|
||||
const { Point, Path, points, paths, Snippet, snippets, complete, sa, paperless, macro, store } =
|
||||
part.shorthand()
|
||||
|
||||
const w = store.get('gussetLength')
|
||||
points.top = new Point(0, 0)
|
||||
points.bottom = new Point(0, w)
|
||||
points.right = points.bottom.rotate(36.0, points.top)
|
||||
points.cp1 = new Point(0, w * 6 / 5).rotate(90, points.bottom)
|
||||
points.cp2 = new Point(points.right.x, points.right.y * 6 / 5).rotate(-60, points.right)
|
||||
points.title = new Point(0, 2 * w / 3).rotate(15, points.top)
|
||||
points.cp1 = new Point(0, (w * 6) / 5).rotate(90, points.bottom)
|
||||
points.cp2 = new Point(points.right.x, (points.right.y * 6) / 5).rotate(-60, points.right)
|
||||
points.title = new Point(0, (2 * w) / 3).rotate(15, points.top)
|
||||
|
||||
paths.hat = new Path()
|
||||
.move(points.right)
|
||||
|
@ -39,17 +28,20 @@ export default function (part) {
|
|||
macro('cutonfold', {
|
||||
from: new Point(points.top.x, points.top.y + 50),
|
||||
to: points.bottom,
|
||||
grainline: true
|
||||
grainline: true,
|
||||
})
|
||||
macro('title', {
|
||||
at: points.title,
|
||||
nr: 4,
|
||||
title: 'gusset'
|
||||
title: 'gusset',
|
||||
})
|
||||
points.logo = points.title.shift(-75, 100)
|
||||
snippets.logo = new Snippet('logo', points.logo)
|
||||
if (sa) {
|
||||
paths.sa = paths.hat.offset(sa).join(paths.curve.offset(3 * sa)).attr('class', 'fabric sa')
|
||||
paths.sa = paths.hat
|
||||
.offset(sa)
|
||||
.join(paths.curve.offset(3 * sa))
|
||||
.attr('class', 'fabric sa')
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -58,23 +50,23 @@ export default function (part) {
|
|||
macro('vd', {
|
||||
from: points.top,
|
||||
to: points.bottom,
|
||||
x: points.top.x - sa - 15
|
||||
x: points.top.x - sa - 15,
|
||||
})
|
||||
macro('vd', {
|
||||
from: new Point(0, points.right.y),
|
||||
to: points.bottom,
|
||||
x: 20
|
||||
x: 20,
|
||||
})
|
||||
|
||||
macro('ld', {
|
||||
from: points.top,
|
||||
to: points.right,
|
||||
d: sa + 15
|
||||
d: sa + 15,
|
||||
})
|
||||
macro('hd', {
|
||||
from: new Point(0, points.right),
|
||||
to: points.right,
|
||||
y: points.right.y
|
||||
y: points.right.y,
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
@ -1,16 +1,6 @@
|
|||
export default function (part) {
|
||||
const {
|
||||
store,
|
||||
sa,
|
||||
Point,
|
||||
points,
|
||||
Path,
|
||||
paths,
|
||||
complete,
|
||||
paperless,
|
||||
macro,
|
||||
units
|
||||
} = part.shorthand()
|
||||
const { store, sa, Point, points, Path, paths, complete, paperless, macro, units } =
|
||||
part.shorthand()
|
||||
|
||||
const width = store.get('hoodCenterWidth')
|
||||
const length = complete ? width * 2.5 : store.get('hoodCenterLength')
|
||||
|
@ -59,21 +49,21 @@ export default function (part) {
|
|||
macro('title', { at: points.title, nr: 6, title: 'hoodCenter' })
|
||||
macro('grainline', {
|
||||
from: points.topLeft.shift(-90, width / 2),
|
||||
to: points.topRight.shift(-90, width / 2)
|
||||
to: points.topRight.shift(-90, width / 2),
|
||||
})
|
||||
// Always include this dimension as we don't print the entire part
|
||||
macro('hd', {
|
||||
from: points.bottomLeft,
|
||||
to: points.bottomRight,
|
||||
y: points.bottomRight.y + sa + 15,
|
||||
text: units(store.get('hoodCenterLength'))
|
||||
text: units(store.get('hoodCenterLength')),
|
||||
})
|
||||
// Paperless?
|
||||
if (paperless) {
|
||||
macro('vd', {
|
||||
from: points.bottomRight,
|
||||
to: points.topRight,
|
||||
x: points.topRight.x + sa + 15
|
||||
x: points.topRight.x + sa + 15,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@ export default function (part) {
|
|||
measurements,
|
||||
complete,
|
||||
paperless,
|
||||
macro
|
||||
macro,
|
||||
} = part.shorthand()
|
||||
|
||||
const neckOpening = store.get('frontNeckSeamLength') + store.get('backNeckSeamLength')
|
||||
|
@ -86,7 +86,7 @@ export default function (part) {
|
|||
snippets.logo = new Snippet('logo', points.logo)
|
||||
macro('grainline', {
|
||||
from: points.shoulderNotch,
|
||||
to: points.hoodTop
|
||||
to: points.hoodTop,
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -107,41 +107,41 @@ export default function (part) {
|
|||
|
||||
macro('pd', {
|
||||
path: neckSeam[0],
|
||||
d: sa + 15
|
||||
d: sa + 15,
|
||||
})
|
||||
macro('pd', {
|
||||
path: neckSeam[1],
|
||||
d: sa + 15
|
||||
d: sa + 15,
|
||||
})
|
||||
macro('pd', {
|
||||
path: centralSeam,
|
||||
d: sa * -1 - 15
|
||||
d: sa * -1 - 15,
|
||||
})
|
||||
macro('hd', {
|
||||
from: points.neckEdge,
|
||||
to: points.frontEdge,
|
||||
y: points.frontEdge.y + sa + 30
|
||||
y: points.frontEdge.y + sa + 30,
|
||||
})
|
||||
macro('hd', {
|
||||
from: centralSeam.edge('left'),
|
||||
to: points.frontEdge,
|
||||
y: points.frontEdge.y + sa + 45
|
||||
y: points.frontEdge.y + sa + 45,
|
||||
})
|
||||
const openingEdge = openingSeam.edge('left')
|
||||
macro('hd', {
|
||||
from: openingEdge,
|
||||
to: points.frontEdge,
|
||||
y: openingEdge.y
|
||||
y: openingEdge.y,
|
||||
})
|
||||
macro('vd', {
|
||||
from: points.frontEdge,
|
||||
to: points.hoodRim,
|
||||
x: points.hoodRim.x + sa + 15
|
||||
x: points.hoodRim.x + sa + 15,
|
||||
})
|
||||
macro('vd', {
|
||||
from: points.frontEdge,
|
||||
to: points.hoodTop,
|
||||
x: points.hoodRim.x + sa + 30
|
||||
x: points.hoodRim.x + sa + 30,
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
@ -117,4 +117,3 @@ export const sharedDimensions = function (part, s) {
|
|||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,16 +1,6 @@
|
|||
export default function (part) {
|
||||
let {
|
||||
Point,
|
||||
Path,
|
||||
points,
|
||||
paths,
|
||||
store,
|
||||
options,
|
||||
complete,
|
||||
sa,
|
||||
paperless,
|
||||
macro,
|
||||
} = part.shorthand()
|
||||
let { Point, Path, points, paths, store, options, complete, sa, paperless, macro } =
|
||||
part.shorthand()
|
||||
|
||||
// Clear paths from Brian, but keep sleevecap
|
||||
for (let p of Object.keys(paths)) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue