discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

working with a complex model

J
jon
Wed, Jun 17, 2015 1:18 PM

I'm working with a complex model, one that takes minutes to compute.
I'm fiddling with a small part of the model: most of the model never
changes.

Is there any way to compute that invariant part once, so that the
re-calculations are less time consuming as I work on the rest of the model?

Thanks!

Jon

I'm working with a complex model, one that takes minutes to compute. I'm fiddling with a small part of the model: most of the model never changes. Is there any way to compute that invariant part once, so that the re-calculations are less time consuming as I work on the rest of the model? Thanks! Jon
NH
nop head
Wed, Jun 17, 2015 1:27 PM

If you put render() around it then it gets computed by CGAL and cached. So
F5 is slow if it changes but fast if it doesn't. Don't forget to set the
convexity parameter if you don an operations on it outside the render.

On 17 June 2015 at 14:18, jon jon@jonbondy.com wrote:

I'm working with a complex model, one that takes minutes to compute.  I'm
fiddling with a small part of the model: most of the model never changes.

Is there any way to compute that invariant part once, so that the
re-calculations are less time consuming as I work on the rest of the model?

Thanks!

Jon


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

If you put render() around it then it gets computed by CGAL and cached. So F5 is slow if it changes but fast if it doesn't. Don't forget to set the convexity parameter if you don an operations on it outside the render. On 17 June 2015 at 14:18, jon <jon@jonbondy.com> wrote: > I'm working with a complex model, one that takes minutes to compute. I'm > fiddling with a small part of the model: most of the model never changes. > > Is there any way to compute that invariant part once, so that the > re-calculations are less time consuming as I work on the rest of the model? > > Thanks! > > Jon > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >
J
jon
Wed, Jun 17, 2015 2:02 PM

So THAT is what render() is for! The description says to use when
"boolean operations become slow".  I had no idea...

As always, thank you for your help!

Jon

On 6/17/2015 9:27 AM, nop head wrote:

If you put render() around it then it gets computed by CGAL and
cached. So F5 is slow if it changes but fast if it doesn't. Don't
forget to set the convexity parameter if you don an operations on it
outside the render.

On 17 June 2015 at 14:18, jon <jon@jonbondy.com
mailto:jon@jonbondy.com> wrote:

 I'm working with a complex model, one that takes minutes to
 compute.  I'm fiddling with a small part of the model: most of the
 model never changes.

 Is there any way to compute that invariant part once, so that the
 re-calculations are less time consuming as I work on the rest of
 the model?

 Thanks!

 Jon

 _______________________________________________
 OpenSCAD mailing list
 Discuss@lists.openscad.org <mailto:Discuss@lists.openscad.org>
 http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

No virus found in this message.
Checked by AVG - www.avg.com http://www.avg.com
Version: 2015.0.6030 / Virus Database: 4365/10034 - Release Date: 06/17/15

So THAT is what render() is for! The description says to use when "boolean operations become slow". I had no idea... As always, thank you for your help! Jon On 6/17/2015 9:27 AM, nop head wrote: > If you put render() around it then it gets computed by CGAL and > cached. So F5 is slow if it changes but fast if it doesn't. Don't > forget to set the convexity parameter if you don an operations on it > outside the render. > > On 17 June 2015 at 14:18, jon <jon@jonbondy.com > <mailto:jon@jonbondy.com>> wrote: > > I'm working with a complex model, one that takes minutes to > compute. I'm fiddling with a small part of the model: most of the > model never changes. > > Is there any way to compute that invariant part once, so that the > re-calculations are less time consuming as I work on the rest of > the model? > > Thanks! > > Jon > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org <mailto:Discuss@lists.openscad.org> > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org > > > > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org > > > No virus found in this message. > Checked by AVG - www.avg.com <http://www.avg.com> > Version: 2015.0.6030 / Virus Database: 4365/10034 - Release Date: 06/17/15 >
J
jon
Wed, Jun 17, 2015 2:46 PM

The things that are computed in my render() are essentially global
variables, that are used elsewhere in the script.  They then become
unknown outside the scope of the render().

On 6/17/2015 9:27 AM, nop head wrote:

If you put render() around it then it gets computed by CGAL and
cached. So F5 is slow if it changes but fast if it doesn't. Don't
forget to set the convexity parameter if you don an operations on it
outside the render.

On 17 June 2015 at 14:18, jon <jon@jonbondy.com
mailto:jon@jonbondy.com> wrote:

 I'm working with a complex model, one that takes minutes to
 compute.  I'm fiddling with a small part of the model: most of the
 model never changes.

 Is there any way to compute that invariant part once, so that the
 re-calculations are less time consuming as I work on the rest of
 the model?

 Thanks!

 Jon

 _______________________________________________
 OpenSCAD mailing list
 Discuss@lists.openscad.org <mailto:Discuss@lists.openscad.org>
 http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

No virus found in this message.
Checked by AVG - www.avg.com http://www.avg.com
Version: 2015.0.6030 / Virus Database: 4365/10034 - Release Date: 06/17/15

The things that are computed in my render() are essentially global variables, that are used elsewhere in the script. They then become unknown outside the scope of the render(). On 6/17/2015 9:27 AM, nop head wrote: > If you put render() around it then it gets computed by CGAL and > cached. So F5 is slow if it changes but fast if it doesn't. Don't > forget to set the convexity parameter if you don an operations on it > outside the render. > > On 17 June 2015 at 14:18, jon <jon@jonbondy.com > <mailto:jon@jonbondy.com>> wrote: > > I'm working with a complex model, one that takes minutes to > compute. I'm fiddling with a small part of the model: most of the > model never changes. > > Is there any way to compute that invariant part once, so that the > re-calculations are less time consuming as I work on the rest of > the model? > > Thanks! > > Jon > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org <mailto:Discuss@lists.openscad.org> > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org > > > > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org > > > No virus found in this message. > Checked by AVG - www.avg.com <http://www.avg.com> > Version: 2015.0.6030 / Virus Database: 4365/10034 - Release Date: 06/17/15 >
NH
nop head
Wed, Jun 17, 2015 3:34 PM

You only need to put the geometry in the render(), not variable definitions
that need to be global.

The way I make a large assembly like Mendel90 is to have a module for each
printed part. When that is used in an assembly it is rendered. That means I
can work on the part on its own without the render but the large assembly
of parts is still fast because they are all cached. All my vitamins have
renders in them one for each colour. So if I use a lot of fasteners there
is only one cached version of each size of screw, for example.

Using render also gets rid of artefacts in OpenSCG caused by negative parts
of one object interfering with another object.

On 17 June 2015 at 15:46, jon jon@jonbondy.com wrote:

The things that are computed in my render() are essentially global
variables, that are used elsewhere in the script.  They then become unknown
outside the scope of the render().

On 6/17/2015 9:27 AM, nop head wrote:

If you put render() around it then it gets computed by CGAL and cached. So
F5 is slow if it changes but fast if it doesn't. Don't forget to set the
convexity parameter if you don an operations on it outside the render.

On 17 June 2015 at 14:18, jon jon@jonbondy.com wrote:

I'm working with a complex model, one that takes minutes to compute.  I'm
fiddling with a small part of the model: most of the model never changes.

Is there any way to compute that invariant part once, so that the
re-calculations are less time consuming as I work on the rest of the model?

Thanks!

Jon


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org


OpenSCAD mailing listDiscuss@lists.openscad.orghttp://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

No virus found in this message.
Checked by AVG - www.avg.com
Version: 2015.0.6030 / Virus Database: 4365/10034 - Release Date: 06/17/15


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

You only need to put the geometry in the render(), not variable definitions that need to be global. The way I make a large assembly like Mendel90 is to have a module for each printed part. When that is used in an assembly it is rendered. That means I can work on the part on its own without the render but the large assembly of parts is still fast because they are all cached. All my vitamins have renders in them one for each colour. So if I use a lot of fasteners there is only one cached version of each size of screw, for example. Using render also gets rid of artefacts in OpenSCG caused by negative parts of one object interfering with another object. On 17 June 2015 at 15:46, jon <jon@jonbondy.com> wrote: > The things that are computed in my render() are essentially global > variables, that are used elsewhere in the script. They then become unknown > outside the scope of the render(). > > On 6/17/2015 9:27 AM, nop head wrote: > > If you put render() around it then it gets computed by CGAL and cached. So > F5 is slow if it changes but fast if it doesn't. Don't forget to set the > convexity parameter if you don an operations on it outside the render. > > On 17 June 2015 at 14:18, jon <jon@jonbondy.com> wrote: > >> I'm working with a complex model, one that takes minutes to compute. I'm >> fiddling with a small part of the model: most of the model never changes. >> >> Is there any way to compute that invariant part once, so that the >> re-calculations are less time consuming as I work on the rest of the model? >> >> Thanks! >> >> Jon >> >> _______________________________________________ >> OpenSCAD mailing list >> Discuss@lists.openscad.org >> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >> > > > > _______________________________________________ > OpenSCAD mailing listDiscuss@lists.openscad.orghttp://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org > > > > No virus found in this message. > Checked by AVG - www.avg.com > Version: 2015.0.6030 / Virus Database: 4365/10034 - Release Date: 06/17/15 > > > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org > >
M
MichaelAtOz
Wed, Jun 17, 2015 10:35 PM

You can also use the "!"  modifier
https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Modifier_Characters  to
just work on a small bit of code at a time, iif you don't need the rest of
the model for visual reference.


Unless specifically shown otherwise above, my contribution is in the Public Domain; To the extent possible under law, I have waived all copyright and related or neighbouring rights to this work. This work is published globally via the internet. :) Inclusion of works of previous authors is not included in the above.

The TPP is no simple “trade agreement.”  Fight it! http://www.ourfairdeal.org/

View this message in context: http://forum.openscad.org/working-with-a-complex-model-tp12906p12911.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

You can also use the "!" modifier <https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Modifier_Characters> to just work on a small bit of code at a time, iif you don't need the rest of the model for visual reference. ----- Unless specifically shown otherwise above, my contribution is in the Public Domain; To the extent possible under law, I have waived all copyright and related or neighbouring rights to this work. This work is published globally via the internet. :) Inclusion of works of previous authors is not included in the above. The TPP is no simple “trade agreement.” Fight it! http://www.ourfairdeal.org/ -- View this message in context: http://forum.openscad.org/working-with-a-complex-model-tp12906p12911.html Sent from the OpenSCAD mailing list archive at Nabble.com.
T
tjhowse
Thu, Jun 18, 2015 12:35 AM

Wow. There are a bunch of new (?) modifiers I didn't know about.
Thanks for that Michael.

On 18 June 2015 at 08:35, MichaelAtOz oz.at.michael@gmail.com wrote:

You can also use the "!"  modifier
https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Modifier_Characters  to
just work on a small bit of code at a time, iif you don't need the rest of
the model for visual reference.


Unless specifically shown otherwise above, my contribution is in the Public Domain; To the extent possible under law, I have waived all copyright and related or neighbouring rights to this work. This work is published globally via the internet. :) Inclusion of works of previous authors is not included in the above.

The TPP is no simple “trade agreement.”  Fight it! http://www.ourfairdeal.org/

View this message in context: http://forum.openscad.org/working-with-a-complex-model-tp12906p12911.html
Sent from the OpenSCAD mailing list archive at Nabble.com.


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

Wow. There are a bunch of new (?) modifiers I didn't know about. Thanks for that Michael. On 18 June 2015 at 08:35, MichaelAtOz <oz.at.michael@gmail.com> wrote: > You can also use the "!" modifier > <https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Modifier_Characters> to > just work on a small bit of code at a time, iif you don't need the rest of > the model for visual reference. > > > > ----- > Unless specifically shown otherwise above, my contribution is in the Public Domain; To the extent possible under law, I have waived all copyright and related or neighbouring rights to this work. This work is published globally via the internet. :) Inclusion of works of previous authors is not included in the above. > > The TPP is no simple “trade agreement.” Fight it! http://www.ourfairdeal.org/ > -- > View this message in context: http://forum.openscad.org/working-with-a-complex-model-tp12906p12911.html > Sent from the OpenSCAD mailing list archive at Nabble.com. > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org