---
title: pd
---
The `pd` macro adds a _path dimension_ to your pattern, indicating the length
of a path.
It is provided by [plugin-annotations](/reference/plugins/annotations), which is
part of [core-plugins](/reference/plugins/core) (so it is available by default).
## Signature
```js
macro('pd', {
Number d,
String id,
Path path,
Boolean noEndMarker,
Boolean noStartMarker,
String text,
Boolean force = false,
})
```
## Example
<Example caption="An example of a path dimension with the pd macro">
```js
({ Point, Path, paths, macro, part }) => {
paths.example = new Path()
.move(new Point(0,0))
.curve(new Point(20,10), new Point(60,10), new Point(80,0))
macro('pd', {
path: paths.example,
d: 15,
force: true,
})
return part
}
```
</Example>
## Configuration
| Property | Default | Type | Description |
|----------------:|---------|---------------------|-------------|
| `path` | | [Path](/reference/api/path) | The path to draw the dimension along |
| `d` | 10 | Number | The offset at which to draw the dimension |
| `text` | Path length | Number | The text to go on the dimension if not the length of the path |
| `id` | `pd` | `string` | The ID of this macro instance |
| `noStartMarker` | `false` | Boolean | Whether to not draw a start marker |
| `noEndMarker` | `false` | Boolean | Whether to not draw an end marker |
| `force` | `false` | `boolean` | Set this to `true` to display the macro output even when `paperless` is `false` |
## Notes
This macro takes the `paperless` setting into account and won't output anything when both `paperless` and `force` are `false`.