hi all,
Since this little discussion Tor and I have stems from the original posting by
Doug on Shade 3D, I thought it might be good to share it with the community
again. Especially since many of you seem interested in Computer Aid for
Industrial Design. I try to give an explanation why some CAD applications just
can't do what you would like to them to do;
Tor Jessen wrote:
>
> Hello again Jeroen
> You wrote:
> >Really good 3D software? I thought that FormZ was pretty good for its
> >price?
> You are right there, but in your "article" you talked about solid
> software, like SolidWorks and formZ, that worked with surface solids. I
> have always belived that a solid software worked with volumes, so I
> really learnt something. But, I understand you say that softwares working
> with volumes are better. What software would you then say is the best?
> IDEAS, Pro/E, CATIA?
> (All very far from ordinary budgets).
>
Tor,
Let's define solid modeling somewhat clearer for you: it works with closed
volumes, so that you can always say that a certain point in space is either
inside or outside the volume. This is opposed to surface modeling, which only
concerns 2D planes in 3D space; surfaces have no thickness.
I guess that you have had the experience that you created a simple object in a
surface modeler and, by accident, you dragged a side of the object with your
mouse. The object is probably not a closed volume anymore (if it ever was
one): the 'shell' has opened. The surface model of an object actually has no
knowledge that the faces of the object should always stick together, so it
allowed your mouse to drag one of the faces independant of the other faces.
There are really two fundamental kinds of solid modeling:
Constructive Solid Geometry (CSG) and
Boundary Representation (B-Rep).
In CSG, the volumes are defined by primitives, such as cube, sphere, cylinder.
A cube would be defined by 'the definition of A Cube': three orthogonal
vectors, the three vectors have the same length, etcetera. When you place a
cube in your model, the software will only want to know (1) its starting
point, and (2) the length of a rib (edge). The modeling kernel has a
predefined set of these primitives in its programming code as if it was a box
with Lego in it.
In B-Rep, the volumes are defined by their boundary faces. Like I told you
last time, a cube would be made up from a set of 6 faces (2D surface patches)
that share 12 edges (the boundaries of the surface patches) and 8 nodes (the
corners of the cube). The B-Rep model explicitly stores the shape of each
face, the position of each node and length/shape of each edge. A definition of
a surface in this representation can be considered to be the same as in a
surface modeler.
Both models have a way of knowing that the faces of the object that you create
should form a closed volume.
Imagine that I want to make a freeform deformation on one of the sides of the
cube. I don't want to have a predefined primitive like a cylinder to glue on a
face of the cube, no, I want something really smooth. Then I have two options:
(1) create a cute surface and stick it to the cube, without any spaces between
the surface and the face of the cube, like a piece of cloth that is stapled to
a wooden cube.
(2) substitute one of the faces (a surface itself) of the cube with the new
cute surface.
In the first case (1), there would be a mismatch: if I calculate the volume of
my new cube, I would still get the original
V=Length_edge*Length_edge*Length_edge and an error message that it couldn't
include all the face information. It looks good on screen, but it's rubbish
for downstream use. In the second case, the cube is no longer a cube as we
know it. 5 of my faces are still flat, but the sixth one is the new surface.
Surprise, surprise: the last option is only possible if the B-Rep
representation is used in the geometric model: In CSG a cube is *defined* to
have equal faces, there is no definition for each separate face. Hence, we
can't substitute one of the faces with a new face. In the case of a B-Rep
modeler, it is of course possible to offer the user a ready-made cube in his
menu, which can still be edited (as in the given example) after the user has
put it in his design.
The bottom line is:
** All solid models work with volumes, surface models don't (thus often
causing 'open' objects)
** For us, the proof of the pudding in solid modeling is the way a model is
able to handle both freeform shapes and closed volumes. As an industrial
designer, I don't want to be limited to a certain set of primitive volumes, I
want to create freeform surfaces. However, I don't want to create shapes that
are impossible to manufacture.
Tor, you seem hard-pressed for a good piece of software. I really can't say
which software is The Best. Most mid- to high-end software combines CSG and
B-Rep fundamentals ('hybrid modeler'). However, it depends on the
implementation whether the possibilities have been applied usefully. The
geometric modeling that I describe above is often bought from another company,
and transplanted into the CAD software maker: UG, SolidEdge and -Works and
MicroStation use the Parasolid geometric modeling kernel whereas AutoCAD and
Vellum a.o. use the ACIS kernel (which uses its .SAT file format for storage
of solid models). Pro/E, IDEAS, CATIA have their own kernels.
Two pieces of software that seem pretty powerful and deserve some introduction
in the Industrial Design world, are Varimetrix Designer and Cad.Lab Eureka.
They both are based completely on B-Rep and consider all lines to be NURBS
(including a straight line). This last thing is advantageous when you want to
change from a straight line to a cute curve after you have created your form.
(The downside is that they are not available for the MacOS, and only using
NURBS costs loads of RAM and CPU-time)
my $0.02 (or somewhat more),
--
J E R O E N P U L L E S
Varimetrix Designer - http://www.varimetrix.com and http://www.vxd.de
Cad.Lab Eureka gold - http://www.cadlab.com and http://www.cadlab.it
P.S.
I felt that I shouldn't go into surface modeling (the stuff with the patches)
here, as I am not familiar in that field.