Professional Documents
Culture Documents
Entity Dependencies
Any engineer knows that design is rarely a linear process: starting from a set of objectives,
proceeding through a series of predefined steps, and arriving at a final design. Engineering would
not be a very interesting vocation if it were. In most cases design is actually a very complex iterative
process: pushing through several design stages, evaluating the resulting design against the objectives,
backtracking through some or all design stages, taking new paths, perhaps even going back to the
beginning and redefining the objectives. Particularly in the design of 3D entities with subjective
aesthetic requirements, many cycles of visual evaluation and refinement are typical. The problem is
that each time you backtrack, you have to do all the design steps from that point forward all over
again.
In MultiSurf you can establish relationships between entities that make this process easier. MultiSurf
supports numerous kinds of relationships, such as (but not limited to):
linear distance
arc-length distance
coincident with (or constrained to) a curve
coincident with (or constrained to) a surface
mirrored location
projected location
arc tangency
G1 and G2 surface continuity
The relationships are stored in the model file, so that if one or more of the underlying entities is
changed, the dependent entity (and all of its dependents, and all of their dependents, etc.)
automatically change and update to preserve the relationships.
Built-in Relationships
In MultiSurf, relationships are built into the entity definitions. For example, by creating a bead entity,
you automatically have a point that is coincident with its parent curve. This makes for a larger
number of entity types to choose from, but each type of entity has a descriptive name that is easy to
learn. To continue with beads, there are several types of bead entities, including the Bead entity just
introduced (which is a bead located by t-parameter), the Arc-length Bead (a bead located by arc-
length), and the XYZ Bead (a bead located by an X, Y, or Z value). For details about these entities, see
their respective entries in the “Entity Descriptions” chapter.
MultiSurf also has automatic relations. Another way to create a Bead entity is to preselect a curve and
click a “quick point” ⎯ a bead will be automatically created on that curve. For details, see “Creating
Entities - Quick Points”.
Parametric Curves
All of the curves you can form in MultiSurf are defined by reference to a “parameter” t, which takes
the value 0 at one end of the curve (the “start”) and 1 at the other end (the “end”). The rule that
defines the curve from its data points is written, mathematically or in computer code, in terms of the
variation of t. You can think of each point of a curve as being labeled by a specific value of t (Fig. 1).
In many situations t is roughly the arc length from the start of the curve to a given point, divided by
the total arc length between the curve ends.
Z
t=.2 t=.5
t=0
t=.8
t=1
Y
X Fig. 1. A curve marked at t = .1 intervals.
It is quite accurate and appropriate to think of the generation of a parametric curve as being a
continuous mapping or correspondence between the real numbers from 0 to 1 and points in 3-
dimensional space (Fig. 2). You can also think of the curve as being the path of a moving point and t
as being time.
t
0 .5 1
Fig. 2. A representation of the t parameter space corresponding to Fig. 1.
Actually, all the curve types used in MultiSurf exist beyond their nominal endpoints of t = 0 and 1.
For example, you can put a bead on a curve at t = -0.1 or at t = 1.2. These beads would be points off
the ends of the curve, on a logical, smooth extension of the curve itself.
Parametric Surfaces
All of the surfaces you can form with MultiSurf (except for Trimmed Surfaces) are defined with
reference to a pair of parameters, u and v, each of which has a nominal range of 0 to 1. The rule that
defines the surface in terms of its basis curves and/or points is written in terms of these two
parameters. You can think of every point of a surface as being labeled with a particular pair of values
for u and v. Generation of the surface is a continuous mapping from points in the unit square to
points in 3D space. We refer to the unit square as the “u-v parameter space” of the surface. It is a 2D
space, each of whose points corresponds to a point on the surface.
Z
1,0 v=1
edge
ge
v
u=0 ed
1,1
u=1 edge
v=0 edge 0,1
u X Y
0,0
2-D parameter space
3-D surface
Fig. 3. A parametric surface (right) and its u-v parameter space (left).
At any point on a parametric surface there is a direction (called the “u-direction”) in which u
increases while v is constant, and similarly there is a direction (called the “v-direction”) in which v
increases while u is constant. The only times you usually need to be conscious of the u- and v-
directions are:
• when placing magnets on the surface; these are located by their u and v parameter values
• when deciding how finely the surface should be subdivided in both directions for tabulation and
display
The four edges of a parametric surface can be identified as u = 0, u = 1, v = 0, and v = 1. The four
corners have (u,v) values of (0., 0.), (0., 1.), (1., 0.), and (1., 1.).
The positive normal direction of any surface (represented by a large arrow when entity orientation is
displayed) is determined by using a form of the right hand rule with the u- and v-directions. With
the fingers of your right hand pointing along the positive u direction and your palm facing in the
positive v direction and your thumb pointing perpendicular to u and v, your thumb points in the
direction of positive normal. If you select Reverse Orientation in the Advanced tab of any surface,
the positive normal direction is reversed.
Just as curves exist beyond their nominal endpoints, most MultiSurf surfaces extend smoothly
outside their nominal parameter range of 0 to 1. A magnet placed at u = -0.1, v = 0.45 would be a
point in space lying on the fair extension of the surface outside its nominal boundaries, near the
middle of the u = 0 edge.
Parametric Snakes
Parametric snakes work in a way so similar to parametric curves that it is hardly worth talking about
the differences. There is almost a one-to-one correspondence between curve and snake entities; that
is, there are Line Snakes, B-spline Snakes, C-Spline Snakes, SubSnakes, and Projected Snakes that all
work in a way very similar to the similarly named curves. The biggest difference is that any kind of
snake always is constrained to lie precisely in the surface that it belongs to. Another difference is that
a snake will use magnets or rings in its definition — the two kinds of point entities that always lie in
the surface — where a curve can use any point entity. A third difference is that a snake generally only
has its defined curve shape (Line, Arc, B-spline, etc.) in the u-v parameter space — once it is laid
down on the surface, it most likely will not be a straight line, a circular arc, or a B-Spline curve in 3D
space.
magnets
t v
0 1 u u
0,0
B-spline snake
on 2-D parameter space B-spline snake
on 3-D surface
Just like curves, snakes have a lengthwise parameter named t, which runs from 0. to 1.
When defining snakes we often work in the u-v parameter space of the surface — thinking about
where magnets need to be located in terms of their u and v coordinates and sometimes thinking
about the snake as a curve in the u-v parameter space that gets mapped point by point onto the
surface.
A snake is always a valid substitute for a curve wherever a curve is used.