Bonding Surface Edge Tutorial
Most surface design programs
use B-spline or NURB surfaces to define curved shapes. Each surface entity is
defined by a rectangular grid of “edit” points. For most CAD programs, the edit
points are the NURB vertex points that don’t lie on the surface, except at the
4 corner points. The edit (vertex)
points just influence the shape of the surface. ProSurf (Pilot3D), on the other
hand, fits or interpolates the surface through these edit points. The floating
vertex points are calculated, but they are hidden. Either way, a single NURB
surface entity is defined by this grid of points. The rows and columns of this
grid are often connected by lines. If the edit points are the floating edit
points, then this grid is called the vertex mesh. To see the shape of the
surface, the program has to draw the associated lines on the surface. For our
interpolated approach, the points are on the surface and all you need to see
are the row and column grid lines on the surface.
The reason this is brought
up is that these defining edit point rows and columns are important. They
define the mathematics used for that surface. They also influence how you can
connect surfaces together. Most objects are not made up of just one NURB
surface. NURB surfaces are defined by their rectangular grid of points and
although you can move those points to any position or shape you want, the shape
is smooth and controllable only for simple variations of a rectangular shape.
This means that you have to break a larger, complicated surface into areas of
connected, rectangular (and triangular)-like NURB surfaces. You can also create
non-rectangular surface shapes by trimming off portions of a NURB surface, but
that discussion has to wait for another tutorial.
Most of the time, you want
to connect two NURB surfaces together so that they match up exactly
edge-to-edge. The two surfaces do not have to be smoothly connected, but they
need to form a “watertight” connection. This means that the two NURB surface
edges match up mathematically exactly. If you zoom in, you will see no gaps.
This is important for construction and for sending the model to solid modeling
programs. Solid modelers can cover tiny gaps between surfaces, but it can cause
problems later on.
The real problem with
connected NURB surfaces is the design process. Most CAD programs call connected
surfaces polysurfaces. This is kind of like a polyline, which is a group of
connected line segments defined as one entity. The programs allow you to
connect the surfaces together at an edge, but you cannot edit their shapes
without “exploding” (disconnecting) the surfaces. This means that when you move
one common surface edge, the other (matching) surface edge does not move along
with it. This makes life very difficult for designing connected NURB surfaces.
ProSurf (Pilot3D) gets
around this problem by setting up geometrical relationships or constraints
between surfaces. The relationships are optional and are defined separately
from the geometry. We call it bonded surfaces or edges. Once two surface edges
are bonded, they can be edited and remain attached. They can also be un-bonded,
if necessary without deleting the surfaces. The only requirement for bonding
is that the two adjoining surface edges must meet up with the exact same number
of defining grid rows or columns. Otherwise, the program cannot guarantee
that the two surfaces meet mathematically exactly (watertight) at the common
edge. ProSurf (Pilot3D) has joining methods for other cases, but it can’t
guarantee watertight connections. For those cases, the connections may be
within building tolerances.
Let’s start with the
simplest case; joining two very simple NURB surfaces. We will create two simple
four corner (two rows and two columns) NURB surfaces and join (bond) them
together.
1. Start up the program.
2. Select the Surf-Add Surf
command.
This command allows you to
define a simple 4-corner surface by picking 4 defining edit points on the
screen. Enter the points as rows (back and forth), rather than clockwise or
counter-clockwise. Do this twice to create two very simple NURB surfaces
side-by-side, as follows:
This shows two (simplest)
NURB surfaces, side-by-side. Before I can bond them together, I have to move or
match up the edge points of one surface with the other. ProSurf (Pilot3D) has a
special command for this.
3. Select the Edit-Match
Point-3D Match command.
This command wants you to
first pick the point you want to move and then pick the point you want it
matched up with. Do this twice to match the surface column points on the left
surface to the ones on the right. It should look like this.
Note that these points are
only matched up and can be separated. The edges are not automatically bonded.
Try moving a point to see what happens.
4. Select the Edit-Move
Point command (on the toolbar too) and move one of the points, like this.
The points were matched up,
but the surfaces were not bonded. (There is also mand to “Merge” points, rather
than match points, together. Merging defines a constraint relationship between
any two edit points so that they remain together when the point is moved. That
can be used for when bonding is not appropriate.)
5. Select the Edit-Undo
command (counter-clockwise arrow on the toolbar).
Now that the two surfaces
edge points are matched up exactly, point for point (only two in this case),
you can bond the surfaces together
6. Select the Surf-Bond
Edge-Bond Edge command.
This command wants you to
pick the common surface edge that you want to bond. It requires that the two
surfaces match up exactly, point-for-point along the common edge. Some
(including myself) have had difficulty with this command because sometimes two
points look exactly the same, but they are not. (One of the future changes to
this command is to look for points that are “close” together. In the mean time,
using the 3D Match command works fine.
To check to see if the Bond
Edge command really works, try moving an edge point.
7. Select the Move Point
command and move one of the points
You should see something
like this.
These are two separate NURB
surfaces that can now be edited without separation.
OK, but what happens now
when you want to add more shape to the surface(s)? This is normally done with
one of the Surf-Add Row/Col commands. When two (or more) surfaces are bonded
together edge-to-edge, the only way to maintain the mathematically perfect bond
when you add a row of column is to make sure you add the row/col across all of
the bonded edges.
8. Select the Surf-Add
Row/Col-Add Row/Col Angle command
This command allows you to
add a new row or column to a surface. This gives you more edit points and more
control over the shape of the surface. Pick in the middle of any of the
vertical columns of either surface. You will see the following.
Notice that the program
checks for bonded edges and makes sure that the row (in this case) is added
across all of the bonded surfaces. This guarantees that a watertight
connection. If the surfaces were just matched up and not bonded, then the add
row/col command would add the row in only one surface.
To test it out, use the move
command to see what happens.
9. Select the Move Point
command and move the middle point of the bonded edge. This is what you should
see.
The two surfaces remain
bonded after the add row/col command.
For bonded edges, ProSurf
(Pilot3D) also allows you convert that edge back and forth between a hard or
knuckle edge and a smooth or curved edge. For a hard or knuckle edge, the
program uses two separate NURB surface entities. When you use the command to
convert it to a smooth edge, the program combines the two surfaces into one
NURB surface. This also means that this “knuckle” command works (or toggles)
both ways. It means that you can use it on any internal row or column of an
existing surface. The program will split the one NURB surface into two separate
NURB surfaces along that row or column, AND that the two surfaces will
automatically be bonded. You do not have to do the bonding. The program does it for you.
10. Select the Surf-Cvt
Row/Col Knuckle command.
Pick the common bonded edge
to create the one, smooth NURB surface show below.
On the other hand, if you
think of this as a single NURB surface (that came from ProSurf or any other
program), then you can split it into two separate NURB surfaces along any
internal row or column. The program will split the surface and make sure that
the common edge is bonded.
11. Pick the middle column
again.
This will convert the one
surface back into two, where you started. Try this command on any internal
row/col of any surface. Click once to convert (toggle) one way, and click again
to convert back where you were.
The picture below shows you
back where you started from.
In some cases, you want to
separate two bonded surfaces. You can un-bond the surfaces, if you want.
12. Select the Surf-Bond
Edge-UnBond Edge
Pick the middle, bonded
edge. The status line says that you are done, but the shape doesn’t change. Use
the Move Point command to check it out.
13. Select the Edit-Move
Point command and move one of the common points.
You will see that only one
of the points move, as seen below.
This covers a quick
introduction to joining and bonding surfaces. The only warning is to be careful
about all of the constraints you place on a model. The downside of parametric
or constraint-based modeling is that you could constrain yourself into a
corner. You could have so many relationships defined that making larger changes
late in the design cycle is very difficult. For ProSurf (Pilot3D), however,
constraints are optional and can be removed without deleting the geometry.