1
0
Fork 0
freesewing/markdown/dev/tutorials/pattern-design/part-structure/en.md

96 lines
1.9 KiB
Markdown
Raw Normal View History

---
title: Structure of a part
order: 150
---
Let's get rid of the example box first.
Open `src/bib.js` and make sure it looks like this:
```js
export default function(part) {
let { Point, points, Path, paths } = part.shorthand();
// Design pattern here
// Complete?
if (complete) {
if (sa) {
}
// Paperless?
if (paperless) {
}
}
return part;
}
```
This is an empty skeleton for a pattern part. Anytime you want to create a new part,
this is a good starting point.
Let's quickly go over the different sections.
Even if there's not much going on yet, it's always good to understand what's going on.
## The draft method
```js
export default function(part) {
// ...
return part;
}
```
This is the boilerplate of our `draftBib` method. It takes the part as an argument, and returns it.
<Note>
If you're new to JavaScript, and don't intuitively *get this*, stick with it. It will become second nature soon enough.
</Note>
## Using shorthand
```js
let {
Point,
points,
Path,
paths,
} = part.shorthand();
```
This is FreeSewing's **shorthand** method. It returns an object with a bunch of handy helpers
and you use JavaScript's *object destructuring* to only get what you need.
The example above makes the following variables available:
- `Point`: The Point constructor
- `points`: A reference to the part's points
- `Path`: The Path constructor
- `paths`: A reference to the part's paths
<Note>
This will all become clear, but if you're curious, the API docs have all the details
on [the Part.shorthand() method](/reference/api/part/#shorthand)
</Note>
## Part boilerplate
```js
// Complete?
if (complete) {
if (sa) {
}
// Paperless?
if (paperless) {
}
}
```
This is some more boilerplate that makes sure we respect the `complete`, `sa`, and `paperless` settings.
For now, you don't need to worry about this. Let's just start designing our bib.