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 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
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
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.
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.
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
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.
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
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
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