Merge branch 'develop' of github.com:freesewing/freesewing into develop
This commit is contained in:
commit
c173e31fd7
24 changed files with 226 additions and 33 deletions
|
@ -12,11 +12,9 @@ Take a look at our new development blog, which you can read at [2022.freesewing.
|
||||||
If you'd like to get involved in this effort, head over to [discord.freesewing.org](https://discord.freesewing.org/) and join the **v3** channel.
|
If you'd like to get involved in this effort, head over to [discord.freesewing.org](https://discord.freesewing.org/) and join the **v3** channel.
|
||||||
|
|
||||||
|
|
||||||
##### Next contributor call on 2 October
|
##### Next contributor call on 30 October
|
||||||
|
|
||||||
The next contributor call is on **2 October 2021**, Lucian and Karen will host it.
|
The next contributor call is on **30 October 2021**, Lucian and Karen will host it.
|
||||||
|
|
||||||
There will also be a [developer call](https://github.com/freesewing/freesewing/issues/1352) 30 minutes prior.
|
|
||||||
|
|
||||||
The call is on [discord.freesewing.org](https://discord.freesewing.org/).
|
The call is on [discord.freesewing.org](https://discord.freesewing.org/).
|
||||||
Check the meetings voice/video channel.
|
Check the meetings voice/video channel.
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
##### New pattern: The Yuri Hoodie
|
##### New patterns: Bee, Lunetius, Tiberius, and Walburga
|
||||||
|
|
||||||
Check out the latest addition to our catalog: [the Yuri hoodie pattern](/designs/yuri/).
|
Check out the latest additions to our catalog: the [Bee bikini](/designs/bee/), [Lunetius Lacerna](/designs/lunetius/), [Tiberius Tunica](/designs/tiberius/), and [Walburga Wappenrock](/designs/walburga/).
|
||||||
|
|
||||||
Yuri is a fancy zipless cardigan based on the Huey & Hugo hoodies.
|
Bee is a bikini pattern, while Lunetius, Tiberius, and Walburga are historical patterns.
|
||||||
|
|
||||||
##### Next contributor call on 2 October
|
Read more in [our blog](/blog/freesewing-2-19/).
|
||||||
|
|
||||||
The next contributor call is on **2 October 2021**, Lucian and Karen will host it.
|
##### Next contributor call on 30 October
|
||||||
|
|
||||||
There will also be a [developer call](https://github.com/freesewing/freesewing/issues/1352) 30 minutes prior.
|
The next contributor call is on **30 October 2021**, Lucian and Karen will host it.
|
||||||
|
|
||||||
The call is on [discord.freesewing.org](https://discord.freesewing.org/).
|
The call is on [discord.freesewing.org](https://discord.freesewing.org/).
|
||||||
Check the meetings voice/video channel.
|
Check the meetings voice/video channel.
|
||||||
|
|
|
@ -1,7 +1,20 @@
|
||||||
To make Bella, you'll need:
|
---
|
||||||
|
title: Bella Cutting
|
||||||
|
---
|
||||||
|
|
||||||
- 1 Front
|
**Main fabric**
|
||||||
- 2 Back
|
|
||||||
|
- Cut **1 Front** part on the fold.
|
||||||
|
- Cut **2 Back** parts.
|
||||||
|
|
||||||
|
|
||||||
|
These cutting instructions are just for the default Bella block. Adjust your cutting accordingly if you have/are making changes to the block.
|
||||||
|
|
||||||
|
<Tip>
|
||||||
|
|
||||||
|
If you do not have someone to help pin you into Bella then you may find it easier to Cut 2 Front parts with seam allowance and sew the backs up when constructing so you can pin in the front.
|
||||||
|
|
||||||
|
</Tip>
|
||||||
|
|
||||||
<Note>
|
<Note>
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,11 @@
|
||||||
|
---
|
||||||
|
title: Bella Fabric options
|
||||||
|
---
|
||||||
|
|
||||||
|
If you are making a default Bella to see how it fits we recommend a fabric such as **Calico (Muslin)** or a cheaper fabric that matches the drape and stretch of the fabric you intend to make a finalised version of Bella with.
|
||||||
|
|
||||||
|
You can use scraps of fabrics from your stash so don't worry about buying fabric specifically for Bella.
|
||||||
|
|
||||||
<Note>
|
<Note>
|
||||||
|
|
||||||
###### Bella is a block, not a pattern
|
###### Bella is a block, not a pattern
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
---
|
||||||
|
title: Bella Construction
|
||||||
|
---
|
||||||
|
|
||||||
<Note>
|
<Note>
|
||||||
|
|
||||||
###### Bella is a block, not a pattern
|
###### Bella is a block, not a pattern
|
||||||
|
@ -5,6 +9,56 @@
|
||||||
A block is a basic shape on which other patterns are based.
|
A block is a basic shape on which other patterns are based.
|
||||||
They are sometimes also called slopers, although purists will argue that a block and a sloper are different things.
|
They are sometimes also called slopers, although purists will argue that a block and a sloper are different things.
|
||||||
|
|
||||||
Blocks are typically not made as-is but rather serve as a basis for other patterns.
|
Blocks are typically not made as-is but rather serve as a basis for other patterns so the instructions below will not go in depth about closures or finishes and are for the default Bella block.
|
||||||
|
|
||||||
</Note>
|
</Note>
|
||||||
|
|
||||||
|
### Step 1: Mock-up Construction
|
||||||
|
|
||||||
|
__1.__ Close the front bust and waist darts.
|
||||||
|
__2.__ Close the back darts.
|
||||||
|
__3.__ Sew the front to the backs at the shoulders right sides together.
|
||||||
|
__4.__ Sew the front to the backs at the side seams right sides together.
|
||||||
|
|
||||||
|
<Tip>
|
||||||
|
|
||||||
|
If you are making adjustments you may wish to sew the seams wrong sides together to make them easier to adjust.
|
||||||
|
|
||||||
|
</Tip>
|
||||||
|
|
||||||
|
### Step 2: Try it on
|
||||||
|
|
||||||
|
__1.__ Try it on and check the fit by pinning the back closed whilst wearing it.
|
||||||
|
__2.__ Make any alterations and try it on again.
|
||||||
|
__3.__ Repeat until you are happy.
|
||||||
|
|
||||||
|
<Tip>
|
||||||
|
|
||||||
|
If you do not have someone to help with pinning, you may find it easier to cut the front part in two with seam allowance rather than on a fold and sew the back seam up so that you can pin in the front when trying on.
|
||||||
|
|
||||||
|
</Tip>
|
||||||
|
|
||||||
|
<Note>
|
||||||
|
|
||||||
|
Remember to treat Bella as a basis rather than a final product, so adjust what you need to get the desired look.
|
||||||
|
For instance:
|
||||||
|
- Change the neck line
|
||||||
|
- Add/change the closure allowances
|
||||||
|
- Alter the dart placements
|
||||||
|
- Add a collar
|
||||||
|
|
||||||
|
It is all up to you! Experiment and go forth!
|
||||||
|
|
||||||
|
</Note>
|
||||||
|
|
||||||
|
### Step 3: Make a paper pattern
|
||||||
|
|
||||||
|
__1.__ Once happy with all your changes unpick your mockup and make a paper pattern based off of it.
|
||||||
|
__2.__ Now you have a pattern you can use to produce a garment.
|
||||||
|
|
||||||
|
<Note>
|
||||||
|
|
||||||
|
It is best practice to make a paper pattern from the mock-up if you have made any alterations, as this will allow you to clean up any lines but also means you have a pattern that you can keep producing garments from.
|
||||||
|
|
||||||
|
</Note>
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,14 @@
|
||||||
|
---
|
||||||
|
title: Bella What you need
|
||||||
|
---
|
||||||
|
|
||||||
|
To make Bella, you will need the following:
|
||||||
|
|
||||||
|
- Basic sewing supplies
|
||||||
|
- About 0.5 metres of a suitable fabric ([see Bella Fabric options](/docs/patterns/bella/fabric/))
|
||||||
|
|
||||||
|
This list is for a default Bella Block. If you have/are making changes to the block you may need to get additional items such as closures, binding etc.
|
||||||
|
|
||||||
<Note>
|
<Note>
|
||||||
|
|
||||||
###### Bella is a block, not a pattern
|
###### Bella is a block, not a pattern
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
---
|
---
|
||||||
---
|
---
|
||||||
|
|
||||||
<PatternOptions pattern='carlon' />
|
<PatternOptions pattern='carlton' />
|
||||||
|
|
||||||
|
|
|
@ -4,13 +4,10 @@ title: Cuff style
|
||||||
|
|
||||||
This pattern supports three different cuff styles:
|
This pattern supports three different cuff styles:
|
||||||
|
|
||||||
- Traditional
|
- **Traditional**: A single buttoned *curved* band with a pointed edge.
|
||||||
- Elegant
|
- **Elegant**: A single buttoned *straight* band with a pointed edge.
|
||||||
- Keystone
|
- **Keystone**: A slightly curved band that is wider than the others using 3 buttons rather than 1. This one is based of off the one in the Keystone Draft this pattern is based on.
|
||||||
|
|
||||||
<Fixme>Describe the different styles</Fixme>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Effect of this option on the pattern
|
## Effect of this option on the pattern
|
||||||

|

|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
---
|
||||||
|
title: Buttonhole guide
|
||||||
|
---
|
||||||
|
|
||||||
|
Adds a buttonhole to the ear flap to help you draft the buttonhole ear flap variant
|
||||||
|
|
||||||
|
|
||||||
## Effect of this option on the pattern
|
## Effect of this option on the pattern
|
||||||

|

|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
---
|
||||||
|
title: Ear flap length
|
||||||
|
---
|
||||||
|
|
||||||
|
Controls the length of the ear flaps independently from the crown pieces
|
||||||
|
|
||||||
|
|
||||||
## Effect of this option on the pattern
|
## Effect of this option on the pattern
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
---
|
||||||
|
title: Ear flap width
|
||||||
|
---
|
||||||
|
|
||||||
|
Controls the width of the ear flaps
|
||||||
|
|
||||||
|
|
||||||
## Effect of this option on the pattern
|
## Effect of this option on the pattern
|
||||||

|

|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
---
|
---
|
||||||
title: Number of gores
|
title: Number of crown pieces
|
||||||
---
|
---
|
||||||
|
|
||||||
|
Controls the number of panels there are in the crown
|
||||||
|
|
||||||
|
|
||||||
## Effect of this option on the pattern
|
## Effect of this option on the pattern
|
||||||

|

|
|
@ -1,3 +1,6 @@
|
||||||
|
---
|
||||||
|
title: Head ease
|
||||||
|
---
|
||||||
|
|
||||||
The amount of ease around your head.
|
The amount of ease around your head.
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,8 @@
|
||||||
title: Length ratio
|
title: Length ratio
|
||||||
---
|
---
|
||||||
|
|
||||||
|
Controls the length of the crown and ear flaps
|
||||||
|
|
||||||
|
|
||||||
## Effect of this option on the pattern
|
## Effect of this option on the pattern
|
||||||

|

|
|
@ -1,7 +1,9 @@
|
||||||
***
|
---
|
||||||
|
title: Visor angle
|
||||||
|
---
|
||||||
|
|
||||||
|
The arc angle used to draft the inner curve of the visor
|
||||||
|
|
||||||
## title: Visor angle
|
|
||||||
|
|
||||||
## Effect of this option on the pattern
|
## Effect of this option on the pattern
|
||||||
|
|
||||||

|

|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
---
|
||||||
|
title: Visor length
|
||||||
|
---
|
||||||
|
|
||||||
Controls the length of the visor
|
Controls the length of the visor
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
***
|
---
|
||||||
|
title: Visor width
|
||||||
## title: Visor width
|
---
|
||||||
|
|
||||||
Controls the width of the visor
|
Controls the width of the visor
|
||||||
|
|
||||||
## Effect of this option on the pattern
|
|
||||||
|
|
||||||
|
## Effect of this option on the pattern
|
||||||

|

|
||||||
|
|
|
@ -22,6 +22,7 @@ export default {
|
||||||
'legbandkeystone',
|
'legbandkeystone',
|
||||||
'pocket',
|
'pocket',
|
||||||
'pocketfacing',
|
'pocketfacing',
|
||||||
|
'zipperguard',
|
||||||
],
|
],
|
||||||
inject: {
|
inject: {
|
||||||
front: 'frontpoints',
|
front: 'frontpoints',
|
||||||
|
@ -44,6 +45,7 @@ export default {
|
||||||
legband: ['back', 'front'],
|
legband: ['back', 'front'],
|
||||||
legbandkeystone: ['back', 'front'],
|
legbandkeystone: ['back', 'front'],
|
||||||
waistband: ['back', 'front'],
|
waistband: ['back', 'front'],
|
||||||
|
zipperguard: 'front',
|
||||||
},
|
},
|
||||||
hide: ['frontpoints'],
|
hide: ['frontpoints'],
|
||||||
options: {
|
options: {
|
||||||
|
|
|
@ -44,6 +44,7 @@ export default function (part) {
|
||||||
.setRender(false)
|
.setRender(false)
|
||||||
|
|
||||||
paths.flyFold = new Path().move(points.pW).line(points.pZ).attr('class', 'fabric dashed')
|
paths.flyFold = new Path().move(points.pW).line(points.pZ).attr('class', 'fabric dashed')
|
||||||
|
store.set('flyLength', paths.flyFold.length())
|
||||||
|
|
||||||
store.set('frontWaistLength', paths.waistSeam.line(points.flyTop).length())
|
store.set('frontWaistLength', paths.waistSeam.line(points.flyTop).length())
|
||||||
|
|
||||||
|
@ -111,6 +112,7 @@ export default function (part) {
|
||||||
snippets.n2 = new Snippet('notch', points.pJ)
|
snippets.n2 = new Snippet('notch', points.pJ)
|
||||||
snippets.n3 = new Snippet('notch', points.pocketWaist)
|
snippets.n3 = new Snippet('notch', points.pocketWaist)
|
||||||
snippets.n4 = new Snippet('notch', points.pocketSide)
|
snippets.n4 = new Snippet('notch', points.pocketSide)
|
||||||
|
snippets.n5 = new Snippet('notch', points.pZ)
|
||||||
|
|
||||||
// Keystone original (see above):
|
// Keystone original (see above):
|
||||||
if (keystone) {
|
if (keystone) {
|
||||||
|
|
|
@ -9,6 +9,7 @@ import draftLegbandkeystone from './legbandkeystone'
|
||||||
import draftWaistband from './waistband'
|
import draftWaistband from './waistband'
|
||||||
import draftPocketfacing from './pocketfacing'
|
import draftPocketfacing from './pocketfacing'
|
||||||
import draftPocket from './pocket'
|
import draftPocket from './pocket'
|
||||||
|
import draftZipperguard from './zipperguard'
|
||||||
// import draftPlacket from './placket'
|
// import draftPlacket from './placket'
|
||||||
|
|
||||||
// Create new design
|
// Create new design
|
||||||
|
@ -23,6 +24,7 @@ Pattern.prototype.draftLegbandkeystone = draftLegbandkeystone
|
||||||
Pattern.prototype.draftWaistband = draftWaistband
|
Pattern.prototype.draftWaistband = draftWaistband
|
||||||
Pattern.prototype.draftPocketfacing = draftPocketfacing
|
Pattern.prototype.draftPocketfacing = draftPocketfacing
|
||||||
Pattern.prototype.draftPocket = draftPocket
|
Pattern.prototype.draftPocket = draftPocket
|
||||||
|
Pattern.prototype.draftZipperguard = draftZipperguard
|
||||||
// Pattern.prototype.draftPlacket = draftPlacket
|
// Pattern.prototype.draftPlacket = draftPlacket
|
||||||
|
|
||||||
export default Pattern
|
export default Pattern
|
||||||
|
|
|
@ -9,7 +9,7 @@ function findR(part, height, arcLength) {
|
||||||
if (diff < 0) {
|
if (diff < 0) {
|
||||||
a = a * (0.995 + diff / 1000)
|
a = a * (0.995 + diff / 1000)
|
||||||
} else {
|
} else {
|
||||||
a = a * (1.002 + diff / 1000)
|
a = a * (1.003 + diff / 1000)
|
||||||
}
|
}
|
||||||
diff = (a * height) / (1 - Math.cos(a / 2)) - arcLength
|
diff = (a * height) / (1 - Math.cos(a / 2)) - arcLength
|
||||||
iter++
|
iter++
|
||||||
|
|
77
packages/cornelius/src/zipperguard.js
Normal file
77
packages/cornelius/src/zipperguard.js
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
export default function (part) {
|
||||||
|
let { Point, Path, points, paths, Snippet, snippets, complete, sa, store, paperless, macro } =
|
||||||
|
part.shorthand()
|
||||||
|
|
||||||
|
const cc = 0.551915024494 // circle constant
|
||||||
|
|
||||||
|
let halfInch = store.get('halfInch')
|
||||||
|
let flyWidth = store.get('flyWidth') *halfInch
|
||||||
|
let flyLength = store.get('flyLength')
|
||||||
|
console.log( {flyWidth: flyWidth, flyLength: flyLength})
|
||||||
|
|
||||||
|
points.pA = new Point(0, 0)
|
||||||
|
points.pB = points.pA.shift(180, flyWidth)
|
||||||
|
points.pC = points.pB.shift(270, flyLength -flyWidth)
|
||||||
|
points.pD = points.pA.shift(270, flyLength)
|
||||||
|
points.pDcpC = points.pD.shift(180, flyWidth * cc)
|
||||||
|
points.pCcpD = points.pC.shift(270, flyWidth * cc)
|
||||||
|
|
||||||
|
console.log( points.pA )
|
||||||
|
console.log( points.pB )
|
||||||
|
console.log( points.pC )
|
||||||
|
console.log( points.pD )
|
||||||
|
|
||||||
|
paths.seam = new Path()
|
||||||
|
.move(points.pA)
|
||||||
|
.line(points.pB)
|
||||||
|
.line(points.pC)
|
||||||
|
.curve(points.pCcpD, points.pDcpC, points.pD)
|
||||||
|
.attr('class', 'fabric')
|
||||||
|
|
||||||
|
paths.seam2 = new Path().move(points.pD).line(points.pA).attr('class', 'fabric')
|
||||||
|
|
||||||
|
if (complete) {
|
||||||
|
macro('cutonfold', {
|
||||||
|
from: points.pD,
|
||||||
|
to: points.pA,
|
||||||
|
})
|
||||||
|
|
||||||
|
points.logo = points.pA.shiftFractionTowards(points.pC, 0.5)
|
||||||
|
snippets.logo = new Snippet('logo', points.logo)
|
||||||
|
points.title = points.logo.shift(90, 70)
|
||||||
|
macro('title', {
|
||||||
|
nr: 4,
|
||||||
|
at: points.title,
|
||||||
|
title: 'ZipperGuard',
|
||||||
|
})
|
||||||
|
points.__titleNr.attr('data-text-class', 'center')
|
||||||
|
points.__titleName.attr('data-text-class', 'center')
|
||||||
|
points.__titlePattern.attr('data-text-class', 'center')
|
||||||
|
|
||||||
|
if (sa) {
|
||||||
|
paths.sa = new Path()
|
||||||
|
.move(points.pA)
|
||||||
|
.line(points.pA.shift(90, sa))
|
||||||
|
.join(paths.seam.offset(sa))
|
||||||
|
.line(points.pD)
|
||||||
|
.attr('class', 'fabric sa')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Paperless?
|
||||||
|
if (paperless) {
|
||||||
|
macro('hd', {
|
||||||
|
from: points.pB,
|
||||||
|
to: points.pA,
|
||||||
|
y: points.pA.y - sa - 15,
|
||||||
|
})
|
||||||
|
macro('vd', {
|
||||||
|
from: points.pA,
|
||||||
|
to: points.pD,
|
||||||
|
x: points.pA.x + 15,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
return part
|
||||||
|
}
|
||||||
|
|
|
@ -29,7 +29,7 @@ export default {
|
||||||
pctHandleSpace: 50,
|
pctHandleSpace: 50,
|
||||||
pctHandleVert: 42,
|
pctHandleVert: 42,
|
||||||
strapLength: { pct: 160, min: 75, max: 250 },
|
strapLength: { pct: 160, min: 75, max: 250 },
|
||||||
handleWidth: { pct: 10, min: 5, max: 30 },
|
handleWidth: { pct: 8.6, min: 4, max: 25 },
|
||||||
size: { pct: 50, min: 20, max: 200 },
|
size: { pct: 50, min: 20, max: 200 },
|
||||||
zipperSize: { dflt: '#5', list: ['#3', '#4', '#4.5', '#5', '#6', '#8', '#10', 'Invisible'] },
|
zipperSize: { dflt: '#5', list: ['#3', '#4', '#4.5', '#5', '#6', '#8', '#10', 'Invisible'] },
|
||||||
},
|
},
|
||||||
|
|
|
@ -2,7 +2,7 @@ export default function (part) {
|
||||||
let { store, options, Point, Path, points, paths, complete, sa, paperless, macro } =
|
let { store, options, Point, Path, points, paths, complete, sa, paperless, macro } =
|
||||||
part.shorthand()
|
part.shorthand()
|
||||||
|
|
||||||
let w = options.handleWidth
|
let w = store.get('width') * options.handleWidth
|
||||||
let h = store.get('depth') * options.strapLength
|
let h = store.get('depth') * options.strapLength
|
||||||
if (sa > w * 0.8) {
|
if (sa > w * 0.8) {
|
||||||
sa = w * 0.8
|
sa = w * 0.8
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue