discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

Animations and memory use

J
jon
Thu, Mar 2, 2023 12:48 PM

While I understand the flexibility that the $time variable allows
(varying the model generated over time), in my case ALL I am doing is a
walk through my model; it only needs to be calculated once. So, it would
be helpful if there was a way to say "keep the old model that is in the
cache and just re-display it on the screen". Perhaps another global
variable?  Evaluating the code to see how the $time variable is used
probably is infeasible.

Maybe my kind of Animation is different, or a sub-set of the
full-featured Animation.

Animations continue to be very difficult for me to use.  I Kill OpenSCAD
using the Task Manager over and over again, because it is unresponsive,
and because I have no idea what it is doing. Recalculating the model
(unnecessarily)?  Are Animations enabled or disabled?  It is easier to
kill OpenSCAD than to use the controls that are available.

I was told to use a batch file and the command line.  That involved me
creating 200 lines of custom code to get the invocations right.  Not
impossible, but it is so much easier to allow OpenSCAD to generate these
scenarios.  Except that it isn't easier.

Am I a special case (4-5 minute F5 times)?  Quite likely.

Jon

On 3/2/2023 3:56 AM, nop head wrote:

Yes it would be great if OpenSCAD expired old cache entries. If I work
on a complex model each F5 uses more and more memory until I either
flush the cache or restart and then it takes minutes to recreate the
cached items that are needed. It needs to record hits juring F5 and
flush items that have not been hit after a few F5s.

F5 time isn't taken up by drawing on the screen. It is mainly the time
to execute the statements for me. Once it is drawn I can pan and zoom
it very quickly with the mouse but animation always runs the entire
script each frame.

On Thu, 2 Mar 2023 at 08:44, Rogier Wolff R.E.Wolff@bitwizard.nl wrote:

 On Wed, Mar 01, 2023 at 06:18:04PM +0000, nop head wrote:

Maybe if the model doesn't change, only the camera angle, then a

 render of

the whole scene would be calculated slowly and then cached, so

 after the

first frame it would be fast.

 I get it that caching is good. But a cache usually expires those
 cached objects after they haven't been used for a while. I'd say that
 you need to start expiring objects from the cache once you hit about
 half the memory of the machine. Complaints about 32Gb would not
 be coming in if that machine had 64Gb of memory.

 Sidenote: e2fsck would "cache" some info about inodes. It did that
 wrong, resulting in a quadratic algorithm that would also run out of
 memory. It resulted in "extrapolations based on linear progress" of a
 month runtime when it was a day in. I decided it would be faster to
 investigate and fix the problem than to wait for it to finish. I was
 correct. My fix eventually got included. Runtime reduced to a couple
 of hours with my fix.

However a render with 10000 objects might take longer than the

 universe

will last.

 What I don't understand is that openscad uses my graphiscs card for
 rendering, right?

 My graphics card is capable of doing on the order of 1 billion
 triangles
 per second. so with 10000 objects, maybe 100000 triangles, it should
 be capable of on the order of 1000 frames per second.

 It is not optimally coded can be used to explain away one order of
 magnitude, but not five.

         Roger.

 -- 
 ** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/
 <https://www.BitWizard.nl/> ** +31-15-2049110 **
 **    Delftechpark 11 2628 XJ  Delft, 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.
 _______________________________________________
 OpenSCAD mailing list
 To unsubscribe send an email to discuss-leave@lists.openscad.org

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

While I understand the flexibility that the $time variable allows (varying the model generated over time), in my case ALL I am doing is a walk through my model; it only needs to be calculated once. So, it would be helpful if there was a way to say "keep the old model that is in the cache and just re-display it on the screen". Perhaps another global variable?  Evaluating the code to see how the $time variable is used probably is infeasible. Maybe my kind of Animation is different, or a sub-set of the full-featured Animation. Animations continue to be very difficult for me to use.  I Kill OpenSCAD using the Task Manager over and over again, because it is unresponsive, and because I have no idea what it is doing. Recalculating the model (unnecessarily)?  Are Animations enabled or disabled?  It is easier to kill OpenSCAD than to use the controls that are available. I was told to use a batch file and the command line.  That involved me creating 200 lines of custom code to get the invocations right.  Not impossible, but it is so much easier to allow OpenSCAD to generate these scenarios.  Except that it isn't easier. Am I a special case (4-5 minute F5 times)?  Quite likely. Jon On 3/2/2023 3:56 AM, nop head wrote: > Yes it would be great if OpenSCAD expired old cache entries. If I work > on a complex model each F5 uses more and more memory until I either > flush the cache or restart and then it takes minutes to recreate the > cached items that are needed. It needs to record hits juring F5 and > flush items that have not been hit after a few F5s. > > F5 time isn't taken up by drawing on the screen. It is mainly the time > to execute the statements for me. Once it is drawn I can pan and zoom > it very quickly with the mouse but animation always runs the entire > script each frame. > > On Thu, 2 Mar 2023 at 08:44, Rogier Wolff <R.E.Wolff@bitwizard.nl> wrote: > > On Wed, Mar 01, 2023 at 06:18:04PM +0000, nop head wrote: > > Maybe if the model doesn't change, only the camera angle, then a > render of > > the whole scene would be calculated slowly and then cached, so > after the > > first frame it would be fast. > > I get it that caching is good. But a cache usually expires those > cached objects after they haven't been used for a while. I'd say that > you need to start expiring objects from the cache once you hit about > half the memory of the machine. Complaints about 32Gb would not > be coming in if that machine had 64Gb of memory. > > Sidenote: e2fsck would "cache" some info about inodes. It did that > wrong, resulting in a quadratic algorithm that would also run out of > memory. It resulted in "extrapolations based on linear progress" of a > month runtime when it was a day in. I decided it would be faster to > investigate and fix the problem than to wait for it to finish. I was > correct. My fix eventually got included. Runtime reduced to a couple > of hours with my fix. > > > However a render with 10000 objects might take longer than the > universe > > will last. > > What I don't understand is that openscad uses my graphiscs card for > rendering, right? > > My graphics card is capable of doing on the order of 1 billion > triangles > per second. so with 10000 objects, maybe 100000 triangles, it should > be capable of on the order of 1000 frames per second. > > It is not optimally coded can be used to explain away one order of > magnitude, but not five. > >         Roger. > > -- > ** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ > <https://www.BitWizard.nl/> ** +31-15-2049110 ** > **    Delftechpark 11 2628 XJ  Delft, 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. > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org > > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email todiscuss-leave@lists.openscad.org
GB
Glenn Butcher
Thu, Mar 2, 2023 2:03 PM

Here's a thought: Do an export of your model to a file, then write a
separate animation script that just imports the model for each
iteration.  This assumes your filesystem is faster at delivering the
mesh than your cpu is at creating it from scratch for each frame...

On 3/2/2023 5:48 AM, jon wrote:

While I understand the flexibility that the $time variable allows
(varying the model generated over time), in my case ALL I am doing is
a walk through my model; it only needs to be calculated once.  So, it
would be helpful if there was a way to say "keep the old model that is
in the cache and just re-display it on the screen".  Perhaps another
global variable?  Evaluating the code to see how the $time variable is
used probably is infeasible.

Maybe my kind of Animation is different, or a sub-set of the
full-featured Animation.

Animations continue to be very difficult for me to use.  I Kill
OpenSCAD using the Task Manager over and over again, because it is
unresponsive, and because I have no idea what it is doing.
Recalculating the model (unnecessarily)?  Are Animations enabled or
disabled?  It is easier to kill OpenSCAD than to use the controls that
are available.

I was told to use a batch file and the command line.  That involved me
creating 200 lines of custom code to get the invocations right.  Not
impossible, but it is so much easier to allow OpenSCAD to generate
these scenarios.  Except that it isn't easier.

Am I a special case (4-5 minute F5 times)?  Quite likely.

Jon

.org

Here's a thought: Do an export of your model to a file, then write a separate animation script that just imports the model for each iteration.  This assumes your filesystem is faster at delivering the mesh than your cpu is at creating it from scratch for each frame... On 3/2/2023 5:48 AM, jon wrote: > > While I understand the flexibility that the $time variable allows > (varying the model generated over time), in my case ALL I am doing is > a walk through my model; it only needs to be calculated once.  So, it > would be helpful if there was a way to say "keep the old model that is > in the cache and just re-display it on the screen".  Perhaps another > global variable?  Evaluating the code to see how the $time variable is > used probably is infeasible. > > Maybe my kind of Animation is different, or a sub-set of the > full-featured Animation. > > Animations continue to be very difficult for me to use.  I Kill > OpenSCAD using the Task Manager over and over again, because it is > unresponsive, and because I have no idea what it is doing. > Recalculating the model (unnecessarily)?  Are Animations enabled or > disabled?  It is easier to kill OpenSCAD than to use the controls that > are available. > > I was told to use a batch file and the command line.  That involved me > creating 200 lines of custom code to get the invocations right.  Not > impossible, but it is so much easier to allow OpenSCAD to generate > these scenarios.  Except that it isn't easier. > > Am I a special case (4-5 minute F5 times)?  Quite likely. > > Jon > > .org
J
jon
Thu, Mar 2, 2023 5:11 PM

Glenn:

Good idea, except that I have not yet succeeded in an F6 because
OpenSCAD blows up at 32 GB  of memory used.  I am working to see how
this might be improved, but I'm not there yet.

Jon

On 3/2/2023 9:03 AM, Glenn Butcher wrote:

Here's a thought: Do an export of your model to a file, then write a
separate animation script that just imports the model for each
iteration.  This assumes your filesystem is faster at delivering the
mesh than your cpu is at creating it from scratch for each frame...

On 3/2/2023 5:48 AM, jon wrote:

While I understand the flexibility that the $time variable allows
(varying the model generated over time), in my case ALL I am doing is
a walk through my model; it only needs to be calculated once.  So, it
would be helpful if there was a way to say "keep the old model that
is in the cache and just re-display it on the screen".  Perhaps
another global variable?  Evaluating the code to see how the $time
variable is used probably is infeasible.

Maybe my kind of Animation is different, or a sub-set of the
full-featured Animation.

Animations continue to be very difficult for me to use.  I Kill
OpenSCAD using the Task Manager over and over again, because it is
unresponsive, and because I have no idea what it is doing.
Recalculating the model (unnecessarily)?  Are Animations enabled or
disabled?  It is easier to kill OpenSCAD than to use the controls
that are available.

I was told to use a batch file and the command line.  That involved
me creating 200 lines of custom code to get the invocations right. 
Not impossible, but it is so much easier to allow OpenSCAD to
generate these scenarios.  Except that it isn't easier.

Am I a special case (4-5 minute F5 times)?  Quite likely.

Jon

.org


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

Glenn: Good idea, except that I have not yet succeeded in an F6 because OpenSCAD blows up at 32 GB  of memory used.  I am working to see how this might be improved, but I'm not there yet. Jon On 3/2/2023 9:03 AM, Glenn Butcher wrote: > Here's a thought: Do an export of your model to a file, then write a > separate animation script that just imports the model for each > iteration.  This assumes your filesystem is faster at delivering the > mesh than your cpu is at creating it from scratch for each frame... > > On 3/2/2023 5:48 AM, jon wrote: >> >> While I understand the flexibility that the $time variable allows >> (varying the model generated over time), in my case ALL I am doing is >> a walk through my model; it only needs to be calculated once.  So, it >> would be helpful if there was a way to say "keep the old model that >> is in the cache and just re-display it on the screen".  Perhaps >> another global variable?  Evaluating the code to see how the $time >> variable is used probably is infeasible. >> >> Maybe my kind of Animation is different, or a sub-set of the >> full-featured Animation. >> >> Animations continue to be very difficult for me to use.  I Kill >> OpenSCAD using the Task Manager over and over again, because it is >> unresponsive, and because I have no idea what it is doing. >> Recalculating the model (unnecessarily)?  Are Animations enabled or >> disabled?  It is easier to kill OpenSCAD than to use the controls >> that are available. >> >> I was told to use a batch file and the command line.  That involved >> me creating 200 lines of custom code to get the invocations right.  >> Not impossible, but it is so much easier to allow OpenSCAD to >> generate these scenarios.  Except that it isn't easier. >> >> Am I a special case (4-5 minute F5 times)?  Quite likely. >> >> Jon >> >> .org > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
GB
Glenn Butcher
Thu, Mar 2, 2023 5:24 PM

Jon,

Same thinking, applied to the model.  Divide it into major assemblies,
render each to a file, then import them back in to move into place.  I'm
doing this with my locomotive; in fact, I'm printing such an integration
right now, the boiler with the smokestack, steam and sand domes modeled
separately and integrated as .stl meshes.

Now, I did the integration with a separate program to prove the concept
of using a simple program like MeshMixer, Meshlab, or 3DBuilder to do
simple parts placement to make models, a lower bar of entry for folk
intimidated by full-out CAD. You might find using such easier than doing
it in OpenSCAD, although I've done it there too.  For printing, just
need to make sure each connecting part-pair has a solid interface that
the slicer will make a continuous part.  For animation, probably not as
important.

Yeah, complex models start to bog down the functional nature of the
OpenSCAD script language.  Me, what I think would be helpful would be to
allow the loading of a mesh from either a render() or import() to a
variable, then make copies of that variable and place them later in the
script.  Modeling the locomotive tender right now, has a gazillion
round-head rivets, each has to be recreated during each render...

Glenn

On 3/2/23 10:11, jon wrote:

Glenn:

Good idea, except that I have not yet succeeded in an F6 because
OpenSCAD blows up at 32 GB  of memory used.  I am working to see how
this might be improved, but I'm not there yet.

Jon

On 3/2/2023 9:03 AM, Glenn Butcher wrote:

Here's a thought: Do an export of your model to a file, then write a
separate animation script that just imports the model for each
iteration.  This assumes your filesystem is faster at delivering the
mesh than your cpu is at creating it from scratch for each frame...

On 3/2/2023 5:48 AM, jon wrote:

While I understand the flexibility that the $time variable allows
(varying the model generated over time), in my case ALL I am doing
is a walk through my model; it only needs to be calculated once. 
So, it would be helpful if there was a way to say "keep the old
model that is in the cache and just re-display it on the screen". 
Perhaps another global variable?  Evaluating the code to see how the
$time variable is used probably is infeasible.

Maybe my kind of Animation is different, or a sub-set of the
full-featured Animation.

Animations continue to be very difficult for me to use.  I Kill
OpenSCAD using the Task Manager over and over again, because it is
unresponsive, and because I have no idea what it is doing.
Recalculating the model (unnecessarily)?  Are Animations enabled or
disabled?  It is easier to kill OpenSCAD than to use the controls
that are available.

I was told to use a batch file and the command line.  That involved
me creating 200 lines of custom code to get the invocations right. 
Not impossible, but it is so much easier to allow OpenSCAD to
generate these scenarios.  Except that it isn't easier.

Am I a special case (4-5 minute F5 times)?  Quite likely.

Jon

.org


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

Jon, Same thinking, applied to the model.  Divide it into major assemblies, render each to a file, then import them back in to move into place.  I'm doing this with my locomotive; in fact, I'm printing such an integration right now, the boiler with the smokestack, steam and sand domes modeled separately and integrated as .stl meshes. Now, I did the integration with a separate program to prove the concept of using a simple program like MeshMixer, Meshlab, or 3DBuilder to do simple parts placement to make models, a lower bar of entry for folk intimidated by full-out CAD. You might find using such easier than doing it in OpenSCAD, although I've done it there too.  For printing, just need to make sure each connecting part-pair has a solid interface that the slicer will make a continuous part.  For animation, probably not as important. Yeah, complex models start to bog down the functional nature of the OpenSCAD script language.  Me, what I think would be helpful would be to allow the loading of a mesh from either a render() or import() to a variable, then make copies of that variable and place them later in the script.  Modeling the locomotive tender right now, has a gazillion round-head rivets, each has to be recreated during each render... Glenn On 3/2/23 10:11, jon wrote: > Glenn: > > Good idea, except that I have not yet succeeded in an F6 because > OpenSCAD blows up at 32 GB  of memory used.  I am working to see how > this might be improved, but I'm not there yet. > > Jon > > On 3/2/2023 9:03 AM, Glenn Butcher wrote: >> Here's a thought: Do an export of your model to a file, then write a >> separate animation script that just imports the model for each >> iteration.  This assumes your filesystem is faster at delivering the >> mesh than your cpu is at creating it from scratch for each frame... >> >> On 3/2/2023 5:48 AM, jon wrote: >>> >>> While I understand the flexibility that the $time variable allows >>> (varying the model generated over time), in my case ALL I am doing >>> is a walk through my model; it only needs to be calculated once.  >>> So, it would be helpful if there was a way to say "keep the old >>> model that is in the cache and just re-display it on the screen".  >>> Perhaps another global variable?  Evaluating the code to see how the >>> $time variable is used probably is infeasible. >>> >>> Maybe my kind of Animation is different, or a sub-set of the >>> full-featured Animation. >>> >>> Animations continue to be very difficult for me to use.  I Kill >>> OpenSCAD using the Task Manager over and over again, because it is >>> unresponsive, and because I have no idea what it is doing. >>> Recalculating the model (unnecessarily)?  Are Animations enabled or >>> disabled?  It is easier to kill OpenSCAD than to use the controls >>> that are available. >>> >>> I was told to use a batch file and the command line.  That involved >>> me creating 200 lines of custom code to get the invocations right.  >>> Not impossible, but it is so much easier to allow OpenSCAD to >>> generate these scenarios.  Except that it isn't easier. >>> >>> Am I a special case (4-5 minute F5 times)?  Quite likely. >>> >>> Jon >>> >>> .org >> _______________________________________________ >> OpenSCAD mailing list >> To unsubscribe send an email to discuss-leave@lists.openscad.org
J
jon
Thu, Mar 2, 2023 5:30 PM

I wonder how Nop Head manages to make his complex printer models.

"what I think would be helpful would be to allow the loading of a mesh
from either a render() or import() to a variable, then make copies of
that variable and place them later in the script."

Yes, please.  This.

On 3/2/2023 12:24 PM, Glenn Butcher wrote:

Jon,

Same thinking, applied to the model.  Divide it into major assemblies,
render each to a file, then import them back in to move into place. 
I'm doing this with my locomotive; in fact, I'm printing such an
integration right now, the boiler with the smokestack, steam and sand
domes modeled separately and integrated as .stl meshes.

Now, I did the integration with a separate program to prove the
concept of using a simple program like MeshMixer, Meshlab, or
3DBuilder to do simple parts placement to make models, a lower bar of
entry for folk intimidated by full-out CAD. You might find using such
easier than doing it in OpenSCAD, although I've done it there too. 
For printing, just need to make sure each connecting part-pair has a
solid interface that the slicer will make a continuous part.  For
animation, probably not as important.

Yeah, complex models start to bog down the functional nature of the
OpenSCAD script language.  Me, what I think would be helpful would be
to allow the loading of a mesh from either a render() or import() to a
variable, then make copies of that variable and place them later in
the script.  Modeling the locomotive tender right now, has a gazillion
round-head rivets, each has to be recreated during each render...

Glenn

On 3/2/23 10:11, jon wrote:

Glenn:

Good idea, except that I have not yet succeeded in an F6 because
OpenSCAD blows up at 32 GB  of memory used.  I am working to see how
this might be improved, but I'm not there yet.

Jon

On 3/2/2023 9:03 AM, Glenn Butcher wrote:

Here's a thought: Do an export of your model to a file, then write a
separate animation script that just imports the model for each
iteration.  This assumes your filesystem is faster at delivering the
mesh than your cpu is at creating it from scratch for each frame...

On 3/2/2023 5:48 AM, jon wrote:

While I understand the flexibility that the $time variable allows
(varying the model generated over time), in my case ALL I am doing
is a walk through my model; it only needs to be calculated once. 
So, it would be helpful if there was a way to say "keep the old
model that is in the cache and just re-display it on the screen". 
Perhaps another global variable?  Evaluating the code to see how
the $time variable is used probably is infeasible.

Maybe my kind of Animation is different, or a sub-set of the
full-featured Animation.

Animations continue to be very difficult for me to use.  I Kill
OpenSCAD using the Task Manager over and over again, because it is
unresponsive, and because I have no idea what it is doing.
Recalculating the model (unnecessarily)?  Are Animations enabled or
disabled?  It is easier to kill OpenSCAD than to use the controls
that are available.

I was told to use a batch file and the command line.  That involved
me creating 200 lines of custom code to get the invocations right. 
Not impossible, but it is so much easier to allow OpenSCAD to
generate these scenarios.  Except that it isn't easier.

Am I a special case (4-5 minute F5 times)?  Quite likely.

Jon

.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

I wonder how Nop Head manages to make his complex printer models. "what I think would be helpful would be to allow the loading of a mesh from either a render() or import() to a variable, then make copies of that variable and place them later in the script." Yes, please.  This. On 3/2/2023 12:24 PM, Glenn Butcher wrote: > Jon, > > Same thinking, applied to the model.  Divide it into major assemblies, > render each to a file, then import them back in to move into place.  > I'm doing this with my locomotive; in fact, I'm printing such an > integration right now, the boiler with the smokestack, steam and sand > domes modeled separately and integrated as .stl meshes. > > Now, I did the integration with a separate program to prove the > concept of using a simple program like MeshMixer, Meshlab, or > 3DBuilder to do simple parts placement to make models, a lower bar of > entry for folk intimidated by full-out CAD. You might find using such > easier than doing it in OpenSCAD, although I've done it there too.  > For printing, just need to make sure each connecting part-pair has a > solid interface that the slicer will make a continuous part.  For > animation, probably not as important. > > Yeah, complex models start to bog down the functional nature of the > OpenSCAD script language.  Me, what I think would be helpful would be > to allow the loading of a mesh from either a render() or import() to a > variable, then make copies of that variable and place them later in > the script.  Modeling the locomotive tender right now, has a gazillion > round-head rivets, each has to be recreated during each render... > > Glenn > > On 3/2/23 10:11, jon wrote: >> Glenn: >> >> Good idea, except that I have not yet succeeded in an F6 because >> OpenSCAD blows up at 32 GB  of memory used.  I am working to see how >> this might be improved, but I'm not there yet. >> >> Jon >> >> On 3/2/2023 9:03 AM, Glenn Butcher wrote: >>> Here's a thought: Do an export of your model to a file, then write a >>> separate animation script that just imports the model for each >>> iteration.  This assumes your filesystem is faster at delivering the >>> mesh than your cpu is at creating it from scratch for each frame... >>> >>> On 3/2/2023 5:48 AM, jon wrote: >>>> >>>> While I understand the flexibility that the $time variable allows >>>> (varying the model generated over time), in my case ALL I am doing >>>> is a walk through my model; it only needs to be calculated once.  >>>> So, it would be helpful if there was a way to say "keep the old >>>> model that is in the cache and just re-display it on the screen".  >>>> Perhaps another global variable?  Evaluating the code to see how >>>> the $time variable is used probably is infeasible. >>>> >>>> Maybe my kind of Animation is different, or a sub-set of the >>>> full-featured Animation. >>>> >>>> Animations continue to be very difficult for me to use.  I Kill >>>> OpenSCAD using the Task Manager over and over again, because it is >>>> unresponsive, and because I have no idea what it is doing. >>>> Recalculating the model (unnecessarily)?  Are Animations enabled or >>>> disabled?  It is easier to kill OpenSCAD than to use the controls >>>> that are available. >>>> >>>> I was told to use a batch file and the command line.  That involved >>>> me creating 200 lines of custom code to get the invocations right.  >>>> Not impossible, but it is so much easier to allow OpenSCAD to >>>> generate these scenarios.  Except that it isn't easier. >>>> >>>> Am I a special case (4-5 minute F5 times)?  Quite likely. >>>> >>>> Jon >>>> >>>> .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
AM
Adrian Mariano
Thu, Mar 2, 2023 9:17 PM

jon, you should just write a script to manage invoking OpenSCAD 200 times
or whatever, not write 200 lines of code.  It should be a simple script to
write.

On Thu, Mar 2, 2023 at 7:49 AM jon jon@jonbondy.com wrote:

While I understand the flexibility that the $time variable allows (varying
the model generated over time), in my case ALL I am doing is a walk through
my model; it only needs to be calculated once.  So, it would be helpful if
there was a way to say "keep the old model that is in the cache and just
re-display it on the screen".  Perhaps another global variable?  Evaluating
the code to see how the $time variable is used probably is infeasible.

Maybe my kind of Animation is different, or a sub-set of the full-featured
Animation.

Animations continue to be very difficult for me to use.  I Kill OpenSCAD
using the Task Manager over and over again, because it is unresponsive, and
because I have no idea what it is doing.  Recalculating the model
(unnecessarily)?  Are Animations enabled or disabled?  It is easier to kill
OpenSCAD than to use the controls that are available.

I was told to use a batch file and the command line.  That involved me
creating 200 lines of custom code to get the invocations right.  Not
impossible, but it is so much easier to allow OpenSCAD to generate these
scenarios.  Except that it isn't easier.

Am I a special case (4-5 minute F5 times)?  Quite likely.

Jon

On 3/2/2023 3:56 AM, nop head wrote:

Yes it would be great if OpenSCAD expired old cache entries. If I work on
a complex model each F5 uses more and more memory until I either flush the
cache or restart and then it takes minutes to recreate the cached items
that are needed. It needs to record hits juring F5 and flush items that
have not been hit after a few F5s.

F5 time isn't taken up by drawing on the screen. It is mainly the time to
execute the statements for me. Once it is drawn I can pan and zoom it very
quickly with the mouse but animation always runs the entire script each
frame.

On Thu, 2 Mar 2023 at 08:44, Rogier Wolff R.E.Wolff@bitwizard.nl wrote:

On Wed, Mar 01, 2023 at 06:18:04PM +0000, nop head wrote:

Maybe if the model doesn't change, only the camera angle, then a render

of

the whole scene would be calculated slowly and then cached, so after the
first frame it would be fast.

I get it that caching is good. But a cache usually expires those
cached objects after they haven't been used for a while. I'd say that
you need to start expiring objects from the cache once you hit about
half the memory of the machine. Complaints about 32Gb would not
be coming in if that machine had 64Gb of memory.

Sidenote: e2fsck would "cache" some info about inodes. It did that
wrong, resulting in a quadratic algorithm that would also run out of
memory. It resulted in "extrapolations based on linear progress" of a
month runtime when it was a day in. I decided it would be faster to
investigate and fix the problem than to wait for it to finish. I was
correct. My fix eventually got included. Runtime reduced to a couple
of hours with my fix.

However a render with 10000 objects might take longer than the universe
will last.

What I don't understand is that openscad uses my graphiscs card for
rendering, right?

My graphics card is capable of doing on the order of 1 billion triangles
per second. so with 10000 objects, maybe 100000 triangles, it should
be capable of on the order of 1000 frames per second.

It is not optimally coded can be used to explain away one order of
magnitude, but not five.

     Roger.

--
** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110
**
**    Delftechpark 11 2628 XJ  Delft, 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.


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


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

jon, you should just write a script to manage invoking OpenSCAD 200 times or whatever, not write 200 lines of code. It should be a simple script to write. On Thu, Mar 2, 2023 at 7:49 AM jon <jon@jonbondy.com> wrote: > While I understand the flexibility that the $time variable allows (varying > the model generated over time), in my case ALL I am doing is a walk through > my model; it only needs to be calculated once. So, it would be helpful if > there was a way to say "keep the old model that is in the cache and just > re-display it on the screen". Perhaps another global variable? Evaluating > the code to see how the $time variable is used probably is infeasible. > > Maybe my kind of Animation is different, or a sub-set of the full-featured > Animation. > > Animations continue to be very difficult for me to use. I Kill OpenSCAD > using the Task Manager over and over again, because it is unresponsive, and > because I have no idea what it is doing. Recalculating the model > (unnecessarily)? Are Animations enabled or disabled? It is easier to kill > OpenSCAD than to use the controls that are available. > > I was told to use a batch file and the command line. That involved me > creating 200 lines of custom code to get the invocations right. Not > impossible, but it is so much easier to allow OpenSCAD to generate these > scenarios. Except that it isn't easier. > > Am I a special case (4-5 minute F5 times)? Quite likely. > > Jon > > > On 3/2/2023 3:56 AM, nop head wrote: > > Yes it would be great if OpenSCAD expired old cache entries. If I work on > a complex model each F5 uses more and more memory until I either flush the > cache or restart and then it takes minutes to recreate the cached items > that are needed. It needs to record hits juring F5 and flush items that > have not been hit after a few F5s. > > F5 time isn't taken up by drawing on the screen. It is mainly the time to > execute the statements for me. Once it is drawn I can pan and zoom it very > quickly with the mouse but animation always runs the entire script each > frame. > > On Thu, 2 Mar 2023 at 08:44, Rogier Wolff <R.E.Wolff@bitwizard.nl> wrote: > >> On Wed, Mar 01, 2023 at 06:18:04PM +0000, nop head wrote: >> > Maybe if the model doesn't change, only the camera angle, then a render >> of >> > the whole scene would be calculated slowly and then cached, so after the >> > first frame it would be fast. >> >> I get it that caching is good. But a cache usually expires those >> cached objects after they haven't been used for a while. I'd say that >> you need to start expiring objects from the cache once you hit about >> half the memory of the machine. Complaints about 32Gb would not >> be coming in if that machine had 64Gb of memory. >> >> Sidenote: e2fsck would "cache" some info about inodes. It did that >> wrong, resulting in a quadratic algorithm that would also run out of >> memory. It resulted in "extrapolations based on linear progress" of a >> month runtime when it was a day in. I decided it would be faster to >> investigate and fix the problem than to wait for it to finish. I was >> correct. My fix eventually got included. Runtime reduced to a couple >> of hours with my fix. >> >> > However a render with 10000 objects might take longer than the universe >> > will last. >> >> What I don't understand is that openscad uses my graphiscs card for >> rendering, right? >> >> My graphics card is capable of doing on the order of 1 billion triangles >> per second. so with 10000 objects, maybe 100000 triangles, it should >> be capable of on the order of 1000 frames per second. >> >> It is not optimally coded can be used to explain away one order of >> magnitude, but not five. >> >> Roger. >> >> -- >> ** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110 >> ** >> ** Delftechpark 11 2628 XJ Delft, 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. >> _______________________________________________ >> 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 > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
AM
Adrian Mariano
Thu, Mar 2, 2023 9:18 PM

Glenn, he has 10,000 spheres.  You are assuming that he can render, and
hence save models.  He can't do that.  The model is much too big.  There is
no way to save anything except images.

On Thu, Mar 2, 2023 at 12:26 PM Glenn Butcher glenn.butcher@gmail.com
wrote:

Jon,

Same thinking, applied to the model.  Divide it into major assemblies,
render each to a file, then import them back in to move into place.  I'm
doing this with my locomotive; in fact, I'm printing such an integration
right now, the boiler with the smokestack, steam and sand domes modeled
separately and integrated as .stl meshes.

Now, I did the integration with a separate program to prove the concept
of using a simple program like MeshMixer, Meshlab, or 3DBuilder to do
simple parts placement to make models, a lower bar of entry for folk
intimidated by full-out CAD. You might find using such easier than doing
it in OpenSCAD, although I've done it there too.  For printing, just
need to make sure each connecting part-pair has a solid interface that
the slicer will make a continuous part.  For animation, probably not as
important.

Yeah, complex models start to bog down the functional nature of the
OpenSCAD script language.  Me, what I think would be helpful would be to
allow the loading of a mesh from either a render() or import() to a
variable, then make copies of that variable and place them later in the
script.  Modeling the locomotive tender right now, has a gazillion
round-head rivets, each has to be recreated during each render...

Glenn

On 3/2/23 10:11, jon wrote:

Glenn:

Good idea, except that I have not yet succeeded in an F6 because
OpenSCAD blows up at 32 GB  of memory used.  I am working to see how
this might be improved, but I'm not there yet.

Jon

On 3/2/2023 9:03 AM, Glenn Butcher wrote:

Here's a thought: Do an export of your model to a file, then write a
separate animation script that just imports the model for each
iteration.  This assumes your filesystem is faster at delivering the
mesh than your cpu is at creating it from scratch for each frame...

On 3/2/2023 5:48 AM, jon wrote:

While I understand the flexibility that the $time variable allows
(varying the model generated over time), in my case ALL I am doing
is a walk through my model; it only needs to be calculated once.
So, it would be helpful if there was a way to say "keep the old
model that is in the cache and just re-display it on the screen".
Perhaps another global variable?  Evaluating the code to see how the
$time variable is used probably is infeasible.

Maybe my kind of Animation is different, or a sub-set of the
full-featured Animation.

Animations continue to be very difficult for me to use.  I Kill
OpenSCAD using the Task Manager over and over again, because it is
unresponsive, and because I have no idea what it is doing.
Recalculating the model (unnecessarily)?  Are Animations enabled or
disabled?  It is easier to kill OpenSCAD than to use the controls
that are available.

I was told to use a batch file and the command line.  That involved
me creating 200 lines of custom code to get the invocations right.
Not impossible, but it is so much easier to allow OpenSCAD to
generate these scenarios.  Except that it isn't easier.

Am I a special case (4-5 minute F5 times)?  Quite likely.

Jon

.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

Glenn, he has 10,000 spheres. You are assuming that he can render, and hence save models. He can't do that. The model is much too big. There is no way to save anything except images. On Thu, Mar 2, 2023 at 12:26 PM Glenn Butcher <glenn.butcher@gmail.com> wrote: > Jon, > > Same thinking, applied to the model. Divide it into major assemblies, > render each to a file, then import them back in to move into place. I'm > doing this with my locomotive; in fact, I'm printing such an integration > right now, the boiler with the smokestack, steam and sand domes modeled > separately and integrated as .stl meshes. > > Now, I did the integration with a separate program to prove the concept > of using a simple program like MeshMixer, Meshlab, or 3DBuilder to do > simple parts placement to make models, a lower bar of entry for folk > intimidated by full-out CAD. You might find using such easier than doing > it in OpenSCAD, although I've done it there too. For printing, just > need to make sure each connecting part-pair has a solid interface that > the slicer will make a continuous part. For animation, probably not as > important. > > Yeah, complex models start to bog down the functional nature of the > OpenSCAD script language. Me, what I think would be helpful would be to > allow the loading of a mesh from either a render() or import() to a > variable, then make copies of that variable and place them later in the > script. Modeling the locomotive tender right now, has a gazillion > round-head rivets, each has to be recreated during each render... > > Glenn > > On 3/2/23 10:11, jon wrote: > > Glenn: > > > > Good idea, except that I have not yet succeeded in an F6 because > > OpenSCAD blows up at 32 GB of memory used. I am working to see how > > this might be improved, but I'm not there yet. > > > > Jon > > > > On 3/2/2023 9:03 AM, Glenn Butcher wrote: > >> Here's a thought: Do an export of your model to a file, then write a > >> separate animation script that just imports the model for each > >> iteration. This assumes your filesystem is faster at delivering the > >> mesh than your cpu is at creating it from scratch for each frame... > >> > >> On 3/2/2023 5:48 AM, jon wrote: > >>> > >>> While I understand the flexibility that the $time variable allows > >>> (varying the model generated over time), in my case ALL I am doing > >>> is a walk through my model; it only needs to be calculated once. > >>> So, it would be helpful if there was a way to say "keep the old > >>> model that is in the cache and just re-display it on the screen". > >>> Perhaps another global variable? Evaluating the code to see how the > >>> $time variable is used probably is infeasible. > >>> > >>> Maybe my kind of Animation is different, or a sub-set of the > >>> full-featured Animation. > >>> > >>> Animations continue to be very difficult for me to use. I Kill > >>> OpenSCAD using the Task Manager over and over again, because it is > >>> unresponsive, and because I have no idea what it is doing. > >>> Recalculating the model (unnecessarily)? Are Animations enabled or > >>> disabled? It is easier to kill OpenSCAD than to use the controls > >>> that are available. > >>> > >>> I was told to use a batch file and the command line. That involved > >>> me creating 200 lines of custom code to get the invocations right. > >>> Not impossible, but it is so much easier to allow OpenSCAD to > >>> generate these scenarios. Except that it isn't easier. > >>> > >>> Am I a special case (4-5 minute F5 times)? Quite likely. > >>> > >>> Jon > >>> > >>> .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 >
AM
Adrian Mariano
Thu, Mar 2, 2023 9:20 PM

There is a future scheme involving access to geometry data which would
allow this.  But really, for your application what is the practical
difference between creating a module that makes the thing?  That's what
modules are for:  making copies of things and placing them later in a
script.  It is not going to be faster to operate on mesh data as suggested
by the quoted idea.

On Thu, Mar 2, 2023 at 12:31 PM jon jon@jonbondy.com wrote:

I wonder how Nop Head manages to make his complex printer models.

"what I think would be helpful would be to allow the loading of a mesh
from either a render() or import() to a variable, then make copies of
that variable and place them later in the script."

Yes, please.  This.

On 3/2/2023 12:24 PM, Glenn Butcher wrote:

Jon,

Same thinking, applied to the model.  Divide it into major assemblies,
render each to a file, then import them back in to move into place.
I'm doing this with my locomotive; in fact, I'm printing such an
integration right now, the boiler with the smokestack, steam and sand
domes modeled separately and integrated as .stl meshes.

Now, I did the integration with a separate program to prove the
concept of using a simple program like MeshMixer, Meshlab, or
3DBuilder to do simple parts placement to make models, a lower bar of
entry for folk intimidated by full-out CAD. You might find using such
easier than doing it in OpenSCAD, although I've done it there too.
For printing, just need to make sure each connecting part-pair has a
solid interface that the slicer will make a continuous part.  For
animation, probably not as important.

Yeah, complex models start to bog down the functional nature of the
OpenSCAD script language.  Me, what I think would be helpful would be
to allow the loading of a mesh from either a render() or import() to a
variable, then make copies of that variable and place them later in
the script.  Modeling the locomotive tender right now, has a gazillion
round-head rivets, each has to be recreated during each render...

Glenn

On 3/2/23 10:11, jon wrote:

Glenn:

Good idea, except that I have not yet succeeded in an F6 because
OpenSCAD blows up at 32 GB  of memory used.  I am working to see how
this might be improved, but I'm not there yet.

Jon

On 3/2/2023 9:03 AM, Glenn Butcher wrote:

Here's a thought: Do an export of your model to a file, then write a
separate animation script that just imports the model for each
iteration.  This assumes your filesystem is faster at delivering the
mesh than your cpu is at creating it from scratch for each frame...

On 3/2/2023 5:48 AM, jon wrote:

While I understand the flexibility that the $time variable allows
(varying the model generated over time), in my case ALL I am doing
is a walk through my model; it only needs to be calculated once.
So, it would be helpful if there was a way to say "keep the old
model that is in the cache and just re-display it on the screen".
Perhaps another global variable?  Evaluating the code to see how
the $time variable is used probably is infeasible.

Maybe my kind of Animation is different, or a sub-set of the
full-featured Animation.

Animations continue to be very difficult for me to use.  I Kill
OpenSCAD using the Task Manager over and over again, because it is
unresponsive, and because I have no idea what it is doing.
Recalculating the model (unnecessarily)?  Are Animations enabled or
disabled?  It is easier to kill OpenSCAD than to use the controls
that are available.

I was told to use a batch file and the command line.  That involved
me creating 200 lines of custom code to get the invocations right.
Not impossible, but it is so much easier to allow OpenSCAD to
generate these scenarios.  Except that it isn't easier.

Am I a special case (4-5 minute F5 times)?  Quite likely.

Jon

.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


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

There is a future scheme involving access to geometry data which would allow this. But really, for your application what is the practical difference between creating a module that makes the thing? That's what modules are for: making copies of things and placing them later in a script. It is not going to be faster to operate on mesh data as suggested by the quoted idea. On Thu, Mar 2, 2023 at 12:31 PM jon <jon@jonbondy.com> wrote: > I wonder how Nop Head manages to make his complex printer models. > > "what I think would be helpful would be to allow the loading of a mesh > from either a render() or import() to a variable, then make copies of > that variable and place them later in the script." > > Yes, please. This. > > > On 3/2/2023 12:24 PM, Glenn Butcher wrote: > > Jon, > > > > Same thinking, applied to the model. Divide it into major assemblies, > > render each to a file, then import them back in to move into place. > > I'm doing this with my locomotive; in fact, I'm printing such an > > integration right now, the boiler with the smokestack, steam and sand > > domes modeled separately and integrated as .stl meshes. > > > > Now, I did the integration with a separate program to prove the > > concept of using a simple program like MeshMixer, Meshlab, or > > 3DBuilder to do simple parts placement to make models, a lower bar of > > entry for folk intimidated by full-out CAD. You might find using such > > easier than doing it in OpenSCAD, although I've done it there too. > > For printing, just need to make sure each connecting part-pair has a > > solid interface that the slicer will make a continuous part. For > > animation, probably not as important. > > > > Yeah, complex models start to bog down the functional nature of the > > OpenSCAD script language. Me, what I think would be helpful would be > > to allow the loading of a mesh from either a render() or import() to a > > variable, then make copies of that variable and place them later in > > the script. Modeling the locomotive tender right now, has a gazillion > > round-head rivets, each has to be recreated during each render... > > > > Glenn > > > > On 3/2/23 10:11, jon wrote: > >> Glenn: > >> > >> Good idea, except that I have not yet succeeded in an F6 because > >> OpenSCAD blows up at 32 GB of memory used. I am working to see how > >> this might be improved, but I'm not there yet. > >> > >> Jon > >> > >> On 3/2/2023 9:03 AM, Glenn Butcher wrote: > >>> Here's a thought: Do an export of your model to a file, then write a > >>> separate animation script that just imports the model for each > >>> iteration. This assumes your filesystem is faster at delivering the > >>> mesh than your cpu is at creating it from scratch for each frame... > >>> > >>> On 3/2/2023 5:48 AM, jon wrote: > >>>> > >>>> While I understand the flexibility that the $time variable allows > >>>> (varying the model generated over time), in my case ALL I am doing > >>>> is a walk through my model; it only needs to be calculated once. > >>>> So, it would be helpful if there was a way to say "keep the old > >>>> model that is in the cache and just re-display it on the screen". > >>>> Perhaps another global variable? Evaluating the code to see how > >>>> the $time variable is used probably is infeasible. > >>>> > >>>> Maybe my kind of Animation is different, or a sub-set of the > >>>> full-featured Animation. > >>>> > >>>> Animations continue to be very difficult for me to use. I Kill > >>>> OpenSCAD using the Task Manager over and over again, because it is > >>>> unresponsive, and because I have no idea what it is doing. > >>>> Recalculating the model (unnecessarily)? Are Animations enabled or > >>>> disabled? It is easier to kill OpenSCAD than to use the controls > >>>> that are available. > >>>> > >>>> I was told to use a batch file and the command line. That involved > >>>> me creating 200 lines of custom code to get the invocations right. > >>>> Not impossible, but it is so much easier to allow OpenSCAD to > >>>> generate these scenarios. Except that it isn't easier. > >>>> > >>>> Am I a special case (4-5 minute F5 times)? Quite likely. > >>>> > >>>> Jon > >>>> > >>>> .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 > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
NH
nop head
Thu, Mar 2, 2023 9:24 PM

I do as much as possible in 2D and extrude it to 3D and union bits
together because union is free in F5. For example to make a posi panhead
screw I don't subtract the crossed slot. I rotate_extrude the rounded head
with a hole in the middle and then linear extrude a circle with the cross
subtracted to fill it. Then I can place hundreds of screws without any
issue because OPENCSG just has to draw lots of polyhedrons and that is very
fast.

The slow bit for me is the time to execute the script due to the fact it
recalculates all the constant expressions millions of times in a big
project.

On Thu, 2 Mar 2023 at 17:30, jon jon@jonbondy.com wrote:

I wonder how Nop Head manages to make his complex printer models.

"what I think would be helpful would be to allow the loading of a mesh
from either a render() or import() to a variable, then make copies of
that variable and place them later in the script."

Yes, please.  This.

On 3/2/2023 12:24 PM, Glenn Butcher wrote:

Jon,

Same thinking, applied to the model.  Divide it into major assemblies,
render each to a file, then import them back in to move into place.
I'm doing this with my locomotive; in fact, I'm printing such an
integration right now, the boiler with the smokestack, steam and sand
domes modeled separately and integrated as .stl meshes.

Now, I did the integration with a separate program to prove the
concept of using a simple program like MeshMixer, Meshlab, or
3DBuilder to do simple parts placement to make models, a lower bar of
entry for folk intimidated by full-out CAD. You might find using such
easier than doing it in OpenSCAD, although I've done it there too.
For printing, just need to make sure each connecting part-pair has a
solid interface that the slicer will make a continuous part.  For
animation, probably not as important.

Yeah, complex models start to bog down the functional nature of the
OpenSCAD script language.  Me, what I think would be helpful would be
to allow the loading of a mesh from either a render() or import() to a
variable, then make copies of that variable and place them later in
the script.  Modeling the locomotive tender right now, has a gazillion
round-head rivets, each has to be recreated during each render...

Glenn

On 3/2/23 10:11, jon wrote:

Glenn:

Good idea, except that I have not yet succeeded in an F6 because
OpenSCAD blows up at 32 GB  of memory used.  I am working to see how
this might be improved, but I'm not there yet.

Jon

On 3/2/2023 9:03 AM, Glenn Butcher wrote:

Here's a thought: Do an export of your model to a file, then write a
separate animation script that just imports the model for each
iteration.  This assumes your filesystem is faster at delivering the
mesh than your cpu is at creating it from scratch for each frame...

On 3/2/2023 5:48 AM, jon wrote:

While I understand the flexibility that the $time variable allows
(varying the model generated over time), in my case ALL I am doing
is a walk through my model; it only needs to be calculated once.
So, it would be helpful if there was a way to say "keep the old
model that is in the cache and just re-display it on the screen".
Perhaps another global variable?  Evaluating the code to see how
the $time variable is used probably is infeasible.

Maybe my kind of Animation is different, or a sub-set of the
full-featured Animation.

Animations continue to be very difficult for me to use.  I Kill
OpenSCAD using the Task Manager over and over again, because it is
unresponsive, and because I have no idea what it is doing.
Recalculating the model (unnecessarily)?  Are Animations enabled or
disabled?  It is easier to kill OpenSCAD than to use the controls
that are available.

I was told to use a batch file and the command line.  That involved
me creating 200 lines of custom code to get the invocations right.
Not impossible, but it is so much easier to allow OpenSCAD to
generate these scenarios.  Except that it isn't easier.

Am I a special case (4-5 minute F5 times)?  Quite likely.

Jon

.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


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

I do as much as possible in 2D and extrude it to 3D and union bits together because union is free in F5. For example to make a posi panhead screw I don't subtract the crossed slot. I rotate_extrude the rounded head with a hole in the middle and then linear extrude a circle with the cross subtracted to fill it. Then I can place hundreds of screws without any issue because OPENCSG just has to draw lots of polyhedrons and that is very fast. The slow bit for me is the time to execute the script due to the fact it recalculates all the constant expressions millions of times in a big project. On Thu, 2 Mar 2023 at 17:30, jon <jon@jonbondy.com> wrote: > I wonder how Nop Head manages to make his complex printer models. > > "what I think would be helpful would be to allow the loading of a mesh > from either a render() or import() to a variable, then make copies of > that variable and place them later in the script." > > Yes, please. This. > > > On 3/2/2023 12:24 PM, Glenn Butcher wrote: > > Jon, > > > > Same thinking, applied to the model. Divide it into major assemblies, > > render each to a file, then import them back in to move into place. > > I'm doing this with my locomotive; in fact, I'm printing such an > > integration right now, the boiler with the smokestack, steam and sand > > domes modeled separately and integrated as .stl meshes. > > > > Now, I did the integration with a separate program to prove the > > concept of using a simple program like MeshMixer, Meshlab, or > > 3DBuilder to do simple parts placement to make models, a lower bar of > > entry for folk intimidated by full-out CAD. You might find using such > > easier than doing it in OpenSCAD, although I've done it there too. > > For printing, just need to make sure each connecting part-pair has a > > solid interface that the slicer will make a continuous part. For > > animation, probably not as important. > > > > Yeah, complex models start to bog down the functional nature of the > > OpenSCAD script language. Me, what I think would be helpful would be > > to allow the loading of a mesh from either a render() or import() to a > > variable, then make copies of that variable and place them later in > > the script. Modeling the locomotive tender right now, has a gazillion > > round-head rivets, each has to be recreated during each render... > > > > Glenn > > > > On 3/2/23 10:11, jon wrote: > >> Glenn: > >> > >> Good idea, except that I have not yet succeeded in an F6 because > >> OpenSCAD blows up at 32 GB of memory used. I am working to see how > >> this might be improved, but I'm not there yet. > >> > >> Jon > >> > >> On 3/2/2023 9:03 AM, Glenn Butcher wrote: > >>> Here's a thought: Do an export of your model to a file, then write a > >>> separate animation script that just imports the model for each > >>> iteration. This assumes your filesystem is faster at delivering the > >>> mesh than your cpu is at creating it from scratch for each frame... > >>> > >>> On 3/2/2023 5:48 AM, jon wrote: > >>>> > >>>> While I understand the flexibility that the $time variable allows > >>>> (varying the model generated over time), in my case ALL I am doing > >>>> is a walk through my model; it only needs to be calculated once. > >>>> So, it would be helpful if there was a way to say "keep the old > >>>> model that is in the cache and just re-display it on the screen". > >>>> Perhaps another global variable? Evaluating the code to see how > >>>> the $time variable is used probably is infeasible. > >>>> > >>>> Maybe my kind of Animation is different, or a sub-set of the > >>>> full-featured Animation. > >>>> > >>>> Animations continue to be very difficult for me to use. I Kill > >>>> OpenSCAD using the Task Manager over and over again, because it is > >>>> unresponsive, and because I have no idea what it is doing. > >>>> Recalculating the model (unnecessarily)? Are Animations enabled or > >>>> disabled? It is easier to kill OpenSCAD than to use the controls > >>>> that are available. > >>>> > >>>> I was told to use a batch file and the command line. That involved > >>>> me creating 200 lines of custom code to get the invocations right. > >>>> Not impossible, but it is so much easier to allow OpenSCAD to > >>>> generate these scenarios. Except that it isn't easier. > >>>> > >>>> Am I a special case (4-5 minute F5 times)? Quite likely. > >>>> > >>>> Jon > >>>> > >>>> .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 > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
JB
Jordan Brown
Fri, Mar 3, 2023 4:53 AM

How large are your spheres?

How large are your spheres?