Constructive Syntax Library for Openscad: no difference(), no for(), no intersection() used

classic Classic list List threaded Threaded
18 messages Options
Reply | Threaded
Open this post in threaded view
|

Constructive Syntax Library for Openscad: no difference(), no for(), no intersection() used

Peter

Hello,

the Constructive Library (about 1900 lines of Code) i just have released https://github.com/solidboredom/constructive,

takes a different approach to OpenScad Syntax: you rarely need difference(), for(), intersection() or their one-to-one equivalents, a for() block  In the library's own dialect might look like:

pieces(4)  X(every(35)) turnXY(vals(10,25,-15,40))  cube(10);

It is all valid OpenScad, you do need any additional programs, just the OpenScad and the constructive-compiled.scad file.

The Constuctive-Syntax tries to align more with mechanical construction of parts and less with mathematical concepts like arrays, vectors and functions. (but they are heavily used behind the scenes). So it aims to be more concise and fluent for mechanical parts than vanilla OpenScad. It allows you to make holes from Modules and really good deal more.

For about 5 years now i have been working on it and using it a lot. Now I really hope others will find it just as useful, as i do. I am barely writing any vanilla OpenScad any more.

If somebody likes the Ideas, you are welcome to join work on it. It is released under GPL2, and I appreciate additions/discussions/collaboration. Perhaps, some Ideas can be used by the OpenScad itself.

There is barely any documentation yet. I will add it topic-wise, when any questions arise if there will be interest at all.

For a basic introduction to its syntax and some possibilities, look at the explanations inside the example below, or ask me directly. Here is an example with approx 100 lines of actual code  (see also an animated .GIF in the Attachment):

https://github.com/solidboredom/constructive/blob/main/examples/mount-demo.scad

there is also another Example at:

https://github.com/solidboredom/constructive/blob/main/examples/pulley-demo.scad

There are many more features useful for complex models, like its own minimalistic type-subsystem,

basic inheritance of construction parts (still needs improvement), or inverse transformations like in :

g(X(10),Y(15),turnXY(45),X(30))

    g(backwards([X(10),Y(15),turnXY(45),X(30)])

        box(10);

Try it! i hope you will find it as useful as i do.

Peter



_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]

mount.gif (722K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Constructive Syntax Library for Openscad: no difference(), no for(), no intersection() used

jon_bondy

Peter:

I took a quick look at the mount demo.  It is interesting, but also overwhelming.  A step-by-step tutorial, that adds new features and concepts one-at-a-time might be easier for me to digest.  Perhaps others will find it easier than I do.   You've been sitting with it for years, so it is all familiar to you.

I am impressed by your creativity and determination.

Jon


On 6/6/2021 7:45 AM, [hidden email] wrote:

Hello,

the Constructive Library (about 1900 lines of Code) i just have released https://github.com/solidboredom/constructive,

takes a different approach to OpenScad Syntax: you rarely need difference(), for(), intersection() or their one-to-one equivalents, a for() block  In the library's own dialect might look like:

pieces(4)  X(every(35)) turnXY(vals(10,25,-15,40))  cube(10);

It is all valid OpenScad, you do need any additional programs, just the OpenScad and the constructive-compiled.scad file.

The Constuctive-Syntax tries to align more with mechanical construction of parts and less with mathematical concepts like arrays, vectors and functions. (but they are heavily used behind the scenes). So it aims to be more concise and fluent for mechanical parts than vanilla OpenScad. It allows you to make holes from Modules and really good deal more.

For about 5 years now i have been working on it and using it a lot. Now I really hope others will find it just as useful, as i do. I am barely writing any vanilla OpenScad any more.

If somebody likes the Ideas, you are welcome to join work on it. It is released under GPL2, and I appreciate additions/discussions/collaboration. Perhaps, some Ideas can be used by the OpenScad itself.

There is barely any documentation yet. I will add it topic-wise, when any questions arise if there will be interest at all.

For a basic introduction to its syntax and some possibilities, look at the explanations inside the example below, or ask me directly. Here is an example with approx 100 lines of actual code  (see also an animated .GIF in the Attachment):

https://github.com/solidboredom/constructive/blob/main/examples/mount-demo.scad

there is also another Example at:

https://github.com/solidboredom/constructive/blob/main/examples/pulley-demo.scad

There are many more features useful for complex models, like its own minimalistic type-subsystem,

basic inheritance of construction parts (still needs improvement), or inverse transformations like in :

g(X(10),Y(15),turnXY(45),X(30))

    g(backwards([X(10),Y(15),turnXY(45),X(30)])

        box(10);

Try it! i hope you will find it as useful as i do.

Peter



_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]

_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Constructive Syntax Library for Openscad: no difference(), no for(), no intersection() used

LenStruttmann
In reply to this post by Peter
I could not get the demos to work in OpenSCAD 2021.01

Loaded design '/home/len/Downloads/constructive-main/examples/mount-demo.scad'.
Compiling design (CSG Tree generation)...
ECHO: "Assembling: ", ["screws", "base", "mountEnds"]
WARNING: cylinder(h=0, ...) in file constructive-compiled.scad, line 1915

...which confuses me since constructive-compiled.scad only has 1894 lines.

Sent from the OpenSCAD mailing list archive at Nabble.com.

_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Constructive Syntax Library for Openscad: no difference(), no for(), no intersection() used

Peter
Hello Len,
Thanks for checking it out, i am using a much newer openscad 2021.04.21 ,
Perhaps it was a bug in openscad. i will install the 2021.01 to investigate and write a bit later. 
On 07.06.21 03:35, LenStruttmann wrote:
I could not get the demos to work in OpenSCAD 2021.01

Loaded design '/home/len/Downloads/constructive-main/examples/mount-demo.scad'.
Compiling design (CSG Tree generation)...
ECHO: "Assembling: ", ["screws", "base", "mountEnds"]
WARNING: cylinder(h=0, ...) in file constructive-compiled.scad, line 1915

...which confuses me since constructive-compiled.scad only has 1894 lines.

Sent from the OpenSCAD mailing list archive at Nabble.com.

_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]



_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Constructive Syntax Library for Openscad: no difference(), no for(), no intersection() used

Peter
Is it a bug in Openscad?

I have tried it now with 2021.01 (git 41f58fe) (Appimage build) and it works without any warnings on my UBUNTU 20.04.
what OS are you on?

The only other thing which comes to my mind: could it be a possible character encoding issue when using Windows vs Linux?
 IMHO this could occur if one downloads library files from Github individually or by copy pasting, instead of downloading them all at once as a zip.

I have attached a screenshot of how to do download as zip from Github.
You will probably not need it, but i find Github pages very confusing personally, so perhaps it will help somebody anyway.
 
could you send me the errors/warnings output you get?
and if possible try with a different, but recent openscad version from https://openscad.org/downloads.html
they only have a fairly recent ones on the download page, so i would expect them all to work

this would help me a lot a lot to locate the cause.

Peter

On 07.06.21 12:05, [hidden email] wrote:
Hello Len,
Thanks for checking it out, i am using a much newer openscad 2021.04.21 ,
Perhaps it was a bug in openscad. i will install the 2021.01 to investigate and write a bit later. 
On 07.06.21 03:35, LenStruttmann wrote:
I could not get the demos to work in OpenSCAD 2021.01

Loaded design '/home/len/Downloads/constructive-main/examples/mount-demo.scad'.
Compiling design (CSG Tree generation)...
ECHO: "Assembling: ", ["screws", "base", "mountEnds"]
WARNING: cylinder(h=0, ...) in file constructive-compiled.scad, line 1915

...which confuses me since constructive-compiled.scad only has 1894 lines.

Sent from the OpenSCAD mailing list archive at Nabble.com.

_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]



_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]



_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]

getZip.png (356K) Download Attachment
tp3
Reply | Threaded
Open this post in threaded view
|

Re: Constructive Syntax Library for Openscad: no difference(), no for(), no intersection() used

tp3
I've just tried the mount-demo.scad with the latest nightly
build OpenSCAD Version: 2021.05.31.nightly (git 1a9430f) and
I'm not seeing any warnings or errors and the model seems to
be fine at first glance comparing against the pictures posted
earlier.

ciao,
  Torsten.
_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
-- Torsten
Reply | Threaded
Open this post in threaded view
|

Re: Constructive Syntax Library for Openscad: no difference(), no for(), no intersection() used

Peter
Thanks Torsten!
do you think, it could be OS-specific behaviour at all? are you on linux
yourself?
I used to get warnings at non-exising line numbers with some of 2020
openscad versions, but with newer ones it was fixed, i beleive.

On 07.06.21 13:34, Torsten Paul wrote:

> I've just tried the mount-demo.scad with the latest nightly
> build OpenSCAD Version: 2021.05.31.nightly (git 1a9430f) and
> I'm not seeing any warnings or errors and the model seems to
> be fine at first glance comparing against the pictures posted
> earlier.
>
> ciao,
> Torsten.
> _______________________________________________
> OpenSCAD mailing list
> To unsubscribe send an email to [hidden email]


_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Constructive Syntax Library for Openscad: no difference(), no for(), no intersection() used

Peter
In reply to this post by jon_bondy
Jon, thanks for the nice words,
yes, you are right, i just did not want to spend much time on the documentation/tutorials first,just to see how nobody would be really interested. this kind of happened before to me.

the library itself i use myself a lot, so the effort spent on it helps me in my other projects, but the tutorials i did not need pesonally, so far.
But now the reception is hopefully positive  there is will be a reason for it.
i just hope there will be enough interest in the community
Peter

On 07.06.21 01:49, jon wrote:

Peter:

I took a quick look at the mount demo.  It is interesting, but also overwhelming.  A step-by-step tutorial, that adds new features and concepts one-at-a-time might be easier for me to digest.  Perhaps others will find it easier than I do.   You've been sitting with it for years, so it is all familiar to you.

I am impressed by your creativity and determination.

Jon


On 6/6/2021 7:45 AM, [hidden email] wrote:

Hello,

the Constructive Library (about 1900 lines of Code) i just have released https://github.com/solidboredom/constructive,

takes a different approach to OpenScad Syntax: you rarely need difference(), for(), intersection() or their one-to-one equivalents, a for() block  In the library's own dialect might look like:

pieces(4)  X(every(35)) turnXY(vals(10,25,-15,40))  cube(10);

It is all valid OpenScad, you do need any additional programs, just the OpenScad and the constructive-compiled.scad file.

The Constuctive-Syntax tries to align more with mechanical construction of parts and less with mathematical concepts like arrays, vectors and functions. (but they are heavily used behind the scenes). So it aims to be more concise and fluent for mechanical parts than vanilla OpenScad. It allows you to make holes from Modules and really good deal more.

For about 5 years now i have been working on it and using it a lot. Now I really hope others will find it just as useful, as i do. I am barely writing any vanilla OpenScad any more.

If somebody likes the Ideas, you are welcome to join work on it. It is released under GPL2, and I appreciate additions/discussions/collaboration. Perhaps, some Ideas can be used by the OpenScad itself.

There is barely any documentation yet. I will add it topic-wise, when any questions arise if there will be interest at all.

For a basic introduction to its syntax and some possibilities, look at the explanations inside the example below, or ask me directly. Here is an example with approx 100 lines of actual code  (see also an animated .GIF in the Attachment):

https://github.com/solidboredom/constructive/blob/main/examples/mount-demo.scad

there is also another Example at:

https://github.com/solidboredom/constructive/blob/main/examples/pulley-demo.scad

There are many more features useful for complex models, like its own minimalistic type-subsystem,

basic inheritance of construction parts (still needs improvement), or inverse transformations like in :

g(X(10),Y(15),turnXY(45),X(30))

    g(backwards([X(10),Y(15),turnXY(45),X(30)])

        box(10);

Try it! i hope you will find it as useful as i do.

Peter



_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]



_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Constructive Syntax Library for Openscad: no difference(), no for(), no intersection() used

jon_bondy
In reply to this post by jon_bondy

It is a little of a feedback loop.  More tutorials make it more accessible which means more people use it.  But I do understand the challenge of writing the tutorials.

If you look at the BOSL 2 library, a STUNNING amount of work has been done, not just on the library itself, but on documentation that makes it easy to use.  I find an example and then nudge it until it does what I want.

Good luck!

Jon

On 6/7/2021 9:00 AM, petka wrote:
hekko Jon, thanks for the nice words,
yes, you are right, i just did not want to spend much time on the documentation/tutorials first,just to see how nobody would be really interested. this kind of happened before to me.

the library itself i use myself a lot, so the effort spent on it helps me in my other projects, but the tutorials i did not need pesonally, so far.
But now the reception is hopefully positive  there is will be a reason for it.
i just hope there will be enough interest in the community
Peter

On 07.06.21 01:49, jon wrote:

Peter:

I took a quick look at the mount demo.  It is interesting, but also overwhelming.  A step-by-step tutorial, that adds new features and concepts one-at-a-time might be easier for me to digest.  Perhaps others will find it easier than I do.   You've been sitting with it for years, so it is all familiar to you.

I am impressed by your creativity and determination.

Jon


On 6/6/2021 7:45 AM, [hidden email] wrote:

Hello,

the Constructive Library (about 1900 lines of Code) i just have released https://github.com/solidboredom/constructive,

takes a different approach to OpenScad Syntax: you rarely need difference(), for(), intersection() or their one-to-one equivalents, a for() block  In the library's own dialect might look like:

pieces(4)  X(every(35)) turnXY(vals(10,25,-15,40))  cube(10);

It is all valid OpenScad, you do need any additional programs, just the OpenScad and the constructive-compiled.scad file.

The Constuctive-Syntax tries to align more with mechanical construction of parts and less with mathematical concepts like arrays, vectors and functions. (but they are heavily used behind the scenes). So it aims to be more concise and fluent for mechanical parts than vanilla OpenScad. It allows you to make holes from Modules and really good deal more.

For about 5 years now i have been working on it and using it a lot. Now I really hope others will find it just as useful, as i do. I am barely writing any vanilla OpenScad any more.

If somebody likes the Ideas, you are welcome to join work on it. It is released under GPL2, and I appreciate additions/discussions/collaboration. Perhaps, some Ideas can be used by the OpenScad itself.

There is barely any documentation yet. I will add it topic-wise, when any questions arise if there will be interest at all.

For a basic introduction to its syntax and some possibilities, look at the explanations inside the example below, or ask me directly. Here is an example with approx 100 lines of actual code  (see also an animated .GIF in the Attachment):

https://github.com/solidboredom/constructive/blob/main/examples/mount-demo.scad

there is also another Example at:

https://github.com/solidboredom/constructive/blob/main/examples/pulley-demo.scad

There are many more features useful for complex models, like its own minimalistic type-subsystem,

basic inheritance of construction parts (still needs improvement), or inverse transformations like in :

g(X(10),Y(15),turnXY(45),X(30))

    g(backwards([X(10),Y(15),turnXY(45),X(30)])

        box(10);

Try it! i hope you will find it as useful as i do.

Peter



_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]



_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
tp3
Reply | Threaded
Open this post in threaded view
|

Re: Constructive Syntax Library for Openscad: no difference(), no for(), no intersection() used

tp3
On 07.06.21 16:28, jon wrote:
> It is a little of a feedback loop.  More tutorials make it> more accessible which means more people use it.  But I do
> understand the challenge of writing the tutorials.

Yes, I've seen that often, it needs quite some leap of faith
that people will appreciate the effort spent with documentation.

A full tutorial is a lot of work, so it maybe would be an
option to have a small "getting started" or cheat sheet style
introduction.

With that documentation link, and if I'm allowed to use that
nice animation, I would be happy to add the library also to
the https://openscad.org/libraries.html page.

ciao,
  Torsten.
_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
-- Torsten
Reply | Threaded
Open this post in threaded view
|

Re: Constructive Syntax Library for Openscad: no difference(), no for(), no intersection() used

LenStruttmann
In reply to this post by Peter
I'm using OpenSCAD version 2021.01 (git 41f58fe) on Ubuntu 20.04.

Here is the complete log from when I attempt pulley-demo.scad:

OpenSCAD 2021.01
https://www.openscad.org/

Copyright (C) 2009-2021 The OpenSCAD Developers
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

Loaded design '/home/len/Downloads/constructive-main/examples/pulley-demo.scad'.
Compiling design (CSG Tree generation)...
ECHO: "Assembling: ", ["screws", "bearing", "tube", "wheel"]
WARNING: cylinder(h=0, ...) in file constructive-compiled.scad, line 1915
TRACE: called by 'cylinder' in file constructive-compiled.scad, line 1915
TRACE: called by 'children' in file constructive-compiled.scad, line 690
TRACE: called by 'children' in file constructive-compiled.scad, line 763
TRACE: called by 'multmatrix' in file constructive-compiled.scad, line 760
TRACE: called by 'g' in file constructive-compiled.scad, line 690
TRACE: called by 'up' in file constructive-compiled.scad, line 1913
TRACE: called by 'difference' in file constructive-compiled.scad, line 1863
TRACE: called by 'if' in file constructive-compiled.scad, line 1861
TRACE: called by 'scale' in file constructive-compiled.scad, line 1847
TRACE: called by 'translate' in file constructive-compiled.scad, line 1845
TRACE: called by 'tubeFast' in file constructive-compiled.scad, line 2514
TRACE: called by 'children' in file constructive-compiled.scad, line 763
Compiling design (CSG Products generation)...

Sent from the OpenSCAD mailing list archive at Nabble.com.

_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Constructive Syntax Library for Openscad: no difference(), no for(), no intersection() used

Peter
In reply to this post by jon_bondy
I will definitely make step by step simple examples  to make up a tutorial soon

I must admit until now,i had only heard somewhere of BOSL 2. Having looked around longer time ago and then finding nothing of much help to me, i had concentrated on my own library which went through several iterations of syntax change.


this was out of a need: i build complex parts.
with vanilla openscad i get lost in extremely nested and repetitive code of any complex  model very quickly.
an own module for almost everything, to avoid code duplication, did not really help. It made my code even more semantically scattered and dissociated.

so i started to fight nesting and singularities in OpenScad, the difference() was an obvious target having both ( it treats its first child differently from all other children, which i call singularity, which makes you structure your code after difference()'s personal preferences, and not after your construction intent) so i have created the SummUp library (still on my Github) . an on and on to reduce not semantically relevant code nestng even more... 

I had assumed other libraries out there are mostly "boxes with a bunch of customized stuff you can find use for". a bit like going to a flea market and looking for an old lamp you will reapair, versus creating your own new lampshade, lamppost, etc.

There was a library for relative coordinates somewhere, which i found interesting, but it was too complex to use for me, it asked for 3D vectors and alike in daily use, so i never really dug it.

Looking at the BOSL2 now , this thing seems different, the examples in the readme.md go a path of trying to align the language to the domain.
Actually, i even used to have  up()  (now Z() or XYZ())  and  skewedBox() in a previous iteration of my library, which is called "humane.scad" and focused on easy human readability.
and there is also the xcopies(dist,n) which is similar to pieces(n)X(every(dist)) in the Constructive dialect.
there are definitely a lot  of similarities. It is a pity i did not notice it well enough, before.

Perhaps the two can be integrated.

I wiil have to look deeper, but perhaps the Constructive has taken the syntactic departure from mathematical notation even further,

introducing assemble(), add() remove() and the notion of "Parts" (semantically orthogonal to modules, which i consider more an aspect of a Part or of several Parts)
I had also changed the preferred style from openscads native module nesting to sets of functions in parameters, like in
g(X(10), turnXY(30), TOUP()) cube(10);
versus
X(10) turnXY(30) TOUP() cube(10);
which are both valid in Constructive, but the first is preferred for performance reasons, among other features i brings.




On 07.06.21 16:28, jon wrote:

It is a little of a feedback loop.  More tutorials make it more accessible which means more people use it.  But I do understand the challenge of writing the tutorials.

If you look at the BOSL 2 library, a STUNNING amount of work has been done, not just on the library itself, but on documentation that makes it easy to use.  I find an example and then nudge it until it does what I want.

Good luck!

Jon

On 6/7/2021 9:00 AM, petka wrote:
hekko Jon, thanks for the nice words,
yes, you are right, i just did not want to spend much time on the documentation/tutorials first,just to see how nobody would be really interested. this kind of happened before to me.

the library itself i use myself a lot, so the effort spent on it helps me in my other projects, but the tutorials i did not need pesonally, so far.
But now the reception is hopefully positive  there is will be a reason for it.
i just hope there will be enough interest in the community
Peter

On 07.06.21 01:49, jon wrote:

Peter:

I took a quick look at the mount demo.  It is interesting, but also overwhelming.  A step-by-step tutorial, that adds new features and concepts one-at-a-time might be easier for me to digest.  Perhaps others will find it easier than I do.   You've been sitting with it for years, so it is all familiar to you.

I am impressed by your creativity and determination.

Jon


On 6/6/2021 7:45 AM, [hidden email] wrote:

Hello,

the Constructive Library (about 1900 lines of Code) i just have released https://github.com/solidboredom/constructive,

takes a different approach to OpenScad Syntax: you rarely need difference(), for(), intersection() or their one-to-one equivalents, a for() block  In the library's own dialect might look like:

pieces(4)  X(every(35)) turnXY(vals(10,25,-15,40))  cube(10);

It is all valid OpenScad, you do need any additional programs, just the OpenScad and the constructive-compiled.scad file.

The Constuctive-Syntax tries to align more with mechanical construction of parts and less with mathematical concepts like arrays, vectors and functions. (but they are heavily used behind the scenes). So it aims to be more concise and fluent for mechanical parts than vanilla OpenScad. It allows you to make holes from Modules and really good deal more.

For about 5 years now i have been working on it and using it a lot. Now I really hope others will find it just as useful, as i do. I am barely writing any vanilla OpenScad any more.

If somebody likes the Ideas, you are welcome to join work on it. It is released under GPL2, and I appreciate additions/discussions/collaboration. Perhaps, some Ideas can be used by the OpenScad itself.

There is barely any documentation yet. I will add it topic-wise, when any questions arise if there will be interest at all.

For a basic introduction to its syntax and some possibilities, look at the explanations inside the example below, or ask me directly. Here is an example with approx 100 lines of actual code  (see also an animated .GIF in the Attachment):

https://github.com/solidboredom/constructive/blob/main/examples/mount-demo.scad

there is also another Example at:

https://github.com/solidboredom/constructive/blob/main/examples/pulley-demo.scad

There are many more features useful for complex models, like its own minimalistic type-subsystem,

basic inheritance of construction parts (still needs improvement), or inverse transformations like in :

g(X(10),Y(15),turnXY(45),X(30))

    g(backwards([X(10),Y(15),turnXY(45),X(30)])

        box(10);

Try it! i hope you will find it as useful as i do.

Peter



_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]




_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Constructive Syntax Library for Openscad: no difference(), no for(), no intersection() used

LenStruttmann
In reply to this post by LenStruttmann
Found it:

In Preferences -> Advanced -> OpenSCAD Language Features

...I had both of these checked.  

Since you routinely pass h=0 to cylinder(), my OpenSCAD complained loudly.



Sent from the OpenSCAD mailing list archive at Nabble.com.

_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Constructive Syntax Library for Openscad: no difference(), no for(), no intersection() used

Peter
In reply to this post by LenStruttmann
this is very weird, it works with the same  2021.01 (git 41f58fe) on my Ubuntu 20.04......

could you try the same or a newer appimage (if not already)? or perhaps re-download the Constructive lib?

the stack trace is not showing the actual cause, sadly.
we would have to asterisk/comment out each of the 6 tubeFast() calls to even try to localize it.
does the mount-demo.scad work either?
Peter

On 07.06.21 17:26, LenStruttmann wrote:
I'm using OpenSCAD version 2021.01 (git 41f58fe) on Ubuntu 20.04.

Here is the complete log from when I attempt pulley-demo.scad:

OpenSCAD 2021.01
https://www.openscad.org/

Copyright (C) 2009-2021 The OpenSCAD Developers
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

Loaded design '/home/len/Downloads/constructive-main/examples/pulley-demo.scad'.
Compiling design (CSG Tree generation)...
ECHO: "Assembling: ", ["screws", "bearing", "tube", "wheel"]
WARNING: cylinder(h=0, ...) in file constructive-compiled.scad, line 1915
TRACE: called by 'cylinder' in file constructive-compiled.scad, line 1915
TRACE: called by 'children' in file constructive-compiled.scad, line 690
TRACE: called by 'children' in file constructive-compiled.scad, line 763
TRACE: called by 'multmatrix' in file constructive-compiled.scad, line 760
TRACE: called by 'g' in file constructive-compiled.scad, line 690
TRACE: called by 'up' in file constructive-compiled.scad, line 1913
TRACE: called by 'difference' in file constructive-compiled.scad, line 1863
TRACE: called by 'if' in file constructive-compiled.scad, line 1861
TRACE: called by 'scale' in file constructive-compiled.scad, line 1847
TRACE: called by 'translate' in file constructive-compiled.scad, line 1845
TRACE: called by 'tubeFast' in file constructive-compiled.scad, line 2514
TRACE: called by 'children' in file constructive-compiled.scad, line 763
Compiling design (CSG Products generation)...

Sent from the OpenSCAD mailing list archive at Nabble.com.

_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]



_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Constructive Syntax Library for Openscad: no difference(), no for(), no intersection() used

Peter
In reply to this post by LenStruttmann
Thanks len!
i will need to address it, it uses cylinder(h=0) to reduce CSG nesting (avoiding an If()-block) with older openscad versions this had significant speed improvemnts,  had not checked if this changed, yet.
 
On 07.06.21 18:12, LenStruttmann wrote:
Found it:

In Preferences -> Advanced -> OpenSCAD Language Features

...I had both of these checked.  

Since you routinely pass h=0 to cylinder(), my OpenSCAD complained loudly.



Sent from the OpenSCAD mailing list archive at Nabble.com.

_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]



_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
tp3
Reply | Threaded
Open this post in threaded view
|

Re: Constructive Syntax Library for Openscad: no difference(), no for(), no intersection() used

tp3
In reply to this post by Peter
On 07.06.21 18:25, [hidden email] wrote:
> the stack trace is not showing the actual cause, sadly.

I think it's WARNING for cylinder with height = 0 and "Stop on
first warning" enabled.

I'm not getting that warning with the release version either,
so maybe it's missing a file locally or something?

ciao,
  Torsten.
_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
-- Torsten
Reply | Threaded
Open this post in threaded view
|

Re: Constructive Syntax Library for Openscad: no difference(), no for(), no intersection() used

Peter
In reply to this post by tp3
Torsten i would really apreciate that, consider both animations GPLed as
well anyway.
do you think it would perhaps be better to wait with it, until i produce
a tutorial, to not put people off, or not?
Peter
On 07.06.21 16:43, Torsten Paul wrote:

> On 07.06.21 16:28, jon wrote:
>> It is a little of a feedback loop.  More tutorials make it> more
>> accessible which means more people use it.  But I do
>> understand the challenge of writing the tutorials.
> Yes, I've seen that often, it needs quite some leap of faith
> that people will appreciate the effort spent with documentation.
>
> A full tutorial is a lot of work, so it maybe would be an
> option to have a small "getting started" or cheat sheet style
> introduction.
>
> With that documentation link, and if I'm allowed to use that
> nice animation, I would be happy to add the library also to
> the https://openscad.org/libraries.html page.
>
> ciao,
> Torsten.
> _______________________________________________
> OpenSCAD mailing list
> To unsubscribe send an email to [hidden email]



_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Constructive Syntax Library for Openscad: no difference(), no for(), no intersection() used

Peter
In reply to this post by tp3
Torsten, now that i can not deny there is interest, i will make some
finer grained examples in some of the days coming, and will let the list
and you know about it, so i would prefer to wait with the publicity for now.

the library itself has ambitions to be suitable to beginners too, who
could its basic features still relieving them of vector notation.
i just need to make a basic tutorial.
by the way, it does not provide any parts  out of the box, (with the the
exception of screwM4, screwM3 and nutM3 modules). It rather tries to
provide a concise and flexible way of constructing own parts.
Peter

P.S: i appreciate your effort of creating a Visible and useful reference
of existing libraries.
it is definitely very needed. i am sure i have recreated some of the
already existing functionality as well. Perhaps, the Library
announcement could somehow be more centralized (like an rss-agregator in
the openscad homepage or something)
On 07.06.21 18:28, Torsten Paul wrote:

> Hi!
>
> On 07.06.21 18:07, petka wrote:
>> Torsten i would really apreciate that, consider both animations
>> GPLed as well anyway.
> Thanks, saves me some time as so far we do have small animations
> for all the libraries that are listed. I suppose that may need to
> stop at some point, but so far there's not a huge list.
>
>> do you think it would perhaps be better to wait with it, until
>> i produce a tutorial, to not put people off, or not?
> That's hard to tell. As the library maybe does not really target
> beginners it might be ok to just give a starting point in the top
> level ReadMe and some pointers to look into the examples, e.g. a
> list of parts supported.
>
> As always more documentation is better, but also takes extra
> effort to maintain. And there's often people complaining and it
> needs some strength to ignore those.
>
> I don't think the OpenSCAD homepage and even specifically the
> library page is visited that often. Partially because the web
> site is not updated a lot. So I would not expect a lot of angry
> people storming in with complaints, but listing with some basic
> docu might bring a user or two already.
>
> But I'm happy to wait too, so just let me know when you want to
> go ahead, or even put in a PR against the web page directly.
>
> ciao,
>    Torsten.

_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to [hidden email]