discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

Fitting a curve to points

D
Dylan
Sun, Jul 27, 2025 1:08 PM

I need to model musical instruments which are, basically, flared tubes.
The attached image shows examples (these are shawms, and each is two
pieces: the main body of the instrument and a small insert which holds
the reed - I'm focusing on the main body.)
I have a list of measurements which are each [distance-from-end,
diameter]; effectively [x,y] or [x,z] coordinates.
Is there a way to generate a curve which passes through each measurement
point? I have looked into bézier curves (which is how I would approach
this in Blender) but they don't seem to function the same way as the
curve does not pass through the given points.
Secondly, once such a curve is generated, how would I generate an
axially symmetric solid from it?
Thanks
Dylan

I need to model musical instruments which are, basically, flared tubes. The attached image shows examples (these are shawms, and each is two pieces: the main body of the instrument and a small insert which holds the reed - I'm focusing on the main body.) I have a list of measurements which are each [distance-from-end, diameter]; effectively [x,y] or [x,z] coordinates. Is there a way to generate a curve which passes through each measurement point? I have looked into bézier curves (which is how I would approach this in Blender) but they don't seem to function the same way as the curve does not pass through the given points. Secondly, once such a curve is generated, how would I generate an axially symmetric solid from it? Thanks Dylan
SP
Sanjeev Prabhakar
Sun, Jul 27, 2025 1:20 PM

Can you share the list of coordinates

On Sun, 27 Jul, 2025, 6:38 pm Dylan via Discuss, discuss@lists.openscad.org
wrote:

I need to model musical instruments which are, basically, flared tubes.
The attached image shows examples (these are shawms, and each is two
pieces: the main body of the instrument and a small insert which holds
the reed - I'm focusing on the main body.)
I have a list of measurements which are each [distance-from-end,
diameter]; effectively [x,y] or [x,z] coordinates.
Is there a way to generate a curve which passes through each measurement
point? I have looked into bézier curves (which is how I would approach
this in Blender) but they don't seem to function the same way as the
curve does not pass through the given points.
Secondly, once such a curve is generated, how would I generate an
axially symmetric solid from it?
Thanks
Dylan_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

Can you share the list of coordinates On Sun, 27 Jul, 2025, 6:38 pm Dylan via Discuss, <discuss@lists.openscad.org> wrote: > I need to model musical instruments which are, basically, flared tubes. > The attached image shows examples (these are shawms, and each is two > pieces: the main body of the instrument and a small insert which holds > the reed - I'm focusing on the main body.) > I have a list of measurements which are each [distance-from-end, > diameter]; effectively [x,y] or [x,z] coordinates. > Is there a way to generate a curve which passes through each measurement > point? I have looked into bézier curves (which is how I would approach > this in Blender) but they don't seem to function the same way as the > curve does not pass through the given points. > Secondly, once such a curve is generated, how would I generate an > axially symmetric solid from it? > Thanks > Dylan_______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
RV
Roel Vanhout
Sun, Jul 27, 2025 1:23 PM

While not a direct answer to your question, I had similar requirements and
I did use Bezier curves. I made a photo of the object with a ruler next to
it, scaled that to the right size in Inkscape, traced it with the Bezier
tool then exported to curve to points I could import with the BOSL2 Bezier
tools. There are Inkscape plugins to make this easier, I also have one of
my own to speed up the process but it's not worth the effort if you only
have a few to export.

You could put your control points at the diameters you mention if it's
important that these match exactly but it's up to you to decide if that's
necessary.

Cheers

On Sun, Jul 27, 2025, 15:10 Dylan via Discuss discuss@lists.openscad.org
wrote:

I need to model musical instruments which are, basically, flared tubes.
The attached image shows examples (these are shawms, and each is two
pieces: the main body of the instrument and a small insert which holds
the reed - I'm focusing on the main body.)
I have a list of measurements which are each [distance-from-end,
diameter]; effectively [x,y] or [x,z] coordinates.
Is there a way to generate a curve which passes through each measurement
point? I have looked into bézier curves (which is how I would approach
this in Blender) but they don't seem to function the same way as the
curve does not pass through the given points.
Secondly, once such a curve is generated, how would I generate an
axially symmetric solid from it?
Thanks
Dylan_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

While not a direct answer to your question, I had similar requirements and I did use Bezier curves. I made a photo of the object with a ruler next to it, scaled that to the right size in Inkscape, traced it with the Bezier tool then exported to curve to points I could import with the BOSL2 Bezier tools. There are Inkscape plugins to make this easier, I also have one of my own to speed up the process but it's not worth the effort if you only have a few to export. You could put your control points at the diameters you mention if it's important that these match exactly but it's up to you to decide if that's necessary. Cheers On Sun, Jul 27, 2025, 15:10 Dylan via Discuss <discuss@lists.openscad.org> wrote: > I need to model musical instruments which are, basically, flared tubes. > The attached image shows examples (these are shawms, and each is two > pieces: the main body of the instrument and a small insert which holds > the reed - I'm focusing on the main body.) > I have a list of measurements which are each [distance-from-end, > diameter]; effectively [x,y] or [x,z] coordinates. > Is there a way to generate a curve which passes through each measurement > point? I have looked into bézier curves (which is how I would approach > this in Blender) but they don't seem to function the same way as the > curve does not pass through the given points. > Secondly, once such a curve is generated, how would I generate an > axially symmetric solid from it? > Thanks > Dylan_______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
RW
Rogier Wolff
Sun, Jul 27, 2025 1:25 PM

On Sun, Jul 27, 2025 at 02:08:16PM +0100, Dylan via Discuss wrote:

I need to model musical instruments which are, basically, flared tubes. The
attached image shows examples (these are shawms, and each is two pieces: the
main body of the instrument and a small insert which holds the reed - I'm
focusing on the main body.)
I have a list of measurements which are each [distance-from-end, diameter];
effectively [x,y] or [x,z] coordinates.
Is there a way to generate a curve which passes through each measurement
point? I have looked into bézier curves (which is how I would approach this
in Blender) but they don't seem to function the same way as the curve does
not pass through the given points.

IIRC It is called a spline if it passes through the control points.
Try BOSL, it has lots of support functions that might provide what you want
if you search for the right term.

Secondly, once such a curve is generated, how would I generate an axially
symmetric solid from it?

Oh, Bosl certainly does this. It's called curve-extrude or something
like that.

Roger. 

--
** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110 **
** Verl. Spiegelmakerstraat 37 2645 LZ  Delfgauw, The Netherlands.
** KVK: 27239233    **
f equals m times a. When your f is steady, and your m is going down
your a** is going up.  -- Chris Hadfield about flying up the space shuttle.
**  'a' for accelleration.

On Sun, Jul 27, 2025 at 02:08:16PM +0100, Dylan via Discuss wrote: > I need to model musical instruments which are, basically, flared tubes. The > attached image shows examples (these are shawms, and each is two pieces: the > main body of the instrument and a small insert which holds the reed - I'm > focusing on the main body.) > I have a list of measurements which are each [distance-from-end, diameter]; > effectively [x,y] or [x,z] coordinates. > Is there a way to generate a curve which passes through each measurement > point? I have looked into bézier curves (which is how I would approach this > in Blender) but they don't seem to function the same way as the curve does > not pass through the given points. IIRC It is called a spline if it passes through the control points. Try BOSL, it has lots of support functions that might provide what you want if you search for the right term. > Secondly, once such a curve is generated, how would I generate an axially > symmetric solid from it? Oh, Bosl certainly does this. It's called curve-extrude or something like that. Roger. -- ** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110 ** ** Verl. Spiegelmakerstraat 37 2645 LZ Delfgauw, The Netherlands. ** KVK: 27239233 ** f equals m times a. When your f is steady, and your m is going down your a** is going up. -- Chris Hadfield about flying up the space shuttle. ** 'a' for accelleration.
NH
nop head
Sun, Jul 27, 2025 1:37 PM

NopSCADlib has cubic splines and Catmull-Rom splines that pass through
points.

On Sun, 27 Jul 2025, 14:27 Rogier Wolff via Discuss, <
discuss@lists.openscad.org> wrote:

On Sun, Jul 27, 2025 at 02:08:16PM +0100, Dylan via Discuss wrote:

I need to model musical instruments which are, basically, flared tubes.

The

attached image shows examples (these are shawms, and each is two pieces:

the

main body of the instrument and a small insert which holds the reed - I'm
focusing on the main body.)
I have a list of measurements which are each [distance-from-end,

diameter];

effectively [x,y] or [x,z] coordinates.
Is there a way to generate a curve which passes through each measurement
point? I have looked into bézier curves (which is how I would approach

this

in Blender) but they don't seem to function the same way as the curve

does

not pass through the given points.

IIRC It is called a spline if it passes through the control points.
Try BOSL, it has lots of support functions that might provide what you
want
if you search for the right term.

Secondly, once such a curve is generated, how would I generate an axially
symmetric solid from it?

Oh, Bosl certainly does this. It's called curve-extrude or something
like that.

     Roger.

--
** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110
**
** Verl. Spiegelmakerstraat 37 2645 LZ  Delfgauw, The Netherlands.
** KVK: 27239233    **
f equals m times a. When your f is steady, and your m is going down
your a** is going up.  -- Chris Hadfield about flying up the space shuttle.
**  'a' for accelleration.


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

NopSCADlib has cubic splines and Catmull-Rom splines that pass through points. On Sun, 27 Jul 2025, 14:27 Rogier Wolff via Discuss, < discuss@lists.openscad.org> wrote: > On Sun, Jul 27, 2025 at 02:08:16PM +0100, Dylan via Discuss wrote: > > I need to model musical instruments which are, basically, flared tubes. > The > > attached image shows examples (these are shawms, and each is two pieces: > the > > main body of the instrument and a small insert which holds the reed - I'm > > focusing on the main body.) > > I have a list of measurements which are each [distance-from-end, > diameter]; > > effectively [x,y] or [x,z] coordinates. > > Is there a way to generate a curve which passes through each measurement > > point? I have looked into bézier curves (which is how I would approach > this > > in Blender) but they don't seem to function the same way as the curve > does > > not pass through the given points. > > IIRC It is called a spline if it passes through the control points. > Try BOSL, it has lots of support functions that might provide what you > want > if you search for the right term. > > > Secondly, once such a curve is generated, how would I generate an axially > > symmetric solid from it? > > Oh, Bosl certainly does this. It's called curve-extrude or something > like that. > > Roger. > > > -- > ** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110 > ** > ** Verl. Spiegelmakerstraat 37 2645 LZ Delfgauw, The Netherlands. > ** KVK: 27239233 ** > f equals m times a. When your f is steady, and your m is going down > your a** is going up. -- Chris Hadfield about flying up the space shuttle. > ** 'a' for accelleration. > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
D
Dylan
Sun, Jul 27, 2025 1:38 PM

Example measures (in mm) for a theoretical instrument:

[[0, 50], [5, 55], [10, 50], [50, 20]]

In reality, the full length would be at least 500mm and there may be 20
or more measures.

On 27/07/2025 14:20, Sanjeev Prabhakar via Discuss wrote:

Can you share the list of coordinates

On Sun, 27 Jul, 2025, 6:38 pm Dylan via Discuss,
<discuss@lists.openscad.org mailto:discuss@lists.openscad.org> wrote:

 I need to model musical instruments which are, basically, flared tubes.
 The attached image shows examples (these are shawms, and each is two
 pieces: the main body of the instrument and a small insert which holds
 the reed - I'm focusing on the main body.)
 I have a list of measurements which are each [distance-from-end,
 diameter]; effectively [x,y] or [x,z] coordinates.
 Is there a way to generate a curve which passes through each
 measurement
 point? I have looked into bézier curves (which is how I would approach
 this in Blender) but they don't seem to function the same way as the
 curve does not pass through the given points.
 Secondly, once such a curve is generated, how would I generate an
 axially symmetric solid from it?
 Thanks
 Dylan_______________________________________________
 OpenSCAD mailing list
 To unsubscribe send an email to discuss-leave@lists.openscad.org
 <mailto:discuss-leave@lists.openscad.org>

OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

Example measures (in mm) for a theoretical instrument: [[0, 50], [5, 55], [10, 50], [50, 20]] In reality, the full length would be at least 500mm and there may be 20 or more measures. On 27/07/2025 14:20, Sanjeev Prabhakar via Discuss wrote: > Can you share the list of coordinates > > On Sun, 27 Jul, 2025, 6:38 pm Dylan via Discuss, > <discuss@lists.openscad.org <mailto:discuss@lists.openscad.org>> wrote: > > I need to model musical instruments which are, basically, flared tubes. > The attached image shows examples (these are shawms, and each is two > pieces: the main body of the instrument and a small insert which holds > the reed - I'm focusing on the main body.) > I have a list of measurements which are each [distance-from-end, > diameter]; effectively [x,y] or [x,z] coordinates. > Is there a way to generate a curve which passes through each > measurement > point? I have looked into bézier curves (which is how I would approach > this in Blender) but they don't seem to function the same way as the > curve does not pass through the given points. > Secondly, once such a curve is generated, how would I generate an > axially symmetric solid from it? > Thanks > Dylan_______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org > <mailto:discuss-leave@lists.openscad.org> > > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
D
Dylan
Sun, Jul 27, 2025 1:52 PM

On 27/07/2025 14:25, Rogier Wolff via Discuss wrote:

Secondly, once such a curve is generated, how would I generate an axially
symmetric solid from it?

Oh, Bosl certainly does this. It's called curve-extrude or something
like that.

I only find extrude functions, which extrude a shape along a path, or
around an existing object. I effectively need to 'spin' the curve
(path/bezier/whatever) around an axis.

D>

Roger.
On 27/07/2025 14:25, Rogier Wolff via Discuss wrote: >> Secondly, once such a curve is generated, how would I generate an axially >> symmetric solid from it? > > Oh, Bosl certainly does this. It's called curve-extrude or something > like that. I only find extrude functions, which extrude a shape along a path, or around an existing object. I effectively need to 'spin' the curve (path/bezier/whatever) around an axis. D> > Roger. > >
D
Dylan
Sun, Jul 27, 2025 1:55 PM

Thanks, I'll look in to that.
D

On 27/07/2025 14:37, nop head via Discuss wrote:

NopSCADlib has cubic splines and Catmull-Rom splines that pass through
points.

On Sun, 27 Jul 2025, 14:27 Rogier Wolff via Discuss,
<discuss@lists.openscad.org mailto:discuss@lists.openscad.org> wrote:

 On Sun, Jul 27, 2025 at 02:08:16PM +0100, Dylan via Discuss wrote:

I need to model musical instruments which are, basically, flared

 tubes. The

attached image shows examples (these are shawms, and each is two

 pieces: the

main body of the instrument and a small insert which holds the

 reed - I'm

focusing on the main body.)
I have a list of measurements which are each [distance-from-end,

 diameter];

effectively [x,y] or [x,z] coordinates.
Is there a way to generate a curve which passes through each

 measurement

point? I have looked into bézier curves (which is how I would

 approach this

in Blender) but they don't seem to function the same way as the

 curve does

not pass through the given points.

 IIRC It is called a spline if it passes through the control points.
 Try BOSL, it has lots of support functions that might provide what
 you want
 if you search for the right term.

Secondly, once such a curve is generated, how would I generate an

 axially

symmetric solid from it?

 Oh, Bosl certainly does this. It's called curve-extrude or something
 like that.

          Roger.


 -- 
 ** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ <https://
 www.BitWizard.nl/> ** +31-15-2049110 **
 ** Verl. Spiegelmakerstraat 37 2645 LZ  Delfgauw, The Netherlands.
 ** KVK: 27239233    **
 f equals m times a. When your f is steady, and your m is going down
 your a** is going up.  -- Chris Hadfield about flying up the space
 shuttle.
 **  'a' for accelleration.
 _______________________________________________
 OpenSCAD mailing list
 To unsubscribe send an email to discuss-leave@lists.openscad.org
 <mailto:discuss-leave@lists.openscad.org>

OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

Thanks, I'll look in to that. D On 27/07/2025 14:37, nop head via Discuss wrote: > NopSCADlib has cubic splines and Catmull-Rom splines that pass through > points. > > On Sun, 27 Jul 2025, 14:27 Rogier Wolff via Discuss, > <discuss@lists.openscad.org <mailto:discuss@lists.openscad.org>> wrote: > > On Sun, Jul 27, 2025 at 02:08:16PM +0100, Dylan via Discuss wrote: > > I need to model musical instruments which are, basically, flared > tubes. The > > attached image shows examples (these are shawms, and each is two > pieces: the > > main body of the instrument and a small insert which holds the > reed - I'm > > focusing on the main body.) > > I have a list of measurements which are each [distance-from-end, > diameter]; > > effectively [x,y] or [x,z] coordinates. > > Is there a way to generate a curve which passes through each > measurement > > point? I have looked into bézier curves (which is how I would > approach this > > in Blender) but they don't seem to function the same way as the > curve does > > not pass through the given points. > > IIRC It is called a spline if it passes through the control points. > Try BOSL, it has lots of support functions that might provide what > you want > if you search for the right term. > > > Secondly, once such a curve is generated, how would I generate an > axially > > symmetric solid from it? > > Oh, Bosl certainly does this. It's called curve-extrude or something > like that. > >         Roger. > > > -- > ** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ <https:// > www.BitWizard.nl/> ** +31-15-2049110 ** > ** Verl. Spiegelmakerstraat 37 2645 LZ  Delfgauw, The Netherlands. > ** KVK: 27239233    ** > f equals m times a. When your f is steady, and your m is going down > your a** is going up.  -- Chris Hadfield about flying up the space > shuttle. > **  'a' for accelleration. > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org > <mailto:discuss-leave@lists.openscad.org> > > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
SP
Sanjeev Prabhakar
Sun, Jul 27, 2025 2:31 PM

with the limited points available. You have to manually fit the curve.
my guess is like below, if my understanding of the points you shared is
correct.
[image: Screenshot 2025-07-27 at 7.53.59 PM.png]
[image: Screenshot 2025-07-27 at 7.59.00 PM.png]

On Sun, 27 Jul, 2025, 7:10 pm Dylan via Discuss, discuss@lists.openscad.org
wrote:

Example measures (in mm) for a theoretical instrument:

[[0, 50], [5, 55], [10, 50], [50, 20]]

In reality, the full length would be at least 500mm and there may be 20
or more measures.

On 27/07/2025 14:20, Sanjeev Prabhakar via Discuss wrote:

Can you share the list of coordinates

On Sun, 27 Jul, 2025, 6:38 pm Dylan via Discuss,
<discuss@lists.openscad.org mailto:discuss@lists.openscad.org> wrote:

 I need to model musical instruments which are, basically, flared

tubes.

 The attached image shows examples (these are shawms, and each is two
 pieces: the main body of the instrument and a small insert which

holds

 the reed - I'm focusing on the main body.)
 I have a list of measurements which are each [distance-from-end,
 diameter]; effectively [x,y] or [x,z] coordinates.
 Is there a way to generate a curve which passes through each
 measurement
 point? I have looked into bézier curves (which is how I would

approach

 this in Blender) but they don't seem to function the same way as the
 curve does not pass through the given points.
 Secondly, once such a curve is generated, how would I generate an
 axially symmetric solid from it?
 Thanks
 Dylan_______________________________________________
 OpenSCAD mailing list
 To unsubscribe send an email to discuss-leave@lists.openscad.org
 <mailto:discuss-leave@lists.openscad.org>

OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

with the limited points available. You have to manually fit the curve. my guess is like below, if my understanding of the points you shared is correct. [image: Screenshot 2025-07-27 at 7.53.59 PM.png] [image: Screenshot 2025-07-27 at 7.59.00 PM.png] On Sun, 27 Jul, 2025, 7:10 pm Dylan via Discuss, <discuss@lists.openscad.org> wrote: > Example measures (in mm) for a theoretical instrument: > > [[0, 50], [5, 55], [10, 50], [50, 20]] > > In reality, the full length would be at least 500mm and there may be 20 > or more measures. > > On 27/07/2025 14:20, Sanjeev Prabhakar via Discuss wrote: > > Can you share the list of coordinates > > > > On Sun, 27 Jul, 2025, 6:38 pm Dylan via Discuss, > > <discuss@lists.openscad.org <mailto:discuss@lists.openscad.org>> wrote: > > > > I need to model musical instruments which are, basically, flared > tubes. > > The attached image shows examples (these are shawms, and each is two > > pieces: the main body of the instrument and a small insert which > holds > > the reed - I'm focusing on the main body.) > > I have a list of measurements which are each [distance-from-end, > > diameter]; effectively [x,y] or [x,z] coordinates. > > Is there a way to generate a curve which passes through each > > measurement > > point? I have looked into bézier curves (which is how I would > approach > > this in Blender) but they don't seem to function the same way as the > > curve does not pass through the given points. > > Secondly, once such a curve is generated, how would I generate an > > axially symmetric solid from it? > > Thanks > > Dylan_______________________________________________ > > OpenSCAD mailing list > > To unsubscribe send an email to discuss-leave@lists.openscad.org > > <mailto:discuss-leave@lists.openscad.org> > > > > > > _______________________________________________ > > OpenSCAD mailing list > > To unsubscribe send an email to discuss-leave@lists.openscad.org > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
GB
Glenn Butcher
Sun, Jul 27, 2025 2:34 PM

On 7/27/2025 7:52 AM, Dylan via Discuss wrote:

I only find extrude functions, which extrude a shape along a path, or
around an existing object. I effectively need to 'spin' the curve
(path/bezier/whatever) around an axis.

rotate_extrude() in the OpenSCAD language does exactly that.

Beziers and other parametric curves will work well if you can find the
particular parameters that describe your instrument's profile.  I've
been modeling steam locomotive parts, and in a lot of them the profiles
are a vexing combination of straight lines and arbitrary curves.  I
found an OpenSCAD library called 'Round-Anything', has a function called
polyRound() that'll take an array of points with attached radii and
generate a set of points that replace the "pointed" points with curves,
and leave the others as they are.  You can find it here:

https://github.com/Irev-Dev/Round-Anything

There's one file there, polyround.scad, the only one you need to do what
I describe.  A short code to use it to make a locomotive steam dome:

use <polyround.scad>

pts = [
[0.000,0.000,0.000],
[0.000,1.884,0.000],
[0.115,1.891,0.050],
[0.115,1.755,0.000],
[0.331,1.755,0.050],
[0.338,1.913,0.050],
[0.475,1.920,0.050],
[0.475,1.776,0.050],
[0.942,1.676,0.500],
[1.280,1.482,1.000],
[1.280,0.187,0.000],
[1.374,0.129,0.000],
[1.575,0.137,0.500],
[1.575,0.000,0.000]
];

$fn=90;
rotate_extrude(360) polygon(polyRound(pts, 20));

On 7/27/2025 7:52 AM, Dylan via Discuss wrote: > > I only find extrude functions, which extrude a shape along a path, or > around an existing object. I effectively need to 'spin' the curve > (path/bezier/whatever) around an axis. > rotate_extrude() in the OpenSCAD language does exactly that. Beziers and other parametric curves will work well if you can find the particular parameters that describe your instrument's profile.  I've been modeling steam locomotive parts, and in a lot of them the profiles are a vexing combination of straight lines and arbitrary curves.  I found an OpenSCAD library called 'Round-Anything', has a function called polyRound() that'll take an array of points with attached radii and generate a set of points that replace the "pointed" points with curves, and leave the others as they are.  You can find it here: https://github.com/Irev-Dev/Round-Anything There's one file there, polyround.scad, the only one you need to do what I describe.  A short code to use it to make a locomotive steam dome: use <polyround.scad> pts = [ [0.000,0.000,0.000], [0.000,1.884,0.000], [0.115,1.891,0.050], [0.115,1.755,0.000], [0.331,1.755,0.050], [0.338,1.913,0.050], [0.475,1.920,0.050], [0.475,1.776,0.050], [0.942,1.676,0.500], [1.280,1.482,1.000], [1.280,0.187,0.000], [1.374,0.129,0.000], [1.575,0.137,0.500], [1.575,0.000,0.000] ]; $fn=90; rotate_extrude(360) polygon(polyRound(pts, 20));