solidview - display the results of a finite element analysis program
solidview [ options ] model [ models ... ]
Solidview takes data calculated by a finite element analysis program and
allows the user to interact with it. In its most basic form, solidview
displays polygonal data and allows you to orient a cutting plane through
the objects. The appearance of the models will vary depending on which
4D machine solidview is running on; on GT systems, the area outside the
cutting plane will be semi-transparent; on systems that cannot do alphablending,
the transparent area will be rendered in wireframe.
Data may also have additional information associated with it; this data
usually represents stresses inside the object and is calculated by a finite
element analysis program, although the values can represent other
paramaters (i.e. temperature, turbulence, etc). This data is represented
by different colors in the transparent half of the object.
Both the object itself and the stresses associated with it can be animated;
for example, you can observe how the stresses on a piston change as
it goes through the combustion cycle. Note that all of this information
is already stored in the data file, and solidview merely interpolates
between the pre-comupted 'frames' of data.
Finally, solidview can communicate with a separate analysis program
through shared memory, displaying the results as they are calculated. If
the environment variable SOLIDVIEW_ANALYSIS is set to the name of an
analysis program, solidview will try to start it up and communicate with
it if analysis is turned on (see the description of the analysis menu entry
Solidview is controlled by using the mouse, keyboard, and popup menus.
Note that the popup menus are designed so that it is easy to choose
several options at a time at any given submenu level; the menus stay up
until you choose their gray title bar. Here is a complete description of
Left Mouse [Toc] [Back]
This button moves the objects closer or farther away when the button
is held down and the mouse is moved toward the top or bottom of the
Middle Mouse [Toc] [Back]
This button rotates the object based on the mouse's absolute position
on the screen.
Holding both buttons down reorients the cutting plane based on the
mouse's absolute position on the screen. (If iso-contours are enabled,
these keys may control the iso-contours; see 'I' command
Right Mouse [Toc] [Back]
Brings up popup menus.
Keyboard Commands [Toc] [Back]
Will pause/unpause any animation or auto-rotation of the cutting
plane and scene. Mouse and keyboard input is processed even when
solidview is paused.
When animating, the + and - keys will step forward/backward a frame.
When run with the -iso iso-contour command line option, the 'S' key
will enable the calculation and display of iso-contours.
When iso-contours are enabled, the 'I' key will make the left+middle
mouse buttons control the position of the iso-contour surface. Positioning
the mouse to the far left of the window corresponds to low
values of stress, the right side to high values. 'XYZR' keys These
keys control cutting-plane motion (with the left and middle mouse
buttons held down). 'R', the default, will allow you to rotate the
cutting plane. 'X', 'Y', and 'Z' allow you to translate the cutting
plane along its YZ, XZ, and XY axes, respectively. 'D' key This key
will dump the current values for the scene and cutting plane rotations
to standard output in the form of ATTRIBUTE commands that can
be put inside model files to control the default orientations and
Menus [Toc] [Back]
This menu changes based on what parts have been added to the
display. The currently selected part will have arrows around its
name; the To choose a different object, just select that menu entry.
The 'Add Model' option lets you add all of the parts in a model to
the display. Note that this will be the only entry on the menu if
no parts have been added. Also note that a part may be added more
than once (although it doesn't make a lot of sense to do so).
'Delete' removes the part from the display; you may add it again using
'Add Model'. 'Toggle' will toggle the part on and off; if it is
off, it is not displayed. 'Modify' will bring up another set of
menus that allows you to change how the part is displayed. The
first eight entries let you choose the paramater you want to change
(it will be surrounded by arrows); the 'Display' sub-menu changes
how (or if) that part is displayed. Usually, only the front, back
and cut surfaces of the part are displayed. Here are descriptions
of the surfaces that can be displayed and how they can be displayed.
Allows you to display all of the polygons (both internal and
external) in the object (see the 'Display' options below).
Controls the display of the polygons on the outer surface of
Controls the display of the polygons in front of the clipping
plane. They are usually displayed as alpha-blended stress
values (lines on machines that can't alpha-blend).
Controls the display of the polygons formed by the intersection
of the model and the cutting plane. Usually they are displayed
as polygonal stress values.
Controls the display of the polygons in back of the clipping
plane. Usually they are displayed as lighted polygons using
the 'silver' material.
If solidview is started with the '-iso' command line option,
then it can comput iso-contour surfaces inside the data. An
iso-contour surface is a surface inside the model where all
stress values are the same. You must first turn on isocontouring
by pressing the 's' key on the keyboard. Pressing
the 'i' key will make the left+middle mouse buttons control
which contour to display instead of re-orienting the clipping
plane. Turning off other the display of other parts, turning
on this option, and then animating the stresses can yield a
very nice display.
Front Surface of Iso-Contour
Back Surface of Iso-Contour
These two options don't do anything in the current version of
The options in this sub-menu allow you to change the display of
whatever paramater is chosen above.
Display as solid polygons. The color of the polygons
depends on the Stresses, Materials, User Materials, and
Alpha options (see below).
Display in wireframe. The color of the lines depends on
the Stresses, Materials, User Materials, and Alpha options
This option is currently broken, but will be fixed.
The colors of the polygons or lines displayed will be
determined by the stress values in the model at that
The colors of the polygons or lines will depend on the
surface normal at each point and the material chosen.
Note that currently iso-contour surfaces have no surface
normals, so specifying a material for them doesn't work
If you use the -umats command-line option, this entry will
allow you to select a user-defined material. See the file
/usr/demos/Genera_Demos/solidview/data/body.mat for an example.
Turns display of this part of the model completely on or
Allows you to specify the alpha-blending component of the
part. An alpha of 0 will make the part totally transparent,
an alpha of 255 will make it totally opaque.
Motion [Toc] [Back]
These options allow you to control how things move.
If on, the entire scene will rotate by itself. This option is
turned on by default. The space bar will pause the display until
it is hit again.
on, the cutting plane will rotate by itself. This option is
tured off by default. The space bar will pause the display until
it is hit again.
A solidview file may contain several 'frames' of data, showing
a model in various positions with various stresses associated
with it. solidview can interpolate between these frames, gen
erating real-time animated sequences.
Allows you to animate the movement of models. Either the
entire model may move (in the case of the piston model,
for example), or part of the model may stretch/bend/twist
(in the case of the beam models, for example).
Allows you to animate the stress values associated with a
model as it moves.
Type Solidview will interpolate the data in two different ways;
using a sine wave, which gives a smooth, cyclic effect, or
as a simple linear ramp, running from the beginning of the
cycle to the end and then abruptly starting over again.
Allows you to control the range of time values over which
the animation takes place.
Allows you to control how finely solidview interpolates
the intermediate stresses and displacements; a large value
gives you very smooth motion, but is correspondingly
Resets animation values back to their default values.
Attempts to start up the program specified in the
'SOLIDVIEW_ANALYSIS' environment variable and communicate with
it through shared memory to generate displacement and stress
values in real time. This option is likely to change or disappear
with the next version of solidview; more general analysis
is being integrated into the code. Documentation on the shared
library interface will be written when the code is stable.
Resets the view and turns the 'Scene Spin' and 'Plane Spin' options
Stress [Toc] [Back]
This entry allows you to determine which stresses are displayed;
sig1, sig2, and sig3 correspond to the element of stress in the x,
y, and z directions, while SI and SE are the elements of stress in
the two vector coordinates. Real Time Stress will be supported in
the next version of solidview.
Light Color [Toc] [Back]
Lets you change the color of the light source.
Light Type [Toc] [Back]
Lets you change the type of light (inifinite or local).
Other [Toc] [Back]
A few miscellaneous, useful options:
Saves a RGB image file containing the contents of solidview's
window into the model files' directory. Note that you must
have write permission in that directory for this option to
work. The filename used will be the name of the last model added
to the display, with a number and the extension '.rgb' added
to the name (i.e. "engine.fea.1.rgb"). Image files may be
displayed using the ipaste(1) program.
If on, will write lots of information about the calculations it
is performing to the window it was run from.
If on, will write out information when objects are loaded and
during other lengthy activities. Verbose is on by default.
Exit Makes solidview go away cleanly. It is a good idea to use this menu
entry, since if you just kill solidview any programs it might have
started up (like thermal) will hang around, eating up CPU time.
Most command line options may be preceded by 'no' to turn them off; some
options take arguments, which should be separated from the option by a
space or tab character.
Automatically detect sharp edges. If two polygons that share an
edge have greatly differing face normals (controled by the edge
tolerance paramater; see below), solidview will create separate vertex
normals for each polygon to preserve the sharp edge. Off by default.
Defines the edge tolerance paramater. 0.1 by default.
Allows iso-contour generation. Off by default.
Force larger iso-contour memory. x is the number of iso-contour polygons
allocated per polygon in the model, and is 1 by default.
Inform the user of progress by writing messages to stderr. On by
Print statistics about the program as it does its calculations. Off
Keep aspect ratio 1 to 1 when starting. This only applies to initial
size of the window; the window may later be resized to a different
aspect ratio. Off by default.
Use the user-defined material definitions contained in named file.
Normally, no user-defined materials are available.
Define the field-of-view, in degrees. Defaults to 60.0 degrees.
Define near clipping plane. Defaults to 0.1.
Define far clipping plane. Defaults to 5.0.
Start window in a pre-defined position. Off by default.
Define x-origin used by -prefpos. Default is 100.
Define y-origin used by -prefpos. Default is 100.
Define width used by -prefpos. Default is 800.
Define height used by -prefpos. Default is 800.
Force machine type to str. Defaults to the string returned by the
gversion(3) call. This affects the default setting of -alpha,
-czclear and -quad (see below). See gversion(3) for valid machine
Start in alpha-blending mode. On by default for GT-type machines,
off for G's and Personal Irises.
Allow czclear usage. Czclear is a command that speeds up graphics
by clearing both the color bitplanes and the z-buffer on certain
machines. On by default for machines that benefit from it.
Force quad-word alignment. Data aligned on quad-word boundaries is
sent to the graphics hardware much faster, improving performance.
On by default.
Currently, solidview accepts three kinds of input formats. One of the
formats is obtained from the results of the ANSYS finite element program.
The other format is derived from the results of FEAP (Finite Element
Analysis Program) and the third format is polygonal data. The following
sections explain the syntax of these three formats. The text following
the ';' is a line by line explanation of the syntax; it is not the part
of the input file. The words in lower case are variables. Solidview
files should be named 'filename.fea', although this naming convention is
FORMAT I (Ansys) [Toc] [Back]
Following is the content of the input file obtained from ANSYS:
PART: partname ; the name of the part. A file can have multiple parts
; partname cannot have embedded blanks
FEM: ANSYS ; indicates that the part is in ANSYS file format
NODES 6 ; indicates that a list of nodes follows
nn ; number of nodes
1 x y z u v w ; x y z are x y and z coordinates (real)
2 x y z u v w ; u v w are currently ignored but need to be present
nn x y z u v w
ELEMENTS 12 ; indicates that a list of elements follow
ne ; number of elements (must be 8 noded brick elements)
1 mat rel type n1 n2 ... n8 ; set mat = rel = type = 1
2 mat rel type n1 n2 ... n8 ; n1 to n8 defines the element
ne mat rel type n1 n2 ... n8 ;
STRESSES 5 ; indicates that a list of stresses follow per node
ns ; ns = nn
1 s1 s2 s3 s4 s5 s6 ;
DISPLACEMENTS 3 ; list of nodal displacements follow
nd ; number of displacements entries = nx
1 d1 d2 d3 ; x y and z displacement (real) of a node
nd d1 d2 d3
PART: part2 ; if a file has more than one part ...
FORMAT II (FEAP) [Toc] [Back]
Following is the content of the input file obtained from FEAP:
PART: partname ; part name (no embedded blanks allowed)
FEM: FEAP ; indicates that the part is in FEAP format
PC-FEAP: Three Dim.. ; title card
nn ne nm nsd ndn nne ; # of nodes, # of elements, # of materials,
; # of spatial degree of freedom (3), # of degree of
; freedom per node, # of nodes per element (8).
x y z ; x y and z coordinates of nn nodes.
x y z ; last node (nn)
n1 n2 n3 n4 n5 n6 n7 n8 m1 ; n1 to n8 are nodes of brick element, m1 is mtl.
n1 n2 n3 n4 n5 n6 n7 n8 m1 ; last element (ne)
b1 b2 b3 ; boundary condition codes per node per DOF. (integers)
. ; eg. if ndn = 3 we will have 3 entries per line
. ; -1 means fixed DOF, 0 means free
b1 b2 b3 ; last node (nn)
f1 f2 f3 ; specified forces and displacements code (real)
. ; -1 means displacement, 0 means force
f1 f2 f3 ; for last node (nn)
t1 ; nodal temperatures
tnn ; for last node (nn)
m1 m2 m3 m4 m5 m6 m7 ; material dof map (integers) per material
mv1 mv2 mv3 ... mv18 ; material values (real) per material
Nodal Stess = ... ; Stress title
ns nn ; # of stresses and # of nodes
s1 s2 s3 ... sns ; stresses per node
s1 s2 s3 ... sns ; last node (nn)
Displacement Time .. ; title for displacement
nd nn ; # of displacement and # of nodes
d1 d2 ... dnd ; displacement per node
d1 d2 ... dnd ; last node (nn)
FORMAT III (Polygonal Data) [Toc] [Back]
Following is the content of the input file which has polygonal data :
PART: partname ; name of the part (no embedded blanks allowed)
ATTRIBUTE: MATERIALS m1 m2 m3 m4 m5 ; these are materials for diff. polygons
; 0 is default, 101,102 are user defined mtls.
; m1 if for all polygons
; m2 is for outer polygons
; m3 is for polygons behind the cutting plane
; m4 is for polygons on the cutting plane
; m5 is for polygons in front of the cutting plane
ATTRIBUTE: SCENE_ORIENTATION ; xyz angle, representing the axis
; to rotate around, and amount to
ATTRIBUTE: PLANE_ORIENTATION ; xyz angle
ATTRIBUTE: SCENE_ROTATION ; xyz angle
ATTRIBUTE: PLANE_ROTATION ; xyz angle
FEM: POLYGON ; indicates that the part is in polygonal data
Polygons generated by ... ; title card
nn ; number of nodes
x y z ; x y and z coordinates for nodes
x y z ; for last node (nn)
np ; number of polygons
m nv n1 n2 n3 ... nnv; material type, # of vertex per poly, vertex list
m nv n1 n2 n3 ... nnv; for last polygon (np)
Stresses ; title card
ns nn ; number of stresses (<= 6) and number of nodes
s1 ... sns ;
s1 ... sns ; for last node (nn)
Displacements ; title card
nd nn ; number of displacement and number of nodes
d1 ... ndn ; displacement per node
d1 ... ndn ; for last node (nn)
/usr/demos/General_Demos/solidview/data contains sample data files.
These are ascii files; see them for examples of the formats accepted by
The menu structure should be replaced with a panel interface.
Front/Back surface of iso-contour option doesn't work.
Hidden line option doesn't work.
The program exits if it is unsuccessful at opening the image file for the
'Save Image' option.
PPPPaaaaggggeeee 11111111 [ Back ]