NURBS Widget Help
This widget allows the user to manually deform a NURBS (non-uniform
rational b-spline) surface sent over from the fem program. Once deformed
it can be sent back to fem for further analysis.
The NURBS surface is controlled by a grid of control points. Each 4 by 4
set of control points controls one patch of the surface. The user modifies
the surface by moving its control points. The surface must pass through the
4 corner control points of each patch. The other control points along the
edge of the patch control the slope of the surface at the nearest corner and,
in general, will also cause the surface shape to change elsewhere. The four
interior control points of the patch control the cross-derivative of the
surface at whichever patch corner is closest to the control point; this is
not a very intuitive way to control the surface.
To deform the surface, the uses specifies a current control point and then
moves it. The type of the current control point is displayed on the widget
(below the menu bar). The four arrow buttons change the current control point
to be the next one in either the u or the v direction (u is typically around a
cylinder and v is along the length of the cylinder). The X, Y, and Z arrows
move the current control point in the X, Y, and Z directions. Double arrows
move more than singe arrows.
Once deformed, the surface can be sent back to fem by pressing the SEND
button. Fem then performs the specified operation on the surface and passes
back a new surface and some additional information (typically a cost) which
is displayed in the second box below the "Display" heading (initially set to
"Unknown").
Regular Buttons
Point
ALL U
ALL V
Surface
Only one of these four buttons is active at a time. They dictate
which control points actually get moved when you move a control point.
When "Point" is active, only the current control point gets moved (and
any others which are necessary to maintain a reasonable shape). This
is the default. ALL U, means move all the other control points of the
same type (e.g., corner; see menu entries below) with identical v
coordinates (so an entire u row is moved). Similarly for ALL V.
"Surface" moves all control points on the entire surface (of the same type).
Typically, you would set the type of control point to "corner" prior
to moving an entire row, column, or surface.
Send Toggle/Menu Button
The button under the "Send" heading (not the "SEND" button) can have
one of several values (initially set to "cost request"). These
values are gotten by clicking on the button with the left mouse button
or by picking from its menu with the right mouse button.
send - cost request
You can send several different types of requests back to the finite
element program (along with the current surface). This item simply asks for
the cost of the current surface to be returned back to DAVE. This cost will
be displayed in the rightmost box immediately under the Options Menu bar.
send - min & cost request
Minimize the surface; send back the new surface and cost.
send - min and quit fem
Minimize the surface, then quit. This only makes sense to do if fem
has been started up in such a way as to write out the final surface to a
file.
send - quit fem
This just tells fem to terminate immediately.
send - other
This is reserved for future expansion. It tells fem to perform
"other" operations - none of which are defined yet. See the description
of "equal message" below.
Display Toggle/Menu Button
The button under "Display" can have one of several values. These
values are gotten by clicking on the button with the left mouse button
or by picking from its menu with the right mouse button.
nurb surface
nurb patches
nurb polygons
The NURBS surface can be displayed as a surface, or just a patch outlines
(much faster), or as polygon outlines (each patch is split into polygons before
display). Normally you would display the surface as patches for speed while
picking a useful view and then switch back to surface mode.
nurb off
The surface (or patches or polygons) can be turned off with this item.
Menu Items
Control Points
The display of the control points for the surface can be turned on or off.
Display Point
When picked, this item causes a "jack" to be displayed at the current
control point.
Display Point Size
This pops us a widget to control the size of the jack. You will not
see the new jack size until you HIDE this widget.
All Points
Corner Points
du Points
dv Points
duv Points
By default, as you use the arrow buttons to move from one control point
to the next, you always move to the next control point. But, as mentioned
above, it is much easier to interpret what some control points do than others.
Thus, if you want to limit which type of control points are chosen as you move
around, you can pick which subset you want here.
equal message
Each of the above messages can be followed by any arbitrary text
(message). In the implementation an equals sign separates the basic
message (e.g., "Cost" or "MinAndCost") and this additional arbitrary
message. Hence the name. This message should be in the same format
as command line options to fem. Thus the message:
-O 2 -w .2 .3 .4 .2 .1 -1.0
tells fem to use the Powell minimization method with the specified
weights. Note: this message is sent every time anything is sent,
until it is explicitly cleared (I think). You can precede the message
list with a -v if you want fem to echo the commands seen (to stdout,
which may have been redirected to file, depending upon how you started
fem).
This capability lets you see, for instance, how the cost of the
current surface would change if different weights were used. It
allows you to minimize using one minimization algorithm, and then
use that minimum surface as the starting point for a different
minimization algorithm.
consistency check
This is for debugging. It checks to make sure that by moving the control
points we haven't ended up with some sort of invalid surface (invalid as far
as the fem program is concerned).
Copyright 1995 by Lawrence M. Lifshitz and the University of
Massachusetts Medical School. All rights reserved.