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.
Not a core-plugins macro
The ringsector
macro is not provided by the core-plugins,
so you need to load the ringsector plugin explicitly
if you want to use it.
Signature
macro('ringsector', {
String id='ringsector',
Point center = new Point(0,0),
Number angle,
Number insideRadius,
Number outsideRadius,
Boolean rotate = false,
})
Example
- Preview
- Code
- X-Ray
({ Point, macro, Path, paths, part }) => {
macro('ringsector', {
angle: 60,
insideRadius: 30,
outsideRadius: 45,
})
return part
}
Example of a ring sector drafted by this macro
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 | 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) |
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
- Preview
- Code
- X-Ray
({ Point, macro, Path, paths, part }) => {
macro('ringsector', {
angle: 60,
insideRadius: 30,
outsideRadius: 45,
rotate: true,
})
return part
}
Example of a ring sector drafted by this macro when rotate is truthy
Points and Paths
The ringsector
macro creates the following
Points and Paths
(with "id" replaced with the value of id
in the names).
Different Points and Paths are created depending on the value of
the rotate
property.
When rotate=false
Points when rotate=false
Point Name | Description |
---|---|
points.__macro_ringsector_id_center | Center of the ring sector arc circles |
points.__macro_ringsector_id_ex2Flipped | Start of outer arc; Start and end of the path |
points.__macro_ringsector_id_ex2cFlipped | Curve control point from start to middle of outer arc |
points.__macro_ringsector_id_ex1cFlipped | Curve control point from middle to start of outer arc |
points.__macro_ringsector_id_ex2FlippedRotated | Middle of outer arc |
points.__macro_ringsector_id_ex2cFlippedRotated | Curve control point from middle to end of outer arc |
points.__macro_ringsector_id_ex1cFlippedRotated | Curve control point from end to middle of outer arc |
points.__macro_ringsector_id_ex1Rotated | End of outer arc |
points.__macro_ringsector_id_in1Rotated | Start of inner arc |
points.__macro_ringsector_id_in1cFlippedRotated | Curve control point from start to middle of inner arc |
points.__macro_ringsector_id_in2cFlippedRotated | Curve control point from middle to start of inner arc |
points.__macro_ringsector_id_in2FlippedRotated | Middle of inner arc |
points.__macro_ringsector_id_in1cFlipped | Curve control point from middle to end of inner arc |
points.__macro_ringsector_id_in2cFlipped | Curve control point from end to middle of inner arc |
points.__macro_ringsector_id_in2Flipped | End of inner arc |
Paths when rotate=false
Path Name | Description |
---|---|
paths.__macro_ringsector_id_path | The ring sector path |
paths.__macro_ringsector_id_path
is constructed in the following manner
when rotate=false
.
Path paths.__macro_ringsector_id_path = new Path()
.move(points.__macro_ringsector_id_ex2Flipped)
.curve(points.__macro_ringsector_id_ex2cFlipped,
points.__macro_ringsector_id_ex1cFlipped,
points.__macro_ringsector_id_ex2FlippedRotated)
.curve(points.__macro_ringsector_id_ex2cFlippedRotated,
points.__macro_ringsector_id_ex1cFlippedRotated,
points.__macro_ringsector_id_ex1Rotated)
.line(points.__macro_ringsector_id_in1Rotated)
.curve(points.__macro_ringsector_id_in1cFlippedRotated,
points.__macro_ringsector_id_in2cFlippedRotated,
points.__macro_ringsector_id_in2FlippedRotated)
.curve(points.__macro_ringsector_id_in1cFlipped,
points.__macro_ringsector_id_in2cFlipped,
points.__macro_ringsector_id_in2Flipped)
.line(points.__macro_ringsector_id_ex2Flipped)
.close()
When rotate=true
Points when rotate=true
Point Name | Description |
---|---|
points.__macro_ringsector_id_center | Center of the ring sector arc circles |
points.__macro_ringsector_id_ex2Flipped | Start of outer arc; Start and end of the path |
points.__macro_ringsector_id_ex2cFlipped | Curve control point from start to middle of outer arc |
points.__macro_ringsector_id_ex1cFlipped | Curve control point from middle to start of outer arc |
points.__macro_ringsector_id_ex1 | Middle of outer arc |
points.__macro_ringsector_id_ex1c | Curve control point from middle to end of outer arc |
points.__macro_ringsector_id_ex2c | Curve control point from end to middle of outer arc |
points.__macro_ringsector_id_ex2 | End of outer arc |
points.__macro_ringsector_id_in2 | Start of inner arc |
points.__macro_ringsector_id_in2c | Curve control point from start to middle of inner arc |
points.__macro_ringsector_id_in1c | Curve control point from middle to start of inner arc |
points.__macro_ringsector_id_in1 | Middle of inner arc |
points.__macro_ringsector_id_in1cFlipped | Curve control point from middle to end of inner arc |
points.__macro_ringsector_id_in2cFlipped | Curve control point from end to middle of inner arc |
points.__macro_ringsector_id_in2Flipped | End of inner arc |
Paths when rotate=true
Path Name | Description |
---|---|
paths.__macro_ringsector_id_path | The ring sector path |
paths.__macro_ringsector_id_path
is constructed in the following manner
when rotate=true
.
Path paths.__macro_ringsector_id_path = new Path()
.move(points.__macro_ringsector_id_ex2Flipped)
.curve(points.__macro_ringsector_id_ex2cFlipped,
points.__macro_ringsector_id_ex1cFlipped,
points.__macro_ringsector_id_ex1)
.curve(points.__macro_ringsector_id_ex1c,
points.__macro_ringsector_id_ex2c,
points.__macro_ringsector_id_ex2)
.line(points.__macro_ringsector_id_in2)
.curve(points.__macro_ringsector_id_in2c,
points.__macro_ringsector_id_in1c,
points.__macro_ringsector_id_in1)
.curve(points.__macro_ringsector_id_in1cFlipped,
points.__macro_ringsector_id_in2cFlipped,
points.__macro_ringsector_id_in2Flipped)
.line(points.__macro_ringsector_id_ex2Flipped)
.close()