discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

Any way to get this to render?

D
Daniel
Sun, Sep 19, 2021 7:00 PM

Hi

I am wondering is there a way to make my script more efficient so it
will actually render? (I can get it to render but must do it in <10cm
segments & piece them together in blender)

For some reason a 10cm segment will be done in about half an hour but if
I try to do the whole thing the computing machine will run out of RAM or
else seemingly never complete - I've had it run for 12+ hours no
success. Am running openscad 2021.09.19 on Linux with 8GB RAM

-Daniel

Hi I am wondering is there a way to make my script more efficient so it will actually render? (I can get it to render but must do it in <10cm segments & piece them together in blender) For some reason a 10cm segment will be done in about half an hour but if I try to do the whole thing the computing machine will run out of RAM or else seemingly never complete - I've had it run for 12+ hours no success. Am running openscad 2021.09.19 on Linux with 8GB RAM -Daniel
GH
Gene Heskett
Sun, Sep 19, 2021 7:49 PM

On Sunday 19 September 2021 15:00:44 Daniel wrote:

Hi

I am wondering is there a way to make my script more efficient so it
will actually render? (I can get it to render but must do it in <10cm
segments & piece them together in blender)

For some reason a 10cm segment will be done in about half an hour but
if I try to do the whole thing the computing machine will run out of
RAM or else seemingly never complete - I've had it run for 12+ hours
no success. Am running openscad 2021.09.19 on Linux with 8GB RAM

I've got 16GB in the buster machine, I'm running openscad on and its not
enough, 32 in this machine but the later openscads won't run on my
stretch libc6. Gotta get this updated to buster or bullseye.

-Daniel

Cheers, Gene Heskett

"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
If we desire respect for the law, we must first make the law respectable.

On Sunday 19 September 2021 15:00:44 Daniel wrote: > Hi > > I am wondering is there a way to make my script more efficient so it > will actually render? (I can get it to render but must do it in <10cm > segments & piece them together in blender) > > For some reason a 10cm segment will be done in about half an hour but > if I try to do the whole thing the computing machine will run out of > RAM or else seemingly never complete - I've had it run for 12+ hours > no success. Am running openscad 2021.09.19 on Linux with 8GB RAM > I've got 16GB in the buster machine, I'm running openscad on and its not enough, 32 in this machine but the later openscads won't run on my stretch libc6. Gotta get this updated to buster or bullseye. > -Daniel Cheers, Gene Heskett -- "There are four boxes to be used in defense of liberty: soap, ballot, jury, and ammo. Please use in that order." -Ed Howdershelt (Author) If we desire respect for the law, we must first make the law respectable. - Louis D. Brandeis Genes Web page <http://geneslinuxbox.net:6309/gene>
LM
Leonard Martin Struttmann
Sun, Sep 19, 2021 7:53 PM

I was able to render it on my new PC in 30min, 19 seconds, using about
7.8GB of memory.

Is this something that could better be done using thej twist argument of
linear_extrude()?

On Sun, Sep 19, 2021 at 2:49 PM Gene Heskett gheskett@shentel.net wrote:

On Sunday 19 September 2021 15:00:44 Daniel wrote:

Hi

I am wondering is there a way to make my script more efficient so it
will actually render? (I can get it to render but must do it in <10cm
segments & piece them together in blender)

For some reason a 10cm segment will be done in about half an hour but
if I try to do the whole thing the computing machine will run out of
RAM or else seemingly never complete - I've had it run for 12+ hours
no success. Am running openscad 2021.09.19 on Linux with 8GB RAM

I've got 16GB in the buster machine, I'm running openscad on and its not
enough, 32 in this machine but the later openscads won't run on my
stretch libc6. Gotta get this updated to buster or bullseye.

-Daniel

Cheers, Gene Heskett

"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
If we desire respect for the law, we must first make the law respectable.


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

I was able to render it on my new PC in 30min, 19 seconds, using about 7.8GB of memory. Is this something that could better be done using thej twist argument of linear_extrude()? On Sun, Sep 19, 2021 at 2:49 PM Gene Heskett <gheskett@shentel.net> wrote: > On Sunday 19 September 2021 15:00:44 Daniel wrote: > > > Hi > > > > I am wondering is there a way to make my script more efficient so it > > will actually render? (I can get it to render but must do it in <10cm > > segments & piece them together in blender) > > > > For some reason a 10cm segment will be done in about half an hour but > > if I try to do the whole thing the computing machine will run out of > > RAM or else seemingly never complete - I've had it run for 12+ hours > > no success. Am running openscad 2021.09.19 on Linux with 8GB RAM > > > I've got 16GB in the buster machine, I'm running openscad on and its not > enough, 32 in this machine but the later openscads won't run on my > stretch libc6. Gotta get this updated to buster or bullseye. > > -Daniel > > > Cheers, Gene Heskett > -- > "There are four boxes to be used in defense of liberty: > soap, ballot, jury, and ammo. Please use in that order." > -Ed Howdershelt (Author) > If we desire respect for the law, we must first make the law respectable. > - Louis D. Brandeis > Genes Web page <http://geneslinuxbox.net:6309/gene> > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
T
trygve@totallytrygve.com
Sun, Sep 19, 2021 8:44 PM

Hi!

You have a serious issue with the design.

I did a little mod of the code:

for(i = [0:0.2:179.8]){
if(i>2.4 && i<100 ){

rotate([0,0,i])
color("red")
dylinder(12.5*(1+sin(i+50)),2,16,i);


Just coloured part of it red...
Do this, then preview.
What you see in the intersections is OpenSCAD struggling with deciding which surface is what.
Should the Red surface be the outside, should the yellow?
And what happens to the surface that's not on the outside?

Preview runs with a different accuracy and curve handling than the final rendering, so there's very few if any of these conflicts.

You can see the same issue if you create:

cylinder(r=10, h=20);
cylinder(r=5, h=20);

My laptop has 32GB, and it's also struggling to render it.
It's a beautiful design. I hope you find a way around it.

Trygve

Den 19. september 2021 kl. 21.00.44 +02.00 skrev Daniel daniel@puggsy.net:

Hi

I am wondering is there a way to make my script more efficient so it will actually render? (I can get it to render but must do it in <10cm segments & piece them together in blender)

For some reason a 10cm segment will be done in about half an hour but if I try to do the whole thing the computing machine will run out of RAM or else seemingly never complete - I've had it run for 12+ hours no success. Am running openscad 2021.09.19 on Linux with 8GB RAM

-Daniel


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

Hi! You have a serious issue with the design. I did a little mod of the code: ------------------- for(i = [0:0.2:179.8]){ if(i>2.4 && i<100 ){ rotate([0,0,i]) color("red") dylinder(12.5*(1+sin(i+50)),2,16,i); -------------------- Just coloured part of it red... Do this, then preview. What you see in the intersections is OpenSCAD struggling with deciding which surface is what. Should the Red surface be the outside, should the yellow? And what happens to the surface that's not on the outside? Preview runs with a different accuracy and curve handling than the final rendering, so there's very few if any of these conflicts. You can see the same issue if you create: ------- cylinder(r=10, h=20); cylinder(r=5, h=20); ------- My laptop has 32GB, and it's also struggling to render it. It's a beautiful design. I hope you find a way around it. Trygve Den 19. september 2021 kl. 21.00.44 +02.00 skrev Daniel <daniel@puggsy.net>: > Hi > > I am wondering is there a way to make my script more efficient so it will actually render? (I can get it to render but must do it in <10cm segments & piece them together in blender) > > For some reason a 10cm segment will be done in about half an hour but if I try to do the whole thing the computing machine will run out of RAM or else seemingly never complete - I've had it run for 12+ hours no success. Am running openscad 2021.09.19 on Linux with 8GB RAM > > -Daniel > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to <discuss-leave@lists.openscad.org> >
JB
Jordan Brown
Sun, Sep 19, 2021 9:04 PM

I don't have much experience with this sort of shape, but I would think
in terms of sweep-based constructs, where each diagonal line up from the
base and round the structure is a single polyhedron.  I'm not clear on
whether that could be done with linear_extrude's twist mechanism -
probably not, because of the need to curve inward as Z increases.

https://github.com/revarbat/BOSL2/wiki/skin.scad

Sweep functions are, roughly, the generalization of linear extrude that
extrude along arbitrary paths in 3D space.

I don't have much experience with this sort of shape, but I would think in terms of sweep-based constructs, where each diagonal line up from the base and round the structure is a single polyhedron.  I'm not clear on whether that could be done with linear_extrude's twist mechanism - probably not, because of the need to curve inward as Z increases. https://github.com/revarbat/BOSL2/wiki/skin.scad Sweep functions are, roughly, the generalization of linear extrude that extrude along arbitrary paths in 3D space.
FH
Father Horton
Mon, Sep 20, 2021 12:24 AM

Since OpenSCAD is functional, does it memoize? I was wondering if it would
be possible to let it work out the hard parts only once and then duplicate
the results.

On Sun, Sep 19, 2021 at 4:04 PM Jordan Brown openscad@jordan.maileater.net
wrote:

I don't have much experience with this sort of shape, but I would think in
terms of sweep-based constructs, where each diagonal line up from the base
and round the structure is a single polyhedron.  I'm not clear on whether
that could be done with linear_extrude's twist mechanism - probably not,
because of the need to curve inward as Z increases.

https://github.com/revarbat/BOSL2/wiki/skin.scad

Sweep functions are, roughly, the generalization of linear extrude that
extrude along arbitrary paths in 3D space.


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

Since OpenSCAD is functional, does it memoize? I was wondering if it would be possible to let it work out the hard parts only once and then duplicate the results. On Sun, Sep 19, 2021 at 4:04 PM Jordan Brown <openscad@jordan.maileater.net> wrote: > I don't have much experience with this sort of shape, but I would think in > terms of sweep-based constructs, where each diagonal line up from the base > and round the structure is a single polyhedron. I'm not clear on whether > that could be done with linear_extrude's twist mechanism - probably not, > because of the need to curve inward as Z increases. > > https://github.com/revarbat/BOSL2/wiki/skin.scad > > Sweep functions are, roughly, the generalization of linear extrude that > extrude along arbitrary paths in 3D space. > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
NH
nop head
Mon, Sep 20, 2021 5:35 AM

No it only caches geometry with a key which is the arguments that made it.
Those arguments are all calculated each time.

On Mon, 20 Sept 2021 at 01:24, Father Horton fatherhorton@gmail.com wrote:

Since OpenSCAD is functional, does it memoize? I was wondering if it would
be possible to let it work out the hard parts only once and then duplicate
the results.

On Sun, Sep 19, 2021 at 4:04 PM Jordan Brown <
openscad@jordan.maileater.net> wrote:

I don't have much experience with this sort of shape, but I would think
in terms of sweep-based constructs, where each diagonal line up from the
base and round the structure is a single polyhedron.  I'm not clear on
whether that could be done with linear_extrude's twist mechanism - probably
not, because of the need to curve inward as Z increases.

https://github.com/revarbat/BOSL2/wiki/skin.scad

Sweep functions are, roughly, the generalization of linear extrude that
extrude along arbitrary paths in 3D space.


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

No it only caches geometry with a key which is the arguments that made it. Those arguments are all calculated each time. On Mon, 20 Sept 2021 at 01:24, Father Horton <fatherhorton@gmail.com> wrote: > Since OpenSCAD is functional, does it memoize? I was wondering if it would > be possible to let it work out the hard parts only once and then duplicate > the results. > > On Sun, Sep 19, 2021 at 4:04 PM Jordan Brown < > openscad@jordan.maileater.net> wrote: > >> I don't have much experience with this sort of shape, but I would think >> in terms of sweep-based constructs, where each diagonal line up from the >> base and round the structure is a single polyhedron. I'm not clear on >> whether that could be done with linear_extrude's twist mechanism - probably >> not, because of the need to curve inward as Z increases. >> >> https://github.com/revarbat/BOSL2/wiki/skin.scad >> >> Sweep functions are, roughly, the generalization of linear extrude that >> extrude along arbitrary paths in 3D space. >> >> _______________________________________________ >> 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 >
RP
Ronaldo Persiano
Mon, Sep 20, 2021 9:51 AM

Your shape is made of 32 winding twisted extrusions I will call "cords".
Each cord is made of 900 small linear extrudes of a quadrilateral. In
total, there are more than 900*32 contacts between small pieces in the
final model. It is not surprising it takes so long to render. Each of these
contacts have to be identified and the interferences should be computed by
CGAL (the render process.)

In your code, the shape is the union of slices of the cords. Processing
that way you cannot benefit from the OpenSCAD cache. It would be faster to
compute a whole cord and union rotations/mirrors of it. That way the
process of a cord is done only once and cached. The union of the cords will
have 16*16 contacts.

By doing that, you will have a huge gain because the contacts found in a
cord will be reduced to 5180 instead of the previous value (90032). To
get an even better runtime cost you will need to avoid the unions in the
cord processing. To do it, the cord might be computed as a polyhedron where
no union takes place (and CGAL is not called.) To generate a cord using a
sweep is out of question because it will be hard to control the twist of
it. Skin is an alternative as Jordan pointed out. The sections to input the
skin are found in the polygon vertices of the dial module. I believe the
render time with this strategy will be 1 minute or less.

If you want to take this direction and need any help just ask.

Em dom., 19 de set. de 2021 às 20:01, Daniel daniel@puggsy.net escreveu:

Hi

I am wondering is there a way to make my script more efficient so it
will actually render? (I can get it to render but must do it in <10cm
segments & piece them together in blender)

For some reason a 10cm segment will be done in about half an hour but if
I try to do the whole thing the computing machine will run out of RAM or
else seemingly never complete - I've had it run for 12+ hours no
success. Am running openscad 2021.09.19 on Linux with 8GB RAM

-Daniel


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

Your shape is made of 32 winding twisted extrusions I will call "cords". Each cord is made of 900 small linear extrudes of a quadrilateral. In total, there are more than 900*32 contacts between small pieces in the final model. It is not surprising it takes so long to render. Each of these contacts have to be identified and the interferences should be computed by CGAL (the render process.) In your code, the shape is the union of slices of the cords. Processing that way you cannot benefit from the OpenSCAD cache. It would be faster to compute a whole cord and union rotations/mirrors of it. That way the process of a cord is done only once and cached. The union of the cords will have 16*16 contacts. By doing that, you will have a huge gain because the contacts found in a cord will be reduced to 5*180 instead of the previous value (900*32). To get an even better runtime cost you will need to avoid the unions in the cord processing. To do it, the cord might be computed as a polyhedron where no union takes place (and CGAL is not called.) To generate a cord using a sweep is out of question because it will be hard to control the twist of it. Skin is an alternative as Jordan pointed out. The sections to input the skin are found in the polygon vertices of the dial module. I believe the render time with this strategy will be 1 minute or less. If you want to take this direction and need any help just ask. Em dom., 19 de set. de 2021 às 20:01, Daniel <daniel@puggsy.net> escreveu: > Hi > > I am wondering is there a way to make my script more efficient so it > will actually render? (I can get it to render but must do it in <10cm > segments & piece them together in blender) > > For some reason a 10cm segment will be done in about half an hour but if > I try to do the whole thing the computing machine will run out of RAM or > else seemingly never complete - I've had it run for 12+ hours no > success. Am running openscad 2021.09.19 on Linux with 8GB RAM > > -Daniel > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
AM
Adrian Mariano
Mon, Sep 20, 2021 3:55 PM

Something like this works, using the generic sweep.  It took almost 2
minutes to render.  There may be little edges at the intersections,
though.  That may be hard to fix other than by making it oversized and
then intersecting the model with the vase solid of revolution.

include<BOSL2/std.scad>

function myf(i) =  i<100 ? 12.5*(1+sin(i+50)) : (42.65-15*sin((i)+280))/2;
step = 4;
path = [for(i=[0:step:180]) rot(i)move([2myf(i),0,i])];  // list of
transform matrices
section = square(4,center=true);
zrot_copies(n=16){
xflip_copy()sweep(section, path);
}

On Mon, Sep 20, 2021 at 5:51 AM Ronaldo Persiano rcmpersiano@gmail.com wrote:

Your shape is made of 32 winding twisted extrusions I will call "cords". Each cord is made of 900 small linear extrudes of a quadrilateral. In total, there are more than 900*32 contacts between small pieces in the final model. It is not surprising it takes so long to render. Each of these contacts have to be identified and the interferences should be computed by CGAL (the render process.)

In your code, the shape is the union of slices of the cords. Processing that way you cannot benefit from the OpenSCAD cache. It would be faster to compute a whole cord and union rotations/mirrors of it. That way the process of a cord is done only once and cached. The union of the cords will have 16*16 contacts.

By doing that, you will have a huge gain because the contacts found in a cord will be reduced to 5180 instead of the previous value (90032). To get an even better runtime cost you will need to avoid the unions in the cord processing. To do it, the cord might be computed as a polyhedron where no union takes place (and CGAL is not called.) To generate a cord using a sweep is out of question because it will be hard to control the twist of it. Skin is an alternative as Jordan pointed out. The sections to input the skin are found in the polygon vertices of the dial module. I believe the render time with this strategy will be 1 minute or less.

If you want to take this direction and need any help just ask.

Em dom., 19 de set. de 2021 às 20:01, Daniel daniel@puggsy.net escreveu:

Hi

I am wondering is there a way to make my script more efficient so it
will actually render? (I can get it to render but must do it in <10cm
segments & piece them together in blender)

For some reason a 10cm segment will be done in about half an hour but if
I try to do the whole thing the computing machine will run out of RAM or
else seemingly never complete - I've had it run for 12+ hours no
success. Am running openscad 2021.09.19 on Linux with 8GB RAM

-Daniel


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

Something like this works, using the generic sweep. It took almost 2 minutes to render. There may be little edges at the intersections, though. That may be hard to fix other than by making it oversized and then intersecting the model with the vase solid of revolution. include<BOSL2/std.scad> function myf(i) = i<100 ? 12.5*(1+sin(i+50)) : (42.65-15*sin((i)+280))/2; step = 4; path = [for(i=[0:step:180]) rot(i)*move([2*myf(i),0,i])]; // list of transform matrices section = square(4,center=true); zrot_copies(n=16){ xflip_copy()sweep(section, path); } On Mon, Sep 20, 2021 at 5:51 AM Ronaldo Persiano <rcmpersiano@gmail.com> wrote: > > Your shape is made of 32 winding twisted extrusions I will call "cords". Each cord is made of 900 small linear extrudes of a quadrilateral. In total, there are more than 900*32 contacts between small pieces in the final model. It is not surprising it takes so long to render. Each of these contacts have to be identified and the interferences should be computed by CGAL (the render process.) > > In your code, the shape is the union of slices of the cords. Processing that way you cannot benefit from the OpenSCAD cache. It would be faster to compute a whole cord and union rotations/mirrors of it. That way the process of a cord is done only once and cached. The union of the cords will have 16*16 contacts. > > By doing that, you will have a huge gain because the contacts found in a cord will be reduced to 5*180 instead of the previous value (900*32). To get an even better runtime cost you will need to avoid the unions in the cord processing. To do it, the cord might be computed as a polyhedron where no union takes place (and CGAL is not called.) To generate a cord using a sweep is out of question because it will be hard to control the twist of it. Skin is an alternative as Jordan pointed out. The sections to input the skin are found in the polygon vertices of the dial module. I believe the render time with this strategy will be 1 minute or less. > > If you want to take this direction and need any help just ask. > > Em dom., 19 de set. de 2021 às 20:01, Daniel <daniel@puggsy.net> escreveu: >> >> Hi >> >> I am wondering is there a way to make my script more efficient so it >> will actually render? (I can get it to render but must do it in <10cm >> segments & piece them together in blender) >> >> For some reason a 10cm segment will be done in about half an hour but if >> I try to do the whole thing the computing machine will run out of RAM or >> else seemingly never complete - I've had it run for 12+ hours no >> success. Am running openscad 2021.09.19 on Linux with 8GB RAM >> >> -Daniel >> >> _______________________________________________ >> 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
SP
Sanjeev Prabhakar
Tue, Sep 21, 2021 5:00 PM

Hi Daniel,

I wrote following code

include<dotSCAD/src/bezier_curve.scad>
include<dotSCAD/src/hull_polyline3d.scad>

//quaternion rotation function
function q(vector=[1,0,0],point=[0,5,0],theta=0)=
[
let(
v=vector/norm(vector),
p=[cos(theta/2),vsin(theta/2)],
p1=[p.x,-p.y],
q=[0,point],
pq=[p.x
q.x-p.yq.y,p.xq.y+p.yq.x+cross(p.y,q.y)],
pqp1=[pq.x
p1.x-pq.yp1.y,pq.xp1.y+pq.y*p1.x+cross(pq.y,p1.y)],
transformation=pqp1.y
)each
transformation
];

path=[[40,0,0],[60,0,50],[20,0,100],[20,0,180]];

path1=bezier_curve(.05,path);

path2=[for(i=[0:len(path1)-1])
q([0,0,1],path1[i],i/(len(path1)-1)*180)];

translate([0,0,2])
for(i=[0:20:360])rotate([0,0,i])
{
hull_polyline3d(path2,4,$fn=4);

mirror([0,1,0])
hull_polyline3d(path2,4,$fn=4);
}

linear_extrude(2)
difference(){
circle(r=41.5);
circle(r=30);
}

it works quite fast.
it uses dotscad library 2 files

regards
Sanjeev

On Mon, 20 Sept 2021 at 00:31, Daniel daniel@puggsy.net wrote:

Hi

I am wondering is there a way to make my script more efficient so it
will actually render? (I can get it to render but must do it in <10cm
segments & piece them together in blender)

For some reason a 10cm segment will be done in about half an hour but if
I try to do the whole thing the computing machine will run out of RAM or
else seemingly never complete - I've had it run for 12+ hours no
success. Am running openscad 2021.09.19 on Linux with 8GB RAM

-Daniel


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

Hi Daniel, I wrote following code include<dotSCAD/src/bezier_curve.scad> include<dotSCAD/src/hull_polyline3d.scad> //quaternion rotation function function q(vector=[1,0,0],point=[0,5,0],theta=0)= [ let( v=vector/norm(vector), p=[cos(theta/2),v*sin(theta/2)], p1=[p.x,-p.y], q=[0,point], pq=[p.x*q.x-p.y*q.y,p.x*q.y+p.y*q.x+cross(p.y,q.y)], pqp1=[pq.x*p1.x-pq.y*p1.y,pq.x*p1.y+pq.y*p1.x+cross(pq.y,p1.y)], transformation=pqp1.y )each transformation ]; path=[[40,0,0],[60,0,50],[20,0,100],[20,0,180]]; path1=bezier_curve(.05,path); path2=[for(i=[0:len(path1)-1]) q([0,0,1],path1[i],i/(len(path1)-1)*180)]; translate([0,0,2]) for(i=[0:20:360])rotate([0,0,i]) { hull_polyline3d(path2,4,$fn=4); mirror([0,1,0]) hull_polyline3d(path2,4,$fn=4); } linear_extrude(2) difference(){ circle(r=41.5); circle(r=30); } it works quite fast. it uses dotscad library 2 files regards Sanjeev On Mon, 20 Sept 2021 at 00:31, Daniel <daniel@puggsy.net> wrote: > Hi > > I am wondering is there a way to make my script more efficient so it > will actually render? (I can get it to render but must do it in <10cm > segments & piece them together in blender) > > For some reason a 10cm segment will be done in about half an hour but if > I try to do the whole thing the computing machine will run out of RAM or > else seemingly never complete - I've had it run for 12+ hours no > success. Am running openscad 2021.09.19 on Linux with 8GB RAM > > -Daniel > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >