1
0
Fork 0
freesewing/sites/dev/docs/reference/macros/ringsector
..
readme.mdx

---
title: ringSector
---

The `ringsector` macro drafts a ring sector, which is like a part of a donut
with an inside and outside radius. It is particularly useful for drafting
curved waistbands, circle skirts, and so on.

It is provided by the [ringsector plugin](/reference/plugins/ringsector).

:::note
##### Not a core-plugins macro

The `ringsector` macro is not provided by the [core-plugins](/reference/plugins/core),
so you need to load the [ringsector plugin](/reference/plugins/ringsector) explicitly
if you want to use it.
:::

## Signature

```js
macro('ringsector', {
  String id='ringsector',
  Point center = new Point(0,0),
  Number angle,
  Number insideRadius,
  Number outsideRadius,
  Boolean rotate = false,
})
```

## Example

<Example caption="Example of a ring sector drafted by this macro">
```js
({ Point, macro, Path, paths, part }) => {

  macro('ringsector', {
    angle: 60,
    insideRadius: 30,
    outsideRadius: 45,
  })

  return part
}
```
</Example>

## Configuration

| Property       | Default           | Type                | Description |
|---------------:|-------------------|------------|-------------|
| `id`           | `ringsector`      | String     | The id to use in auto-generate macro points and paths |
| `center`       | `new Point(0,0)`  | [Point][1] | The center point of the ring sector |
| `angle`        |                   | Number     | The angle the ring sector should cover |
| `insideRadius` |                   | Number     | The inside radius of the ring sector |
| `outsideRadius` |                  | Number     | The outside radius of the ring sector |
| `rotate`       | `false`           | Boolean    | Whether or not to rotate the ringsector so one of its sides is vertical (see [example below](#example-when-rotatetrue)) |

[1]: /reference/api/point

## Notes

The `ringsector` macro creates a `path` that can be used as a seam path for a part. If doing so, the left side of the path assumes a `cutOnFold`, as the `sa` is not offset here like it is along the rest of the `path`.

### Example when rotate=true

<Example caption="Example of a ring sector drafted by this macro when rotate is truthy">
```js
({ Point, macro, Path, paths, part }) => {

  macro('ringsector', {
    angle: 60,
    insideRadius: 30,
    outsideRadius: 45,
    rotate: true,
  })

  return part
}
```
</Example>