--- 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 ```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 } ``` ## 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`.