JB
Jon Bondy
Sun, Jul 27, 2025 4:17 PM
Any idea why I get the following error message? What makes OpenSCAD
think that I am reading/importing a file?
DEPRECATED: Support for reading files in rotate_extrude will be removed
in future releases. Use a child import() instead.
WARNING: module rotate_extrude() does not support child modules when
importing a file in file , line 23
TRACE: called by 'rotate_extrude' in file , line 23
I am using
version 2024.01.14 (git 158c5b94f)
Jon
On 7/27/2025 10:34 AM, Glenn Butcher via Discuss wrote:
here'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));
--
This email has been checked for viruses by AVG antivirus software.
www.avg.com
Any idea why I get the following error message? What makes OpenSCAD
think that I am reading/importing a file?
DEPRECATED: Support for reading files in rotate_extrude will be removed
in future releases. Use a child import() instead.
WARNING: module rotate_extrude() does not support child modules when
importing a file in file , line 23
TRACE: called by 'rotate_extrude' in file , line 23
I am using
version 2024.01.14 (git 158c5b94f)
Jon
On 7/27/2025 10:34 AM, Glenn Butcher via Discuss wrote:
>
> here'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));
>
--
This email has been checked for viruses by AVG antivirus software.
www.avg.com
GB
Glenn Butcher
Sun, Jul 27, 2025 4:21 PM
Yes, the rotate_extrude() operator originally had a signature where a
file was specified as the first parameter, they're apparently removing
that in the upcoming release (I'm using the dev snapshot). Change to:
rotate_extrude(angle=360) ...
On 7/27/2025 10:17 AM, Jon Bondy wrote:
Any idea why I get the following error message? What makes OpenSCAD
think that I am reading/importing a file?
DEPRECATED: Support for reading files in rotate_extrude will be
removed in future releases. Use a child import() instead.
WARNING: module rotate_extrude() does not support child modules when
importing a file in file , line 23
TRACE: called by 'rotate_extrude' in file , line 23
I am using
version 2024.01.14 (git 158c5b94f)
Jon
On 7/27/2025 10:34 AM, Glenn Butcher via Discuss wrote:
here'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));
Yes, the rotate_extrude() operator originally had a signature where a
file was specified as the first parameter, they're apparently removing
that in the upcoming release (I'm using the dev snapshot). Change to:
rotate_extrude(angle=360) ...
On 7/27/2025 10:17 AM, Jon Bondy wrote:
>
> Any idea why I get the following error message? What makes OpenSCAD
> think that I am reading/importing a file?
>
> DEPRECATED: Support for reading files in rotate_extrude will be
> removed in future releases. Use a child import() instead.
>
> WARNING: module rotate_extrude() does not support child modules when
> importing a file in file , line 23
>
> TRACE: called by 'rotate_extrude' in file , line 23
>
> I am using
>
> version 2024.01.14 (git 158c5b94f)
>
> Jon
>
> On 7/27/2025 10:34 AM, Glenn Butcher via Discuss wrote:
>>
>> here'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));
>>
>
> <http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient>
> Virus-free.www.avg.com
> <http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient>
>
>
> <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
SP
Sanjeev Prabhakar
Sun, Jul 27, 2025 4:55 PM
I wrote some unnecessary details in my previous code
Here is the simplified one
from openscad3 import *
a=[[0, 50], [5, 55], [10, 50], [50, 20]]
b=[[y/2,x] for (x,y) in a]
a1=arc_3p(b[0],b[1],b[2],s=10)
a2=arc_2p(b[2],b[3],r=50,s=30)
sec=a1+a2[1:]
fileopen(f'''
color("blue") for(p={[sec]}) p_line3d(p,.3);
color("magenta") points({b},.75);
''')
On Sun, 27 Jul 2025 at 21:46, Sanjeev Prabhakar sprabhakar2006@gmail.com
wrote:
for the python guys
following is the code :
from openscad3 import *
a=[[0, 50], [5, 55], [10, 50], [50, 20]]
b=[translate_2d([0,x],circle(y/2)) for (x,y) in a]
l1=cpo(b)[0]
l2=arc_3p(l1[0],l1[1],l1[2],s=10)
l3=arc_2p(l1[2],l1[3],50,s=20)
sec=l2+l3[1:]
sec1=rot('x90',sec)
s1=cpo([rot(f'z{i}',sec1) for i in linspace(0,360,50)[:-1]])
s2=surface_thicken_1(s1,1)
fileopen(f'''
color("blue") for(p={[sec]}) p_line3d(p,.3);
color("magenta") points({l1},.75);
//{swp_c(s2)}
''')
For this code to run, you need to download my library openscad3.py
https://github.com/sprabhakar2006/openSCAD/blob/main/openscad3.py
If you are lucky to setup things correctly, you will be able to see the
file trial.scad
On Sun, 27 Jul 2025 at 21:14, Sanjeev Prabhakar sprabhakar2006@gmail.com
wrote:
I will write it in openscad and send it just for the larger population
here.
Nowadays I am working in python, so may not be very useful to many.
On Sun, 27 Jul, 2025, 8:59 pm William F. Adams, willadams@aol.com
wrote:
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.
Source code for this image?
William
I wrote some unnecessary details in my previous code
Here is the simplified one
from openscad3 import *
a=[[0, 50], [5, 55], [10, 50], [50, 20]]
b=[[y/2,x] for (x,y) in a]
a1=arc_3p(b[0],b[1],b[2],s=10)
a2=arc_2p(b[2],b[3],r=50,s=30)
sec=a1+a2[1:]
fileopen(f'''
color("blue") for(p={[sec]}) p_line3d(p,.3);
color("magenta") points({b},.75);
''')
On Sun, 27 Jul 2025 at 21:46, Sanjeev Prabhakar <sprabhakar2006@gmail.com>
wrote:
> for the python guys
> following is the code :
>
> from openscad3 import *
> a=[[0, 50], [5, 55], [10, 50], [50, 20]]
> b=[translate_2d([0,x],circle(y/2)) for (x,y) in a]
> l1=cpo(b)[0]
> l2=arc_3p(l1[0],l1[1],l1[2],s=10)
> l3=arc_2p(l1[2],l1[3],50,s=20)
> sec=l2+l3[1:]
> sec1=rot('x90',sec)
> s1=cpo([rot(f'z{i}',sec1) for i in linspace(0,360,50)[:-1]])
> s2=surface_thicken_1(s1,1)
> fileopen(f'''
> color("blue") for(p={[sec]}) p_line3d(p,.3);
> color("magenta") points({l1},.75);
> //{swp_c(s2)}
> ''')
>
>
> For this code to run, you need to download my library openscad3.py
> https://github.com/sprabhakar2006/openSCAD/blob/main/openscad3.py
>
> If you are lucky to setup things correctly, you will be able to see the
> file trial.scad
>
> On Sun, 27 Jul 2025 at 21:14, Sanjeev Prabhakar <sprabhakar2006@gmail.com>
> wrote:
>
>> I will write it in openscad and send it just for the larger population
>> here.
>>
>> Nowadays I am working in python, so may not be very useful to many.
>>
>> On Sun, 27 Jul, 2025, 8:59 pm William F. Adams, <willadams@aol.com>
>> wrote:
>>
>>> On Sunday, July 27, 2025 at 10:32:22 AM EDT, Sanjeev Prabhakar via
>>> Discuss <discuss@lists.openscad.org> wrote:
>>>
>>> >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.
>>>
>>> Source code for this image?
>>>
>>> William
>>>
>>
JB
Jon Bondy
Sun, Jul 27, 2025 5:33 PM
That did it! Thanks!
On 7/27/2025 12:21 PM, Glenn Butcher via Discuss wrote:
Yes, the rotate_extrude() operator originally had a signature where a
file was specified as the first parameter, they're apparently removing
that in the upcoming release (I'm using the dev snapshot). Change to:
rotate_extrude(angle=360) ...
On 7/27/2025 10:17 AM, Jon Bondy wrote:
Any idea why I get the following error message? What makes OpenSCAD
think that I am reading/importing a file?
DEPRECATED: Support for reading files in rotate_extrude will be
removed in future releases. Use a child import() instead.
WARNING: module rotate_extrude() does not support child modules when
importing a file in file , line 23
TRACE: called by 'rotate_extrude' in file , line 23
I am using
version 2024.01.14 (git 158c5b94f)
Jon
On 7/27/2025 10:34 AM, Glenn Butcher via Discuss wrote:
here'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));
--
This email has been checked for viruses by AVG antivirus software.
www.avg.com
That did it! Thanks!
On 7/27/2025 12:21 PM, Glenn Butcher via Discuss wrote:
>
> Yes, the rotate_extrude() operator originally had a signature where a
> file was specified as the first parameter, they're apparently removing
> that in the upcoming release (I'm using the dev snapshot). Change to:
>
> rotate_extrude(angle=360) ...
>
> On 7/27/2025 10:17 AM, Jon Bondy wrote:
>>
>> Any idea why I get the following error message? What makes OpenSCAD
>> think that I am reading/importing a file?
>>
>> DEPRECATED: Support for reading files in rotate_extrude will be
>> removed in future releases. Use a child import() instead.
>>
>> WARNING: module rotate_extrude() does not support child modules when
>> importing a file in file , line 23
>>
>> TRACE: called by 'rotate_extrude' in file , line 23
>>
>> I am using
>>
>> version 2024.01.14 (git 158c5b94f)
>>
>> Jon
>>
>> On 7/27/2025 10:34 AM, Glenn Butcher via Discuss wrote:
>>>
>>> here'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));
>>>
>>
>> <http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient>
>> Virus-free.www.avg.com
>> <http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient>
>>
>>
>> <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>
> _______________________________________________
> OpenSCAD mailing list
> To unsubscribe send an email todiscuss-leave@lists.openscad.org
--
This email has been checked for viruses by AVG antivirus software.
www.avg.com
AM
Adrian Mariano
Sun, Jul 27, 2025 6:27 PM
BOSL2 offers round_corners which is similar to polyRound from the round
anything library. But both of those fail the request in that they change
the points so the result will not pass through the input. BOSL2 provides
smooth_path which provides a curve which passes through all of the input
points. It does this under the hood by computing a cubic bezier path which
is a sequence of beziers that mate end to end.
Another possible option would be to use nurbs where knot multiplicity can
force the curve to pass through points but that will be more complex. It
is possible to solve a nurbs interpolation problem to create a nurbs that
passes through a point list but I have not implemented that yet. This
actually seems like the best method for the problem. And it seems like it
could be particularly useful for surfaces. But not expecting to get to it
soon.
On Sun, Jul 27, 2025 at 13:34 Jon Bondy via Discuss <
discuss@lists.openscad.org> wrote:
That did it! Thanks!
On 7/27/2025 12:21 PM, Glenn Butcher via Discuss wrote:
Yes, the rotate_extrude() operator originally had a signature where a file
was specified as the first parameter, they're apparently removing that in
the upcoming release (I'm using the dev snapshot). Change to:
rotate_extrude(angle=360) ...
On 7/27/2025 10:17 AM, Jon Bondy wrote:
Any idea why I get the following error message? What makes OpenSCAD think
that I am reading/importing a file?
DEPRECATED: Support for reading files in rotate_extrude will be removed in
future releases. Use a child import() instead.
WARNING: module rotate_extrude() does not support child modules when
importing a file in file , line 23
TRACE: called by 'rotate_extrude' in file , line 23
I am using
version 2024.01.14 (git 158c5b94f)
Jon
On 7/27/2025 10:34 AM, Glenn Butcher via Discuss wrote:
here'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));
http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient
Virus-free.www.avg.com
http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient
<#m_-7823699872917304067_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
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
BOSL2 offers round_corners which is similar to polyRound from the round
anything library. But both of those fail the request in that they change
the points so the result will not pass through the input. BOSL2 provides
smooth_path which provides a curve which passes through all of the input
points. It does this under the hood by computing a cubic bezier path which
is a sequence of beziers that mate end to end.
Another possible option would be to use nurbs where knot multiplicity can
force the curve to pass through points but that will be more complex. It
is possible to solve a nurbs interpolation problem to create a nurbs that
passes through a point list but I have not implemented that yet. This
actually seems like the best method for the problem. And it seems like it
could be particularly useful for surfaces. But not expecting to get to it
soon.
On Sun, Jul 27, 2025 at 13:34 Jon Bondy via Discuss <
discuss@lists.openscad.org> wrote:
> That did it! Thanks!
>
> On 7/27/2025 12:21 PM, Glenn Butcher via Discuss wrote:
>
> Yes, the rotate_extrude() operator originally had a signature where a file
> was specified as the first parameter, they're apparently removing that in
> the upcoming release (I'm using the dev snapshot). Change to:
>
> rotate_extrude(angle=360) ...
> On 7/27/2025 10:17 AM, Jon Bondy wrote:
>
> Any idea why I get the following error message? What makes OpenSCAD think
> that I am reading/importing a file?
>
> DEPRECATED: Support for reading files in rotate_extrude will be removed in
> future releases. Use a child import() instead.
>
> WARNING: module rotate_extrude() does not support child modules when
> importing a file in file , line 23
>
> TRACE: called by 'rotate_extrude' in file , line 23
>
> I am using
>
> version 2024.01.14 (git 158c5b94f)
>
> Jon
>
> On 7/27/2025 10:34 AM, Glenn Butcher via Discuss wrote:
>
> here'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));
>
>
>
> <http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient>
> Virus-free.www.avg.com
> <http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient>
> <#m_-7823699872917304067_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>
>
> _______________________________________________
> 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
>
GH
gene heskett
Sun, Jul 27, 2025 8:37 PM
On 7/27/25 11:59, Dylan via Discuss wrote:
Thanks, this looks like just what I need.
D
Please, I don't want to rain on your parade, but allow me to point out
that the success of trying to actually play such a printed instrument is
going to be extremely dependent of achieving an absolutely air tight
print. Any leakage will absorb the pressure waves whose standing waves
will determine the instant frequency produced. This is going to be
determined by the slicer settings, with a probable minimum thickness of
4 walls, tops and bottoms, heavy on the flow so there is good squish and
likely 15C or more higher nozzle temps in order to get adequate welding
& sealing. I have printed air manifolds that need to have 4 or 5 psi of
air pressure made by combining the outputs of 5 teeny 24 volt
compressors, finding much of the air I was pumping was being lost thru
the walls of the manifold, I had to print it quite a few times to get
adequate flow at the actual nozzle, raising the plastics flow and temps
to get really good interlayer welding for a mister generator for a
milling machine. It paid off in improved cutting tool life by about 10x
compared to running dry cutting alu, yet sufficient mist was pretty dry,
only used about 4 ounces of koolmist mix in 8 hours of machining some
wrenches I needed. Yeah, I think outside that famous box, a lot. This
sealing might also be improved by giving the finished print a coat of
something slightly solvent that will 'soak' into the plastic, filling
those micro voids as it dries.
And please again, post what you had to do to make it work better. A lot
of us would like a better chance of our ideas actually working on the
first make. Thank you.
On 27/07/2025 15:34, Glenn Butcher via Discuss wrote:
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));
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
Cheers, Gene Heskett, CET.
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author, 1940)
If we desire respect for the law, we must first make the law respectable.
On 7/27/25 11:59, Dylan via Discuss wrote:
> Thanks, this looks like just what I need.
> D
Please, I don't want to rain on your parade, but allow me to point out
that the success of trying to actually play such a printed instrument is
going to be extremely dependent of achieving an absolutely air tight
print. Any leakage will absorb the pressure waves whose standing waves
will determine the instant frequency produced. This is going to be
determined by the slicer settings, with a probable minimum thickness of
4 walls, tops and bottoms, heavy on the flow so there is good squish and
likely 15C or more higher nozzle temps in order to get adequate welding
& sealing. I have printed air manifolds that need to have 4 or 5 psi of
air pressure made by combining the outputs of 5 teeny 24 volt
compressors, finding much of the air I was pumping was being lost thru
the walls of the manifold, I had to print it quite a few times to get
adequate flow at the actual nozzle, raising the plastics flow and temps
to get really good interlayer welding for a mister generator for a
milling machine. It paid off in improved cutting tool life by about 10x
compared to running dry cutting alu, yet sufficient mist was pretty dry,
only used about 4 ounces of koolmist mix in 8 hours of machining some
wrenches I needed. Yeah, I think outside that famous box, a lot. This
sealing might also be improved by giving the finished print a coat of
something slightly solvent that will 'soak' into the plastic, filling
those micro voids as it dries.
And please again, post what you had to do to make it work better. A lot
of us would like a better chance of our ideas actually working on the
first make. Thank you.
>
> On 27/07/2025 15:34, Glenn Butcher via Discuss wrote:
>> 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));
>>
>>
>> _______________________________________________
>> 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
Cheers, Gene Heskett, CET.
--
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author, 1940)
If we desire respect for the law, we must first make the law respectable.
- Louis D. Brandeis
D
Dylan
Mon, Jul 28, 2025 7:35 AM
Don't worry - these are just maquettes so I can ensure the sizes and
fittings of a case are correct without having someone else's
thousand-plus pound instrument in my workshop for 3 months...
D
On 27/07/2025 21:37, gene heskett via Discuss wrote:
On 7/27/25 11:59, Dylan via Discuss wrote:
Thanks, this looks like just what I need.
D
Please, I don't want to rain on your parade, but allow me to point out
that the success of trying to actually play such a printed instrument is
going to be extremely dependent of achieving an absolutely air tight
print. Any leakage will absorb the pressure waves whose standing waves
will determine the instant frequency produced. This is going to be
determined by the slicer settings, with a probable minimum thickness of
4 walls, tops and bottoms, heavy on the flow so there is good squish and
likely 15C or more higher nozzle temps in order to get adequate welding
& sealing. I have printed air manifolds that need to have 4 or 5 psi of
air pressure made by combining the outputs of 5 teeny 24 volt
compressors, finding much of the air I was pumping was being lost thru
the walls of the manifold, I had to print it quite a few times to get
adequate flow at the actual nozzle, raising the plastics flow and temps
to get really good interlayer welding for a mister generator for a
milling machine. It paid off in improved cutting tool life by about 10x
compared to running dry cutting alu, yet sufficient mist was pretty dry,
only used about 4 ounces of koolmist mix in 8 hours of machining some
wrenches I needed. Yeah, I think outside that famous box, a lot. This
sealing might also be improved by giving the finished print a coat of
something slightly solvent that will 'soak' into the plastic, filling
those micro voids as it dries.
And please again, post what you had to do to make it work better. A lot
of us would like a better chance of our ideas actually working on the
first make. Thank you.
On 27/07/2025 15:34, Glenn Butcher via Discuss wrote:
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));
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
Cheers, Gene Heskett, CET.
Don't worry - these are just maquettes so I can ensure the sizes and
fittings of a case are correct without having someone else's
thousand-plus pound instrument in my workshop for 3 months...
D
On 27/07/2025 21:37, gene heskett via Discuss wrote:
> On 7/27/25 11:59, Dylan via Discuss wrote:
>> Thanks, this looks like just what I need.
>> D
> Please, I don't want to rain on your parade, but allow me to point out
> that the success of trying to actually play such a printed instrument is
> going to be extremely dependent of achieving an absolutely air tight
> print. Any leakage will absorb the pressure waves whose standing waves
> will determine the instant frequency produced. This is going to be
> determined by the slicer settings, with a probable minimum thickness of
> 4 walls, tops and bottoms, heavy on the flow so there is good squish and
> likely 15C or more higher nozzle temps in order to get adequate welding
> & sealing. I have printed air manifolds that need to have 4 or 5 psi of
> air pressure made by combining the outputs of 5 teeny 24 volt
> compressors, finding much of the air I was pumping was being lost thru
> the walls of the manifold, I had to print it quite a few times to get
> adequate flow at the actual nozzle, raising the plastics flow and temps
> to get really good interlayer welding for a mister generator for a
> milling machine. It paid off in improved cutting tool life by about 10x
> compared to running dry cutting alu, yet sufficient mist was pretty dry,
> only used about 4 ounces of koolmist mix in 8 hours of machining some
> wrenches I needed. Yeah, I think outside that famous box, a lot. This
> sealing might also be improved by giving the finished print a coat of
> something slightly solvent that will 'soak' into the plastic, filling
> those micro voids as it dries.
>
> And please again, post what you had to do to make it work better. A lot
> of us would like a better chance of our ideas actually working on the
> first make. Thank you.
>>
>> On 27/07/2025 15:34, Glenn Butcher via Discuss wrote:
>>> 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));
>>>
>>>
>>> _______________________________________________
>>> 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
>
> Cheers, Gene Heskett, CET.
D
Dylan
Mon, Jul 28, 2025 1:34 PM
If I need to do this, then I may as well model it directly in, for
example, Blender. The whole point of this exercise is to eliminate the
need to model each instrument individually, and instead simply use
measurements as input. How successful that end up being is a matter for
experiment and discovery...
D
On 27/07/2025 14:23, Roel Vanhout via Discuss wrote:
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 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
If I need to do this, then I may as well model it directly in, for
example, Blender. The whole point of this exercise is to eliminate the
need to model each instrument individually, and instead simply use
measurements as input. How successful that end up being is a matter for
experiment and discovery...
D
On 27/07/2025 14:23, Roel Vanhout via Discuss wrote:
> 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 <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
JB
Jon Bondy
Mon, Jul 28, 2025 1:38 PM
Glenn's PolyRound approach seemed simple and elegant to me. That does
not work for you?
Jon
On 7/28/2025 9:34 AM, Dylan via Discuss wrote:
If I need to do this, then I may as well model it directly in, for
example, Blender. The whole point of this exercise is to eliminate the
need to model each instrument individually, and instead simply use
measurements as input. How successful that end up being is a matter
for experiment and discovery...
D
--
This email has been checked for viruses by AVG antivirus software.
www.avg.com
Glenn's PolyRound approach seemed simple and elegant to me. That does
not work for you?
Jon
On 7/28/2025 9:34 AM, Dylan via Discuss wrote:
> If I need to do this, then I may as well model it directly in, for
> example, Blender. The whole point of this exercise is to eliminate the
> need to model each instrument individually, and instead simply use
> measurements as input. How successful that end up being is a matter
> for experiment and discovery...
> D
>
--
This email has been checked for viruses by AVG antivirus software.
www.avg.com
D
Dylan
Mon, Jul 28, 2025 2:32 PM
I haven't had a chance to test out any of the approaches suggested yet,
but it certainly seems high on the list.
D
On 28/07/2025 14:38, Jon Bondy via Discuss wrote:
Glenn's PolyRound approach seemed simple and elegant to me. That does
not work for you?
Jon
On 7/28/2025 9:34 AM, Dylan via Discuss wrote:
If I need to do this, then I may as well model it directly in, for
example, Blender. The whole point of this exercise is to eliminate the
need to model each instrument individually, and instead simply use
measurements as input. How successful that end up being is a matter
for experiment and discovery...
D
I haven't had a chance to test out any of the approaches suggested yet,
but it certainly seems high on the list.
D
On 28/07/2025 14:38, Jon Bondy via Discuss wrote:
> Glenn's PolyRound approach seemed simple and elegant to me. That does
> not work for you?
>
> Jon
>
> On 7/28/2025 9:34 AM, Dylan via Discuss wrote:
>> If I need to do this, then I may as well model it directly in, for
>> example, Blender. The whole point of this exercise is to eliminate the
>> need to model each instrument individually, and instead simply use
>> measurements as input. How successful that end up being is a matter
>> for experiment and discovery...
>> D
>>
>