discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

What's your opinion on these criticisms of Openscad?

Q
Qiang
Thu, Sep 17, 2015 4:04 PM

I am in the process of choosing a CAD software to learn. I find a
review on openscad, and would like to see expert opinions on the following
criticism.
If these are ture, what is the impact on product design?

1 language does not have variables, for example. It has things
which look as if they should be variables, but they are in fact
evaluated statically at compile-time and are really just
constants. There is an "assign" function which can alter values
at run-time, but it does not give the full behavior of a
variable (you cannot use it to pass variable parameters, for
example). It's a bit like one of the (so called) "functional
programming language" beloved of mathematicians, but wrapped in
the syntax of a procedural programming language without even
the (dubious, in my opinion) clarity of a real functional
programming language.

2 Openscad does not really do CSG. It is a front-end for either
of two "rendering" (using the term loosely) libraries: OpenCSG
and GCAL. OpenCSG is a splendidly tricky program which appears to
do CSG without actually ever doing the calculations for the
geometry. As a display engine, OpenCSG is brilliant. But there's
more to CAD than display. GCAL is indeed a library of
computational graphics algorithms which can do the geometry "for
real." But OpenSCAD uses CGAL just to generate
STL (stereolithography) output files. There is no way to get at
the geometry calculated by GCAL within the OpenSCAD model.  He
then gives an example that openscad can't find the intersection
point of 3 planes.

3 OpenSCAD lacks the powerful capabilities of local
coordinate systems.

The link to the review is here
http://www.circuitousroot.com/artifice/drafting/reviewing-the-options/index.html#brl-cad

Thank you for your help!

I am in the process of choosing a CAD software to learn. I find a review on openscad, and would like to see expert opinions on the following criticism. If these are ture, what is the impact on product design? 1 language does not have variables, for example. It has things which look as if they should be variables, but they are in fact evaluated statically at compile-time and are really just constants. There is an "assign" function which can alter values at run-time, but it does not give the full behavior of a variable (you cannot use it to pass variable parameters, for example). It's a bit like one of the (so called) "functional programming language" beloved of mathematicians, but wrapped in the syntax of a procedural programming language without even the (dubious, in my opinion) clarity of a real functional programming language. 2 Openscad does not really do CSG. It is a front-end for either of two "rendering" (using the term loosely) libraries: OpenCSG and GCAL. OpenCSG is a splendidly tricky program which appears to do CSG without actually ever doing the calculations for the geometry. As a display engine, OpenCSG is brilliant. But there's more to CAD than display. GCAL is indeed a library of computational graphics algorithms which can do the geometry "for real." But OpenSCAD uses CGAL just to generate STL (stereolithography) output files. There is no way to get at the geometry calculated by GCAL within the OpenSCAD model. He then gives an example that openscad can't find the intersection point of 3 planes. 3 OpenSCAD lacks the powerful capabilities of local coordinate systems. The link to the review is here http://www.circuitousroot.com/artifice/drafting/reviewing-the-options/index.html#brl-cad Thank you for your help!
NH
nop head
Thu, Sep 17, 2015 4:15 PM

I think the simple answer is none of those features are necessary to
describe a 3D object, so for those that think logically and understand high
school maths and geometry there are no limits to what you can create with
OpenScad. For people that think visually conventional 3D CAD is probably
better.

On 17 September 2015 at 17:04, Qiang godblessfq@gmail.com wrote:

I am in the process of choosing a CAD software to learn. I find a
review on openscad, and would like to see expert opinions on the following
criticism.
If these are ture, what is the impact on product design?

1 language does not have variables, for example. It has things
which look as if they should be variables, but they are in fact
evaluated statically at compile-time and are really just
constants. There is an "assign" function which can alter values
at run-time, but it does not give the full behavior of a
variable (you cannot use it to pass variable parameters, for
example). It's a bit like one of the (so called) "functional
programming language" beloved of mathematicians, but wrapped in
the syntax of a procedural programming language without even
the (dubious, in my opinion) clarity of a real functional
programming language.

2 Openscad does not really do CSG. It is a front-end for either
of two "rendering" (using the term loosely) libraries: OpenCSG
and GCAL. OpenCSG is a splendidly tricky program which appears to
do CSG without actually ever doing the calculations for the
geometry. As a display engine, OpenCSG is brilliant. But there's
more to CAD than display. GCAL is indeed a library of
computational graphics algorithms which can do the geometry "for
real." But OpenSCAD uses CGAL just to generate
STL (stereolithography) output files. There is no way to get at
the geometry calculated by GCAL within the OpenSCAD model.  He
then gives an example that openscad can't find the intersection
point of 3 planes.

3 OpenSCAD lacks the powerful capabilities of local
coordinate systems.

The link to the review is here

http://www.circuitousroot.com/artifice/drafting/reviewing-the-options/index.html#brl-cad

Thank you for your help!


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

I think the simple answer is none of those features are necessary to describe a 3D object, so for those that think logically and understand high school maths and geometry there are no limits to what you can create with OpenScad. For people that think visually conventional 3D CAD is probably better. On 17 September 2015 at 17:04, Qiang <godblessfq@gmail.com> wrote: > I am in the process of choosing a CAD software to learn. I find a > review on openscad, and would like to see expert opinions on the following > criticism. > If these are ture, what is the impact on product design? > > 1 language does not have variables, for example. It has things > which look as if they should be variables, but they are in fact > evaluated statically at compile-time and are really just > constants. There is an "assign" function which can alter values > at run-time, but it does not give the full behavior of a > variable (you cannot use it to pass variable parameters, for > example). It's a bit like one of the (so called) "functional > programming language" beloved of mathematicians, but wrapped in > the syntax of a procedural programming language without even > the (dubious, in my opinion) clarity of a real functional > programming language. > > 2 Openscad does not really do CSG. It is a front-end for either > of two "rendering" (using the term loosely) libraries: OpenCSG > and GCAL. OpenCSG is a splendidly tricky program which appears to > do CSG without actually ever doing the calculations for the > geometry. As a display engine, OpenCSG is brilliant. But there's > more to CAD than display. GCAL is indeed a library of > computational graphics algorithms which can do the geometry "for > real." But OpenSCAD uses CGAL just to generate > STL (stereolithography) output files. There is no way to get at > the geometry calculated by GCAL within the OpenSCAD model. He > then gives an example that openscad can't find the intersection > point of 3 planes. > > 3 OpenSCAD lacks the powerful capabilities of local > coordinate systems. > > The link to the review is here > > http://www.circuitousroot.com/artifice/drafting/reviewing-the-options/index.html#brl-cad > > Thank you for your help! > > > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >
MK
Marius Kintel
Thu, Sep 17, 2015 4:29 PM

On Sep 17, 2015, at 12:04 PM, Qiang godblessfq@gmail.com wrote:

1 language does not have variables

OpenSCAD has immutable values, which doesn’t stop you from doing anything in terms of programming. It just tends to confuse programmers who have only been exposed to procedural languages. Some people call this "iterative programmers disease”.
If you’re confused by functional programming, you can use one of the packages generating OpenSCAD code using other programming languages (python, ruby, C etc.).

2 Openscad does not really do CSG.

As opposed to his beliefs, CGAL doesn’t do CSG in the way he thinks either; they just do meshes.
Doing a real NURBS BRep-style CSG engine would be cool though. Still waiting for a good Open Source CAD kernel who can do that :)

3 OpenSCAD lacks the powerful capabilities of local coordinate systems.

No idea what that means; I’m not familiar with Varkon.

-Marius

On Sep 17, 2015, at 12:04 PM, Qiang <godblessfq@gmail.com> wrote: > 1 language does not have variables OpenSCAD has immutable values, which doesn’t stop you from doing anything in terms of programming. It just tends to confuse programmers who have only been exposed to procedural languages. Some people call this "iterative programmers disease”. If you’re confused by functional programming, you can use one of the packages generating OpenSCAD code using other programming languages (python, ruby, C etc.). > 2 Openscad does not really do CSG. As opposed to his beliefs, CGAL doesn’t do CSG in the way he thinks either; they just do meshes. Doing a real NURBS BRep-style CSG engine would be cool though. Still waiting for a good Open Source CAD kernel who can do that :) > 3 OpenSCAD lacks the powerful capabilities of local coordinate systems. > No idea what that means; I’m not familiar with Varkon. -Marius
R
runsun
Thu, Sep 17, 2015 4:57 PM

review wrote

review
http://www.circuitousroot.com/artifice/drafting/reviewing-the-options/index.html#openscad
:
In a programmatic system such as Varkon, if you have two entities which
intersect and you want to position a third entity at that intersection,
you just do it. There are routines in Varkon which take two entities and
return their intersection in a form suitable for futher use. In OpenSCAD
this is not possible. It isn't just that they haven't implemented the
functions yet; it's not possible given the underlying system. It never
will be possible. OpenSCAD itslef never calculates the geometry of the
solid constructions, and has no conception of what an intersection might
be.

OpenSCAD has two ways to create shapes, one is the commonly used primary
shape modules like cube(), cylinder(), etc. The other is polyhedron in which
you can define points of your choice.

It's true that OpenSCAD doesn't calc something like intersection using the
primary shapes modules, but you can always achieve this with polyhedron. In
my code, I'm doing the intersection all the time, line-line, line-plane,
plane-plane ... etc. I believe it's won't be that difficult to find
intersection of object.


$  Runsun Pan, PhD

$ -- libs: doctest , faces ( git ), offliner ( git );

tips: hash( 1 , 2 ), sweep , var

$ -- Linux Mint 17.1 Rebecca x64  + OpenSCAD 2015.03.15/2015.04.01.nightly

--
View this message in context: http://forum.openscad.org/What-s-your-opinion-on-these-criticisms-of-Openscad-tp13866p13870.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

review wrote > > review > <http://www.circuitousroot.com/artifice/drafting/reviewing-the-options/index.html#openscad> > : > In a programmatic system such as Varkon, if you have two entities which > intersect and you want to position a third entity at that intersection, > you just do it. There are routines in Varkon which take two entities and > return their intersection in a form suitable for futher use. In OpenSCAD > this is not possible. It isn't just that they haven't implemented the > functions yet; it's not possible given the underlying system. It never > will be possible. OpenSCAD itslef never calculates the geometry of the > solid constructions, and has no conception of what an intersection might > be. OpenSCAD has two ways to create shapes, one is the commonly used primary shape modules like cube(), cylinder(), etc. The other is polyhedron in which you can define points of your choice. It's true that OpenSCAD doesn't calc something like intersection using the primary shapes modules, but you can always achieve this with polyhedron. In my code, I'm doing the intersection all the time, line-line, line-plane, plane-plane ... etc. I believe it's won't be that difficult to find intersection of object. ----- $ Runsun Pan, PhD $ -- libs: doctest , faces ( git ), offliner ( git ); tips: hash( 1 , 2 ), sweep , var $ -- Linux Mint 17.1 Rebecca x64 + OpenSCAD 2015.03.15/2015.04.01.nightly -- View this message in context: http://forum.openscad.org/What-s-your-opinion-on-these-criticisms-of-Openscad-tp13866p13870.html Sent from the OpenSCAD mailing list archive at Nabble.com.
R
runsun
Thu, Sep 17, 2015 5:28 PM

kintel wrote

3 OpenSCAD lacks the powerful capabilities of local coordinate systems.

No idea what that means; I’m not familiar with Varkon.

All OpenSCAD shapes start with O=[0,0,0], with the x,y,z in the [1,0,0],
[0,1,0], [0,0,1] directions, resp. That's the only one GLOBAL coordinate
system we have. If we want to make a shape on some point P, we make it on O
first, then move it to P.

A local coordinate system is a coordinate system right on P, such that the
obj can be made directly on P.

This sound redundent if O => P is just a parallel translation. But often
cases are that it requires rotations as well. So in many .scad practices, we
see users in struggle trying to make the rotation/translation right.

I personally think that this criticism has it's point. In fact, I create my
polyhedron lib entirely in local coordiate system. In my lib, given any 3
points in the space, users can make a shape on that.

This doesn't mean the OpenSCAD global coordinate system is at fault. In many
many cases, a global system is much quicker and easier to handle, especially
when users want is not complicated, and I believe this is the application
that OpenSCAD is designed for. But if we go beyond some complication level,
a local coordinate system will be very handed.


$  Runsun Pan, PhD

$ -- libs: doctest , faces ( git ), offliner ( git );

tips: hash( 1 , 2 ), sweep , var

$ -- Linux Mint 17.1 Rebecca x64  + OpenSCAD 2015.03.15/2015.04.01.nightly

--
View this message in context: http://forum.openscad.org/What-s-your-opinion-on-these-criticisms-of-Openscad-tp13866p13871.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

kintel wrote >> 3 OpenSCAD lacks the powerful capabilities of local coordinate systems. >> > No idea what that means; I’m not familiar with Varkon. All OpenSCAD shapes start with O=[0,0,0], with the x,y,z in the [1,0,0], [0,1,0], [0,0,1] directions, resp. That's the only one GLOBAL coordinate system we have. If we want to make a shape on some point P, we make it on O first, then move it to P. A local coordinate system is a coordinate system right on P, such that the obj can be made directly on P. This sound redundent if O => P is just a parallel translation. But often cases are that it requires rotations as well. So in many .scad practices, we see users in struggle trying to make the rotation/translation right. I personally think that this criticism has it's point. In fact, I create my polyhedron lib entirely in local coordiate system. In my lib, given any 3 points in the space, users can make a shape on that. This doesn't mean the OpenSCAD global coordinate system is at fault. In many many cases, a global system is much quicker and easier to handle, especially when users want is not complicated, and I believe this is the application that OpenSCAD is designed for. But if we go beyond some complication level, a local coordinate system will be very handed. ----- $ Runsun Pan, PhD $ -- libs: doctest , faces ( git ), offliner ( git ); tips: hash( 1 , 2 ), sweep , var $ -- Linux Mint 17.1 Rebecca x64 + OpenSCAD 2015.03.15/2015.04.01.nightly -- View this message in context: http://forum.openscad.org/What-s-your-opinion-on-these-criticisms-of-Openscad-tp13866p13871.html Sent from the OpenSCAD mailing list archive at Nabble.com.
TN
Tom.Nally@shell.com
Thu, Sep 17, 2015 5:34 PM

Say that you create a tall, slender cylinder in OpenScad, one whose height is perhaps 4 times larger than its diameter.  At the time of the cylinder's creation, the global axes and the cylinder's local axes will be identical, with the local z- and global-z axis lying along the longitudinal axis of the cylinder.

Now say that you rotate the cylinder 45 degrees about the global x-axis.  The global x-axis and the cylinder's local x-axis still remain the same after the rotation.  However, the cylinder's local z-axis will rotate along with the cylinder so that it remains aligned with the cylinder's longitudinal axis.  Likewise, the cylinder's local y-axis rotates, too.

You can see why this kind of a feature might be useful (not that I'm arguing for it).  There are some occasions when a designer might want to translate or rotate an object relative the object's local axes rather than the global axes.  For example, if the slender cylinder were a bolt instead, and if the bolt was rotated 45 degrees about the global x-axis, and if you wanted to prepare an animation where the bolt tightens, then you would want to rotate the bolt about its longitudinal axis, which would be its local z-axis.

I suspect that the mathematics for tracking and displaying an object's local axes would be very complex.

In my business (structural engineering) most structural analysis software packages will recognize that each structural member has its own set of local axes, in addition to the global axes that tend to govern for the entire structure.

3 OpenSCAD lacks the powerful capabilities of local coordinate systems.

No idea what that means; I'm not familiar with Varkon.

-Marius


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

Say that you create a tall, slender cylinder in OpenScad, one whose height is perhaps 4 times larger than its diameter. At the time of the cylinder's creation, the global axes and the cylinder's local axes will be identical, with the local z- and global-z axis lying along the longitudinal axis of the cylinder. Now say that you rotate the cylinder 45 degrees about the global x-axis. The global x-axis and the cylinder's local x-axis still remain the same after the rotation. However, the cylinder's local z-axis will rotate along with the cylinder so that it remains aligned with the cylinder's longitudinal axis. Likewise, the cylinder's local y-axis rotates, too. You can see why this kind of a feature might be useful (not that I'm arguing for it). There are some occasions when a designer might want to translate or rotate an object relative the object's local axes rather than the global axes. For example, if the slender cylinder were a bolt instead, and if the bolt was rotated 45 degrees about the global x-axis, and if you wanted to prepare an animation where the bolt tightens, then you would want to rotate the bolt about its longitudinal axis, which would be its local z-axis. I suspect that the mathematics for tracking and displaying an object's local axes would be very complex. In my business (structural engineering) most structural analysis software packages will recognize that each structural member has its own set of local axes, in addition to the global axes that tend to govern for the entire structure. > 3 OpenSCAD lacks the powerful capabilities of local coordinate systems. > No idea what that means; I'm not familiar with Varkon. -Marius _______________________________________________ OpenSCAD mailing list Discuss@lists.openscad.org http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
GW
G. Wade Johnson
Thu, Sep 17, 2015 5:39 PM

That review is relatively amusing.

A lot of the complaints are the same ones I've seen in the past from
programmers who only know one language looking at a language they are
unfamiliar with. "See it's not a real language, it doesn't have this
one feature that I like in the form that I like it."<shrug/>

The variables in OpenSCAD could be called "constants" or "immutable
variables". They cannot change over time, because OpenSCAD models a
physical object...time is not a factor.

On Thu, 17 Sep 2015 16:04:00 +0000 (UTC)
Qiang godblessfq@gmail.com wrote:

I am in the process of choosing a CAD software to learn. I find a
review on openscad, and would like to see expert opinions on the
following criticism.
If these are ture, what is the impact on product design?

1 language does not have variables, for example. It has things
which look as if they should be variables, but they are in fact
evaluated statically at compile-time and are really just
constants. There is an "assign" function which can alter values
at run-time, but it does not give the full behavior of a
variable (you cannot use it to pass variable parameters, for
example). It's a bit like one of the (so called) "functional
programming language" beloved of mathematicians, but wrapped in
the syntax of a procedural programming language without even
the (dubious, in my opinion) clarity of a real functional
programming language.

Note that this is his opinion. Many of us have done functional
programming in more procedural languages for years.

2 Openscad does not really do CSG. It is a front-end for either
of two "rendering" (using the term loosely) libraries: OpenCSG
and GCAL. OpenCSG is a splendidly tricky program which appears to
do CSG without actually ever doing the calculations for the
geometry. As a display engine, OpenCSG is brilliant. But there's
more to CAD than display. GCAL is indeed a library of
computational graphics algorithms which can do the geometry "for
real." But OpenSCAD uses CGAL just to generate
STL (stereolithography) output files. There is no way to get at
the geometry calculated by GCAL within the OpenSCAD model.  He
then gives an example that openscad can't find the intersection
point of 3 planes.

It could be fair to point out that OpenSCAD does not deal with infinite
objects like planes. The 0-dimensional point at the intersection of 2
planes is kind-of outside the scope of a tool for generating 3D models
for fabrication. It's kind of like making the argument that all
programming languages are bad, because they can't properly deal with
infinite precision real numbers.

However, as a practical point, I can easily find the intersection
volume of 3 thin planes.

3 OpenSCAD lacks the powerful capabilities of local
coordinate systems.

That's a fair point. I haven't actually needed it in my designs. But, I
could pretty easily simulate it in my modules.

I would have really loved to see his example code, (it seems to be
giving a 404 at the moment). From his description, he seems to be
mistaking his inexperience with the tool for limitations of the tool.

G. Wade

--
A tautology is a thing which is tautological.

That review is relatively amusing. A lot of the complaints are the same ones I've seen in the past from programmers who only know one language looking at a language they are unfamiliar with. "See it's not a real language, it doesn't have this one feature that I like in the form that I like it."<shrug/> The variables in OpenSCAD could be called "constants" or "immutable variables". They cannot change over time, because OpenSCAD models a physical object...time is not a factor. On Thu, 17 Sep 2015 16:04:00 +0000 (UTC) Qiang <godblessfq@gmail.com> wrote: > I am in the process of choosing a CAD software to learn. I find a > review on openscad, and would like to see expert opinions on the > following criticism. > If these are ture, what is the impact on product design? > > 1 language does not have variables, for example. It has things > which look as if they should be variables, but they are in fact > evaluated statically at compile-time and are really just > constants. There is an "assign" function which can alter values > at run-time, but it does not give the full behavior of a > variable (you cannot use it to pass variable parameters, for > example). It's a bit like one of the (so called) "functional > programming language" beloved of mathematicians, but wrapped in > the syntax of a procedural programming language without even > the (dubious, in my opinion) clarity of a real functional > programming language. Note that this is his opinion. Many of us have done functional programming in more procedural languages for years. > 2 Openscad does not really do CSG. It is a front-end for either > of two "rendering" (using the term loosely) libraries: OpenCSG > and GCAL. OpenCSG is a splendidly tricky program which appears to > do CSG without actually ever doing the calculations for the > geometry. As a display engine, OpenCSG is brilliant. But there's > more to CAD than display. GCAL is indeed a library of > computational graphics algorithms which can do the geometry "for > real." But OpenSCAD uses CGAL just to generate > STL (stereolithography) output files. There is no way to get at > the geometry calculated by GCAL within the OpenSCAD model. He > then gives an example that openscad can't find the intersection > point of 3 planes. It could be fair to point out that OpenSCAD does not deal with infinite objects like planes. The 0-dimensional point at the intersection of 2 planes is kind-of outside the scope of a tool for generating 3D models for fabrication. It's kind of like making the argument that all programming languages are bad, because they can't properly deal with infinite precision real numbers. However, as a practical point, I can easily find the intersection volume of 3 thin planes. > 3 OpenSCAD lacks the powerful capabilities of local > coordinate systems. That's a fair point. I haven't actually needed it in my designs. But, I could pretty easily simulate it in my modules. > The link to the review is here > http://www.circuitousroot.com/artifice/drafting/reviewing-the-options/index.html#brl-cad I would have really loved to see his example code, (it seems to be giving a 404 at the moment). From his description, he seems to be mistaking his inexperience with the tool for limitations of the tool. G. Wade > Thank you for your help! > > > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org -- A tautology is a thing which is tautological.
PF
Peter Falke
Thu, Sep 17, 2015 6:10 PM

Have a look at some of the (video) tutorials to get an impression of
Openscad:

https://www.youtube.com/watch?v=XNghpq9sKRc

http://edutechwiki.unige.ch/en/OpenScad_beginners_tutorial

(I just googled these, ther are more around.)

All things on http://www.thingiverse.com/ that use the costumiser are using
Openscad, and a lot of other model are made with Openscad, there, as well.

2015-09-17 19:39 GMT+02:00 G. Wade Johnson gwadej@anomaly.org:

That review is relatively amusing.

A lot of the complaints are the same ones I've seen in the past from
programmers who only know one language looking at a language they are
unfamiliar with. "See it's not a real language, it doesn't have this
one feature that I like in the form that I like it."<shrug/>

The variables in OpenSCAD could be called "constants" or "immutable
variables". They cannot change over time, because OpenSCAD models a
physical object...time is not a factor.

On Thu, 17 Sep 2015 16:04:00 +0000 (UTC)
Qiang godblessfq@gmail.com wrote:

I am in the process of choosing a CAD software to learn. I find a
review on openscad, and would like to see expert opinions on the
following criticism.
If these are ture, what is the impact on product design?

1 language does not have variables, for example. It has things
which look as if they should be variables, but they are in fact
evaluated statically at compile-time and are really just
constants. There is an "assign" function which can alter values
at run-time, but it does not give the full behavior of a
variable (you cannot use it to pass variable parameters, for
example). It's a bit like one of the (so called) "functional
programming language" beloved of mathematicians, but wrapped in
the syntax of a procedural programming language without even
the (dubious, in my opinion) clarity of a real functional
programming language.

Note that this is his opinion. Many of us have done functional
programming in more procedural languages for years.

2 Openscad does not really do CSG. It is a front-end for either
of two "rendering" (using the term loosely) libraries: OpenCSG
and GCAL. OpenCSG is a splendidly tricky program which appears to
do CSG without actually ever doing the calculations for the
geometry. As a display engine, OpenCSG is brilliant. But there's
more to CAD than display. GCAL is indeed a library of
computational graphics algorithms which can do the geometry "for
real." But OpenSCAD uses CGAL just to generate
STL (stereolithography) output files. There is no way to get at
the geometry calculated by GCAL within the OpenSCAD model.  He
then gives an example that openscad can't find the intersection
point of 3 planes.

It could be fair to point out that OpenSCAD does not deal with infinite
objects like planes. The 0-dimensional point at the intersection of 2
planes is kind-of outside the scope of a tool for generating 3D models
for fabrication. It's kind of like making the argument that all
programming languages are bad, because they can't properly deal with
infinite precision real numbers.

However, as a practical point, I can easily find the intersection
volume of 3 thin planes.

3 OpenSCAD lacks the powerful capabilities of local
coordinate systems.

That's a fair point. I haven't actually needed it in my designs. But, I
could pretty easily simulate it in my modules.

The link to the review is here

http://www.circuitousroot.com/artifice/drafting/reviewing-the-options/index.html#brl-cad

I would have really loved to see his example code, (it seems to be
giving a 404 at the moment). From his description, he seems to be
mistaking his inexperience with the tool for limitations of the tool.

G. Wade

--
A tautology is a thing which is tautological.


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

Have a look at some of the (video) tutorials to get an impression of Openscad: https://www.youtube.com/watch?v=XNghpq9sKRc http://edutechwiki.unige.ch/en/OpenScad_beginners_tutorial (I just googled these, ther are more around.) All things on http://www.thingiverse.com/ that use the costumiser are using Openscad, and a lot of other model are made with Openscad, there, as well. 2015-09-17 19:39 GMT+02:00 G. Wade Johnson <gwadej@anomaly.org>: > That review is relatively amusing. > > A lot of the complaints are the same ones I've seen in the past from > programmers who only know one language looking at a language they are > unfamiliar with. "See it's not a real language, it doesn't have this > one feature that I like in the form that I like it."<shrug/> > > The variables in OpenSCAD could be called "constants" or "immutable > variables". They cannot change over time, because OpenSCAD models a > physical object...time is not a factor. > > On Thu, 17 Sep 2015 16:04:00 +0000 (UTC) > Qiang <godblessfq@gmail.com> wrote: > > > I am in the process of choosing a CAD software to learn. I find a > > review on openscad, and would like to see expert opinions on the > > following criticism. > > If these are ture, what is the impact on product design? > > > > 1 language does not have variables, for example. It has things > > which look as if they should be variables, but they are in fact > > evaluated statically at compile-time and are really just > > constants. There is an "assign" function which can alter values > > at run-time, but it does not give the full behavior of a > > variable (you cannot use it to pass variable parameters, for > > example). It's a bit like one of the (so called) "functional > > programming language" beloved of mathematicians, but wrapped in > > the syntax of a procedural programming language without even > > the (dubious, in my opinion) clarity of a real functional > > programming language. > > Note that this is his opinion. Many of us have done functional > programming in more procedural languages for years. > > > 2 Openscad does not really do CSG. It is a front-end for either > > of two "rendering" (using the term loosely) libraries: OpenCSG > > and GCAL. OpenCSG is a splendidly tricky program which appears to > > do CSG without actually ever doing the calculations for the > > geometry. As a display engine, OpenCSG is brilliant. But there's > > more to CAD than display. GCAL is indeed a library of > > computational graphics algorithms which can do the geometry "for > > real." But OpenSCAD uses CGAL just to generate > > STL (stereolithography) output files. There is no way to get at > > the geometry calculated by GCAL within the OpenSCAD model. He > > then gives an example that openscad can't find the intersection > > point of 3 planes. > > It could be fair to point out that OpenSCAD does not deal with infinite > objects like planes. The 0-dimensional point at the intersection of 2 > planes is kind-of outside the scope of a tool for generating 3D models > for fabrication. It's kind of like making the argument that all > programming languages are bad, because they can't properly deal with > infinite precision real numbers. > > However, as a practical point, I can easily find the intersection > volume of 3 thin planes. > > > 3 OpenSCAD lacks the powerful capabilities of local > > coordinate systems. > > That's a fair point. I haven't actually needed it in my designs. But, I > could pretty easily simulate it in my modules. > > > The link to the review is here > > > http://www.circuitousroot.com/artifice/drafting/reviewing-the-options/index.html#brl-cad > > I would have really loved to see his example code, (it seems to be > giving a 404 at the moment). From his description, he seems to be > mistaking his inexperience with the tool for limitations of the tool. > > G. Wade > > > Thank you for your help! > > > > > > > > _______________________________________________ > > OpenSCAD mailing list > > Discuss@lists.openscad.org > > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org > > > -- > A tautology is a thing which is tautological. > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >
NH
nop head
Thu, Sep 17, 2015 6:14 PM

Whenever you use translate and rotate you create a local coordinate system
underneath them in the tree. If you have a cylinder at an arbitrary angle
and position and you want to put say a sphere on top then you simply
translate the sphere by the height of the cylinder at the same tree level
as the cylinder. If that is not convenient code structure wise you make the
translation and rotation into a module that can be used anywhere. Such a
module could be considered a named local coordinate system.

On 17 September 2015 at 18:39, G. Wade Johnson gwadej@anomaly.org wrote:

That review is relatively amusing.

A lot of the complaints are the same ones I've seen in the past from
programmers who only know one language looking at a language they are
unfamiliar with. "See it's not a real language, it doesn't have this
one feature that I like in the form that I like it."<shrug/>

The variables in OpenSCAD could be called "constants" or "immutable
variables". They cannot change over time, because OpenSCAD models a
physical object...time is not a factor.

On Thu, 17 Sep 2015 16:04:00 +0000 (UTC)
Qiang godblessfq@gmail.com wrote:

I am in the process of choosing a CAD software to learn. I find a
review on openscad, and would like to see expert opinions on the
following criticism.
If these are ture, what is the impact on product design?

1 language does not have variables, for example. It has things
which look as if they should be variables, but they are in fact
evaluated statically at compile-time and are really just
constants. There is an "assign" function which can alter values
at run-time, but it does not give the full behavior of a
variable (you cannot use it to pass variable parameters, for
example). It's a bit like one of the (so called) "functional
programming language" beloved of mathematicians, but wrapped in
the syntax of a procedural programming language without even
the (dubious, in my opinion) clarity of a real functional
programming language.

Note that this is his opinion. Many of us have done functional
programming in more procedural languages for years.

2 Openscad does not really do CSG. It is a front-end for either
of two "rendering" (using the term loosely) libraries: OpenCSG
and GCAL. OpenCSG is a splendidly tricky program which appears to
do CSG without actually ever doing the calculations for the
geometry. As a display engine, OpenCSG is brilliant. But there's
more to CAD than display. GCAL is indeed a library of
computational graphics algorithms which can do the geometry "for
real." But OpenSCAD uses CGAL just to generate
STL (stereolithography) output files. There is no way to get at
the geometry calculated by GCAL within the OpenSCAD model.  He
then gives an example that openscad can't find the intersection
point of 3 planes.

It could be fair to point out that OpenSCAD does not deal with infinite
objects like planes. The 0-dimensional point at the intersection of 2
planes is kind-of outside the scope of a tool for generating 3D models
for fabrication. It's kind of like making the argument that all
programming languages are bad, because they can't properly deal with
infinite precision real numbers.

However, as a practical point, I can easily find the intersection
volume of 3 thin planes.

3 OpenSCAD lacks the powerful capabilities of local
coordinate systems.

That's a fair point. I haven't actually needed it in my designs. But, I
could pretty easily simulate it in my modules.

The link to the review is here

http://www.circuitousroot.com/artifice/drafting/reviewing-the-options/index.html#brl-cad

I would have really loved to see his example code, (it seems to be
giving a 404 at the moment). From his description, he seems to be
mistaking his inexperience with the tool for limitations of the tool.

G. Wade

--
A tautology is a thing which is tautological.


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

Whenever you use translate and rotate you create a local coordinate system underneath them in the tree. If you have a cylinder at an arbitrary angle and position and you want to put say a sphere on top then you simply translate the sphere by the height of the cylinder at the same tree level as the cylinder. If that is not convenient code structure wise you make the translation and rotation into a module that can be used anywhere. Such a module could be considered a named local coordinate system. On 17 September 2015 at 18:39, G. Wade Johnson <gwadej@anomaly.org> wrote: > That review is relatively amusing. > > A lot of the complaints are the same ones I've seen in the past from > programmers who only know one language looking at a language they are > unfamiliar with. "See it's not a real language, it doesn't have this > one feature that I like in the form that I like it."<shrug/> > > The variables in OpenSCAD could be called "constants" or "immutable > variables". They cannot change over time, because OpenSCAD models a > physical object...time is not a factor. > > On Thu, 17 Sep 2015 16:04:00 +0000 (UTC) > Qiang <godblessfq@gmail.com> wrote: > > > I am in the process of choosing a CAD software to learn. I find a > > review on openscad, and would like to see expert opinions on the > > following criticism. > > If these are ture, what is the impact on product design? > > > > 1 language does not have variables, for example. It has things > > which look as if they should be variables, but they are in fact > > evaluated statically at compile-time and are really just > > constants. There is an "assign" function which can alter values > > at run-time, but it does not give the full behavior of a > > variable (you cannot use it to pass variable parameters, for > > example). It's a bit like one of the (so called) "functional > > programming language" beloved of mathematicians, but wrapped in > > the syntax of a procedural programming language without even > > the (dubious, in my opinion) clarity of a real functional > > programming language. > > Note that this is his opinion. Many of us have done functional > programming in more procedural languages for years. > > > 2 Openscad does not really do CSG. It is a front-end for either > > of two "rendering" (using the term loosely) libraries: OpenCSG > > and GCAL. OpenCSG is a splendidly tricky program which appears to > > do CSG without actually ever doing the calculations for the > > geometry. As a display engine, OpenCSG is brilliant. But there's > > more to CAD than display. GCAL is indeed a library of > > computational graphics algorithms which can do the geometry "for > > real." But OpenSCAD uses CGAL just to generate > > STL (stereolithography) output files. There is no way to get at > > the geometry calculated by GCAL within the OpenSCAD model. He > > then gives an example that openscad can't find the intersection > > point of 3 planes. > > It could be fair to point out that OpenSCAD does not deal with infinite > objects like planes. The 0-dimensional point at the intersection of 2 > planes is kind-of outside the scope of a tool for generating 3D models > for fabrication. It's kind of like making the argument that all > programming languages are bad, because they can't properly deal with > infinite precision real numbers. > > However, as a practical point, I can easily find the intersection > volume of 3 thin planes. > > > 3 OpenSCAD lacks the powerful capabilities of local > > coordinate systems. > > That's a fair point. I haven't actually needed it in my designs. But, I > could pretty easily simulate it in my modules. > > > The link to the review is here > > > http://www.circuitousroot.com/artifice/drafting/reviewing-the-options/index.html#brl-cad > > I would have really loved to see his example code, (it seems to be > giving a 404 at the moment). From his description, he seems to be > mistaking his inexperience with the tool for limitations of the tool. > > G. Wade > > > Thank you for your help! > > > > > > > > _______________________________________________ > > OpenSCAD mailing list > > Discuss@lists.openscad.org > > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org > > > -- > A tautology is a thing which is tautological. > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >
PF
Peter Falke
Thu, Sep 17, 2015 6:17 PM

For some cool examples have a look at http://kitwallace.tumblr.com/

[image: image]

2015-09-17 20:14 GMT+02:00 nop head nop.head@gmail.com:

Whenever you use translate and rotate you create a local coordinate system
underneath them in the tree. If you have a cylinder at an arbitrary angle
and position and you want to put say a sphere on top then you simply
translate the sphere by the height of the cylinder at the same tree level
as the cylinder. If that is not convenient code structure wise you make the
translation and rotation into a module that can be used anywhere. Such a
module could be considered a named local coordinate system.

On 17 September 2015 at 18:39, G. Wade Johnson gwadej@anomaly.org wrote:

That review is relatively amusing.

A lot of the complaints are the same ones I've seen in the past from
programmers who only know one language looking at a language they are
unfamiliar with. "See it's not a real language, it doesn't have this
one feature that I like in the form that I like it."<shrug/>

The variables in OpenSCAD could be called "constants" or "immutable
variables". They cannot change over time, because OpenSCAD models a
physical object...time is not a factor.

On Thu, 17 Sep 2015 16:04:00 +0000 (UTC)
Qiang godblessfq@gmail.com wrote:

I am in the process of choosing a CAD software to learn. I find a
review on openscad, and would like to see expert opinions on the
following criticism.
If these are ture, what is the impact on product design?

1 language does not have variables, for example. It has things
which look as if they should be variables, but they are in fact
evaluated statically at compile-time and are really just
constants. There is an "assign" function which can alter values
at run-time, but it does not give the full behavior of a
variable (you cannot use it to pass variable parameters, for
example). It's a bit like one of the (so called) "functional
programming language" beloved of mathematicians, but wrapped in
the syntax of a procedural programming language without even
the (dubious, in my opinion) clarity of a real functional
programming language.

Note that this is his opinion. Many of us have done functional
programming in more procedural languages for years.

2 Openscad does not really do CSG. It is a front-end for either
of two "rendering" (using the term loosely) libraries: OpenCSG
and GCAL. OpenCSG is a splendidly tricky program which appears to
do CSG without actually ever doing the calculations for the
geometry. As a display engine, OpenCSG is brilliant. But there's
more to CAD than display. GCAL is indeed a library of
computational graphics algorithms which can do the geometry "for
real." But OpenSCAD uses CGAL just to generate
STL (stereolithography) output files. There is no way to get at
the geometry calculated by GCAL within the OpenSCAD model.  He
then gives an example that openscad can't find the intersection
point of 3 planes.

It could be fair to point out that OpenSCAD does not deal with infinite
objects like planes. The 0-dimensional point at the intersection of 2
planes is kind-of outside the scope of a tool for generating 3D models
for fabrication. It's kind of like making the argument that all
programming languages are bad, because they can't properly deal with
infinite precision real numbers.

However, as a practical point, I can easily find the intersection
volume of 3 thin planes.

3 OpenSCAD lacks the powerful capabilities of local
coordinate systems.

That's a fair point. I haven't actually needed it in my designs. But, I
could pretty easily simulate it in my modules.

The link to the review is here

http://www.circuitousroot.com/artifice/drafting/reviewing-the-options/index.html#brl-cad

I would have really loved to see his example code, (it seems to be
giving a 404 at the moment). From his description, he seems to be
mistaking his inexperience with the tool for limitations of the tool.

G. Wade

--
A tautology is a thing which is tautological.


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

For some cool examples have a look at http://kitwallace.tumblr.com/ [image: image] 2015-09-17 20:14 GMT+02:00 nop head <nop.head@gmail.com>: > Whenever you use translate and rotate you create a local coordinate system > underneath them in the tree. If you have a cylinder at an arbitrary angle > and position and you want to put say a sphere on top then you simply > translate the sphere by the height of the cylinder at the same tree level > as the cylinder. If that is not convenient code structure wise you make the > translation and rotation into a module that can be used anywhere. Such a > module could be considered a named local coordinate system. > > On 17 September 2015 at 18:39, G. Wade Johnson <gwadej@anomaly.org> wrote: > >> That review is relatively amusing. >> >> A lot of the complaints are the same ones I've seen in the past from >> programmers who only know one language looking at a language they are >> unfamiliar with. "See it's not a real language, it doesn't have this >> one feature that I like in the form that I like it."<shrug/> >> >> The variables in OpenSCAD could be called "constants" or "immutable >> variables". They cannot change over time, because OpenSCAD models a >> physical object...time is not a factor. >> >> On Thu, 17 Sep 2015 16:04:00 +0000 (UTC) >> Qiang <godblessfq@gmail.com> wrote: >> >> > I am in the process of choosing a CAD software to learn. I find a >> > review on openscad, and would like to see expert opinions on the >> > following criticism. >> > If these are ture, what is the impact on product design? >> > >> > 1 language does not have variables, for example. It has things >> > which look as if they should be variables, but they are in fact >> > evaluated statically at compile-time and are really just >> > constants. There is an "assign" function which can alter values >> > at run-time, but it does not give the full behavior of a >> > variable (you cannot use it to pass variable parameters, for >> > example). It's a bit like one of the (so called) "functional >> > programming language" beloved of mathematicians, but wrapped in >> > the syntax of a procedural programming language without even >> > the (dubious, in my opinion) clarity of a real functional >> > programming language. >> >> Note that this is his opinion. Many of us have done functional >> programming in more procedural languages for years. >> >> > 2 Openscad does not really do CSG. It is a front-end for either >> > of two "rendering" (using the term loosely) libraries: OpenCSG >> > and GCAL. OpenCSG is a splendidly tricky program which appears to >> > do CSG without actually ever doing the calculations for the >> > geometry. As a display engine, OpenCSG is brilliant. But there's >> > more to CAD than display. GCAL is indeed a library of >> > computational graphics algorithms which can do the geometry "for >> > real." But OpenSCAD uses CGAL just to generate >> > STL (stereolithography) output files. There is no way to get at >> > the geometry calculated by GCAL within the OpenSCAD model. He >> > then gives an example that openscad can't find the intersection >> > point of 3 planes. >> >> It could be fair to point out that OpenSCAD does not deal with infinite >> objects like planes. The 0-dimensional point at the intersection of 2 >> planes is kind-of outside the scope of a tool for generating 3D models >> for fabrication. It's kind of like making the argument that all >> programming languages are bad, because they can't properly deal with >> infinite precision real numbers. >> >> However, as a practical point, I can easily find the intersection >> volume of 3 thin planes. >> >> > 3 OpenSCAD lacks the powerful capabilities of local >> > coordinate systems. >> >> That's a fair point. I haven't actually needed it in my designs. But, I >> could pretty easily simulate it in my modules. >> >> > The link to the review is here >> > >> http://www.circuitousroot.com/artifice/drafting/reviewing-the-options/index.html#brl-cad >> >> I would have really loved to see his example code, (it seems to be >> giving a 404 at the moment). From his description, he seems to be >> mistaking his inexperience with the tool for limitations of the tool. >> >> G. Wade >> >> > Thank you for your help! >> > >> > >> > >> > _______________________________________________ >> > OpenSCAD mailing list >> > Discuss@lists.openscad.org >> > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >> >> >> -- >> A tautology is a thing which is tautological. >> >> _______________________________________________ >> OpenSCAD mailing list >> 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 > >