2022-09-21 09:55:21 +02:00
|
|
|
---
|
2022-09-21 12:28:58 +02:00
|
|
|
title: "The part's draft method"
|
2022-09-21 09:55:21 +02:00
|
|
|
---
|
|
|
|
|
|
|
|
Each part **must** have a `draft` property that holds a method that will draft the part.
|
2023-05-18 14:34:16 -07:00
|
|
|
In other words, this method is where the actual work happens. The method's signature
|
2022-09-21 12:28:58 +02:00
|
|
|
is as follows:
|
2022-09-21 09:55:21 +02:00
|
|
|
|
|
|
|
```js
|
|
|
|
function draft(props)
|
|
|
|
```
|
|
|
|
|
2023-05-18 14:34:16 -07:00
|
|
|
The draft method receives a single parameter, an object which you can _destructure_ to
|
2022-09-21 09:55:21 +02:00
|
|
|
access the following properties:
|
|
|
|
|
2025-05-23 20:05:28 -07:00
|
|
|
| Property | Description |
|
|
|
|
| ----------------: | :------------------------------------------------------------------------------------------------------------ |
|
|
|
|
| | **_Content constructors_** |
|
|
|
|
| `Path` | A [Path constructor](/reference/api/path) to create new paths |
|
|
|
|
| `Point` | A [Point constructor](/reference/api/point) to create new points |
|
|
|
|
| `Snippet` | A [Snippet constructor](/reference/api/snippet) to create new snippets |
|
|
|
|
| | **_Content containers_** |
|
|
|
|
| `paths` | Add a Path to your part by adding it to this object |
|
|
|
|
| `points` | Add a Points to your part by adding it to this object |
|
|
|
|
| `snippets` | Add a Snippet to your part by adding it to this object |
|
|
|
|
| | **_Access to settings_** |
|
|
|
|
| `absoluteOptions` | Access to `settings.absoluteOptions` |
|
|
|
|
| `complete` | Access to `settings.complete` |
|
|
|
|
| `expand` | Access to `settings.expand` |
|
|
|
|
| `measurements` | Access to `settings.measurements` |
|
|
|
|
| `options` | Access to `settings.options` |
|
|
|
|
| `paperless` | Access to `settings.paperless` |
|
|
|
|
| `sa` | Access to `settings.sa` |
|
|
|
|
| `scale` | Access to `settings.scale` |
|
|
|
|
| | **_Access to utilities_** |
|
|
|
|
| `context` | Allows access to the pattern object and other things higher in the tree |
|
|
|
|
| `getId` | See [the getId documentation](/reference/api/part/getid) |
|
|
|
|
| `log` | See [the Store Methods documentation](/reference/store-methods#store-methods-we-maintain) |
|
|
|
|
| `macro` | See [the macros documentation](/reference/macros/) |
|
|
|
|
| `store` | See [the store documentation](/reference/api/store) |
|
|
|
|
| `units` | A version of [`utils.units()`](/reference/api/utils/units) that is preconfigured with the user's chosen units |
|
|
|
|
| `utils` | See [the utils documentation](/reference/api/utils) |
|
|
|
|
| `Bezier` | The [bezier-js](https://pomax.github.io/bezierjs/) library's `Bezier` named export |
|
|
|
|
| | **_Return value_** |
|
|
|
|
| `part` | Your draft method **must** return this |
|
2023-05-18 14:34:16 -07:00
|
|
|
|
2024-09-28 13:13:48 +02:00
|
|
|
:::tip
|
2023-05-18 14:34:16 -07:00
|
|
|
|
|
|
|
Please note that there is no `optionalMeasurements` property.
|
|
|
|
Instead, optional measurements are accessed via the 'measurements'
|
|
|
|
property.
|
|
|
|
|
2024-09-28 13:13:48 +02:00
|
|
|
:::
|