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
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
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
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.
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
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
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.
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
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
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));