Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

v19i053: xspringies - it's a spring simulator...no, it's a game, Part01/16

11 views
Skip to first unread message

Douglas DeCarlo

unread,
Mar 26, 1993, 11:11:24 AM3/26/93
to
Submitted-by: d...@gradient.cis.upenn.edu (Douglas DeCarlo)
Posting-number: Volume 19, Issue 53
Archive-name: xspringies/part01
Environment: X11
Supersedes: xspringies: Volume 14, Issue 25-30

README file for XSpringies 1.1 March 1, 1993
==============================

General info:
-------------
XSpringies is a mass and spring simulation system. It's intended use is more
like that of a game, than some design package.

It's written using Xlib only. No Motif or any other widgets sets are used.

The animation in XSpringies is done using an off-screen Pixmap. The next
frame is drawn on this pixmap, then is blitted onto the screen. Since the
frame rate is about 30 frames per second, slower machines (or machines which
have poorly written bit-blitting code) will be deathly slow and blinky.

Installation info:
------------------
First, edit the Imakefile/Makefile.std and change the value of DDIR to reflect
where you want to install the xspringies files. Don't forget the trailing /
on the end of your filename.

If you are using the Imakefile, type "xmkmf".

If you have problems at the beginning, and you are using the
Imakefile, it might be caused by the strange definition I have for
"MKDIRHIER", which I had to redefine because of the silly way Imake
is set up. If this happens, type "which mkdirhier" to see what the
full path for mkdirhier is, and put this in place of the backquoted
expression in the Imakefile. (i.e. - if the full path is
"/usr/local/bin/mkdirhier", then you change the line to
"MKDIRHIER = BourneShell /usr/local/bin/mkdirhier").

Then, type "make install".

Then, just run xspringies and have fun.

Updates
-------
For version 1.1:
Bugs fixed:
- Compiles for NEWS system
- Keyboard input now works under openlook window manager
- Animation no longer gets 'stuck' after like 35 minutes
- File format is more compact by removing unnecessary zeros
(i.e. - before 1.500000, now 1.5) and has more precision to eliminate
tiny errors perceived when saving and reloading a file
- Strange ~-expansion behavior for filenames is gone
- The GO! button replaces the hard to find Action checkbox
- A Delete button was added, which is the same as the Delete key

New features:
- Spring thickness can be specified using the "-st <number>" command
line switch (0 is default width - thin line)
- Instead of the entire screen being bit-blitted, only the bounding box
necessary to draw new objects and cover old objects is drawn. This
greatly speeds up the animation when drawing small objects (such as
a "jello"). If the bounding box changes size periodically (as in the
"pendbees" file), the "-nbb" command line switch disables this feature
to allow for slower, but smoother animation.
- A cursor, and filename editing features were added. It uses emacs-like
keys:
^B/^F = back/forward
^A/^E = goto beginning/end of line
^K/^Y = kill to end of line/yank from kill buffer
^D = delete character under cursor
^U = kill all input
^T = transpose character under cursor with previous character
ESC = exit from filename edit mode

Misc info:
----------
The author of xspringies is Douglas DeCarlo.
Email address: d...@gradient.cis.upenn.edu
Please send any bug-reports/comments/suggestions/demo-files to this address.
#!/bin/sh
# to extract, remove the header and type "sh filename"
if `test ! -s ./xspringies.man`
then
echo "writting ./xspringies.man"
cat > ./xspringies.man << '\BARFOO\'
.TH XSPRINGIES 1 "September 1, 1992"
.SH NAME
xspringies \- a mass and spring simulation system for X windows
.SH SYNTAX
\fBxspringies\fP [ \fIoptions\fP ]
.SH DESCRIPTION
.B xspringies
is a simulator which allows you to interactively create and edit a
system of masses and springs. The parameters of the masses and springs (such
as mass elasticity and spring K) as well as those of the surrounding system
(such as air viscosity and gravity) can be changed.
.sp 0
These systems can be loaded and saved into a file.
.sp 1
I guess you could use
.B xspringies
for real work, but it's really intended to
be a time waster.
.SH OPTIONS
.IP "\-bg \fIcolor\fP"
Specifies the color of the window background. The default is black.
.IP "\-d \fIdispname\fP"
Specifies the display screen on which \fBxspringies\fP displays its window.
If the display option is not specified, \fBxspringies\fP uses the display
screen specified by your DISPLAY environment variable.
.IP "\-display \fIdispname\fP"
This option is the same as the \fB\-d\fP option.
.IP "\-fg \fIcolor\fP"
Specifies the foreground color of the window. The default is white.
.IP "\-geometry \fIgeom\fR"
Specifies the width, height, and location of
the
.B xspringies
window.
If the geometry option is not specified,
.B xspringies
uses default values.
The geometry option has the format
.sp 0
.in +0.5i
[=][\fIwidth\fRx\fIheight\fR][+/-\fIxoffset\fR+/-\fIyoffset\fR].
.in -0.5i
.IP \-nbb
This option turns off the bounding-box optimization.
To produce smooth animation,
.B xspringies
redraws the smallest screen region which contains all objects. For smaller
objects, the performance improvement is very noticible -- this is the
bounding-box optimization. By disabling it with this option,
.B xspringies
redraws the entire display window. On slower machines or larger window
sizes, this can produce slow results.
The main reason for using this option is if the bounding-box changes
size rapidly, causing uneven animation.
.IP "\-hl \fIcolor\fP"
Specifies the color of the button and selection highlights in the window.
This defaults to the foreground color, or to green on color displays.
.IP \-rv
Specifies that the foreground and background colors be reversed.
.IP "\-st \fIthickness\fP"
Specifies the thickness of the springs in pixels (0 is the default value)
.SH SUMMARY OF OPERATION
.ti +2m
The left side of the \fBxspringies\fR window contains the controls, and the
right side contains the display. Masses can be created and placed with the
mouse when in \fBMass\fR mode, and springs can be created when in \fBSpring\fR
mode. Temporary springs that connect the mouse and any mass can be used
to pull on objects. Masses and springs can be selected in edit mode, and
moved around. Parameters of the masses and springs (such as Mass or
Elasticity) can be set upon creation or if they are selected.
.sp 1
.ti +2m
Forces (such as gravity) can be enabled by pressing the appropriate force
button with customizable parameters. Environment parameters such as viscosity
of the medium and stickiness of the walls can also be set. Each of the four
walls can be disabled.
.sp 1
.ti +2m
The animation/simulation is activated by pressing the \fBGO!\fR button.
.sp 1
.ti +2m
The entire system (masses, springs and parameters) can be loaded and saved to
files. \fBXspringies\fR comes with many demonstration files.

.SH CONTROLS
.ti +2m
There are three types of controls (widgets) in \fBxspringies\fR. There
are push buttons, checkboxes and sliders. The push buttons and checkboxes
act in the obvious manner. If you click on them, they get activated.
.sp 1
.ti +2m
Sliders are a little more compilicated. They consist of a left arrow button,
a right arrow button, and a text box. The text box displays the current value.
Clicking on this text box causes it to become highlighted. All text input
then goes to the text box. After entering a value, return accepts it, and
escape cancels.
.sp 0
.ti +2m
The value displayed can also be changed by pressing the arrow buttons.
Using the
.I Left mouse button
causes the value to be incremented or decremented by one step. The
.I Middle mouse button
is the same as the left mouse button, but holding it down causes it to scan
by one step at a time. The
.I Right mouse button
scans like the
.I Middle mouse button
except that it scans 10 steps at a time.

.SH EDITING MODES
.ti +2m
There are three main modes in \fBxspringies\fR.
These are
.I Edit,
.I Mass
and
.I Spring.
In
.I Edit
mode, you can select, move and throw objects. In
.I Mass
mode, you can create masses. In
.I Spring
mode, you can create springs and tug on an object with a spring
connected to the mouse.

More specifically,
.IP "\fIEdit\fR \fBmode:\fB"
\fB-\fR
.I Left mouse button
selects objects.
.sp 0
.ti +2m
If you click on or near an object, it becomes selected, and all other
objects become unselected. If you hold down shift while clicking, the object
becomes selected (or unselected if it was already selected), and all other
objects remain the same.
.sp 0
.ti +2m
If you do not click near an object, dragging the mouse causes a selection box
to appear. Anything within the selection box when the mouse is released
becomes selected. All other masses become unselected, unless the shift
key was held down for the initial click.
.sp 1
\fB-\fR
.I Middle mouse button
moves objects.
.sp 0
.ti +2m
All selected objects move with the mouse. The masses are frozen in their
positions after the initial click. They continue to move relative to the
mouse movement until the middle button is released.
.sp 1
\fB-\fR
.I Right mouse button
throws objects.
.sp 0
.ti +2m
This acts the same way as moving objects with the middle button, except for
the fact that the mouse velocity is transferred to all selected objects when
the right mouse button is released.
.sp 0
.ti +2m
Note: a good way to stop an object from moving is to simply select it and
click the right mouse button.
.IP "\fIMass\fR \fBmode:\fB"
.ti +2m
When you click with the mouse, a mass appears. The mass takes on the values
of the
.I Mass
and
.I Elasticity
sliders. The mass is placed when the mouse
button is released.
.IP "\fISpring\fR \fBmode:\fB"
.ti +2m
When you click with the mouse, if there is a mass nearby, one end of a
spring is connected to it. The other end of the spring is connected to the
cursor until the mouse button is released. If no mass is nearby when the
spring is released, the spring is discarded. The new spring takes on the
values of the
.I Kspring
and
.I Kdamp
sliders. The rest length of the spring is
equal to the length of the spring when it was created.
.sp 1
\fB-\fR
.I Left mouse button
adds a spring between two masses while actively affecting the first mass.
.sp 1
\fB-\fR
.I Middle mouse button
adds a spring between the first mass and the cursor, actively affecting
the first mass. The spring is discarded when the mouse button
is released.
.sp 1
\fB-\fR
.I Right mouse button
adds a spring between two masses. The first mass is not affected by the
spring until the spring is in place after the mouse is released.

.SH OPERATION
.IP "Masses and Springs"
.ti +2m
Accelerations on the masses are calculated according to gravity (and other
special forces), viscous forces, and by forces from the springs. When a mass
collides with a wall, its velocity in the direction of the wall is reversed.
The resulting velocity is multipled by the
.I Elasticity
of the mass. So, an
elasticity of 0.0 causes an inelastic collision (it stops on the wall),
and an elasticity of 1.0 results in an elastic collision.
.sp 0
.ti +2m
If a mass is fixed, all forces on it are ignored. It simply does not move.
Think of it as a nail (a really good one).
.sp 0
.ti +2m
The
.I Mass
and
.I Elasticity
of a mass can be changed by selecting the mass and
changing the values on the corresponding sliders. To make a mass fixed or
unfixed, check or uncheck the
.I Fixed Mass
checkbox while the mass is selected.
.sp 1
.ti +2m
A spring has three parameters associated with it. \fIKspring\fR, \fIKdamp\fR
and rest length. The spring force is calculated as follows (according to
Hooke's law):
.sp 0
.in +10m
.ti -4m
\fBF\fR = - \fIKspring\fR * (length - rest length) - \fIKdamp\fR *
(velocity in spring direction)
.in -10m
.sp 1
.ti +2m
To change the
.I Kspring
or
.I Kdamp
of a spring, change the values of the sliders
when the spring is selected. Pressing the
.I Set Rest Length
button changes the rest length of a selected spring to its current length.

.IP "Forces and sticky stuff"
.ti +2m
There are four special forces. They can be turned on and off by clicking
their appropriate box. When highlighted, the force is on.
Each of these forces has two parameters associated with it (for example,
.I Magnitude
and
.I Direction
for gravity). Only one forces's parameters are displayed at a time (below
the force buttons). Which particular force is shown by a darker box
around that force. This force selector box is moved to another force
whenever a force is turned on.
.sp 1
.ti +2m
Some of the forces are applied relative to some specified origin, or
center point. By default, this center point is the center of the screen.
It can be changed to be any one particular mass by selecting a single mass,
and pushing the
.I Set Center
button. If no masses are selected, the current center is changed to be
the center of the screen.
.sp 0
.ti +2m
Center points are marked by a box around the center mass.
.sp 1
.ti +2m
There are four forces that can be enabled.
The first one, \fIGravity\fR, acts in the familiar manner.
It accelerates masses by the value specified
by
.I Gravity
in a direction specified by
.I Direction.
The
.I Direction
is measured in degrees, with 0.0 degrees being down, increasing
counter-clockwise.
.sp 0
.ti +2m
The second force is a bit strange, and isn't real. Its a force which
attracts the center of mass of all the objects toward the center point.
It has a
.I Magnitude
and a
.I Damping
coefficient.
.sp 0
.ti +2m
The third force is a force which attracts all masses toward the center point.
This force has a
.I Magnitude
and an
.I Exponent
associated with it. The
.I Exponent
is simply how the force relation works. A value of 2.0 means inverse-square
force (the force is inversely proportional to the distance squared). A value
of 0.0 is a constant force independent of position. If the
.I Magnitude
of this force is negative, it becomes a repulsion force.
.sp 0
.ti +2m
The fourth force is a wall repulsion force. Masses are repelled by a force
from each wall that is on. This force has a
.I Magnitude
and
.I Exponent
associated with it. The
.I Exponent
behaves similarly to that of the third force.
.sp 1
.ti +2m
For the most part, most everything obeys
.I f = ma.
The only exceptions are wall bounces and wall stickiness. Another unphysical
aspect is found in some of the special forces (the second and third ones).
If a center point exists, that mass does not receive any force response
from other masses due to the special force. In other words, these two special
forces are not \fIequal and opposite\fR forces. They're pretty much just
unreal.
.sp 1
.ti +2m
.I Viscosity
is a viscous drag force which applies a resistive force on the masses
proportional to their velocity.
.sp 0
.ti +2m
.I Stickiness
is not a real force. When a mass hits a wall, it loses part of its velocity
component in the direction of the wall (in an amount proportional to the
.I Stickiness).
If it loses all of this component, it remains stuck to the
wall. It will remain stuck to the wall until a force (which exceeds an
amount proportional to the
.I Stickiness)
pulls it off the wall.

.IP "Numerics"
.ti +2m
The internals of
.B xspringies
consist of a fourth order Runge-Kutta (RK4) differental equation solver.
Consult a Numerical Methods text for more information. The
.I Time Step
that is used by this solver (the \fBdt\fR) can be set using the slider.
.sp 0
.ti +2m
The solver can be selectively made into an adaptive RK4 solver using the
.I Adaptive Time Step
checkbox. An adaptive solver chooses the best time step value according
to an error calculation. The error is not allowed to exceed the
.I Precision
value. Lower precision values result in smaller time steps. While this
is more accurate, the simulation runs slower.
.sp 0
.ti +2m
You will notice that some objects will tend to "blow up" easily. This is
because the objects are unstable, or are sensitive to small numerical errors.
An object will tend to "blow up" less with smaller time steps.
By using an adaptive solver, the simulation can be made more
accurate only when necessary. This results in a more stable system which
runs at a reasonable speed.

.IP "Walls"
.ti +2m
There are four walls. In case you haven't guessed by now, they are the
.I top, left, right
and
.I bottom
walls. They are located at the window boundaries; they move with
window resizes. Individual walls can be enabled and disabled by checking the
corresponding
.i Walls
checkboxes.
.sp 1
.ti +2m
Walls are only one-way. An object moving from the screen toward a wall will
bounce off the wall. But an object moving from off screen toward
the screen will pass through the walls.

.IP "Saving and Restoring State"
.ti +2m
The state of the world (at least for \fBxspringies\fR)
includes all of the masses
and springs, as well as the system parameters. By pushing the
.I Save State
button, the current system state is saved. By pushing the
.I Restore State button
the previously saved system state is restored (if no previous save was
made, the initial state is used).
.sp 1
.ti +2m
This is useful for temporarily saving a system configuration that you do
not feel like setting up again (or saving to a file), that you might disturb
with experimentation. If you break it, you can
.I Restore State
any number of times you like.
.sp 0
.ti +2m
The
.I Reset
button resets
.B xspringies
to its initial configuration. All the masses and springs are removed, and
the default system parameters are used.

.IP "Saving and Loading Files"
.ti +2m
The system state can be saved to and loaded from files.
By pushing the
.I Load File
button, a previously saved file can be loaded. This will load up all the
masses and springs that were saved, as well as the system parameters.
Any previous state before the load is cleared. Pushing the
.I Save File
button saves this information in the designated file. The
.I Insert File
button is much like the
.I Load File
button, except that the current state is not cleared. Instead, only the
masses and springs are loaded (the system paramaters are not changed), and
are added to the current collection. If no objects are selected when
the
.I Insert File
button is pressed, then all the objects in the file are selected after they
are loaded.
.sp 1
.ti +2m
The filenames are entered in the text window, which is located at the bottom
right of the window. For consistency, the filenames should terminate
with "\fB.xsp\fR". When a file is loaded or saved, this extension is
automatically added if not added by the user.
Standard emacs-like editing features are present. The following key controls
can be used:
.sp 0
.in +1.0i
.ti -0.5i
\fBcontrol-B\fR move cursor backward
.sp 0
.ti -0.5i
\fBcontrol-F\fR move cursor forward
.sp 0
.ti -0.5i
\fBcontrol-A\fR goto beginning of line
.sp 0
.ti -0.5i
\fBcontrol-E\fR goto end of line
.sp 0
.ti -0.5i
\fBcontrol-K\fR kill to end of line
.sp 0
.ti -0.5i
\fBcontrol-Y\fR yank from kill buffer
.sp 0
.ti -0.5i
\fBcontrol-D\fR delete character under cursor
.sp 0
.ti -0.5i
\fBcontrol-U\fR erase all input
.sp 0
.ti -0.5i
\fBcontrol-T\fR transpose character under cursor with previous character
.sp 0
.ti -0.5i
\fBEscape \fR exit from filename edit mode
.sp 0
.sp 1
.in -1.0i
.ti +2m
.sp 0
By default, the directory which contains the
.B xspringies
files is
present automatically. If the environment variable
.B SPRINGDIR
is set, then the default directory is changed to reflect it.
.sp 0
.ti +2m
If a file error occurs (for example, the file does not exist), a beep is
emitted.

.IP "Other stuff"
.ti +2m
The
.I GO!
button simply turns on and off the animation. With
.I GO!
turned off,
.B xspringies
uses up little CPU time.
.sp 1
.ti +2m
The
.I Show Springs
checkbox controls whether or not the springs are drawn. If there are a lot
of springs, animation may go faster with this option on. Sometimes an object
will even look better with only the masses.
.sp 1
.ti +2m
When placing masses or springs, objects can be placed in a gridlike fashion
if the
.I Grid Snap
checkbox is enabled. Masses will be separated (vertically and horizontally)
by the amount specified by the
.I Grid Snap
slider.
.sp 1
.ti +2m
When the
.I Duplicate
button is pushed, all selected masses and springs are duplicated. The copy
is left in the same place, unselected.
.sp 1
.ti +2m
By pushing the
.I Select All
button, all masses and springs are selected.
.sp 1
.ti +2m
By pushing the
.I Delete
button, or pressing the
.I Delete
key, all selected objects are deleted. Note that if a mass is deleted, all
attached springs are also deleted (even if they were not selected).
.sp 1
.ti +2m
The
.I Quit
button quits the program. This same effect is found by pressing the
\fIQ\fR key.

.SH FILE FORMAT
.ti +2m
The
.B xspringies
file format is human readable. Each line consists of a four letter command
string, followed by the parameters for that command. The file must start
with the command "\fB#1.0\fR". (This 1.0 refers to file format version 1.0,
and not the version of xspringies being run) Each of the commands below is
on a line by itself. There are no blank lines allowed. The file must end
in a newline.
.sp 1
The file consists of the following commands:
.sp 0
.in +1.0i
.ti -0.5i
\fBcmas\fR <current \fIMass\fR value>
.sp 0
.ti -0.5i
\fBelas\fR <current \fIElasticity\fR value>
.sp 0
.ti -0.5i
\fBkspr\fR <current \fIKspring\fR value>
.sp 0
.ti -0.5i
\fBkdmp\fR <current \fIKdamp\fR value>
.sp 0
.ti -0.5i
\fBfixm\fR <boolean value for \fIFixed Mass\fR>
.sp 0
.ti -0.5i
\fBshws\fR <boolean value for \fIShow Springs\fR>
.sp 0
.ti -0.5i
\fBcent\fR <mass id number of center mass>
.in -0.2i
If there is no center mass (i.e. - center of screen is to be used), then
the value of \fI-1\fR is used.
.in +0.2i
.sp 0
.ti -0.5i
\fBfrce\fR <force\ id\ number> <boolean\ active> <parameter\ #1\ value> <parameter\ #2\ value>
.in -0.2i
The <force\ id\ number> sequence is as follows:
.in +0.3i
\fB0\fR - Gravity
.sp 0
\fB1\fR - Center of mass attraction force
.sp 0
\fB2\fR - Center attraction force
.sp 0
\fB3\fR - Wall repulsion force
.sp 0
.in -0.3i
.in +0.2i
.sp 0
.ti -0.5i
\fBvisc\fR <current \fIViscosity\fR value>
.sp 0
.ti -0.5i
\fBstck\fR <current \fIStickiness\fR value>
.sp 0
.ti -0.5i
\fBstep\fR <current \fITime Step\fR value>
.sp 0
.ti -0.5i
\fBprec\fR <current \fIPrecision\fR value>
.sp 0
.ti -0.5i
\fBadpt\fR <boolean value for \fIAdaptive Time Step\fR>
.sp 0
.ti -0.5i
\fBgsnp\fR <current \fIGrid Snap\fR value> <boolean\ enable>
.sp 0
.ti -0.5i
\fBwall\fR <boolean\ top> <boolean\ left> <boolean\ right> <boolean\ bottom>
.sp 0
.ti -0.5i
\fBmass\fR <mass\ id\ number> <x\ position\ value> <y\ position\ value> <x\ velocity\ value> <y\ velocity\ value> <mass\ value> <elasticity\ value>
.in -0.2i
For each mass, the <mass\ id\ number> must be unique. They do not need to
be in any order. If a mass is fixed, then the <mass\ value> field is negated.
.in +0.2i
.sp 0
.ti -0.5i
\fBspng\fR <spring\ id\ number> <mass\ #1\ id\ number> <mass\ #2\ id\ number> <Kspring\ value> <Kdamp\ value> <rest\ length\ value>
.in -0.2i
For each spring, the <spring\ id\ number> must be unique. They do not need to
be in any order. The order of the <mass\ id\ number>'s is not important.
.in +0.2i
.sp 1
.in -1.0i
.ti +2m
All \fIvalues\fR are floating point numbers. All \fIid numbers\fR are
positive integers, and all \fIboolean\fR values are non-zero/zero for
True/False. It is possible to feed \fBxspringies\fR bogus values. It may
produce interesting or amusing side effects, but will most likely cause
an object to explode or \fBxspringies\fR to crash.
.SH AUTHOR
.PP
Douglas DeCarlo (d...@gradient.cis.upenn.edu)
.sp 1
Please send demo files, comments, suggestions, bug reports, bug fixes and
enhancements.

.IP "With thanks to:"
.sp 0
Elliott Evans
.sp 0
.in +0.4i
Bitmap slave.
.in -0.4i
.sp 1
Nathan Loofbourrow
.sp 0
.in +0.4i
I bothered him a whole lot about the user interface.
.in -0.4i
.sp 1
Drew Olbrich
.sp 0
.in +0.4i
The blame for "stickiness" falls on him, as well as a few other things.
.in -0.4i
.sp 1
Andy Witkin
.sp 0
.in +0.4i
For teaching a really great physically based modeling course at CMU.
Many ideas (both methods and interface) came from that class.
.in -0.4i
.sp 1
And thanks to the many other people who helped in testing
.B xspringies
and make some of the neat demo files, including
James Helfrich, Brian Kelley, Patrick Lopez, Chris Newman and Jef Poskanzer.

.SH RESTRICTIONS
.B xspringies
runs faster on a monochrome display than on a color display (usually).
.sp 1
You probably don't want to run
.B xspringies
on a slow machine or a machine which does slow bit-blitting operations.
Well, I guess you could... But you would be sorry for even trying.
.sp 1
Here is a good rule: If
.B xspringies
isn't fun to use, then your machine is either too slow, or it is overloaded.
Or maybe you just aren't a fun person. :-)
\BARFOO\
else
echo "will not over write ./xspringies.man"
fi
echo "Finished archive 1 of 16"
exit

exit 0 # Just in case...
--
// ch...@IMD.Sterling.COM | Send comp.sources.x submissions to:
\X/ Amiga - The only way to fly! |
"It's intuitively obvious to the most | sour...@imd.sterling.com
casual observer..." |

Douglas DeCarlo

unread,
Mar 26, 1993, 11:11:49 AM3/26/93
to
Submitted-by: d...@gradient.cis.upenn.edu (Douglas DeCarlo)
Posting-number: Volume 19, Issue 54
Archive-name: xspringies/part02

Environment: X11
Supersedes: xspringies: Volume 14, Issue 25-30

#!/bin/sh


# to extract, remove the header and type "sh filename"

if `test ! -s ./xdisp.c`
then
echo "writting ./xdisp.c"
cat > ./xdisp.c << '\BARFOO\'
/* xdisp.c -- Xlib display code for xspringies
* Copyright (C) 1991,1992 Douglas M. DeCarlo
*
* This file is part of XSpringies, a mass and spring simulation system for X
*
* XSpringies is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 1, or (at your option)
* any later version.
*
* XSpringies is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with XSpringies; see the file COPYING. If not, write to
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/

#include "defs.h"
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/keysym.h>
#include <X11/cursorfont.h>
#include <X11/Xos.h>
#include "obj.h"
#include "bitmap.h"
#include "title.h"
#include "bfbm.h"

/* Mode values */
#define M_EDIT 0
#define M_MASS 1
#define M_SPRING 2

#define M_ACTION 3

/* Behavior function modes */
#define M_BF 4

/* Button values */
#define B_CENTER 0
#define B_RESTLEN 1
#define B_SELECTALL 2
#define B_DELETE 3
#define B_SAVESTATE 4
#define B_RESSTATE 5
#define B_DUPLICATE 6
#define B_INSERTFILE 7
#define B_LOADFILE 8
#define B_SAVEFILE 9
#define B_RESET 10
#define B_QUIT 11

#define C_FIXEDMASS 0
#define C_GRIDSNAP 1
#define C_ADAPTIVE_STEP 2
#define C_WTOP 4
#define C_WLEFT 5
#define C_WRIGHT 6
#define C_WBOTTOM 7
#define C_SHOWSPRING 8

#define S_MASS 0
#define S_ELAS 1
#define S_KSPR 2
#define S_KDAMP 3
#define S_GRAV 4
#define S_GDIR 5
#define S_VISC 6
#define S_STICK 7
#define S_TIMESTEP 8
#define S_GRIDSNAP 9
#define S_PRECISION 10

/* Number of previous mouse state saves */
#define MOUSE_PREV 4

#define NAIL_SIZE 4

/* Number of milliseconds that each drawing takes (to prevent stops) */
#define MIN_DIFFT 100

/* Default highlight color for color screen */
#define HLCOLOR "green"

/* Just in case someone has a 4.2 BSD system (you have my sympathy) */
#ifndef FD_SET
#define fd_set int
#define FD_SET(fd,fdset) (*(fdset) |= (1 << (fd)))
#define FD_CLR(fd,fdset) (*(fdset) &= ~(1 << (fd)))
#define FD_ISSET(fd, fdset) (*(fdset) & (1 << (fd)))
#define FD_ZERO(fdset) (*(fdset) = 0)
#endif

/* X globals */
Display *dpy;
Window main_win, text_win, acts_win, draw_win;
GC fggc, bggc, revgc, hlgc, selectboxgc;
GC sdrawgc, drawgc, erasegc, selectgc, selectlinegc;
Pixmap draw_pm, acts_pm, startup_pm;
int fcolor, bcolor, hcolor;
int main_wid, main_ht, draw_wid, draw_ht, planes, xfd;

/* Other globals */
static int mode = M_EDIT, slid_dt_num, cur_force = 0, action = -1;
static boolean quitting = FALSE;
int cursor_pos = 0, spthick = 0;

/* Current and previous bounding box */
int bb_ulx, bb_uly, bb_lrx, bb_lry;
int bbo_ulx, bbo_uly, bbo_lrx, bbo_lry;
boolean bboxing = TRUE;

/* Current mouse grab for spring */
int static_spring = FALSE;
int startx = 0, prevx = 0, starty = 0, prevy = 0;

t_state mst = {
1.0, 1.0,
1.0, 1.0,
FALSE, TRUE,
-1,
{ -1, -1, -1, -1 },
{ 10.0, 5.0, 10.0, 10000.0 },
{ 0.0, 2.0, 0.0, 1.0 },
0.0, 0.0,
DEF_TSTEP, 1.0,
FALSE, FALSE,
20.0,
TRUE, TRUE, TRUE, TRUE
}, initst, sst;

static double cur_grav_max[BF_NUM] = { 10000000.0, 10000000.0, 10000000.0, 10000000.0 };
static double cur_grav_min[BF_NUM] = { 0.0, -10000000.0, -10000000.0, -10000000.0 };
static double cur_misc_max[BF_NUM] = { 360.0, 10000000.0, 1000.0, 1000.0 };
static double cur_misc_min[BF_NUM] = { -360.0, 0.0, 0.0, -0.0 };

/* Position of Gravity/Direction sliders */
int force_liney, grav_slidx, grav_slidy, dir_slidx, dir_slidy;

/* Mouse recording */
typedef struct {
int x, y;
unsigned long t;
} mouse_info;

static mouse_info mprev[MOUSE_PREV];
static int moffset = 0;
static void mouse_event();

/* File operations globals */
int file_op = F_NONE;
char filename[MAXPATH];

/* clean_up: free all of the X objects created
like pixmaps and gcs
*/
static void clean_up()
{
/* Free up X objects */
XFreePixmap(dpy, draw_pm);
XFreePixmap(dpy, acts_pm);
XFreePixmap(dpy, startup_pm);

XFreeGC(dpy, fggc);
XFreeGC(dpy, bggc);
XFreeGC(dpy, revgc);
XFreeGC(dpy, hlgc);
XFreeGC(dpy, selectboxgc);

XFreeGC(dpy, drawgc);
XFreeGC(dpy, sdrawgc);
XFreeGC(dpy, erasegc);
XFreeGC(dpy, selectgc);
XFreeGC(dpy, selectlinegc);
XCloseDisplay(dpy);
}

/* fatal(msg): print out the message msg, clean up,
and exit
*/
void fatal(msg)
char *msg;
{
if (msg != NULL)
fprintf(stderr, msg);
clean_up();
exit(-1);
}

void disp_filename(cur_reset)
boolean cur_reset;
{
char fbuff[MAXPATH + 256];
int offset;

if (cur_reset)
cursor_pos = strlen(filename);

switch (file_op) {
case F_NONE:
break;
case F_LOAD:
strcpy(fbuff, "Load file: ");
break;
case F_INSERT:
strcpy(fbuff, "Insert file: ");
break;
case F_SAVE:
strcpy(fbuff, "Save file: ");
break;
}

XFillRectangle(dpy, text_win, bggc, 0, 0, draw_wid, T_HT);
if (file_op != F_NONE) {
int cur_offset;

strncat(fbuff, filename, cursor_pos);

if ((offset = strlen(fbuff) + 1 - (draw_wid - F_WID) / F_WID) < 0)
offset = 0;

cur_offset = strlen(fbuff) - offset;

strcat(fbuff, filename + cursor_pos);
XFillRectangle(dpy, text_win, hlgc, cur_offset * F_WID + F_WID/2, 1, F_WID, F_HT);
XDrawString(dpy, text_win, fggc, F_WID/2, F_HT, fbuff + offset, strlen(fbuff + offset));
}
XFlush(dpy);
}

void file_error()
{
XBell(dpy, 50);
}

void reset_bbox()
{
bb_ulx = bbo_ulx = bb_uly = bbo_uly = 0;
bb_lrx = bbo_lrx = draw_wid - 1;
bb_lry = bbo_lry = draw_ht - 1;
}

void calc_bbox()
{
int i, rad, bb_temp;
boolean first = TRUE, fixed;

if (bboxing) {
if (static_spring) {
first = FALSE;
bb_ulx = MIN(startx, prevx);
bb_uly = MIN(starty, prevy);
bb_lrx = MAX(startx, prevx);
bb_lry = MAX(starty, prevy);
}
for (i = 0; i < num_mass; i++) {
if ((masses[i].status & S_ALIVE) || (i == 0 && springs[0].status & S_ALIVE)) {
fixed = (masses[i].status & S_FIXED) && !(masses[i].status & S_TEMPFIXED);
rad = fixed ? NAIL_SIZE : masses[i].radius;

if (i == mst.center_id)
rad += 1;

/* Make sure bounding box includes mass */
if (first) {
bb_ulx = COORD_X(masses[i].x - rad);
bb_uly = COORD_Y(masses[i].y + rad);
bb_lrx = COORD_X(masses[i].x + rad);
bb_lry = COORD_Y(masses[i].y - rad);
first = FALSE;
} else {
if ((bb_temp = COORD_X(masses[i].x - rad)) < bb_ulx)
bb_ulx = bb_temp;
if ((bb_temp = COORD_Y(masses[i].y + rad)) < bb_uly)
bb_uly = bb_temp;
if ((bb_temp = COORD_X(masses[i].x + rad)) > bb_lrx)
bb_lrx = bb_temp;
if ((bb_temp = COORD_Y(masses[i].y - rad)) > bb_lry)
bb_lry = bb_temp;
}
}
}

/* Add bounding strip */
bb_ulx -= spthick + 1;
bb_uly -= spthick + 1;
bb_lrx += spthick + 1;
bb_lry += spthick + 1;

/* Bound within screen */
if (bb_ulx < 0)
bb_ulx = 0;
if (bb_lrx < 0)
bb_lrx = 0;

if (bb_uly < 0)
bb_uly = 0;
if (bb_lry < 0)
bb_lry = 0;

if (bb_ulx >= draw_wid)
bb_ulx = draw_wid - 1;
if (bb_lrx >= draw_wid)
bb_lrx = draw_wid - 1;

if (bb_uly >= draw_ht)
bb_uly = draw_ht - 1;
if (bb_lry >= draw_ht)
bb_lry = draw_ht - 1;

/* Intersect with previous bbox, and set old box to new */
if (bbo_ulx < (bb_temp = bb_ulx))
bb_ulx = bbo_ulx;
bbo_ulx = bb_temp;

if (bbo_uly < (bb_temp = bb_uly))
bb_uly = bbo_uly;
bbo_uly = bb_temp;

if (bbo_lrx > (bb_temp = bb_lrx))
bb_lrx = bbo_lrx;
bbo_lrx = bb_temp;

if (bbo_lry > (bb_temp = bb_lry))
bb_lry = bbo_lry;
bbo_lry = bb_temp;
}
}

void draw_startup_picture()
{
reset_bbox();

/* Set up draw pixmap with startup picture */
XFillRectangle(dpy, draw_pm, erasegc, 0, 0, draw_wid, draw_ht);

XCopyArea(dpy, startup_pm, draw_pm, drawgc, 0, 0, startup_width, startup_height, (draw_wid - startup_width) / 2, (draw_ht - startup_height) / 2);
}

void redraw_system()
{
static XArc *arcs = NULL, *selarcs = NULL, *circs = NULL, *selcircs = NULL;
static XSegment *segs = NULL, *selsegs = NULL;
static num_mass_alloc = 0, num_spring_alloc = 0;
XArc *cur_arc;
XSegment *cur_seg;
int numarcs, numselarcs, numcircs, numselcircs, numsegs, numselsegs;
int i, rad, num_spr;
boolean fixed;

/* Draw springs */
numsegs = numselsegs = 0;
if (num_spring_alloc < num_spring) {
num_spring_alloc = num_spring;
segs = (XSegment *)xrealloc(segs, num_spring_alloc * sizeof(XSegment));
selsegs = (XSegment *)xrealloc(selsegs, num_spring_alloc * sizeof(XSegment));
}
num_spr = (mst.show_spring) ? num_spring : 1;

for (i = 0; i < num_spr; i++) {
if (springs[i].status & S_ALIVE) {
if (springs[i].status & S_SELECTED) {
cur_seg = selsegs + numselsegs++;
} else {
cur_seg = segs + numsegs++;
}

cur_seg->x1 = COORD_X(masses[springs[i].m1].x);
cur_seg->y1 = COORD_Y(masses[springs[i].m1].y);
cur_seg->x2 = COORD_X(masses[springs[i].m2].x);
cur_seg->y2 = COORD_Y(masses[springs[i].m2].y);
}
}
if (numsegs) {
XDrawSegments(dpy, draw_pm, sdrawgc, segs, numsegs);
}
if (numselsegs) {
XDrawSegments(dpy, draw_pm, erasegc, selsegs, numselsegs);
XDrawSegments(dpy, draw_pm, selectlinegc, selsegs, numselsegs);
}

/* Draw masses */
numarcs = numselarcs = numcircs = numselcircs = 0;
if (num_mass_alloc < num_mass) {
num_mass_alloc = num_mass;
arcs = (XArc *)xrealloc(arcs, num_mass_alloc * sizeof(XArc));
selarcs = (XArc *)xrealloc(selarcs, num_mass_alloc * sizeof(XArc));
circs = (XArc *)xrealloc(circs, num_mass_alloc * sizeof(XArc));
selcircs = (XArc *)xrealloc(selcircs, num_mass_alloc * sizeof(XArc));
}

for (i = 0; i < num_mass; i++) {
if (masses[i].status & S_ALIVE) {
/* Check if within bounds */
fixed = (masses[i].status & S_FIXED) && !(masses[i].status & S_TEMPFIXED);
rad = fixed ? NAIL_SIZE : masses[i].radius;

if (COORD_X(masses[i].x + rad) >= 0 && COORD_X(masses[i].x - rad) <= draw_wid &&
COORD_Y(masses[i].y - rad) >= 0 && COORD_Y(masses[i].y + rad) <= draw_ht) {
/* Get cur_arc value based on if FIXED or SELECTED */
if (masses[i].status & S_SELECTED) {
if (fixed) {
cur_arc = selcircs + numselcircs++;
} else {
cur_arc = selarcs + numselarcs++;
}
} else {
if (fixed) {
cur_arc = circs + numcircs++;
} else {
cur_arc = arcs + numarcs++;
}
}

cur_arc->x = COORD_X(masses[i].x) - rad;
cur_arc->y = COORD_Y(masses[i].y) - rad;
cur_arc->width = cur_arc->height = rad * 2 + 1;
cur_arc->angle1 = 0;
cur_arc->angle2 = 64 * 360;
}
}
}
/* Draw masses and nails */
if (numarcs) {
XFillArcs(dpy, draw_pm, drawgc, arcs, numarcs);
}
if (numselarcs) {
XFillArcs(dpy, draw_pm, erasegc, selarcs, numselarcs);
XFillArcs(dpy, draw_pm, selectgc, selarcs, numselarcs);
}
if (numcircs) {
XFillArcs(dpy, draw_pm, erasegc, circs, numcircs);
XDrawArcs(dpy, draw_pm, drawgc, circs, numcircs);
}
if (numselcircs) {
XFillArcs(dpy, draw_pm, erasegc, selcircs, numselcircs);
XDrawArcs(dpy, draw_pm, selectgc, selcircs, numselcircs);
}

if (mst.center_id != -1) {
i = mst.center_id;

rad = ((masses[i].status & S_FIXED) && !(masses[i].status & S_TEMPFIXED)) ? NAIL_SIZE : masses[i].radius;

XDrawRectangle(dpy, draw_pm, drawgc, (int)(COORD_X(masses[i].x) - rad), (int)(COORD_Y(masses[i].y) - rad),
2 * rad + 1, 2 * rad + 1);
}
}

void view_system()
{
XCopyPlane(dpy, draw_pm, draw_win, fggc, bb_ulx, bb_uly, bb_lrx - bb_ulx + 1, bb_lry - bb_uly + 1, bb_ulx, bb_uly, 0x1);
}

void view_subsystem(ulx, uly, wid, ht)
int ulx, uly, wid, ht;
{
if (ulx < 0) {
wid += ulx;
ulx = 0;
}
if (uly < 0) {
ht += uly;
uly = 0;
}
if (wid < 0 || ht < 0)
return;

if (ulx + wid >= draw_wid)
wid -= (ulx + wid - draw_wid);
if (uly + ht >= draw_ht)
ht -= (uly + ht - draw_ht);

if (wid < 0 || ht < 0)
return;

XCopyPlane(dpy, draw_pm, draw_win, fggc, ulx, uly, wid, ht, ulx, uly, 0x1);
}

void review_system(reset)
boolean reset;
{
if (reset) {
reset_bbox();
} else {
calc_bbox();
}

/* Clear the old pixmap */
XFillRectangle(dpy, draw_pm, erasegc, bb_ulx, bb_uly, bb_lrx - bb_ulx + 1, bb_lry - bb_uly + 1);

redraw_system();

view_system();

mouse_event(M_REDISPLAY, 0, 0, AnyButton, FALSE);
if (mst.adaptive_step) {
update_slider(slid_dt_num);
}
XFlush(dpy);
}

void update_slidnum(w)
int w;
{
change_slider_parms(S_GRAV, &(mst.cur_grav_val[w]), cur_grav_max[w], cur_grav_min[w]);
change_slider_parms(S_GDIR, &(mst.cur_misc_val[w]), cur_misc_max[w], cur_misc_min[w]);

update_slider(S_GRAV);
update_slider(S_GDIR);
}

void redraw_names(w)
int w;
{
static char *grav_nam[] = { "Gravity", "Magnitude", "Magnitude", "Magnitude" };
static char *misc_nam[] = { "Direction", "Damping", "Exponent", "Exponent" };
int offset = 120;

XDrawLine(dpy, acts_win, bggc, 4, force_liney-1, (BF_NUM)*(BF_SIZ+4)+5, force_liney-1);
XDrawLine(dpy, acts_win, bggc, 4, force_liney+BF_SIZ+6, (BF_NUM)*(BF_SIZ+4)+5, force_liney+BF_SIZ+6);
XFillRectangle(dpy, acts_win, bggc, grav_slidx + offset, grav_slidy - F_HT, B_WID - 1 - grav_slidx - offset,
dir_slidy + F_HT + 3 - grav_slidy);

XDrawLine(dpy, acts_win, fggc, w*(BF_SIZ+4)+4, force_liney-1, (w+1)*(BF_SIZ+4)+5, force_liney-1);
XDrawLine(dpy, acts_win, fggc, w*(BF_SIZ+4)+4, force_liney+BF_SIZ+6, (w+1)*(BF_SIZ+4)+5, force_liney+BF_SIZ+6);
XDrawString(dpy, acts_win, fggc, grav_slidx + offset, grav_slidy, grav_nam[w], strlen(grav_nam[w]));
XDrawString(dpy, acts_win, fggc, dir_slidx + offset, dir_slidy, misc_nam[w], strlen(misc_nam[w]));
}

void redisplay_widgets()
{
XCopyPlane(dpy, acts_pm, acts_win, fggc, 0, 0, B_WID, B_HT, 0, 0, 0x1);

redraw_names(cur_force);

redraw_widgets(TRUE);
}

int mass_radius(m)
double m;
{
int rad;

rad = (int)(2 * log(4.0 * m + 1.0));

if (rad < 1) rad = 1;
if (rad > 64) rad = 64;

return rad + spthick/2;
}

static void draw_mass(w, mx, my, m)
Window w;
int mx, my;
double m;
{
int rad;

rad = mass_radius(m);

XFillArc(dpy, w, fggc, mx - rad, my - rad, rad * 2 + 1, rad * 2 + 1, 0, 64 * 360);
}

static void draw_spring(w, x1, y1, x2, y2)
Window w;
int x1, y1, x2, y2;
{
XDrawLine(dpy, w, fggc, x1, y1, x2, y2);
}

static void mouse_vel(mx, my)
int *mx, *my;
{
int i, totalx = 0, totaly = 0, scale = 0, dx, dy, dt;
int fudge = 256;

for (i = 0; i < MOUSE_PREV - 1; i++) {
dx = mprev[(moffset + 2 + i) % MOUSE_PREV].x - mprev[(moffset + 1 + i) % MOUSE_PREV].x;
dy = mprev[(moffset + 2 + i) % MOUSE_PREV].y - mprev[(moffset + 1 + i) % MOUSE_PREV].y;
dt = mprev[(moffset + 2 + i) % MOUSE_PREV].t - mprev[(moffset + 1 + i) % MOUSE_PREV].t;

if (dt) {
scale += 64 * i * i;
totalx += 64 * i * i * fudge * dx / dt;
totaly += 64 * i * i * fudge * dy / dt;
}
}

if (scale) {
totalx /= scale;
totaly /= scale;
}

*mx = totalx;
*my = totaly;
}

void widget_notify(type, idno)
int type, idno;
{
int i;

switch (type) {

case O_BUTTON:
switch (idno) {
case B_CENTER:
set_center();
review_system(TRUE);
break;
case B_RESTLEN:
set_sel_restlen();
break;
case B_DELETE:
delete_selected();
review_system(TRUE);
break;
case B_SELECTALL:
select_all();
eval_selection();
review_system(TRUE);
break;
case B_SAVESTATE:
save_state();
sst = mst;
break;
case B_RESSTATE:
restore_state();
mst = sst;

redisplay_widgets();
review_system(TRUE);
mouse_event(M_REDISPLAY, 0, 0, AnyButton, FALSE);
break;
case B_DUPLICATE:
duplicate_selected();
review_system(TRUE);
break;
case B_INSERTFILE:
file_op = F_INSERT;
disp_filename(TRUE);
break;
case B_LOADFILE:
file_op = F_LOAD;
disp_filename(TRUE);
break;
case B_SAVEFILE:
file_op = F_SAVE;
disp_filename(TRUE);
break;
case B_RESET:
delete_all();
mst = initst;
init_objects();

redisplay_widgets();
review_system(TRUE);
mouse_event(M_REDISPLAY, 0, 0, AnyButton, FALSE);
break;
case B_QUIT:
quitting = TRUE;
break;
}
break;

case O_MBUTTON:
if (idno >= M_BF && idno < M_BF + BF_NUM && mst.bf_mode[idno - M_BF] > 0) {
cur_force = idno - M_BF;
update_slidnum(cur_force);
redraw_names(cur_force);
}
break;

case O_CHECKBOX:
switch (idno) {
case C_FIXEDMASS:
for (i = 0; i < num_mass; i++) {
if (masses[i].status & S_SELECTED) {
if (mst.fix_mass) {
masses[i].status |= S_FIXED;
masses[i].status &= ~S_TEMPFIXED;
} else {
masses[i].status &= ~(S_FIXED | S_TEMPFIXED);
}
}
}
review_system(TRUE);
break;
case C_SHOWSPRING:
review_system(TRUE);
break;
}
break;

case O_SLIDER:
switch (idno) {
case S_MASS:
for (i = 0; i < num_mass; i++) {
if (masses[i].status & S_SELECTED) {
masses[i].mass = mst.cur_mass;
masses[i].radius = mass_radius(mst.cur_mass);
}
}
review_system(TRUE);
break;
case S_ELAS:
for (i = 0; i < num_mass; i++) {
if (masses[i].status & S_SELECTED)
masses[i].elastic = mst.cur_rest;
}
break;
case S_KSPR:
for (i = 0; i < num_spring; i++) {
if (springs[i].status & S_SELECTED)
springs[i].ks = mst.cur_ks;
}
break;
case S_KDAMP:
for (i = 0; i < num_spring; i++) {
if (springs[i].status & S_SELECTED)
springs[i].kd = mst.cur_kd;
}
break;
}
}
}

static void mouse_event(type, mx, my, mbutton, shifted)
int type;
int mx, my, mbutton;
int shifted;
{
static int selection = -1, cur_button = 0;
static boolean active = FALSE, cur_shift = FALSE;

/* Skip restarts when active or continuations when inactive */
if ((type != M_DOWN && !active) || (type == M_DOWN && active))
return;

/* Do grid snapping operation */
if (mst.grid_snap && mode != M_EDIT) {
mx = ((mx + (int)mst.cur_gsnap / 2) / (int)mst.cur_gsnap) * (int)mst.cur_gsnap;
my = ((my + (int)mst.cur_gsnap / 2) / (int)mst.cur_gsnap) * (int)mst.cur_gsnap;
}

switch (type) {
case M_REDISPLAY:
switch (mode) {
case M_EDIT:
switch (cur_button) {
case Button1:
if (selection < 0) {
XDrawRectangle(dpy, draw_win, selectboxgc, MIN(startx, prevx), MIN(starty, prevy),
ABS(prevx - startx), ABS(prevy - starty));
}
break;
case Button2:
break;
case Button3:
break;
}
break;
case M_MASS:
draw_mass(draw_win, prevx, prevy, mst.cur_mass);
break;
case M_SPRING:
if (static_spring) {
startx = COORD_X(masses[selection].x);
starty = COORD_Y(masses[selection].y);
draw_spring(draw_win, startx, starty, prevx, prevy);
}
break;
}
break;

case M_DOWN:
review_system(TRUE);
startx = prevx = mx;
starty = prevy = my;
cur_button = mbutton;
active = TRUE;
cur_shift = shifted;

switch (mode) {
case M_EDIT:
switch (cur_button) {
case Button1:
{
boolean is_mass = FALSE;
selection = nearest_object(COORD_X(mx), COORD_Y(my), &is_mass);

/* If not shift clicking, unselect all currently selected items */
if (!shifted) {
unselect_all();
review_system(TRUE);
}
}
break;
case Button2:
case Button3:
tempfixed_obj(TRUE);
break;
}
break;
case M_MASS:
draw_mass(draw_win, mx, my, mst.cur_mass);
break;
case M_SPRING:
{
boolean is_mass = TRUE;

static_spring = (action == -1 || cur_button == Button3);

selection = nearest_object(COORD_X(mx), COORD_Y(my), &is_mass);
if (selection >= 0 && is_mass) {
startx = COORD_X(masses[selection].x);
starty = COORD_Y(masses[selection].y);
if (static_spring) {
draw_spring(draw_win, startx, starty, prevx, prevy);
} else {
attach_fake_spring(selection);
move_fake_mass(COORD_X(mx), COORD_Y(my));
review_system(TRUE);
}
} else {
active = FALSE;
}
}
break;
}
break;

case M_DRAG:
switch (mode) {
case M_EDIT:
switch (cur_button) {
case Button1:
if (selection < 0) {
view_subsystem(MIN(startx, prevx), MIN(starty, prevy), ABS(prevx - startx) + 1, ABS(prevy - starty) + 1);
prevx = mx;
prevy = my;
XDrawRectangle(dpy, draw_win, selectboxgc, MIN(startx, prevx), MIN(starty, prevy),
ABS(prevx - startx), ABS(prevy - starty));
}
break;
case Button2:
case Button3:
/* Move objects relative to mouse */
translate_selobj(COORD_DX(mx - prevx), COORD_DY(my - prevy));
review_system(TRUE);
prevx = mx;
prevy = my;
break;
}
break;
case M_MASS:
{
int rad = mass_radius(mst.cur_mass);
view_subsystem(prevx - rad, prevy - rad, rad * 2 + 1, rad * 2 + 1);
}
prevx = mx;
prevy = my;
draw_mass(draw_win, prevx, prevy, mst.cur_mass);
break;
case M_SPRING:
if (static_spring) {
view_subsystem(MIN(startx, prevx), MIN(starty, prevy), ABS(prevx - startx) + 1, ABS(prevy - starty) + 1);
prevx = mx;
prevy = my;
startx = COORD_X(masses[selection].x);
starty = COORD_Y(masses[selection].y);
draw_spring(draw_win, startx, starty, prevx, prevy);
} else {
move_fake_mass(COORD_X(mx), COORD_Y(my));
}
break;
}
break;

case M_UP:
active = FALSE;
switch (mode) {
case M_EDIT:
switch (cur_button) {
case Button1:
if (selection < 0) {
select_objects(MIN(COORD_X(startx), COORD_X(mx)), MIN(COORD_Y(starty), COORD_Y(my)),
MAX(COORD_X(startx), COORD_X(mx)), MAX(COORD_Y(starty), COORD_Y(my)), cur_shift);
eval_selection();
review_system(TRUE);
} else {
boolean is_mass = FALSE;

if ((selection = nearest_object(COORD_X(mx), COORD_Y(my), &is_mass)) >= 0) {
select_object(selection, is_mass, cur_shift);
eval_selection();
review_system(TRUE);
}
}
break;
case Button2:
tempfixed_obj(FALSE);
review_system(TRUE);
break;
case Button3:
{
int mvx, mvy;

mouse_vel(&mvx, &mvy);

changevel_selobj(COORD_DX(mvx), COORD_DY(mvy), FALSE);
tempfixed_obj(FALSE);
review_system(TRUE);
}
break;
}
break;
case M_MASS:
{
int newm;

newm = create_mass();

masses[newm].x = COORD_X((double)mx);
masses[newm].y = COORD_Y((double)my);
masses[newm].mass = mst.cur_mass;
masses[newm].radius = mass_radius(mst.cur_mass);
masses[newm].elastic = mst.cur_rest;
if (mst.fix_mass) masses[newm].status |= S_FIXED;

review_system(TRUE);
}
break;

case M_SPRING:
{
boolean is_mass = TRUE;
int start_sel = selection, newsel, endx, endy;

if (!static_spring) {
kill_fake_spring();
}

selection = nearest_object(COORD_X(mx), COORD_Y(my), &is_mass);
if ((static_spring || action == -1 || cur_button == Button1) && selection >= 0 && is_mass && selection != start_sel) {
startx = COORD_X(masses[start_sel].x);
starty = COORD_Y(masses[start_sel].y);
endx = COORD_X(masses[selection].x);
endy = COORD_Y(masses[selection].y);

newsel = create_spring();
springs[newsel].m1 = start_sel;
springs[newsel].m2 = selection;
springs[newsel].ks = mst.cur_ks;
springs[newsel].kd = mst.cur_kd;
springs[newsel].restlen = sqrt((double)SQR(startx - endx) + (double)SQR(starty - endy));

add_massparent(start_sel, newsel);
add_massparent(selection, newsel);
}

review_system(TRUE);
}
break;
}
break;
}
XFlush(dpy);
}

static boolean x_event()
{
XEvent event, peek;
KeySym ks;
char keybuf[1];

if (quitting)
return FALSE;

XFlush(dpy);

/* Get next event */
if (XPending(dpy)) {
XNextEvent(dpy, &event);

switch (event.type) {
case ButtonPress:
if (!check_widgets(event.xbutton.window, event.xbutton.x, event.xbutton.y, event.xbutton.button, M_DOWN)) {
/* Process button press event */
if (event.xbutton.window == draw_win) {
bzero(mprev, sizeof(mprev));
mouse_event(M_DOWN, event.xbutton.x, event.xbutton.y, event.xbutton.button, event.xbutton.state & ShiftMask);
} else if (event.xbutton.window == acts_win) {
/* Show startup picture if clicked on xspringies logo */
if (event.xbutton.x >= 4 && event.xbutton.x < 4 + title_width && event.xbutton.y >= 4 && event.xbutton.y < 4 + title_height) {
draw_startup_picture();
view_system();
}
}
}
break;
case ButtonRelease:
if (!check_widgets(event.xbutton.window, event.xbutton.x, event.xbutton.y, event.xbutton.button, M_UP)) {
/* Process button release event */
if (event.xbutton.window == draw_win) {
mouse_event(M_UP, event.xbutton.x, event.xbutton.y, event.xbutton.button, FALSE);
}
}
break;
case MotionNotify:
{
Window mw = event.xmotion.window;

/* Skip over other motion notify events for this window */
while (XCheckWindowEvent(dpy, mw, PointerMotionMask, &event));

if (event.xmotion.state & (Button1Mask | Button2Mask | Button3Mask)) {
if (!check_widgets(event.xmotion.window, event.xmotion.x, event.xmotion.y, 0, M_DRAG)) {
/* Record mouse info */
mprev[moffset].x = event.xmotion.x;
mprev[moffset].y = event.xmotion.y;
mprev[moffset].t = (unsigned long)(event.xmotion.time);
moffset = (moffset + 1) % MOUSE_PREV;

/* Process motion notify event */
if (event.xbutton.window == draw_win) {
mouse_event(M_DRAG, event.xbutton.x, event.xbutton.y, AnyButton, FALSE);
}
}
}
}
break;

case KeyPress:
keybuf[0] = '\0';
XLookupString (&event.xkey, keybuf, sizeof(keybuf), &ks, NULL);

/* Skip modifier key */
if (IsModifierKey(ks) || ks == XK_Multi_key)
break;

key_press((int)(keybuf[0]), ks, event.xkey.window);
break;

case ConfigureNotify:
{
static boolean created = FALSE;
int new_wid, new_ht;

new_wid = event.xconfigure.width;
new_ht = event.xconfigure.height;

if (new_wid == main_wid && new_ht == main_ht)
break;

main_wid = new_wid;
main_ht = new_ht;

draw_wid = main_wid - B_WID - 1;
draw_ht = main_ht - T_HT - 1;

reset_bbox();

if (created) {
XFreePixmap(dpy, draw_pm);
created = TRUE;
}
draw_pm = XCreatePixmap(dpy, draw_win, draw_wid, draw_ht, 1);
review_system(TRUE);

XMoveResizeWindow(dpy, text_win, B_WID + 1, draw_ht + 1, draw_wid, T_HT);
XMoveResizeWindow(dpy, draw_win, B_WID + 1, 0, draw_wid, draw_ht);
}
break;

case Expose:
/* Skip over additional expose events */
while (XCheckTypedEvent(dpy, Expose, &peek))
event = peek;

/* Generic expose event (redraw everything) */
redisplay_widgets();

view_system();
mouse_event(M_REDISPLAY, 0, 0, AnyButton, FALSE);

disp_filename(FALSE);
break;

default:
break;
}
XFlush(dpy);
} else {
/* No events waiting */
if (scan_flag) {
static struct timeval tp, tpo;
static struct timezone tzp;
int difft;

if (tpo.tv_sec == 0)
gettimeofday(&tpo, &tzp);

gettimeofday(&tp, &tzp);
difft = (tp.tv_sec - tpo.tv_sec) * 1000000 + (tp.tv_usec - tpo.tv_usec);

/* Do widget scanning buttons about 30 times / sec */
if (difft > 30000) {
tpo = tp;
(void)check_widgets(acts_win, 0, 0, 0, M_HOLD);
}
} else if (action == -1) {
/* Sleep until next X event */
fd_set readfds;

FD_ZERO(&readfds);
FD_SET(xfd, &readfds);

(void)select(xfd+1, &readfds, NULL, NULL, NULL);
}

if (action != -1 && animate_obj()) {
static struct timeval tp, tpo;
static struct timezone tzp;
static int totaldiff = 0;
static boolean started = FALSE;
int difft;

/* Get time the first time through */
if (!started) {
gettimeofday(&tp, &tzp);
started = TRUE;
}
tpo = tp;

gettimeofday(&tp, &tzp);

difft = (tp.tv_sec - tpo.tv_sec) * 1000000 + (tp.tv_usec - tpo.tv_usec);

if (difft < MIN_DIFFT)
difft = MIN_DIFFT;

if (difft > 0) {
totaldiff += difft;

/* Do updates over 30 frames per second (to make it smooth) */
if (totaldiff > 20000) {
totaldiff = 0;
review_system(FALSE);
XSync(dpy, False);
}
}
}
}

return TRUE;
}

Pixmap get_pixmap(bits, width, height, inv)
char *bits;
int width, height;
boolean inv;
{
int black, white;

black = inv ? 1 : 0;
white = inv ? 0 : 1;

return XCreatePixmapFromBitmapData(dpy, main_win, bits, width, height, white, black, 1);
}

unsigned long GetColor(cname, cmap)
char *cname;
Colormap cmap;
{
/* Color stuff */
XColor xc;

if (XParseColor(dpy, cmap, cname, &xc) == 0) {
fprintf(stderr, "Unknown color: %s\n", cname);
exit(-1);
} else {
if (XAllocColor(dpy, cmap, &xc) == 0) {
fprintf(stderr, "Cannot allocate color: %s\n", cname);
exit(-1);
}
}

return xc.pixel;
}

static void init_x(argc, argv, displayname, geometry, fgcolor, bgcolor, hlcolor)
int argc;
char *argv[];
char *displayname, *geometry, *fgcolor, *bgcolor, *hlcolor;
{
XGCValues gcv, gcmv;
XSetWindowAttributes xswa;
XSizeHints hints;
XFontStruct *font;
Cursor cross;
Colormap cmap;
Pixmap icon_p;
Visual *vis;
int scn;
int mask = 0;

/* Open display */
if ((dpy = XOpenDisplay(displayname)) == NULL) {
fprintf(stderr, "Could not open display\n");
exit(-1);
}

/* Get screen and colors */
scn = DefaultScreen(dpy);
planes = DisplayPlanes(dpy, scn);
cmap = DefaultColormap(dpy, scn);
vis = DefaultVisual(dpy, scn);
xfd = ConnectionNumber(dpy);

if (hlcolor == NULL) {
if (vis->class == StaticGray || vis->class == GrayScale) {
hlcolor = fgcolor;
} else {
XColor xc;

if (XParseColor(dpy, cmap, HLCOLOR, &xc) == 0) {
hlcolor = fgcolor;
} else {
hlcolor = HLCOLOR;
}
}
}

fcolor = GetColor(fgcolor, cmap);
bcolor = GetColor(bgcolor, cmap);
hcolor = GetColor(hlcolor, cmap);

/* Set up main window */
main_wid = hints.width = M_WID + 2;
hints.min_width = B_WID * 2;
main_ht = hints.height = hints.min_height = M_HT + 2;
hints.flags = PSize | PMinSize;

/* Get geometry info */
if (geometry != NULL) {
hints.x = hints.y = 0;

if (mask = XParseGeometry(geometry, &(hints.x), &(hints.y), &(hints.width), &(hints.height))) {
hints.flags |= ((mask & (XValue | YValue)) ? USPosition: PPosition) |
((mask & (WidthValue | HeightValue)) ? USSize : PSize);

if (hints.width < hints.min_width)
hints.width = hints.min_width;
if (hints.height < hints.min_height)
hints.height = hints.min_height;
}
}

/* Create main window */
main_win = XCreateSimpleWindow(dpy, DefaultRootWindow(dpy), hints.x, hints.y, hints.width, hints.height, 1, fcolor, bcolor);

/* Fix for open-look wm (thanks to Brian.Wa...@Eng.Sun.COM) */
{
XWMHints wmhints;
XWindowAttributes xwa;

wmhints.flags = InputHint;
wmhints.input = True;
(void) XGetWindowAttributes(dpy, main_win, &xwa);
XSelectInput(dpy, main_win, xwa.all_event_masks | KeyPressMask);
XSetWMHints(dpy, main_win, &wmhints);
}

icon_p = XCreatePixmapFromBitmapData(dpy, DefaultRootWindow(dpy), icon_bits, icon_width, icon_height, 1, 0, planes);
XSetStandardProperties(dpy, main_win, "XSpringies", "XSpringies", icon_p, argv, argc, &hints);

if (mask)
XSetNormalHints(dpy, main_win, &hints);

/* Map main window to display */
XMapWindow(dpy, main_win);

XFlush(dpy);
XSync(dpy, False);

{
Window tmp_win;
int xpos, ypos;
unsigned int bw, dep;

XGetGeometry(dpy, main_win, &tmp_win, &xpos, &ypos, &main_wid, &main_ht, &bw, &dep);
}

/* Make subwindows */
acts_win = XCreateSimpleWindow(dpy, main_win, 0, 0, B_WID, B_HT, 1, fcolor, bcolor);

draw_wid = main_wid - B_WID - 1;
draw_ht = main_ht - T_HT - 1;
draw_win = XCreateSimpleWindow(dpy, main_win, B_WID + 1, 0, draw_wid, draw_ht, 1, fcolor, bcolor);
text_win = XCreateSimpleWindow(dpy, main_win, B_WID + 1, draw_ht + 1, draw_wid, T_HT, 1, fcolor, bcolor);

/* Make pixmaps for drawing and actions areas (to make redraw trivial) */
draw_pm = XCreatePixmap(dpy, draw_win, draw_wid, draw_ht, 1);

acts_pm = XCreatePixmap(dpy, acts_win, B_WID, B_HT, 1);

/* Get a font */
if ((font = XLoadQueryFont(dpy, F_NAME)) == NULL) {
fprintf(stderr, "Could not load font: %s\n", F_NAME);
exit(-1);
}

/* Create GCs */
gcmv.font = gcv.font = font->fid;
gcmv.plane_mask = gcv.plane_mask = 1;
gcmv.line_width = spthick;

gcmv.foreground = 1;
gcmv.background = 0;

gcv.foreground = bcolor;
gcv.background = hcolor;
revgc = XCreateGC(dpy, main_win, GCForeground | GCBackground | GCFont, &gcv);

gcv.foreground = hcolor;
gcv.background = bcolor;
hlgc = XCreateGC(dpy, main_win, GCForeground | GCBackground | GCFont, &gcv);

gcv.foreground = fcolor;
drawgc = XCreateGC(dpy, draw_pm, GCForeground | GCBackground | GCFont, &gcmv);
sdrawgc = XCreateGC(dpy, draw_pm, GCForeground | GCBackground | GCFont | GCLineWidth, &gcmv);
fggc = XCreateGC(dpy, main_win, GCForeground | GCBackground | GCFont, &gcv);

{
static char stipple_bits[] = { 0x01, 0x02 };
static char dot_line[2] = { 1, 1 };
Pixmap stip;

stip = XCreateBitmapFromData(dpy, main_win, stipple_bits, 2, 2);
gcmv.stipple = gcv.stipple = stip;
gcmv.fill_style = gcv.fill_style = FillStippled;

gcmv.line_style = gcv.line_style = LineOnOffDash;
selectgc = XCreateGC(dpy, draw_pm, GCForeground | GCBackground | GCFont | GCFillStyle | GCStipple, &gcmv);
selectlinegc = XCreateGC(dpy, draw_pm, GCForeground | GCBackground | GCFont | GCLineStyle | GCLineWidth, &gcmv);

gcv.foreground = hcolor;

if (hcolor != fcolor && hcolor != bcolor) {
selectboxgc = XCreateGC(dpy, main_win, GCForeground | GCBackground | GCFont, &gcv);
} else {
selectboxgc = XCreateGC(dpy, main_win, GCForeground | GCBackground | GCFont | GCLineStyle, &gcv);
XSetDashes(dpy, selectboxgc, 0, dot_line, 2);
}

XSetDashes(dpy, selectlinegc, 0, dot_line, 2);
}

gcv.foreground = gcv.background = bcolor;
gcmv.foreground = gcmv.background = 0;
erasegc = XCreateGC(dpy, draw_pm, GCForeground | GCBackground | GCFont, &gcmv);
bggc = XCreateGC(dpy, main_win, GCForeground | GCBackground | GCFont, &gcv);

/* Clear out action pixmap */
XFillRectangle(dpy, acts_pm, erasegc, 0, 0, B_WID, B_HT);

startup_pm = get_pixmap(startup_bits, startup_width, startup_height, FALSE);
draw_startup_picture();

/* Use a cross cursor for the draw window */
cross = XCreateFontCursor(dpy, XC_tcross);

/* Set window event masks and other attributes */
xswa.event_mask = ExposureMask | StructureNotifyMask;
XChangeWindowAttributes(dpy, main_win, CWEventMask, &xswa);

xswa.event_mask = KeyPressMask | ExposureMask;
XChangeWindowAttributes(dpy, text_win, CWEventMask, &xswa);

xswa.event_mask = ButtonPressMask | ButtonReleaseMask | Button1MotionMask | Button2MotionMask | Button3MotionMask | KeyPressMask | ExposureMask;
XChangeWindowAttributes(dpy, acts_win, CWEventMask, &xswa);
xswa.cursor = cross;
XChangeWindowAttributes(dpy, draw_win, CWEventMask | CWCursor, &xswa);

XMapWindow(dpy, draw_win);
XMapWindow(dpy, text_win);
XMapWindow(dpy, acts_win);

XFlush(dpy);
}

static void make_widgets()
{
int i, y;

{
Pixmap title_pm = get_pixmap(title_bits, title_width, title_height, FALSE);
XCopyArea(dpy, title_pm, acts_pm, drawgc, 0, 0, title_width, title_height, 4, 4);
XFreePixmap(dpy, title_pm);
}

add_modebutton(acts_pm, acts_win, B_WID/2, 4, B_WID-6, 54, "Edit", edit_bits, edit_width, edit_height, M_EDIT, &mode, FALSE);
add_modebutton(acts_pm, acts_win, 4, 54, B_WID/2, 104, "Mass", mass_bits, mass_width, mass_height, M_MASS, &mode, FALSE);
add_modebutton(acts_pm, acts_win, B_WID/2, 54, B_WID-6, 104, "Spring", spring_bits, spring_width, spring_height, M_SPRING, &mode, FALSE);

add_slider(acts_pm, acts_win, 4, 110, B_WID-6, 125, "Mass", "%10.2lf", S_MASS, &(mst.cur_mass), 10000000.0, 0.01, 0.01);
add_slider(acts_pm, acts_win, 4, 127, B_WID-6, 142, "Elasticity", "%10.3lf", S_ELAS, &(mst.cur_rest), 1.0, 0.0, 0.001);
add_slider(acts_pm, acts_win, 4, 144, B_WID-6, 159, "Kspring", "%10.2lf", S_KSPR, &(mst.cur_ks), 10000000.0, 0.01, 0.01);
add_slider(acts_pm, acts_win, 4, 161, B_WID-6, 176, "Kdamp", "%10.2lf", S_KDAMP, &(mst.cur_kd), 10000000.0, 0.0, 0.01);

add_checkbox(acts_pm, acts_win, 4, 178, B_WID/2-16, 194, "Fixed Mass", C_FIXEDMASS, &(mst.fix_mass));
add_checkbox(acts_pm, acts_win, B_WID/2, 178, B_WID-6, 194, "Show Springs", C_SHOWSPRING, &(mst.show_spring));

add_button(acts_pm, acts_win, 4, 197, B_WID/2 + 10, 217, "Set Rest Length", B_RESTLEN);
add_button(acts_pm, acts_win, B_WID/2 + 16, 197, B_WID-6, 217, "Set Center", B_CENTER);

y = 228;
XDrawLine(dpy, acts_pm, drawgc, 0, y-4, B_WID-1, y-4);
y++;

for (i = 0; i < BF_NUM; i++) {
mst.bf_mode[i] = -1;
add_modebutton(acts_pm, acts_win, i*(BF_SIZ+4)+4, y, 4+(i+1)*(BF_SIZ+4),y+BF_SIZ+4,"", b_bits[i], BF_SIZ, BF_SIZ, M_BF + i, &(mst.bf_mode[i]), TRUE);
}
force_liney = y;

add_modebutton(acts_pm, acts_win, 132, y, 136+go_width, y+4+go_height, "", go_bits, go_width, go_height, M_ACTION, &action, TRUE);

y += 36;
add_slider(acts_pm, acts_win, 4, y, B_WID-6, y+15, "", "%10.2lf", S_GRAV, &(mst.cur_grav_val[0]), cur_grav_max[0], cur_grav_min[0], 0.01);
grav_slidx = 4;
grav_slidy = (y + y+15 + F_HT) / 2 - 2;

add_slider(acts_pm, acts_win, 4, y+17, B_WID-6, y+32, "", "%10.2lf", S_GDIR, &(mst.cur_grav_val[0]), cur_misc_max[0], cur_misc_min[0], 0.05);

dir_slidx = 4;
dir_slidy = (y+17 + y+32 + F_HT) / 2 - 2;
update_slidnum(0);

y += 38;
XDrawLine(dpy, acts_pm, drawgc, 0, y - 4, B_WID-1, y - 4);

add_slider(acts_pm, acts_win, 4, y, B_WID-6, y+15, "Viscosity", "%10.2lf", S_VISC, &(mst.cur_visc), 10000000.0, 0.0, 0.01);
add_slider(acts_pm, acts_win, 4, y+17, B_WID-6, y+32, "Stickiness", "%10.2lf", S_STICK, &(mst.cur_stick), 10000000.0, 0.0, 0.01);

y = y + 37;

XDrawLine(dpy, acts_pm, drawgc, 0, y - 4, B_WID-1, y - 4);

add_slider(acts_pm, acts_win, 4, y, B_WID-6, y+15, "Time Step", "%10.4lf", S_TIMESTEP, &(mst.cur_dt), 1.0, 0.0001, 0.0001);
add_slider(acts_pm, acts_win, 4, y+17, B_WID-6, y+32, "Precision", "%10.4lf", S_PRECISION, &(mst.cur_prec), 1000.0, 0.0001, 0.0001);
add_checkbox(acts_pm, acts_win, 4, y+33, B_WID/2+32, y+49, "Adaptive Time Step", C_ADAPTIVE_STEP, &(mst.adaptive_step));

y = y + 54;
XDrawLine(dpy, acts_pm, drawgc, 0, y-4, B_WID-1, y-4);

add_slider(acts_pm, acts_win, 4, y, B_WID/2 + 20, y+16, "", "%10.0lf", S_GRIDSNAP, &(mst.cur_gsnap), 200.0, 1.0, 1.0);
add_checkbox(acts_pm, acts_win, B_WID/2 + 24, y, B_WID - 4, y+16, "Grid Snap", C_GRIDSNAP, &(mst.grid_snap));

y = y + 2;
XDrawRectangle(dpy, acts_pm, drawgc, 16, y+24, 64, 30);
add_checkbox(acts_pm, acts_win, 40, y+18, 56, y+33, "", C_WTOP, &(mst.w_top));
add_checkbox(acts_pm, acts_win, 8, y+33, 24, y+48, " Walls", C_WLEFT, &(mst.w_left));
add_checkbox(acts_pm, acts_win, 72, y+33, 88, y+48, "", C_WRIGHT, &(mst.w_right));
add_checkbox(acts_pm, acts_win, 40, y+48, 56, y+63, "", C_WBOTTOM, &(mst.w_bottom));

y = y + 16;
add_button(acts_pm, acts_win, B_WID/2+3, y, B_WID-6, y+20, "Delete", B_DELETE);
add_button(acts_pm, acts_win, B_WID/2+3, y+25, B_WID-6, y+45, "Select all", B_SELECTALL);

y = y + 52;
XDrawLine(dpy, acts_pm, drawgc, 0, y-3, B_WID-1, y-3);

add_button(acts_pm, acts_win, 4, y, B_WID/2-5, y+20, "Save State", B_SAVESTATE);
add_button(acts_pm, acts_win, B_WID/2+3, y, B_WID-6, y+20, "Restore State", B_RESSTATE);
add_button(acts_pm, acts_win, 4, y+25, B_WID/2-5, y+45, "Duplicate", B_DUPLICATE);
add_button(acts_pm, acts_win, B_WID/2+3, y+25, B_WID-6, y+45, "Insert File", B_INSERTFILE);

add_button(acts_pm, acts_win, 4, y+50, B_WID/2-5, y+70, "Load File", B_LOADFILE);
add_button(acts_pm, acts_win, B_WID/2+3, y+50, B_WID-6, y+70, "Save File", B_SAVEFILE);
add_button(acts_pm, acts_win, 4, y+75, B_WID/2-5, y+95, "Reset", B_RESET);
add_button(acts_pm, acts_win, B_WID/2+3, y+75, B_WID-6, y+95, "Quit", B_QUIT);

slid_dt_num = slider_valno(S_TIMESTEP);
}

void usage()
{
static char *msg1 = "Usage: xspringies [-d|display displayname] [-geometry geom] [-rv]\n";
static char *msg2 = " [-bg color] [-fg color] [-hl color] [-st int] [-nbb]\n";

fprintf(stderr, msg1);
fprintf(stderr, msg2);
exit(-1);
}

main(argc, argv)
int argc;
char *argv[];
{
char *swch, *displayname = NULL, *geometry = NULL, *bgcolor = "black", *fgcolor = "white", *hlcolor = NULL;
boolean rev_vid = FALSE;
extern char *getenv();
char *path;

initst = sst = mst;

if ((path = getenv("SPRINGDIR")) != NULL) {
strcpy(filename, path);
} else {
strcpy(filename, DEF_PATH);
}

while (--argc > 0) {
if (**++argv == '-') {
swch = (*argv) + 1;

if (!strcmp(swch, "display") || !strcmp(swch, "d")) {
if (--argc > 0) {
displayname = *++argv;
} else {
usage();
}
} else if (!strcmp(swch, "geometry")) {
if (--argc > 0) {
geometry = *++argv;
} else {
usage();
}
} else if (!strcmp(swch, "rv")) {
rev_vid = TRUE;
} else if (!strcmp(swch, "bg")) {
if (--argc > 0) {
bgcolor = *++argv;
} else {
usage();
}
} else if (!strcmp(swch, "fg")) {
if (--argc > 0) {
fgcolor = *++argv;
} else {
usage();
}
} else if (!strcmp(swch, "hl")) {
if (--argc > 0) {
hlcolor = *++argv;
} else {
usage();
}
} else if (!strcmp(swch, "st")) {
if (--argc > 0) {
spthick = atoi(*++argv);
if (spthick < 0) {
fprintf(stderr, "String thickness value must be non-negative\n");
exit(-1);
}
} else {
usage();
}
} else if (!strcmp(swch, "nbb")) {
bboxing = FALSE;
} else {
usage();
}
} else {
usage();
}
}

if (rev_vid) {
char *swap = fgcolor;

fgcolor = bgcolor;
bgcolor = swap;
}

init_x(argc, argv, displayname, geometry, fgcolor, bgcolor, hlcolor);

init_widgets(widget_notify);
make_widgets();

init_objects();

while (x_event());

clean_up();
return 0;
}
\BARFOO\
else
echo "will not over write ./xdisp.c"
fi
echo "Finished archive 2 of 16"

Douglas DeCarlo

unread,
Mar 26, 1993, 11:12:04 AM3/26/93
to
Submitted-by: d...@gradient.cis.upenn.edu (Douglas DeCarlo)
Posting-number: Volume 19, Issue 55
Archive-name: xspringies/part03

Environment: X11
Supersedes: xspringies: Volume 14, Issue 25-30

#!/bin/sh


# to extract, remove the header and type "sh filename"

if `test ! -s ./title.h`
then
echo "writting ./title.h"
cat > ./title.h << '\BARFOO\'
#define title_width 96
#define title_height 48
static char title_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f,
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0x02, 0x1c, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0x02, 0x38, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0x02, 0x70, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0x02, 0xe0, 0x80, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0x02, 0xc0, 0x41, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0x02, 0x80, 0x23, 0x20, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0x02, 0x00, 0x17, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0x02, 0x00, 0x0a, 0x20, 0x00, 0x00, 0x10, 0x00, 0x20, 0x00, 0x00, 0x10,
0x02, 0x00, 0x1d, 0x40, 0x40, 0xa3, 0x81, 0x86, 0x05, 0x0e, 0x07, 0x10,
0x02, 0x80, 0x38, 0x80, 0xc7, 0x64, 0x92, 0x49, 0x26, 0x91, 0x08, 0x10,
0x02, 0x40, 0x70, 0x00, 0x48, 0x24, 0x90, 0x48, 0x24, 0x91, 0x00, 0x10,
0x02, 0x20, 0xe0, 0x00, 0x48, 0x24, 0x90, 0x48, 0x24, 0x0f, 0x07, 0x10,
0x02, 0x10, 0xc0, 0x21, 0x48, 0x24, 0x90, 0x48, 0x24, 0x01, 0x08, 0x10,
0x02, 0x08, 0x80, 0x43, 0xc4, 0x24, 0x90, 0x48, 0x26, 0x91, 0x08, 0x10,
0x02, 0x04, 0x00, 0x87, 0x43, 0x23, 0x90, 0x88, 0x25, 0x0e, 0x07, 0x10,
0x02, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x10,
0x02, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x10,
0x02, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x10,
0x02, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x10,
0x02, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x10,
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0x02, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x10,
0x02, 0xfe, 0x03, 0x00, 0xf8, 0xbe, 0xef, 0xfb, 0x00, 0x70, 0x1d, 0x10,
0x02, 0xff, 0x07, 0x00, 0x04, 0x41, 0x10, 0x04, 0x01, 0xa8, 0x2a, 0x10,
0x82, 0xff, 0x0f, 0x80, 0x83, 0xa2, 0x28, 0x0a, 0x02, 0x54, 0x55, 0x10,
0x82, 0x65, 0x0e, 0x40, 0x45, 0x92, 0x24, 0xc9, 0x03, 0xec, 0x6e, 0x10,
0xc2, 0x99, 0x1d, 0xa0, 0x28, 0x8a, 0xa2, 0x28, 0x06, 0x56, 0xd5, 0x10,
0xc2, 0xdd, 0xdd, 0x91, 0x28, 0x8a, 0xa2, 0x28, 0xea, 0xaa, 0xab, 0x10,
0xc2, 0xdd, 0xfd, 0x8f, 0x28, 0x8a, 0xa2, 0x28, 0xf2, 0x57, 0xd5, 0x10,
0xc2, 0xdd, 0x5d, 0x81, 0x28, 0x8a, 0xa2, 0x28, 0xa2, 0xba, 0xba, 0x10,
0xc2, 0xdd, 0x1d, 0x80, 0x28, 0x8a, 0xa2, 0x28, 0x02, 0x76, 0xdd, 0x10,
0x82, 0xdd, 0x0d, 0x80, 0x28, 0x8a, 0xa2, 0x28, 0x02, 0xec, 0x6f, 0x10,
0x82, 0xff, 0x0f, 0x80, 0x28, 0x8a, 0xa2, 0x28, 0x02, 0xd4, 0x57, 0x10,
0x02, 0xff, 0x07, 0x80, 0x28, 0x8a, 0xa2, 0x28, 0x02, 0xa8, 0x2a, 0x10,
0x02, 0xfe, 0x03, 0x80, 0x24, 0x49, 0x92, 0x24, 0x01, 0x70, 0x1d, 0x10,
0x02, 0xf8, 0x00, 0x00, 0xc3, 0x30, 0x0c, 0xc3, 0x00, 0xc0, 0x07, 0x10,
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

#define icon_width 32
#define icon_height 32
static char icon_bits[] = {
0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x04, 0x01, 0x44,
0x00, 0x00, 0x00, 0x44, 0x80, 0x00, 0x08, 0x44, 0x00, 0x00, 0x00, 0x38,
0x10, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x12,
0x00, 0x00, 0x00, 0x20, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20,
0x80, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x10,
0x00, 0x38, 0x00, 0x20, 0x0e, 0x7c, 0x00, 0x10, 0x12, 0x7c, 0x00, 0x21,
0x12, 0x7c, 0x00, 0x11, 0x0a, 0x38, 0x00, 0x21, 0x12, 0x83, 0x20, 0x11,
0xa2, 0x54, 0x51, 0x21, 0xa2, 0x54, 0x4a, 0x11, 0xa2, 0x54, 0x4a, 0x20,
0x1e, 0x53, 0x72, 0x11, 0x00, 0x00, 0x40, 0x10, 0x00, 0x00, 0x48, 0x38,
0x00, 0x00, 0x30, 0x7c, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x7c,
0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00};

#define startup_width 160
#define startup_height 128
static char startup_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03,
0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x07, 0xc0, 0x07, 0x00, 0x00,
0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
0x00, 0x00, 0xf8, 0x07, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f,
0xe0, 0x03, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f, 0xf0, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xe0, 0x1f, 0xf0, 0x80, 0x7f, 0x00, 0x00, 0x00, 0x02, 0x80,
0x01, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f,
0xf8, 0xc0, 0xff, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7f, 0x78, 0xe0, 0xff, 0x01,
0x00, 0x00, 0x08, 0xc0, 0x03, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x80, 0xff, 0x3c, 0xe0, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x80,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
0x3d, 0x70, 0x80, 0x03, 0x00, 0x00, 0x20, 0x20, 0x00, 0x00, 0x40, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x1e, 0x70, 0x80, 0x03,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x7e, 0x0f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08,
0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c,
0x0f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0x07, 0xe0, 0x03, 0x00,
0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xdf, 0x0f, 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf,
0x0f, 0x00, 0x7f, 0x70, 0x3f, 0xdc, 0x0f, 0xe7, 0x7e, 0xe0, 0x1f, 0x0e,
0xff, 0xe0, 0x1f, 0x00, 0x00, 0x00, 0x80, 0xef, 0x1f, 0x00, 0xfc, 0xf0,
0x7f, 0xfc, 0x1f, 0xe7, 0xff, 0xf0, 0x3f, 0x8e, 0xff, 0xf1, 0x3f, 0x00,
0x00, 0x00, 0xc0, 0xc7, 0x3f, 0x00, 0xe0, 0xf1, 0xff, 0xfc, 0x3f, 0xe7,
0xff, 0xf9, 0x7f, 0xce, 0xff, 0xfb, 0x7f, 0x00, 0x00, 0x00, 0xc0, 0xc7,
0x3f, 0x00, 0xc0, 0xf3, 0xf0, 0x3c, 0x3c, 0xe7, 0xe1, 0x79, 0x78, 0xce,
0xc3, 0x7b, 0x70, 0x00, 0x00, 0x00, 0xe0, 0x83, 0x7f, 0x00, 0x80, 0x73,
0xe0, 0x1c, 0x38, 0xe7, 0xc0, 0x39, 0x70, 0xce, 0xe1, 0xf3, 0x07, 0x00,
0x00, 0x00, 0xe0, 0x01, 0xff, 0x70, 0x80, 0x73, 0xe0, 0x1c, 0x00, 0xe7,
0xc0, 0x39, 0x70, 0xce, 0xff, 0xe1, 0x3f, 0x00, 0x00, 0x00, 0xf0, 0x01,
0xff, 0x70, 0x80, 0x73, 0xe0, 0x1c, 0x00, 0xe7, 0xc0, 0x39, 0x70, 0xce,
0x3f, 0x00, 0x7f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xfe, 0xe1, 0xc0, 0xf1,
0xf0, 0x1c, 0x00, 0xe7, 0xc0, 0x79, 0x78, 0xce, 0x83, 0x39, 0x78, 0x00,
0x00, 0x00, 0x78, 0x00, 0xfc, 0xe3, 0xff, 0xf1, 0xff, 0x1c, 0x00, 0xe7,
0xc0, 0xf9, 0x7f, 0xce, 0xff, 0xfb, 0x7f, 0x00, 0x00, 0x00, 0x7c, 0x00,
0xfc, 0xc3, 0xff, 0xf0, 0x7f, 0x1c, 0x00, 0xe7, 0xc0, 0xf1, 0x7f, 0x8e,
0xff, 0xf1, 0x3f, 0x00, 0x00, 0x00, 0x3c, 0x00, 0xf8, 0x87, 0x7f, 0x70,
0x3f, 0x1c, 0x00, 0xe7, 0xc0, 0xe1, 0x7f, 0x0e, 0xff, 0xe0, 0x1f, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00,
0x00, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x60, 0x18,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00,
0x00, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0xe0, 0x3a,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00,
0xc0, 0x03, 0x00, 0x3c, 0x00, 0x00, 0x0c, 0x00, 0xe0, 0x01, 0x1c, 0x00,
0x18, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x06, 0x00, 0x64,
0x00, 0x00, 0x0c, 0x00, 0x20, 0x03, 0x26, 0x00, 0x18, 0x00, 0x88, 0x00,
0x00, 0x00, 0x00, 0x00, 0xc0, 0x93, 0x01, 0x64, 0x4e, 0xe6, 0xcc, 0xf1,
0x20, 0x73, 0x06, 0xa7, 0x99, 0x03, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00,
0x40, 0x96, 0x19, 0x64, 0x59, 0x96, 0x2d, 0x1b, 0x20, 0x9b, 0x86, 0x6c,
0x5b, 0x06, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x96, 0x01, 0x64,
0x59, 0x96, 0x2d, 0x73, 0x20, 0x7b, 0x86, 0x6c, 0x58, 0x06, 0x70, 0x00,
0x00, 0x00, 0x00, 0x00, 0x40, 0x96, 0x19, 0x64, 0x59, 0x96, 0x2d, 0xe3,
0x20, 0x1b, 0xa6, 0x6c, 0x58, 0x06, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00,
0xc0, 0xe3, 0x01, 0x3c, 0x8e, 0xe5, 0xcd, 0x7a, 0xe0, 0xf1, 0x1c, 0x6b,
0x98, 0x03, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00,
0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x01, 0x00, 0x00, 0x90, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x38, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x70, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xf0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x6c, 0x46, 0x00,
0x23, 0x00, 0x80, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x40, 0x0c, 0x46, 0x00, 0x23, 0x00, 0x80, 0x00,
0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x40, 0x6d, 0xcf, 0x83, 0xe7, 0x71, 0x9a, 0xcc, 0xc1, 0xe3, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x6d, 0x46, 0x06,
0x23, 0xcb, 0xb6, 0x67, 0x82, 0x91, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x40, 0x6d, 0x46, 0x06, 0x23, 0xcb, 0xb2, 0x8c,
0x80, 0x91, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x40, 0x6d, 0x56, 0x06, 0x2b, 0xcb, 0xb2, 0xac, 0x83, 0x95, 0x19, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x6e, 0x4c, 0x06,
0x26, 0xb3, 0xb2, 0xcc, 0x01, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x7c, 0xdb, 0x00, 0x63, 0xe0, 0x03, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c,
0x1b, 0x00, 0x63, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xdb, 0x9c, 0xf7, 0xe0,
0xcb, 0x9c, 0xc6, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x0c, 0xdb, 0x32, 0x63, 0x60, 0xc8, 0xb2, 0x6d, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c,
0xdb, 0x32, 0x63, 0x60, 0xc8, 0xb2, 0xcc, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xdb, 0x32, 0x6b, 0x61,
0xd0, 0xb2, 0x8c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x7c, 0xdb, 0x1c, 0xc6, 0xe0, 0x63, 0xac, 0xec, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64,
0x80, 0x11, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x80, 0x11, 0x00, 0x00,
0x0c, 0x00, 0x60, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x6c, 0xde, 0xf3, 0x78, 0x0d, 0x0c, 0x8e, 0x63, 0x3c,
0x4e, 0xd6, 0x34, 0x4e, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74,
0x99, 0x91, 0x65, 0x1b, 0x0c, 0x59, 0xf6, 0x64, 0x59, 0xb6, 0x6d, 0x59,
0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x99, 0x91, 0x65, 0x19,
0x0c, 0x59, 0x66, 0x64, 0x59, 0x36, 0x0c, 0x59, 0x32, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x64, 0x99, 0x95, 0x65, 0x19, 0x0c, 0x59, 0x66, 0x64,
0x59, 0x36, 0x0c, 0x59, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64,
0x16, 0x93, 0x59, 0x19, 0x7c, 0x8e, 0x63, 0x3c, 0x8e, 0x35, 0x0c, 0x8e,
0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x9c,
0x05, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0xb2, 0x05, 0x00, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64,
0x8d, 0x93, 0x0c, 0xb2, 0x3d, 0xcd, 0x9c, 0x07, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0xdb, 0x94, 0x0c, 0xb2,
0x65, 0xdb, 0xa6, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x64, 0xc3, 0x93, 0x0c, 0xb2, 0x65, 0xc3, 0x86, 0x0c,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64,
0xc3, 0x90, 0x0c, 0xb2, 0x65, 0xc3, 0xa6, 0x0c, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x83, 0x67, 0x07, 0x9c,
0x3d, 0xc3, 0x9c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x40, 0x6c, 0x46, 0x30, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28,
0x00, 0x06, 0x40, 0x0c, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x8d, 0x97, 0x41, 0x6d,
0x4f, 0xb6, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x7c, 0x5b, 0x96, 0x41, 0x6d, 0xc6, 0xb3, 0x0d, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64,
0x59, 0x96, 0x41, 0x6d, 0x46, 0xb6, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x59, 0x96, 0x41, 0x6d,
0x56, 0xb6, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x64, 0x99, 0xe5, 0xc1, 0x6e, 0x4c, 0xb6, 0x0c, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00};
\BARFOO\
else
echo "will not over write ./title.h"
fi
if `test ! -s ./widget.c`
then
echo "writting ./widget.c"
cat > ./widget.c << '\BARFOO\'
/* widget.c -- Xlib widget support for xspringies


* Copyright (C) 1991,1992 Douglas M. DeCarlo
*
* This file is part of XSpringies, a mass and spring simulation system for X
*
* XSpringies is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 1, or (at your option)
* any later version.
*
* XSpringies is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with XSpringies; see the file COPYING. If not, write to
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/

#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include "defs.h"

#define NAME_LEN 32
#define MAX_OBJS 16
#define NUM_DIGS 12

/* Bitmaps used */
static char check_bits[] = {
0x00, 0x00, 0xfe, 0x7f, 0x06, 0x60, 0x0a, 0x50, 0x12, 0x48, 0x22, 0x44,
0x42, 0x42, 0x82, 0x41, 0x82, 0x41, 0x42, 0x42, 0x22, 0x44, 0x12, 0x48,
0x0a, 0x50, 0x06, 0x60, 0xfe, 0x7f, 0x00, 0x00};
static char checked_bits[] = {
0x00, 0x00, 0xfe, 0x7f, 0xfe, 0x7f, 0x0e, 0x70, 0x16, 0x68, 0x26, 0x64,
0x46, 0x62, 0x86, 0x61, 0x86, 0x61, 0x46, 0x62, 0x26, 0x64, 0x16, 0x68,
0x0e, 0x70, 0xfe, 0x7f, 0xfe, 0x7f, 0x00, 0x00};
static char unchecked_bits[] = {
0x00, 0x00, 0xfe, 0x7f, 0xfe, 0x7f, 0x06, 0x60, 0x06, 0x60, 0x06, 0x60,
0x06, 0x60, 0x06, 0x60, 0x06, 0x60, 0x06, 0x60, 0x06, 0x60, 0x06, 0x60,
0x06, 0x60, 0xfe, 0x7f, 0xfe, 0x7f, 0x00, 0x00};
static char box_bits[] = {
0x00, 0x00, 0xfe, 0x7f, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40,
0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40,
0x02, 0x40, 0x02, 0x40, 0xfe, 0x7f, 0x00, 0x00};
static char rarr_bits[] = {
0xfc, 0x1f, 0xfe, 0x3f, 0x07, 0x70, 0x13, 0x60, 0x73, 0x60, 0xf3, 0x61,
0xf3, 0x67, 0xf3, 0x6f, 0xf3, 0x67, 0xf3, 0x61, 0x73, 0x60, 0x13, 0x60,
0x07, 0x70, 0xfe, 0x3f, 0xfc, 0x1f, 0x00, 0x00};
static char riarr_bits[] = {
0xfc, 0x1f, 0x06, 0x30, 0xfb, 0x6f, 0xed, 0x5f, 0x8d, 0x5f, 0x0d, 0x5e,
0x0d, 0x58, 0x0d, 0x50, 0x0d, 0x58, 0x0d, 0x5e, 0x8d, 0x5f, 0xed, 0x5f,
0xfb, 0x6f, 0x06, 0x30, 0xfc, 0x1f, 0x00, 0x00};
static char larr_bits[] = {
0xfc, 0x1f, 0xfe, 0x3f, 0x07, 0x70, 0x03, 0x64, 0x03, 0x67, 0xc3, 0x67,
0xf3, 0x67, 0xfb, 0x67, 0xf3, 0x67, 0xc3, 0x67, 0x03, 0x67, 0x03, 0x64,
0x07, 0x70, 0xfe, 0x3f, 0xfc, 0x1f, 0x00, 0x00};
static char liarr_bits[] = {
0xfc, 0x1f, 0x06, 0x30, 0xfb, 0x6f, 0xfd, 0x5b, 0xfd, 0x58, 0x3d, 0x58,
0x0d, 0x58, 0x05, 0x58, 0x0d, 0x58, 0x3d, 0x58, 0xfd, 0x58, 0xfd, 0x5b,
0xfb, 0x6f, 0x06, 0x30, 0xfc, 0x1f, 0x00, 0x00};

/* Types of objects */
typedef struct {
Window win;
int ulx, uly, lrx, lry;
int idno;
char name[NAME_LEN];
boolean state;
} button;

/* Types of objects */
typedef struct {
Window win;
int ulx, uly, lrx, lry;
int idno;
char name[NAME_LEN];
int *activeid;
Pixmap pm;
int pmwid, pmht;
boolean state;
boolean disable;
} modebutton;

typedef struct {
Window win;
int ulx, uly, lrx, lry;
int idno;
char name[NAME_LEN];
boolean nowstate;
boolean *state;
} checkbox;

typedef struct {
Window win;
int ulx, uly, lrx, lry;
int idno;
char name[NAME_LEN];
char format[NAME_LEN];
int state, active;
double nowvalue;
double *value;
double vmin, vmax, vincr;
} slider;

/* Object globals */
static button buttons[MAX_OBJS];
static modebutton mbuttons[MAX_OBJS];
static checkbox cboxes[MAX_OBJS];
static slider sliders[MAX_OBJS];
static char keybuff[NUM_DIGS + 1];
static int numb, numm, nums, numc, cur_type, cur_num, cur_but, key_active;
static boolean key_dirty;
static Pixmap cb_pm, cbc_pm, cbcb_pm, cbub_pm, la_pm, lap_pm, ra_pm, rap_pm;

/* Flag if the arrow buttons on sliders are in scan mode */
boolean scan_flag;

/* X variables from elsewhere */
extern Display *dpy;
extern Window main_win;
extern GC drawgc, erasegc, fggc, bggc, revgc, hlgc;
extern Pixmap acts_pm;
void (*notify_func)();

void init_widgets(notify)
void (*notify)();
{
extern Pixmap get_pixmap();

numb = nums = numc = numm = cur_type = cur_num = 0;
key_active = cur_but = -1;
scan_flag = FALSE;

notify_func = notify;

cb_pm = get_pixmap(box_bits, 16, 16, FALSE);
cbc_pm = get_pixmap(check_bits, 16, 16, FALSE);
cbcb_pm = get_pixmap(checked_bits, 16, 16, FALSE);
cbub_pm = get_pixmap(unchecked_bits, 16, 16, FALSE);
la_pm = get_pixmap(larr_bits, 16, 16, FALSE);
lap_pm = get_pixmap(liarr_bits, 16, 16, FALSE);
ra_pm = get_pixmap(rarr_bits, 16, 16, FALSE);
rap_pm = get_pixmap(riarr_bits, 16, 16, FALSE);
}

void add_button(d, win, ulx, uly, lrx, lry, name, idno)
Drawable d;
Window win;
int ulx, uly, lrx, lry;
char *name;
int idno;
{
int len;

if (numb < MAX_OBJS - 1) {
buttons[numb].win = win;
buttons[numb].ulx = ulx;
buttons[numb].uly = uly;
buttons[numb].lrx = lrx;
buttons[numb].lry = lry;
strncpy(buttons[numb].name, name, NAME_LEN-1);
buttons[numb].name[NAME_LEN-1] = '\0';
len = strlen(buttons[numb].name);
buttons[numb].idno = idno;
buttons[numb].state = FALSE;

XDrawRectangle(dpy, d, drawgc, ulx, uly, lrx - ulx + 1, lry - uly + 1);
XDrawRectangle(dpy, d, drawgc, ulx+1, uly+1, lrx - ulx - 1, lry - uly - 1);

XDrawString(dpy, d, drawgc, (ulx + lrx - len * F_WID) / 2, (uly + lry + F_HT) / 2,
buttons[numb].name, len);

numb++;
}
}

void draw_modebutton(d, which)
Drawable d;
int which;
{
int ulx, uly, lrx, lry, pmwid, pmht;
int len;
Pixmap pm;

ulx = mbuttons[which].ulx;
uly = mbuttons[which].uly;
lrx = mbuttons[which].lrx;
lry = mbuttons[which].lry;
pmwid = mbuttons[which].pmwid;
pmht = mbuttons[which].pmht;
pm = mbuttons[which].pm;

len = strlen(mbuttons[which].name);

if (len) {
XCopyArea(dpy, pm, d, drawgc, 0, 0, pmwid, pmht, ulx + (lrx - ulx - pmwid) / 2, uly + (lry - uly - 4 * F_HT / 3 - 1 - pmht) / 2);
XDrawString(dpy, d, drawgc, ulx + (lrx - ulx - len * F_WID) / 2, lry - F_HT / 3 - 1, mbuttons[which].name, len);
} else {
XCopyArea(dpy, pm, d, drawgc, 0, 0, pmwid, pmht, ulx + (lrx - ulx - pmwid) / 2, uly + (lry - uly - pmht) / 2);
}
}

void add_modebutton(d, win, ulx, uly, lrx, lry, name, pm_bits, pmwid, pmht, idno, activeid, disable)
Drawable d;
Window win;
int ulx, uly, lrx, lry;
char *name;
char *pm_bits;
int pmwid, pmht;
int idno;
int *activeid;
boolean disable;
{
if (numm < MAX_OBJS - 1) {
mbuttons[numm].win = win;
mbuttons[numm].ulx = ulx;
mbuttons[numm].uly = uly;
mbuttons[numm].lrx = lrx;
mbuttons[numm].lry = lry;
strncpy(mbuttons[numm].name, name, NAME_LEN-1);
mbuttons[numm].name[NAME_LEN-1] = '\0';
mbuttons[numm].idno = idno;
mbuttons[numm].activeid = activeid;
mbuttons[numm].state = (mbuttons[numm].idno == *activeid);

mbuttons[numm].disable = disable;

XDrawRectangle(dpy, d, drawgc, ulx, uly, lrx - ulx + 1, lry - uly + 1);
XDrawRectangle(dpy, d, drawgc, ulx+1, uly+1, lrx - ulx - 1, lry - uly - 1);

mbuttons[numm].pm = get_pixmap(pm_bits, pmwid, pmht, FALSE);
mbuttons[numm].pmwid = pmwid;
mbuttons[numm].pmht = pmht;

draw_modebutton(d, numm);

numm++;
}
}

void add_checkbox(d, win, ulx, uly, lrx, lry, name, idno, state)
Drawable d;
Window win;
int ulx, uly, lrx, lry;
char *name;
int idno;
boolean *state;
{
int len;

if (numc < MAX_OBJS - 1) {
cboxes[numc].win = win;
cboxes[numc].ulx = ulx;
cboxes[numc].uly = uly;
cboxes[numc].lrx = lrx;
cboxes[numc].lry = lry;
strncpy(cboxes[numc].name, name, NAME_LEN-1);
cboxes[numc].name[NAME_LEN-1] = '\0';
len = strlen(cboxes[numc].name);
cboxes[numc].idno = idno;
cboxes[numc].state = state;
cboxes[numc].nowstate = *(cboxes[numc].state);

XCopyArea(dpy, cb_pm, d, drawgc, 0, 0, 16, 16, ulx, (uly + lry - 16) / 2);

XDrawString(dpy, d, drawgc, ulx + 20, (uly + lry + F_HT) / 2 - 1, cboxes[numc].name, len);

numc++;
}
}

void add_slider(d, win, ulx, uly, lrx, lry, name, format, idno, value, vmax, vmin, vincr)
Drawable d;
Window win;
int ulx, uly, lrx, lry;
char *name, *format;
int idno;
double *value;
double vmin, vmax, vincr;
{
int len;

if (numc < MAX_OBJS - 1) {
sliders[nums].win = win;
sliders[nums].ulx = ulx;
sliders[nums].uly = uly;
sliders[nums].lrx = lrx;
sliders[nums].lry = lry;
strncpy(sliders[nums].name, name, NAME_LEN-1);
sliders[nums].name[NAME_LEN-1] = '\0';
len = strlen(sliders[nums].name);
strncpy(sliders[nums].format, format, NAME_LEN-1);
sliders[nums].format[NAME_LEN-1] = '\0';
sliders[nums].idno = idno;
sliders[nums].value = value;
sliders[nums].nowvalue = *(sliders[nums].value);
sliders[nums].vmax = vmax;
sliders[nums].vmin = vmin;
sliders[nums].vincr = vincr;
sliders[nums].state = O_NOTHING;
sliders[nums].active = FALSE;

XCopyArea(dpy, la_pm, d, drawgc, 0, 0, 16, 16, ulx, (uly + lry - 16) / 2);
XCopyArea(dpy, ra_pm, d, drawgc, 0, 0, 16, 16, ulx + 16 + F_WID * NUM_DIGS + 12, (uly + lry - 16) / 2);

XDrawRectangle(dpy, d, drawgc, ulx + 16 + 2, (uly + lry - 16) / 2, F_WID * NUM_DIGS + 6, F_HT + 4);
XDrawRectangle(dpy, d, drawgc, ulx + 16 + 3, (uly + lry - 16) / 2 + 1, F_WID * NUM_DIGS + 4, F_HT + 2);

XDrawString(dpy, d, drawgc, ulx + 16 + F_WID * NUM_DIGS + 32, (uly + lry + F_HT) / 2 - 2, sliders[nums].name, len);

nums++;
}
}

void activate_mbutton(activeptr, state)
int *activeptr;
boolean state;
{
int i;

for (i = 0; i < numm; i++) {
if (mbuttons[i].activeid == activeptr) {
*(mbuttons[i].activeid) = state ? mbuttons[i].idno : -1;
break;
}
}
}

static void update_mbutton(old_id, new_id)
int old_id, new_id;
{
int i, ulx, uly, lrx, lry;

/* Invert old mode button */
for (i = 0; i < numm; i++) {
if (mbuttons[i].idno == old_id)
break;
}
if (mbuttons[i].idno == old_id) {
ulx = mbuttons[i].ulx;
uly = mbuttons[i].uly;
lrx = mbuttons[i].lrx;
lry = mbuttons[i].lry;

XCopyPlane(dpy, acts_pm, mbuttons[i].win, fggc, ulx+3, uly+3, lrx - ulx - 4, lry - uly - 4, ulx+3, uly+3, 0x1);
}

/* Invert new mode button */
for (i = 0; i < numm; i++) {
if (mbuttons[i].idno == new_id)
break;
}
if (mbuttons[i].idno == new_id) {
ulx = mbuttons[i].ulx;
uly = mbuttons[i].uly;
lrx = mbuttons[i].lrx;
lry = mbuttons[i].lry;

XCopyPlane(dpy, acts_pm, mbuttons[i].win, revgc, ulx+3, uly+3, lrx - ulx - 4, lry - uly - 4, ulx+3, uly+3, 0x1);
}
}

void update_slider_box(cur, ulx, uly, lrx, lry, inverted)
int cur;
boolean inverted;
{
int len;
char valuebuf[256];

if (cur == key_active && key_dirty) {
strcpy(valuebuf, keybuff);
len = strlen(valuebuf);
} else {
sprintf(valuebuf, sliders[cur].format, *(sliders[cur].value));
if ((len = strlen(valuebuf)) > NUM_DIGS)
len = NUM_DIGS;
}

XFillRectangle(dpy, sliders[cur].win, bggc, ulx + 16 + 4, (uly + lry - 16) / 2 + 2, F_WID * NUM_DIGS + 3, F_HT + 1);

if (inverted) {
XFillRectangle(dpy, sliders[cur].win, hlgc, ulx + 16 + 5, (uly + lry - 16) / 2 + 3, F_WID * NUM_DIGS + 1, F_HT - 1);
}
XDrawString(dpy, sliders[cur].win, inverted ? bggc : fggc, ulx + 16 + 4, (uly + lry + F_HT) / 2 - 2, valuebuf, len);
}

void update_slider(cur)
int cur;
{
int ulx, uly, lrx, lry;

ulx = sliders[cur].ulx;
uly = sliders[cur].uly;
lrx = sliders[cur].lrx;
lry = sliders[cur].lry;

/* Set to proper range */
if (*(sliders[cur].value) < sliders[cur].vmin) {
*(sliders[cur].value) = sliders[cur].vmin;
} else if (*(sliders[cur].value) > sliders[cur].vmax) {
*(sliders[cur].value) = sliders[cur].vmax;
}

update_slider_box(cur, ulx, uly, lrx, lry, cur == key_active);
}

void change_slider_parms(cur, valp, max, min)
int cur;
double *valp, max, min;
{
sliders[cur].value = valp;
sliders[cur].vmax = max;
sliders[cur].vmin = min;
}

int slider_valno(idno)
int idno;
{
int i;

/* Draw sliders */
for (i = 0; i < nums; i++) {
if (sliders[i].idno == idno)
return i;
}
return -1;
}

static void update_checkbox(cur, active)
int cur;
boolean active;
{
int ulx, uly, lry;
Pixmap which_pm;

ulx = cboxes[cur].ulx;
uly = cboxes[cur].uly;
lry = cboxes[cur].lry;

if (active) {
which_pm = cboxes[cur].nowstate ? cbub_pm : cbcb_pm;
} else {
which_pm = *(cboxes[cur].state) ? cbc_pm : cb_pm;
}

XCopyPlane(dpy, which_pm, cboxes[cur].win, fggc, 0, 0, 16, 16, ulx, (uly + lry - 16) / 2, 0x1);
}

void redraw_widgets(mode)
boolean mode;
{
int i;

if (mode){
/* Draw mode buttons */
for (i = 0; i < numm; i++) {
if (*(mbuttons[i].activeid) == mbuttons[i].idno)
update_mbutton(-1, mbuttons[i].idno);
}
}

/* Draw checkboxes */
for (i = 0; i < numc; i++) {
update_checkbox(i, FALSE);
}

/* Draw sliders */
for (i = 0; i < nums; i++) {
update_slider(i);
}


/* Redraw active object */
}

boolean key_widgets(key, win)
int key;
Window win;
{
int len, ka = key_active;

if (key_active < 0 || sliders[key_active].win != win)
return FALSE;

len = strlen(keybuff);

switch (key) {
case K_DELETE:
if (len > 0) {
keybuff[len - 1] = '\0';
}
break;
case K_RETURN:
if (keybuff[0]) {
sscanf(keybuff, "%lf", sliders[key_active].value);
}
case K_ESCAPE:
key_active = -1;
break;
default:
if (len < NUM_DIGS - 1) {
keybuff[len] = (char)key;
keybuff[len+1] = '\0';
}
break;
}

key_dirty = TRUE;
update_slider(ka);
if (key == K_RETURN) {
notify_func(O_SLIDER, ka);
}
return TRUE;
}

boolean check_widgets(win, mx, my, butn, mstat)
Window win;
int mx, my;
int butn, mstat;
{
int i;
int ulx, uly, lrx, lry;

switch (mstat) {
case M_UP:
/* If button up, then just deactivate current widget */
if (cur_but == butn) {
switch (cur_type) {
case O_BUTTON:
ulx = buttons[cur_num].ulx;
uly = buttons[cur_num].uly;
lrx = buttons[cur_num].lrx;
lry = buttons[cur_num].lry;

if (buttons[cur_num].state) {
XCopyPlane(dpy, acts_pm, win, fggc, ulx+3, uly+3, lrx - ulx - 4, lry - uly - 4, ulx+3, uly+3, 0x1);
buttons[cur_num].state = FALSE;
notify_func(O_BUTTON, buttons[cur_num].idno);
}
break;

case O_MBUTTON:
if (mbuttons[cur_num].state) {
*(mbuttons[cur_num].activeid) = (*(mbuttons[cur_num].activeid) != mbuttons[cur_num].idno) ? mbuttons[cur_num].idno : -1;
mbuttons[cur_num].state = FALSE;
notify_func(O_MBUTTON, mbuttons[cur_num].idno);
}
break;

case O_SLIDER:
ulx = sliders[cur_num].ulx;
uly = sliders[cur_num].uly;
lrx = sliders[cur_num].lrx;
lry = sliders[cur_num].lry;

if (sliders[cur_num].state == O_LSLIDER) {
XCopyPlane(dpy, la_pm, win, fggc, 0, 0, 16, 16, ulx, (uly + lry - 16) / 2, 0x1);
sliders[cur_num].active = FALSE;
notify_func(O_SLIDER, sliders[cur_num].idno);
} else if (sliders[cur_num].state == O_RSLIDER) {
XCopyPlane(dpy, ra_pm, win, fggc, 0, 0, 16, 16, ulx + 16 + F_WID * NUM_DIGS + 12, (uly + lry - 16) / 2, 0x1);
sliders[cur_num].active = FALSE;
notify_func(O_SLIDER, sliders[cur_num].idno);
} else if (sliders[cur_num].state == O_TSLIDER) {
if (sliders[cur_num].active) {
key_active = cur_num;
key_dirty = FALSE;
keybuff[0] = '\0';
}
}

scan_flag = FALSE;
break;

case O_CHECKBOX:
ulx = cboxes[cur_num].ulx;
uly = cboxes[cur_num].uly;
lrx = cboxes[cur_num].lrx;
lry = cboxes[cur_num].lry;

if (*(cboxes[cur_num].state) != cboxes[cur_num].nowstate) {
*(cboxes[cur_num].state) = cboxes[cur_num].nowstate;
update_checkbox(cur_num, FALSE);

notify_func(O_CHECKBOX, cboxes[cur_num].idno);
}
break;
}
cur_type = cur_num = 0;
cur_but = -1;
return TRUE;
}
break;

case M_DOWN:
if (cur_but < 0) {
/* Check buttons */
for (i = 0; i < numb; i++) {
ulx = buttons[i].ulx;

uly = buttons[i].uly;
lrx = buttons[i].lrx;
lry = buttons[i].lry;

if (buttons[i].win == win && ulx < mx && mx < lrx && uly < my && my < lry) {
if (!buttons[i].state) {
XCopyPlane(dpy, acts_pm, win, revgc, ulx+3, uly+3, lrx - ulx - 4, lry - uly - 4, ulx+3, uly+3, 0x1);
buttons[i].state = TRUE;
}
cur_type = O_BUTTON;
cur_num = i;
cur_but = butn;
return TRUE;
}
}

/* Check checkboxes */
for (i = 0; i < numc; i++) {
ulx = cboxes[i].ulx;
uly = cboxes[i].uly;
lrx = cboxes[i].lrx;
lry = cboxes[i].lry;

if (cboxes[i].win == win && ulx < mx && mx < lrx && uly < my && my < lry) {
if (*(cboxes[i].state)) {
cboxes[i].nowstate = FALSE;
} else {
cboxes[i].nowstate = TRUE;
}
update_checkbox(i, TRUE);

cur_type = O_CHECKBOX;
cur_num = i;
cur_but = butn;
return TRUE;
}
}

/* Check mode buttons */
for (i = 0; i < numm; i++) {
ulx = mbuttons[i].ulx;
uly = mbuttons[i].uly;
lrx = mbuttons[i].lrx;
lry = mbuttons[i].lry;

if (mbuttons[i].win == win && ulx < mx && mx < lrx && uly < my && my < lry) {
if ((*(mbuttons[i].activeid) == mbuttons[i].idno) && !mbuttons[i].disable)
return FALSE;

update_mbutton(*(mbuttons[i].activeid), (*(mbuttons[i].activeid) != mbuttons[i].idno) ? mbuttons[i].idno : -1);
mbuttons[i].state = TRUE;

cur_type = O_MBUTTON;
cur_num = i;
cur_but = butn;
return TRUE;
}
}

/* Check sliders */
for (i = 0; i < nums; i++) {
ulx = sliders[i].ulx;
uly = sliders[i].uly;
lrx = sliders[i].lrx;
lry = sliders[i].lry;

if (sliders[i].win == win && ulx < mx && (uly + lry - 16) / 2 < my && my < (uly + lry - 16) / 2 + 16) {
if (mx < ulx + 16) {
/* Do left arrow */
if (i == key_active) {
key_widgets(K_RETURN, sliders[key_active].win);
}
sliders[i].state = O_LSLIDER;
XCopyPlane(dpy, lap_pm, win, fggc, 0, 0, 16, 16, ulx, (uly + lry - 16) / 2, 0x1);
if (butn == 1)
*(sliders[i].value) -= sliders[i].vincr;
update_slider(i);
sliders[i].active = TRUE;
if (butn != 1)
scan_flag = TRUE;
} else if (ulx + 16 + F_WID * NUM_DIGS + 12 < mx && mx < ulx + 16 + F_WID * NUM_DIGS + 12 + 16) {
/* Do right arrow */
if (i == key_active) {
key_widgets(K_RETURN, sliders[key_active].win);
}
sliders[i].state = O_RSLIDER;
XCopyPlane(dpy, rap_pm, win, fggc, 0, 0, 16, 16, ulx + 16 + F_WID * NUM_DIGS + 12, (uly + lry - 16) / 2, 0x1);
if (butn == 1)
*(sliders[i].value) += sliders[i].vincr;
update_slider(i);
sliders[i].active = TRUE;
if (butn != 1)
scan_flag = TRUE;
} else if (ulx + 18 < mx && mx < ulx + 18 + F_WID * NUM_DIGS + 6) {
/* Do text box */
key_widgets(K_RETURN, sliders[key_active].win);
sliders[i].state = O_TSLIDER;
sliders[i].active = TRUE;
update_slider_box(i, ulx, uly, lrx, lry, TRUE);
}

cur_type = O_SLIDER;
cur_num = i;
cur_but = butn;
return TRUE;
}
}

}
break;

case M_DRAG:
if (cur_but >= 0) {
boolean inside;

switch (cur_type) {
case O_BUTTON:
ulx = buttons[cur_num].ulx;
uly = buttons[cur_num].uly;
lrx = buttons[cur_num].lrx;
lry = buttons[cur_num].lry;

inside = (buttons[cur_num].win == win) && ulx < mx && mx < lrx && uly < my && my < lry;

if ((inside && !buttons[cur_num].state) || (!inside && buttons[cur_num].state)) {
/* Flip button value */
XCopyPlane(dpy, acts_pm, win, buttons[cur_num].state ? fggc : revgc, ulx+3, uly+3, lrx - ulx - 4, lry - uly - 4, ulx+3, uly+3, 0x1);
buttons[cur_num].state = !buttons[cur_num].state;
}
break;

case O_MBUTTON:
ulx = mbuttons[cur_num].ulx;
uly = mbuttons[cur_num].uly;
lrx = mbuttons[cur_num].lrx;
lry = mbuttons[cur_num].lry;

inside = (mbuttons[cur_num].win == win) && ulx < mx && mx < lrx && uly < my && my < lry;

if ((inside && !mbuttons[cur_num].state) || (!inside && mbuttons[cur_num].state)) {
/* Flip button value */
if (mbuttons[cur_num].state)
update_mbutton((*(mbuttons[cur_num].activeid) != mbuttons[cur_num].idno) ? mbuttons[cur_num].idno : -1, *(mbuttons[cur_num].activeid));
else
update_mbutton(*(mbuttons[cur_num].activeid), (*(mbuttons[cur_num].activeid) != mbuttons[cur_num].idno) ? mbuttons[cur_num].idno : -1);

mbuttons[cur_num].state = !mbuttons[cur_num].state;
}
break;

case O_SLIDER:
ulx = sliders[cur_num].ulx;
uly = sliders[cur_num].uly;
lrx = sliders[cur_num].lrx;
lry = sliders[cur_num].lry;

inside = ((uly + lry - 16) / 2 < my && my < (uly + lry - 16) / 2 + 16);

if (sliders[cur_num].state == O_LSLIDER) {
inside = inside && (ulx < mx) && (mx < ulx + 16);

if (sliders[cur_num].active && !inside) {
XCopyPlane(dpy, la_pm, win, fggc, 0, 0, 16, 16, ulx, (uly + lry - 16) / 2, 0x1);
sliders[cur_num].active = FALSE;
} else if (!sliders[cur_num].active && inside) {
XCopyPlane(dpy, lap_pm, win, fggc, 0, 0, 16, 16, ulx, (uly + lry - 16) / 2, 0x1);
sliders[cur_num].active = TRUE;
}
scan_flag = (cur_but != 1 && sliders[cur_num].active);
} else if (sliders[cur_num].state == O_RSLIDER) {
inside = inside && (ulx + 16 + F_WID * NUM_DIGS + 12 < mx) && (mx < ulx + 16 + F_WID * NUM_DIGS + 12 + 16);

if (sliders[cur_num].active && !inside) {
XCopyPlane(dpy, ra_pm, win, fggc, 0, 0, 16, 16, ulx + 16 + F_WID * NUM_DIGS + 12, (uly + lry - 16) / 2, 0x1);
sliders[cur_num].active = FALSE;
} else if (!sliders[cur_num].active && inside) {
XCopyPlane(dpy, rap_pm, win, fggc, 0, 0, 16, 16, ulx + 16 + F_WID * NUM_DIGS + 12, (uly + lry - 16) / 2, 0x1);
sliders[cur_num].active = TRUE;
}
scan_flag = (cur_but != 1 && sliders[cur_num].active);
} else if (sliders[cur_num].state == O_TSLIDER) {
inside = (uly + lry - 16) / 2 < my && my <= (uly + lry - 16) / 2 + F_HT + 3 && ulx + 18 < mx && mx < ulx + 18 + F_WID * NUM_DIGS + 6;

if ((sliders[cur_num].active && !inside) || (!sliders[cur_num].active && inside)) {
update_slider_box(cur_num, ulx, uly, lrx, lry, inside);
sliders[cur_num].active = !sliders[cur_num].active;
}
}
break;

case O_CHECKBOX:
ulx = cboxes[cur_num].ulx;
uly = cboxes[cur_num].uly;
lrx = cboxes[cur_num].lrx;
lry = cboxes[cur_num].lry;

inside = (cboxes[cur_num].win == win) && ulx < mx && mx < lrx && uly < my && my < lry;

if (inside && *(cboxes[cur_num].state) == cboxes[cur_num].nowstate) {
cboxes[cur_num].nowstate = !*(cboxes[cur_num].state);
} else if (!inside && *(cboxes[cur_num].state) != cboxes[cur_num].nowstate) {
cboxes[cur_num].nowstate = *(cboxes[cur_num].state);
} else {
break;
}

/* Change checkbox value */
update_checkbox(cur_num, inside);
break;
}
}
break;

case M_HOLD:
if (cur_but >= 1 && cur_type == O_SLIDER) {
double mag = 1.0;

if (cur_but == 3)
mag = 10.0;

if (sliders[cur_num].state == O_LSLIDER) {
*(sliders[cur_num].value) -= sliders[cur_num].vincr * mag;
update_slider(cur_num);
} else if (sliders[cur_num].state == O_RSLIDER) {
*(sliders[cur_num].value) += sliders[cur_num].vincr * mag;
update_slider(cur_num);
}
}
break;
}

return FALSE;
}
\BARFOO\
else
echo "will not over write ./widget.c"
fi
echo "Finished archive 3 of 16"

Douglas DeCarlo

unread,
Mar 26, 1993, 11:12:19 AM3/26/93
to
Submitted-by: d...@gradient.cis.upenn.edu (Douglas DeCarlo)
Posting-number: Volume 19, Issue 56
Archive-name: xspringies/part04

Environment: X11
Supersedes: xspringies: Volume 14, Issue 25-30

#!/bin/sh


# to extract, remove the header and type "sh filename"

if `test ! -d ./lib`
then
mkdir ./lib
echo "mkdir ./lib"
fi
if `test ! -s ./lib/zingy.xsp`
then
echo "writting ./lib/zingy.xsp"
cat > ./lib/zingy.xsp << '\BARFOO\'
#1.0 *** XSpringies data file
cmas 1
elas 1
kspr 10
kdmp 1
fixm 1
shws 1
cent -1
frce 0 0 10 0
frce 1 0 5 2
frce 2 0 10 0
frce 3 0 10000 1
visc 0
stck 0
step 0.025
prec 1
adpt 0
gsnp 20 0
wall 1 1 1 1
mass 1 171.935289037 308.205975009 -32.3569475661 -11.1228790452 1 1
mass 2 184.344717499 319.761393874 -33.9275114697 -9.32414881597 1 1
mass 3 199.652059239 329.255781513 -34.1569967299 -8.50938001294 1 1
mass 4 215.756366128 332.754910417 -33.7557679284 -8.85344594067 1 1
mass 5 232.636046245 329.179539271 -33.7944219518 -10.483547665 1 1
mass 6 247.27317969 319.57188562 -34.1578742598 -10.4650492354 1 1
mass 7 258.4947709 304.027351791 -33.6341992102 -10.5242309965 1 1
mass 8 269.901010184 286.897041567 -19.8119971656 -1.50878323362 1 1
mass 9 281.237342589 275.250479271 -17.223309771 0.760714273218 1 1
mass 10 295.842676388 264.65162579 -17.3397948693 1.26456227504 1 1
mass 11 311.902346148 266.100747153 -17.3316231365 -0.118343196776 1 1
mass 12 327.141125787 274.688346675 -16.2094197998 -1.8325047945 1 1
mass 13 337.343768574 284.456765366 -13.8181100654 -4.09258266147 1 1
mass 14 348.539137599 296.239213714 -15.6027386294 -1.98672964671 1 1
mass 15 268.80967555 440.790258556 -33.7795989133 -7.93987110031 1 1
mass 16 257.899232823 162.277289195 -14.772834743 -2.80664196866 1 1
mass 17 258 478 0 0 -1 1
mass 18 259 123 0 0 -1 1
spng 1 7 15 30 1 137.091210513
spng 2 15 6 30 1 123.17873193
spng 3 5 15 30 1 117.443603487
spng 4 15 4 30 1 120.42009799
spng 5 3 15 30 1 131.228807813
spng 6 15 2 30 1 147.566933966
spng 7 1 15 30 1 164.195006014
spng 8 15 8 30 1 153.209007568
spng 9 9 15 30 1 165.215011425
spng 10 15 10 30 1 177.485210651
spng 11 11 15 30 1 179.401783715
spng 12 15 12 30 1 175.855053951
spng 13 13 15 30 1 170.836178838
spng 14 15 14 30 1 165.680415258
spng 15 1 16 30 1 169.743924781
spng 16 16 2 30 1 174.002873539
spng 17 3 16 30 1 176.78235206
spng 18 16 4 30 1 175.282628917
spng 19 5 16 30 1 168.267643949
spng 20 16 6 30 1 157.03502794
spng 21 7 16 30 1 141.127601836
spng 22 16 8 30 1 125.195846576
spng 23 9 16 30 1 115.572488076
spng 24 16 10 30 1 109.416634933
spng 25 11 16 30 1 117.200682592
spng 26 16 12 30 1 132.098448136
spng 27 13 16 30 1 145.773797371
spng 28 16 14 30 1 161.75598907
spng 29 1 2 100 5 16.9705627485
spng 30 2 3 100 5 18.0277563773
spng 31 3 4 100 5 16.4924225025
spng 32 4 5 100 5 17.2626765016
spng 33 5 6 100 5 17.4928556845
spng 34 6 7 100 5 19.2093727123
spng 35 7 8 100 5 20.6155281281
spng 36 8 9 100 5 16.2788205961
spng 37 9 10 100 5 18.0277563773
spng 38 10 11 100 5 16.1245154966
spng 39 11 12 100 5 17.4928556845
spng 40 12 13 100 5 14.1421356237
spng 41 13 14 100 5 16.2788205961
spng 42 17 15 100 5 38
spng 43 16 18 100 5 39
spng 44 1 3 100 5 34.8281495345
spng 45 2 4 100 5 34.0147027034
spng 46 3 5 100 5 33.0151480384
spng 47 4 6 100 5 34.1760149813
spng 48 5 7 100 5 36.1247837364
spng 49 6 8 100 5 39.8246155035
spng 50 7 9 100 5 36.7967389859
spng 51 8 10 100 5 34.205262753
spng 52 9 11 100 5 32.0156211872
spng 53 10 12 100 5 32.8937684068
spng 54 11 13 100 5 31.4006369362
spng 55 12 14 100 5 30.4138126515
spng 56 1 4 100 5 50.2493781056
spng 57 2 5 100 5 49.244289009
spng 58 3 6 100 5 48.6621002424
spng 59 4 7 100 5 51.6236379966
spng 60 5 8 100 5 56.5685424949
spng 61 6 9 100 5 55.9732078766
spng 62 7 10 100 5 54.4885309033
spng 63 8 11 100 5 47.0106370942
spng 64 9 12 100 5 46.0108682813
spng 65 10 13 100 5 46.0651712251
spng 66 11 14 100 5 47.5078940809
\BARFOO\
else
echo "will not over write ./lib/zingy.xsp"
fi
if `test ! -s ./lib/zwave.xsp`
then
echo "writting ./lib/zwave.xsp"
cat > ./lib/zwave.xsp << '\BARFOO\'
#1.0 *** XSpringies data file
cmas 0.5
elas 1
kspr 100
kdmp 1
fixm 1
shws 1
cent -1
frce 0 0 10 0
frce 1 0 5 2
frce 2 0 10 0
frce 3 0 10000 1
visc 0
stck 0
step 0.025
prec 1
adpt 0
gsnp 20 1
wall 0 0 0 0
mass 1 21.639729 470.92505 13.392069 -44.74031 -0.5 1
mass 2 51.711478 470.92861 2.9402828e-13 -1.9192124e-12 0.5 1
mass 3 81.64936 470.93216 -8.6518787e-14 2.0792841e-12 0.5 1
mass 4 111.58724 470.93571 3.6924324e-13 -2.1335293e-12 0.5 1
mass 5 141.52512 470.93926 2.3528885e-14 1.228292e-12 0.5 1
mass 6 171.463 470.9428 -1.2769644e-13 9.5427571e-15 0.5 1
mass 7 201.40089 470.94635 -1.576758e-16 3.1216151e-13 0.5 1
mass 8 231.33877 470.9499 -5.5718641e-13 4.9338204e-13 0.5 1
mass 9 261.27665 470.95345 1.1301261e-12 -1.0338929e-12 0.5 1
mass 10 291.21453 470.957 4.4260768e-13 1.1627536e-12 0.5 1
mass 11 321.15241 470.96055 1.536321e-13 -1.938644e-12 0.5 1
mass 12 351.09029 470.9641 -7.5005664e-14 2.7781487e-13 0.5 1
mass 13 381.02817 470.96765 -3.1045444e-13 8.5054484e-13 0.5 1
mass 14 410.96606 470.9712 -7.3361805e-13 1.5346888e-12 0.5 1
mass 15 440.90394 470.97474 7.4892138e-13 -1.7485381e-13 0.5 1
mass 16 470.84182 470.97829 5.6970896e-13 -1.4606473e-12 0.5 1
mass 17 500.7797 470.98184 4.6491659e-13 1.1677946e-12 0.5 1
mass 18 530.71758 470.98539 6.7910642e-13 1.116373e-12 0.5 1
mass 19 560.65546 470.98894 5.2756933e-13 -3.9238237e-12 0.5 1
mass 20 590.59334 470.99249 4.5201415e-13 1.9612051e-12 0.5 1
mass 21 620.44133 470.99603 8.9880047 8.5159468 -0.5 1
mass 22 590.61239 450.97498 -1.2519178e-12 8.0057266e-13 0.5 1
mass 23 560.68208 430.88589 1.2166525e-12 1.3557465e-13 0.5 1
mass 24 530.75177 410.7968 6.3251047e-13 1.3617275e-12 0.5 1
mass 25 500.82146 390.70771 -2.18909e-12 2.8087122e-12 0.5 1
mass 26 470.89115 370.61862 -1.5243802e-12 1.3536881e-12 0.5 1
mass 27 440.96083 350.52953 -9.3463005e-13 2.0526322e-12 0.5 1
mass 28 411.03052 330.44044 -1.9782396e-12 5.9056097e-13 0.5 1
mass 29 381.10021 310.35135 9.9737993e-13 -1.0340691e-12 0.5 1
mass 30 351.1699 290.26226 1.2384388e-13 3.738492e-13 0.5 1
mass 31 321.23959 270.17317 -1.9281981e-12 1.6168234e-14 0.5 1
mass 32 291.30927 250.08408 -1.6838465e-13 1.7544632e-12 0.5 1
mass 33 261.37896 229.99499 -1.1266675e-12 -3.3049241e-13 0.5 1
mass 34 231.44865 209.9059 -4.2246829e-13 8.6427946e-14 0.5 1
mass 35 201.51834 189.81681 -1.369676e-12 9.4255072e-13 0.5 1
mass 36 171.58803 169.72772 -7.700747e-13 1.494e-13 0.5 1
mass 37 141.65771 149.63863 -5.5405463e-13 1.1322969e-12 0.5 1
mass 38 111.7274 129.54954 -5.5710249e-13 7.0186294e-13 0.5 1
mass 39 81.797091 109.46045 -1.6334023e-12 2.9069384e-12 0.5 1
mass 40 51.866779 89.371356 -1.362396e-12 2.1966162e-12 0.5 1
mass 41 22.105673 69.395837 -9.6851415 -22.137054 -0.5 1
mass 42 51.908169 69.425832 1.0139043e-05 -0.00062120184 0.5 1
mass 43 81.807739 69.456051 4.6818224e-06 -0.0009341814 0.5 1
mass 44 111.70731 69.486334 -2.4960264e-06 -0.00033427139 0.5 1
mass 45 141.60688 69.516565 -1.3791049e-06 5.3683436e-05 0.5 1
mass 46 171.50645 69.546882 4.6598698e-06 -0.00076901234 0.5 1
mass 47 201.40602 69.577237 4.5393996e-06 -0.0004633936 0.5 1
mass 48 231.30559 69.607554 -4.2325143e-07 -0.00012803614 0.5 1
mass 49 261.20516 69.637839 -3.6739255e-06 -0.00078432669 0.5 1
mass 50 291.10473 69.667966 -4.5766946e-06 -0.00085760696 0.5 1
mass 51 321.0043 69.698112 -4.4936329e-06 0.00012400123 0.5 1
mass 52 350.90387 69.728366 -2.2494145e-06 -0.00017028775 0.5 1
mass 53 380.80344 69.758602 -1.4282967e-06 0.0001854156 0.5 1
mass 54 410.70301 69.788789 -3.3811341e-06 0.0011435902 0.5 1
mass 55 440.60258 69.81895 -5.3698626e-06 0.00092986523 0.5 1
mass 56 470.50215 69.849121 -4.7984152e-06 -0.00052070023 0.5 1
mass 57 500.40172 69.879302 -2.9327322e-06 -0.00096433796 0.5 1
mass 58 530.30129 69.909444 -1.9193701e-06 0.0003473992 0.5 1
mass 59 560.20086 69.939621 -7.2717789e-07 0.00067834358 0.5 1
mass 60 590.10043 69.96986 -6.7152209e-07 0.00095229897 0.5 1
mass 61 620 70 -1.4489569e-17 0 -0.5 1
spng 1 1 2 100 1 8
spng 2 2 3 100 1 8
spng 3 3 4 100 1 8
spng 4 4 5 100 1 8
spng 5 5 6 100 1 8
spng 6 6 7 100 1 8
spng 7 7 8 100 1 8
spng 8 8 9 100 1 8
spng 9 9 10 100 1 8
spng 10 10 11 100 1 8
spng 11 11 12 100 1 8
spng 12 12 13 100 1 8
spng 13 13 14 100 1 8
spng 14 14 15 100 1 8
spng 15 15 16 100 1 8
spng 16 16 17 100 1 8
spng 17 17 18 100 1 8
spng 18 18 19 100 1 8
spng 19 19 20 100 1 8
spng 20 20 21 100 1 8
spng 21 21 22 100 1 8
spng 22 22 23 100 1 8
spng 23 23 24 100 1 8
spng 24 24 25 100 1 8
spng 25 25 26 100 1 8
spng 26 26 27 100 1 8
spng 27 27 28 100 1 8
spng 28 28 29 100 1 8
spng 29 29 30 100 1 8
spng 30 30 31 100 1 8
spng 31 31 32 100 1 8
spng 32 32 33 100 1 8
spng 33 33 34 100 1 8
spng 34 34 35 100 1 8
spng 35 35 36 100 1 8
spng 36 36 37 100 1 8
spng 37 37 38 100 1 8
spng 38 38 39 100 1 8
spng 39 39 40 100 1 8
spng 40 40 41 100 1 8
spng 41 41 42 100 1 8
spng 42 42 43 100 1 8
spng 43 43 44 100 1 8
spng 44 44 45 100 1 8
spng 45 45 46 100 1 8
spng 46 46 47 100 1 8
spng 47 47 48 100 1 8
spng 48 48 49 100 1 8
spng 49 49 50 100 1 8
spng 50 50 51 100 1 8
spng 51 51 52 100 1 8
spng 52 52 53 100 1 8
spng 53 53 54 100 1 8
spng 54 54 55 100 1 8
spng 55 55 56 100 1 8
spng 56 56 57 100 1 8
spng 57 57 58 100 1 8
spng 58 58 59 100 1 8
spng 59 59 60 100 1 8
spng 60 60 61 100 1 8
\BARFOO\
else
echo "will not over write ./lib/zwave.xsp"
fi
if `test ! -s ./misc.c`
then
echo "writting ./misc.c"
cat > ./misc.c << '\BARFOO\'
/* misc.c -- misc utility routines for xspringies


* Copyright (C) 1991,1992 Douglas M. DeCarlo
*
* This file is part of XSpringies, a mass and spring simulation system for X
*
* XSpringies is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 1, or (at your option)
* any later version.
*
* XSpringies is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with XSpringies; see the file COPYING. If not, write to
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/

#include "defs.h"

#if defined(__STRICT_BSD__) || defined(__STDC__) || defined(_ANSI_C_SOURCE)
extern void *malloc(), *realloc();
#else
extern char *malloc(), *realloc();
#endif

/* malloc space, and call fatal if allocation fails */
char *xmalloc (size)
int size;
{
register char *tmp = (char *)malloc(size);

if (!tmp)
fatal ("Out of memory");

return tmp;
}

/* realloc space, and call fatal if re-allocation fails
(also, call malloc if ptr is NULL) */
char *xrealloc (ptr, size)
char *ptr;
int size;
{
register char *tmp;

if (ptr == NULL)
return (char *)xmalloc(size);

tmp = (char *)realloc(ptr, size);

if (!tmp)
fatal ("Out of memory");

return tmp;
}
\BARFOO\
else
echo "will not over write ./misc.c"
fi
if `test ! -s ./obj.c`
then
echo "writting ./obj.c"
cat > ./obj.c << '\BARFOO\'
/* obj.c -- xspringies object (masses, springs) handling


* Copyright (C) 1991,1992 Douglas M. DeCarlo
*
* This file is part of XSpringies, a mass and spring simulation system for X
*
* XSpringies is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 1, or (at your option)
* any later version.
*
* XSpringies is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with XSpringies; see the file COPYING. If not, write to
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/

#include "defs.h"
#include "obj.h"

#define MPROXIMITY 8.0
#define SPROXIMITY 8.0

/* Object globals */
mass *masses;
spring *springs;
int num_mass, num_spring;
static int num_mass_alloc, num_spring_alloc;
int fake_mass, fake_spring;
static mass *masses_save = NULL;
static spring *springs_save = NULL;
static int num_mass_saved, num_mass_savedalloc, num_spring_saved, num_spring_savedalloc;

/* init_objects: create an initial set of masses and
springs to work with
*/
void init_objects()
{
/* Create initial objects */
num_mass = 0;
num_mass_alloc = ALLOC_SIZE * 2;
masses = (mass *)xmalloc(sizeof(mass) * num_mass_alloc);

num_spring = 0;
num_spring_alloc = ALLOC_SIZE;
springs = (spring *)xmalloc(sizeof(spring) * num_spring_alloc);

fake_mass = create_mass();
masses[fake_mass].status = S_FIXED;
fake_spring = create_spring();
springs[fake_spring].status = 0;

add_massparent(fake_mass, fake_spring);
springs[fake_spring].m1 = fake_mass;
}

void attach_fake_spring(tomass)
int tomass;
{
add_massparent(fake_mass, fake_spring);
springs[fake_spring].m2 = tomass;
springs[fake_spring].status |= S_ALIVE;
springs[fake_spring].ks = mst.cur_ks;
springs[fake_spring].kd = mst.cur_kd;
}

void kill_fake_spring()
{
springs[fake_spring].status &= ~S_ALIVE;
}

void move_fake_mass(mx, my)
int mx, my;
{
masses[fake_mass].x = mx;
masses[fake_mass].y = my;
}

/* create_mass: return the index for a new mass,
possibly allocating more space if necesary
*/
int create_mass()
{
if (num_mass >= num_mass_alloc) {
/* Allocate more masses */
num_mass_alloc += ALLOC_SIZE;
masses = (mass *)xrealloc(masses, sizeof(mass) * num_mass_alloc);
}

/* Set parameters for new mass */
masses[num_mass].x = masses[num_mass].y = 0.0;
masses[num_mass].vx = masses[num_mass].vy = 0.0;
masses[num_mass].ax = masses[num_mass].ay = 0.0;
masses[num_mass].mass = masses[num_mass].elastic = 0.0;
masses[num_mass].radius = masses[num_mass].num_pars = 0;
masses[num_mass].pars = NULL;
masses[num_mass].status = S_ALIVE;

/* Return next unused mass */
return num_mass++;
}

/* create_spring: return the index for a new spring,
possibly allocating more space if necesary
*/
int create_spring()
{
if (num_spring >= num_spring_alloc) {
/* Allocate more springs */
num_spring_alloc += ALLOC_SIZE;
springs = (spring *)xrealloc(springs, sizeof(spring) * num_spring_alloc);
}

/* Set parameters for new spring */
springs[num_spring].ks = springs[num_spring].kd = 0.0;
springs[num_spring].restlen = 0.0;
springs[num_spring].m1 = springs[num_spring].m2 = 0;
springs[num_spring].status = S_ALIVE;

/* Return next unused spring */
return num_spring++;
}

void add_massparent(which, parent)
int which, parent;
{
int len = masses[which].num_pars++;

masses[which].pars = (int *)xrealloc(masses[which].pars, (len + 1) * sizeof(int));

masses[which].pars[len] = parent;
}

void del_massparent(which, parent)
int which, parent;
{
int i;

if (masses[which].status & S_ALIVE) {
for (i = 0; i < masses[which].num_pars; i++) {
if (masses[which].pars[i] == parent) {
if (i == masses[which].num_pars - 1) {
masses[which].num_pars--;
} else {
masses[which].pars[i] = masses[which].pars[--masses[which].num_pars];
}
return;
}
}
}
}

/* delete_spring: delete a particular spring
*/
void delete_spring(which)
int which;
{
if (springs[which].status & S_ALIVE) {
springs[which].status = 0;
del_massparent(springs[which].m1, which);
del_massparent(springs[which].m2, which);
}
}

/* delete_mass: delete a particular mass, and all springs
directly attached to it
*/
void delete_mass(which)
int which;
{
int i;

if (masses[which].status & S_ALIVE) {
masses[which].status = 0;

/* Delete all springs connected to it */
for (i = 0; i < masses[which].num_pars; i++) {
delete_spring(masses[which].pars[i]);
}
}

if (which == mst.center_id)
mst.center_id = -1;
}

/* delete_selected: delete all objects which
are currently selected
*/
void delete_selected()
{
int i;

for (i = 0; i < num_mass; i++) {


if (masses[i].status & S_SELECTED) {

delete_mass(i);
}
}

for (i = 0; i < num_spring; i++) {

if (springs[i].status & S_SELECTED) {
delete_spring(i);
}
}
}

void delete_all()
{
int i;

for (i = 0; i < num_mass; i++) {
free(masses[i].pars);
}
free(masses);
num_mass = num_mass_alloc = 0;
free(springs);
num_spring = num_spring_alloc = 0;
mst.center_id = -1;
}

void reconnect_masses()
{
int i;

for (i = 0; i < num_mass; i++) {
masses[i].num_pars = 0;
masses[i].pars = NULL;
}

for (i = 0; i < num_spring; i++) {
add_massparent(springs[i].m1, i);
add_massparent(springs[i].m2, i);
}
}

void restore_state()
{
delete_all();

if (masses_save != NULL) {
num_mass = num_mass_saved;
num_mass_alloc = num_mass_savedalloc;
num_spring = num_spring_saved;
num_spring_alloc = num_spring_savedalloc;

masses = (mass *)xmalloc(sizeof(mass) * num_mass_alloc);
bcopy(masses_save, masses, sizeof(mass) * num_mass_alloc);
springs = (spring *)xmalloc(sizeof(spring) * num_spring_alloc);
bcopy(springs_save, springs, sizeof(spring) * num_spring_alloc);

reconnect_masses();
}
}

void save_state()
{
masses_save = (mass *)xmalloc(sizeof(mass) * num_mass_alloc);
bcopy(masses, masses_save, sizeof(mass) * num_mass_alloc);
num_mass_saved = num_mass;
num_mass_savedalloc = num_mass_alloc;

springs_save = (spring *)xmalloc(sizeof(spring) * num_spring_alloc);
bcopy(springs, springs_save, sizeof(spring) * num_spring_alloc);
num_spring_saved = num_spring;
num_spring_savedalloc = num_spring_alloc;
}

/* nearest_object: Find the nearest spring or mass to the position
(x,y), or return -1 if none are close. Set is_mass accordingly
*/
int nearest_object(x, y, is_mass)
int x, y;
boolean *is_mass;
{
int i, closest = -1;
double dist, min_dist = MPROXIMITY * MPROXIMITY, rating, min_rating = draw_wid * draw_ht;
boolean masses_only = *is_mass;

*is_mass = TRUE;

if (masses_only)
min_dist = min_dist * 36;

/* Find closest mass */


for (i = 0; i < num_mass; i++) {
if (masses[i].status & S_ALIVE) {

if ((dist = SQR(masses[i].x - (double)x) + SQR(masses[i].y - (double)y) - (double)SQR(masses[i].radius)) < min_dist) {
rating = SQR(masses[i].x - (double)x) + SQR(masses[i].y - (double)y);
if (rating < min_rating) {
min_dist = dist;
min_rating = rating;
closest = i;
}
}
}
}

if (closest != -1)
return closest;

if (masses_only)
return -1;

*is_mass = TRUE;

min_dist = SPROXIMITY;

/* Find closest spring */
for (i = 0; i < num_spring; i++) {
double x1, x2, y1, y2;

if (springs[i].status & S_ALIVE) {

x1 = masses[springs[i].m1].x;
y1 = masses[springs[i].m1].y;
x2 = masses[springs[i].m2].x;
y2 = masses[springs[i].m2].y;

if (x > MIN(x1, x2) - SPROXIMITY && x < MAX(x1, x2) + SPROXIMITY &&
y > MIN(y1, y2) - SPROXIMITY && y < MAX(y1, y2) + SPROXIMITY) {
double a1, b1, c1, dAB, d;

a1 = y2 - y1;
b1 = x1 - x2;
c1 = y1 * x2 - y2 * x1;
dAB = sqrt((double)(a1*a1 + b1*b1));
d = (x * a1 + y * b1 + c1) / dAB;

dist = ABS(d);

if (dist < min_dist) {
min_dist = dist;
closest = i;
*is_mass = FALSE;
}
}
}
}

return closest;
}

void eval_selection()
{
int i;
double sel_mass, sel_elas, sel_ks, sel_kd;
boolean sel_fix;
boolean found = FALSE, changed = FALSE;
boolean mass_same, elas_same, ks_same, kd_same, fix_same;

for (i = 0; i < num_mass; i++) {
if (masses[i].status & S_SELECTED) {

if (found) {
if (mass_same && masses[i].mass != sel_mass) {
mass_same = FALSE;
}
if (elas_same && masses[i].elastic != sel_elas) {
elas_same = FALSE;
}
if (fix_same && (masses[i].status & S_FIXED)) {
fix_same = FALSE;
}
} else {
found = TRUE;
sel_mass = masses[i].mass;
mass_same = TRUE;
sel_elas = masses[i].elastic;
elas_same = TRUE;
sel_fix = (masses[i].status & S_FIXED);
fix_same = TRUE;
}
}
}

if (found) {
if (mass_same && sel_mass != mst.cur_mass) {
mst.cur_mass = sel_mass;
changed = TRUE;
}
if (elas_same && sel_elas != mst.cur_rest) {
mst.cur_rest = sel_elas;
changed = TRUE;
}
if (fix_same && sel_fix != mst.fix_mass) {
mst.fix_mass = sel_fix;
changed = TRUE;
}
}

found = FALSE;


for (i = 0; i < num_spring; i++) {

if (springs[i].status & S_SELECTED) {
if (found) {
if (ks_same && springs[i].ks != sel_ks) {
ks_same = FALSE;
}
if (ks_same && springs[i].ks != sel_ks) {
ks_same = FALSE;
}
} else {
found = TRUE;
sel_ks = springs[i].ks;
ks_same = TRUE;
sel_kd = springs[i].kd;
kd_same = TRUE;
}
}
}

if (found) {
if (ks_same && sel_ks != mst.cur_ks) {
mst.cur_ks = sel_ks;
changed = TRUE;
}
if (kd_same && sel_kd != mst.cur_kd) {
mst.cur_kd = sel_kd;
changed = TRUE;
}
}

if (changed) {
redraw_widgets(FALSE);
}
}

boolean anything_selected()
{
int i;

for (i = 0; i < num_mass; i++) {


if (masses[i].status & S_SELECTED)

return TRUE;


}
for (i = 0; i < num_spring; i++) {
if (springs[i].status & S_SELECTED)

return TRUE;
}
return FALSE;
}

void select_object(selection, is_mass, shifted)
int selection;
boolean is_mass, shifted;
{
if (is_mass) {
if (shifted) {
masses[selection].status ^= S_SELECTED;
} else {
masses[selection].status |= S_SELECTED;
}
} else {
if (shifted) {
springs[selection].status ^= S_SELECTED;
} else {
springs[selection].status |= S_SELECTED;
}
}
}

void select_objects(ulx, uly, lrx, lry, shifted)


int ulx, uly, lrx, lry;

boolean shifted;
{
int i;

for (i = 0; i < num_mass; i++) {


if (masses[i].status & S_ALIVE) {

if (ulx <= masses[i].x && masses[i].x <= lrx && uly <= masses[i].y && masses[i].y <= lry) {
select_object(i, TRUE, FALSE);
}
}
}

for (i = 0; i < num_spring; i++) {

if (springs[i].status & S_ALIVE) {
int m1, m2;

m1 = springs[i].m1;
m2 = springs[i].m2;

if (ulx <= masses[m1].x && masses[m1].x <= lrx && uly <= masses[m1].y && masses[m1].y <= lry &&
ulx <= masses[m2].x && masses[m2].x <= lrx && uly <= masses[m2].y && masses[m2].y <= lry) {
select_object(i, FALSE, FALSE);
}
}
}
}

void unselect_all()
{
int i;

for (i = 0; i < num_mass; i++) {


if (masses[i].status & S_SELECTED) {

masses[i].status &= ~S_SELECTED;
}
}

for (i = 0; i < num_spring; i++) {
if (springs[i].status & S_SELECTED) {

springs[i].status &= ~S_SELECTED;
}
}
}

void select_all()
{
int i;

for (i = 0; i < num_mass; i++) {


if (masses[i].status & S_ALIVE) {

masses[i].status |= S_SELECTED;
}
}

for (i = 0; i < num_spring; i++) {

if (springs[i].status & S_ALIVE) {
springs[i].status |= S_SELECTED;
}
}
}

void duplicate_selected()
{
int i, j, *mapfrom, *mapto, num_map, num_map_alloc, spring_start;
int which;

spring_start = num_spring;

num_map = 0;
num_map_alloc = ALLOC_SIZE;
mapfrom = (int *)xmalloc(sizeof(int) * num_map_alloc);
mapto = (int *)xmalloc(sizeof(int) * num_map_alloc);

for (i = 0; i < num_mass; i++) {
if (masses[i].status & S_SELECTED) {

if (num_map >= num_map_alloc) {
num_map_alloc += ALLOC_SIZE;
mapfrom = (int *)xrealloc(mapfrom, sizeof(int) * num_map_alloc);
mapto = (int *)xrealloc(mapto, sizeof(int) * num_map_alloc);
}

which = create_mass();
mapto[num_map] = which;
mapfrom[num_map] = i;
num_map++;
masses[which] = masses[i];
masses[which].status &= ~S_SELECTED;
masses[which].num_pars = 0;
masses[which].pars = NULL;
}
}

for (i = 0; i < spring_start; i++) {
if (springs[i].status & S_SELECTED) {
boolean m1done, m2done;

m1done = m2done = FALSE;

which = create_spring();
springs[which] = springs[i];
springs[which].status &= ~S_SELECTED;

for (j = 0; (!m1done || !m2done) && j < num_map; j++) {
if (!m1done && springs[which].m1 == mapfrom[j]) {
springs[which].m1 = mapto[j];
add_massparent(mapto[j], which);
m1done = TRUE;
}
if (!m2done && springs[which].m2 == mapfrom[j]) {
springs[which].m2 = mapto[j];
add_massparent(mapto[j], which);
m2done = TRUE;
}
}
if (!m1done && !m2done) {
/* delete spring that isn't connected to anyone */
delete_spring(which);
}
}
}

free(mapfrom);
free(mapto);
}

void translate_selobj(dx, dy)
int dx, dy;
{
int i;

for (i = 0; i < num_mass; i++) {


if (masses[i].status & S_SELECTED) {

masses[i].x += dx;
masses[i].y += dy;
}
}
}

void changevel_selobj(vx, vy, relative)
int vx, vy;
boolean relative;
{
int i;

for (i = 0; i < num_mass; i++) {


if (masses[i].status & S_SELECTED) {

if (relative) {
masses[i].vx += vx;
masses[i].vy += vy;
} else {
masses[i].vx = vx;
masses[i].vy = vy;
}
}
}
}

void tempfixed_obj(store)
boolean store;
{
int i;

for (i = 0; i < num_mass; i++) {


if (masses[i].status & S_SELECTED) {

if (store) {


masses[i].status &= ~S_TEMPFIXED;

if (!(masses[i].status & S_FIXED)) {
masses[i].status |= (S_TEMPFIXED | S_FIXED);
}
} else {
if (masses[i].status & S_TEMPFIXED) {
masses[i].status &= ~S_FIXED;
}
}
}
}
}

void set_sel_restlen()
{
int i;
double dx, dy;

for (i = 0; i < num_spring; i++) {

if (springs[i].status & S_SELECTED) {
dx = masses[springs[i].m1].x - masses[springs[i].m2].x;
dy = masses[springs[i].m1].y - masses[springs[i].m2].y;
springs[i].restlen = sqrt(dx * dx + dy * dy);
}
}
}

void set_center()
{
int i, cent = -1;

for (i = 0; i < num_mass; i++) {
if (masses[i].status & S_SELECTED) {

if (cent != -1)
return;

cent = i;
}
}

mst.center_id = cent;
}
\BARFOO\
else
echo "will not over write ./obj.c"
fi
if `test ! -s ./obj.h`
then
echo "writting ./obj.h"
cat > ./obj.h << '\BARFOO\'
#define S_ALIVE 0x01
#define S_SELECTED 0x02
#define S_FIXED 0x04
#define S_TEMPFIXED 0x08

#define ALLOC_SIZE 32

typedef struct {
/* Current position, velocity, acceleration */
double x, y;
double vx, vy;
double ax, ay;

/* Mass and radius of mass */
double mass;
double elastic;
int radius;

/* Connections to springs */
int *pars;
int num_pars;

int status;

/* RK temporary space */
double cur_x, cur_y, cur_vx, cur_vy;
double old_x, old_y, old_vx, old_vy;
double test_x, test_y, test_vx, test_vy;
double k1x, k1y, k1vx, k1vy;
double k2x, k2y, k2vx, k2vy;
double k3x, k3y, k3vx, k3vy;
double k4x, k4y, k4vx, k4vy;
} mass;

typedef struct {
/* Ks, Kd and rest length of spring */
double ks, kd;
double restlen;

/* Connected to masses m1 and m2 */
int m1, m2;

int status;
} spring;

extern mass *masses;
extern spring *springs;
extern int num_mass, num_spring, fake_mass, fake_spring;

\BARFOO\
else
echo "will not over write ./obj.h"
fi
if `test ! -s ./patchlevel.h`
then
echo "writting ./patchlevel.h"
cat > ./patchlevel.h << '\BARFOO\'
#define VERSION 1.1
#define PATCHLEVEL 0
\BARFOO\
else
echo "will not over write ./patchlevel.h"
fi
if `test ! -s ./phys.c`
then
echo "writting ./phys.c"
cat > ./phys.c << '\BARFOO\'
/* phys.c -- xspringies physical modeling and numerical solving routines


* Copyright (C) 1991,1992 Douglas M. DeCarlo
*
* This file is part of XSpringies, a mass and spring simulation system for X
*
* XSpringies is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 1, or (at your option)
* any later version.
*
* XSpringies is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with XSpringies; see the file COPYING. If not, write to
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/

#include "defs.h"
#include "obj.h"

#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif

#define DT_MIN 0.0001
#define DT_MAX 0.5

#define MAXCON 1024

#define CONSTR_KS 1.0
#define CONSTR_KD 1.0

/* Do fudgy bounces */
#define BOUNCE_FUDGE 1

/* Stickiness calibration: STICK_MAG = 1.0, means that a mass = 1.0 with gravity = 1.0 will remain
stuck on a wall for all stickiness values > 1.0 */
#define STICK_MAG 1.0

void accumulate_accel()
{
double gval, gmisc;
double gx = 0, gy = 0, ogx = 0, ogy = 0;
double center_x = draw_wid/2.0, center_y = draw_ht/2.0, center_rad = 1.0;
mass *m, *m1, *m2;
spring *s;
register int i;

/* ------------------ applied force effects ----------------------- */

if (mst.center_id >= 0) {
if (masses[mst.center_id].status & S_ALIVE) {
center_x = masses[mst.center_id].x;
center_y = masses[mst.center_id].y;
} else {
mst.center_id = -1;
}
}

/* Do gravity */
if (mst.bf_mode[FR_GRAV] > 0) {
gval = mst.cur_grav_val[FR_GRAV];
gmisc = mst.cur_misc_val[FR_GRAV];

gx = COORD_DX(gval * sin(gmisc * M_PI / 180.0));
gy = COORD_DY(gval * cos(gmisc * M_PI / 180.0));
}

/* Keep center of mass in the middle force */
if (mst.bf_mode[FR_CMASS] > 0) {
double mixix = 0.0, mixiy = 0.0, mivix = 0.0, miviy = 0.0, msum = 0.0;
gval = mst.cur_grav_val[FR_CMASS];
gmisc = mst.cur_misc_val[FR_CMASS];

for (i = 0; i < num_mass; i++) {
m = masses + i;
if (i != mst.center_id && (m->status & S_ALIVE) && !(m->status & S_FIXED)) {
msum += m->mass;
mixix += m->mass * m->x;
mixiy += m->mass * m->y;
mivix += m->mass * m->vx;
miviy += m->mass * m->vy;
}
}

if (msum) {
mixix /= msum;
mixiy /= msum;
mivix /= msum;
miviy /= msum;

mixix -= center_x;
mixiy -= center_y;

ogx -= (gval * mixix + gmisc * mivix) / msum;
ogy -= (gval * mixiy + gmisc * miviy) / msum;
}
}

/* Apply Gravity, CM and air drag to all masses */
for (i = 0; i < num_mass; i++) {
m = masses + i;
if ((m->status & S_ALIVE) && !(m->status & S_FIXED)) {
/* Do viscous drag */
if (i != mst.center_id) {
m->ax = gx + ogx - mst.cur_visc * m->vx;
m->ay = gy + ogy - mst.cur_visc * m->vy;
} else {
m->ax = gx - mst.cur_visc * m->vx;
m->ay = gy - mst.cur_visc * m->vy;
}
}
}

/* Do point attraction force */
if (mst.bf_mode[FR_PTATTRACT] > 0) {
gval = mst.cur_grav_val[FR_PTATTRACT];
gmisc = mst.cur_misc_val[FR_PTATTRACT];

for (i = 0; i < num_mass; i++) {
m = masses + i;
if ((m->status & S_ALIVE) && !(m->status & S_FIXED)) {
double dx, dy, mag, fmag;

dx = (center_x - m->x);
dy = (center_y - m->y);
mag = sqrt(dx * dx + dy * dy);

if (mag < m->radius + center_rad) {
dx *= mag / (m->radius + center_rad);
dy *= mag / (m->radius + center_rad);
mag = m->radius + center_rad;
}

fmag = gval / pow(mag, gmisc);

m->ax += fmag * dx / mag;
m->ay += fmag * dy / mag;
}
}
}

/* Wall attract/repel force */
if (mst.bf_mode[FR_WALL] > 0) {
double dax, day, dist;

gval = -mst.cur_grav_val[FR_WALL];
gmisc = mst.cur_misc_val[FR_WALL];

for (i = 0; i < num_mass; i++) {
m = masses + i;
if ((m->status & S_ALIVE) && !(m->status & S_FIXED)) {
dax = day = 0;

if (mst.w_left && (dist = m->x - m->radius) >= 0) {
if (dist < 1) dist = 1;
dist = pow(dist, gmisc);
dax -= gval / dist;
}
if (mst.w_right && (dist = draw_wid - m->radius - m->x) >= 0) {
if (dist < 1) dist = 1;
dist = pow(dist, gmisc);
dax += gval / dist;
}
if (mst.w_top && (dist = draw_ht - m->radius - m->y) >= 0) {
if (dist < 1) dist = 1;
dist = pow(dist, gmisc);
day += gval / dist;
}
if (mst.w_bottom && (dist = m->y - m->radius) >= 0) {
if (dist < 1) dist = 1;
dist = pow(dist, gmisc);
day -= gval / dist;
}

m->ax += dax;
m->ay += day;
}
}
}

/* ------------------ spring effects ----------------------- */

/* Spring compression/damping effects on masses */
for (i = 0; i < num_spring; i++) {
s = springs + i;
if (s->status & S_ALIVE) {
double dx, dy, force, forcex, forcey, mag, damp, mass1, mass2;

m1 = masses + s->m1;
m2 = masses + s->m2;

dx = m1->x - m2->x;
dy = m1->y - m2->y;

if (dx || dy) {
mag = sqrt(dx * dx + dy * dy);

force = s->ks * (s->restlen - mag);
if (s->kd) {
damp = ((m1->vx - m2->vx) * dx + (m1->vy - m2->vy) * dy) / mag;
force -= s->kd * damp;
}

force /= mag;
forcex = force * dx;
forcey = force * dy;

mass1 = m1->mass;
mass2 = m2->mass;

m1->ax += forcex / mass1;
m1->ay += forcey / mass1;
m2->ax -= forcex / mass2;
m2->ay -= forcey / mass2;
}
}
}
}

void runge_kutta(h, testloc)
double h;
boolean testloc;
{
mass *m;
int i;

accumulate_accel();

/* k1 step */
for (i = 0; i < num_mass; i++) {
m = masses + i;

if ((m->status & S_ALIVE) && !(m->status & S_FIXED)) {
/* Initial storage */
m->cur_x = m->x;
m->cur_y = m->y;
m->cur_vx = m->vx;
m->cur_vy = m->vy;

m->k1x = m->vx * h;
m->k1y = m->vy * h;
m->k1vx = m->ax * h;
m->k1vy = m->ay * h;

m->x = m->cur_x + m->k1x / 2;
m->y = m->cur_y + m->k1y / 2;
m->vx = m->cur_vx + m->k1vx / 2;
m->vy = m->cur_vy + m->k1vy / 2;
}
}

accumulate_accel();

/* k2 step */
for (i = 0; i < num_mass; i++) {
m = masses + i;
if ((m->status & S_ALIVE) && !(m->status & S_FIXED)) {
m->k2x = m->vx * h;
m->k2y = m->vy * h;
m->k2vx = m->ax * h;
m->k2vy = m->ay * h;

m->x = m->cur_x + m->k2x / 2;
m->y = m->cur_y + m->k2y / 2;
m->vx = m->cur_vx + m->k2vx / 2;
m->vy = m->cur_vy + m->k2vy / 2;
}
}

accumulate_accel();

/* k3 step */
for (i = 0; i < num_mass; i++) {
m = masses + i;
if ((m->status & S_ALIVE) && !(m->status & S_FIXED)) {
m->k3x = m->vx * h;
m->k3y = m->vy * h;
m->k3vx = m->ax * h;
m->k3vy = m->ay * h;

m->x = m->cur_x + m->k3x;
m->y = m->cur_y + m->k3y;
m->vx = m->cur_vx + m->k3vx;
m->vy = m->cur_vy + m->k3vy;
}
}

accumulate_accel();

/* k4 step */
for (i = 0; i < num_mass; i++) {
m = masses + i;
if ((m->status & S_ALIVE) && !(m->status & S_FIXED)) {
m->k4x = m->vx * h;
m->k4y = m->vy * h;
m->k4vx = m->ax * h;
m->k4vy = m->ay * h;
}
}

/* Find next position */
for (i = 0; i < num_mass; i++) {
m = masses + i;
if ((m->status & S_ALIVE) && !(m->status & S_FIXED)) {
if (testloc) {
m->test_x = m->cur_x + (m->k1x/2.0 + m->k2x + m->k3x + m->k4x/2.0)/3.0;
m->test_y = m->cur_y + (m->k1y/2.0 + m->k2y + m->k3y + m->k4y/2.0)/3.0;
m->test_vx = m->cur_vx + (m->k1vx/2.0 + m->k2vx + m->k3vx + m->k4vx/2.0)/3.0;
m->test_vy = m->cur_vy + (m->k1vy/2.0 + m->k2vy + m->k3vy + m->k4vy/2.0)/3.0;
} else {
m->x = m->cur_x + (m->k1x/2.0 + m->k2x + m->k3x + m->k4x/2.0)/3.0;
m->y = m->cur_y + (m->k1y/2.0 + m->k2y + m->k3y + m->k4y/2.0)/3.0;
m->vx = m->cur_vx + (m->k1vx/2.0 + m->k2vx + m->k3vx + m->k4vx/2.0)/3.0;
m->vy = m->cur_vy + (m->k1vy/2.0 + m->k2vy + m->k3vy + m->k4vy/2.0)/3.0;
}
}
}
}

void adaptive_runge_kutta()
{
int i;
mass *m;
double err, maxerr;

restart:
if (mst.cur_dt > DT_MAX)
mst.cur_dt = DT_MAX;
if (mst.cur_dt < DT_MIN)
mst.cur_dt = DT_MIN;

runge_kutta(mst.cur_dt/2.0, FALSE);
runge_kutta(mst.cur_dt/2.0, TRUE);

for (i = 0; i < num_mass; i++) {
m = masses + i;
if ((m->status & S_ALIVE) && !(m->status & S_FIXED)) {
m->x = m->old_x;
m->y = m->old_y;
m->vx = m->old_vx;
m->vy = m->old_vy;
}
}
runge_kutta(mst.cur_dt, FALSE);

/* Find error */
maxerr = 0.00001;
for (i = 0; i < num_mass; i++) {
m = masses + i;
if ((m->status & S_ALIVE) && !(m->status & S_FIXED)) {
err = fabs(m->x - m->test_x) + fabs(m->y - m->test_y) +
fabs(m->vx - m->test_vx) + fabs(m->vy - m->test_vy);

if (err > maxerr) {
maxerr = err;
}
}
}

/* Fudgy scale factor -- user controlled */
maxerr /= mst.cur_prec;

if (maxerr < 1.0) {
mst.cur_dt *= 0.9 * exp(-log(maxerr)/8.0);
} else {
if (mst.cur_dt > DT_MIN) {
for (i = 0; i < num_mass; i++) {
m = masses + i;
if ((m->status & S_ALIVE) && !(m->status & S_FIXED)) {
m->x = m->old_x;
m->y = m->old_y;
m->vx = m->old_vx;
m->vy = m->old_vy;
}
}

mst.cur_dt *= 0.9 * exp(-log(maxerr)/4.0);

goto restart;
}
}
}

boolean animate_obj()
{
mass *m;
spring *s;
int i;
double stick_mag;
static int num_since = 0;
static double time_elapsed = 0.0;

/* Save initial values */
for (i = 0; i < num_mass; i++) {
m = masses + i;
if ((m->status & S_ALIVE) && !(m->status & S_FIXED)) {
m->old_x = m->x;
m->old_y = m->y;
m->old_vx = m->vx;
m->old_vy = m->vy;
}
}

if (mst.adaptive_step) {
boolean any_spring = FALSE;

for (i = 0; i < num_spring; i++) {
s = springs + i;
if (s->status & S_ALIVE) {
any_spring = TRUE;
break;
}
}

/* If no springs, then use dt=DEF_TSTEP */
if (any_spring) {
adaptive_runge_kutta();
} else {
runge_kutta(mst.cur_dt = DEF_TSTEP, FALSE);
}
} else {
runge_kutta(mst.cur_dt, FALSE);
}

stick_mag = STICK_MAG * mst.cur_dt * mst.cur_stick;

/* Crappy wall code */
for (i = 0; i < num_mass; i++) {
m = masses + i;

if ((m->status & S_ALIVE) && !(m->status & S_FIXED)) {
/* Delete "exploded" objects */
if (m->ax - m->ax != 0.0 || m->ay - m->ay != 0.0 || m->x - m->x != 0.0 || m->y - m->y != 0.0) {
delete_mass(i);
continue;
}

/* Check if stuck to a wall */
if (m->old_vx == 0.0 && m->old_vy == 0.0) {
/* Left or right wall */
if ((mst.w_left && ABS(m->old_x - m->radius) < 0.5) || (mst.w_right && ABS(m->old_x - draw_wid + m->radius) < 0.5)) {
if (ABS(m->vx) < stick_mag / m->mass) {
m->vx = m->vy = 0;
m->x = m->old_x;
m->y = m->old_y;

continue;
}
} else if ((mst.w_bottom && ABS(m->old_y - m->radius) < 0.5) || (mst.w_top && ABS(m->old_y - draw_ht + m->radius) < 0.5)) {
/* Top or bottom wall */
if (ABS(m->vy) < stick_mag / m->mass) {
m->vx = m->vy = 0;
m->x = m->old_x;
m->y = m->old_y;

continue;
}
}
}

/* Bounce off left or right wall */
if (mst.w_left && m->x < m->radius && m->old_x >= m->radius) {
m->x = m->radius;

if (m->vx < 0) {
m->vx = -m->vx * m->elastic;
m->vy *= m->elastic;

/* Get stuck if not going fast enough */
if (m->vx > 0) {
m->vx -= STICK_MAG * mst.cur_stick / m->mass;

if (m->vx < 0) {
m->vx = m->vy = 0;
}
}
}
} else if (mst.w_right && m->x > draw_wid - m->radius && m->old_x <= draw_wid - m->radius) {
m->x = draw_wid - m->radius;

if (m->vx > 0) {
m->vx = -m->vx * m->elastic;
m->vy *= m->elastic;

/* Get stuck if not going fast enough */
if (m->vx < 0) {
m->vx += STICK_MAG * mst.cur_stick / m->mass;

if (m->vx > 0) {
m->vx = m->vy = 0;
}
}
}
}
/* Stick to top or bottom wall */
if (mst.w_bottom && m->y < m->radius && m->old_y >= m->radius) {
m->y = m->radius;

if (m->vy < 0) {
m->vy = -m->vy * m->elastic;
m->vx *= m->elastic;

/* Get stuck if not going fast enough */
if (m->vy > 0) {
m->vy -= STICK_MAG * mst.cur_stick / m->mass;

if (m->vy < 0) {
m->vx = m->vy = 0;
}
}
}
} else if (mst.w_top && m->y > (draw_ht - m->radius) && m->old_y <= (draw_ht - m->radius)) {
m->y = draw_ht - m->radius;

if (m->vy > 0) {
m->vy = -m->vy * m->elastic;
m->vx *= m->elastic;

/* Get stuck if not going fast enough */
if (m->vy < 0) {
m->vy += STICK_MAG * mst.cur_stick / m->mass;

if (m->vy > 0) {
m->vx = m->vy = 0;
}
}
}
}
}
}

time_elapsed += mst.cur_dt;

if (time_elapsed > 0.05) {
time_elapsed -= 0.05;
num_since = 0;
return TRUE;
}

num_since++;

if (num_since > 8) {
num_since = 0;
return TRUE;
}
return FALSE;
}
\BARFOO\
else
echo "will not over write ./phys.c"
fi
echo "Finished archive 4 of 16"

Douglas DeCarlo

unread,
Mar 26, 1993, 11:12:34 AM3/26/93
to
Submitted-by: d...@gradient.cis.upenn.edu (Douglas DeCarlo)
Posting-number: Volume 19, Issue 57
Archive-name: xspringies/part05

Environment: X11
Supersedes: xspringies: Volume 14, Issue 25-30

#!/bin/sh


# to extract, remove the header and type "sh filename"

if `test ! -d ./lib`
then
mkdir ./lib
echo "mkdir ./lib"
fi

if `test ! -s ./lib/xgrid.xsp`
then
echo "writting ./lib/xgrid.xsp"
cat > ./lib/xgrid.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1
elas 1
kspr 10
kdmp 1

fixm 0


shws 1
cent -1
frce 0 0 10 0
frce 1 0 5 2
frce 2 0 10 0
frce 3 0 10000 1
visc 0
stck 0
step 0.025
prec 1
adpt 0
gsnp 20 0
wall 1 1 1 1

mass 1 300 270 0 0 1 1
mass 2 300 290 0 0 0.5 1
mass 3 300 310 0 0 0.5 1
mass 4 300 330 0 0 0.5 1
mass 5 300 350 0 0 0.5 1
mass 6 300 370 0 0 0.5 1
mass 7 300 250 0 0 0.5 1
mass 8 300 230 0 0 0.5 1
mass 9 300 210 0 0 0.5 1
mass 10 300 190 0 0 0.5 1
mass 11 300 170 0 0 0.5 1
mass 12 320 270 0 0 0.5 1
mass 13 340 270 0 0 0.5 1
mass 14 360 270 0 0 0.5 1
mass 15 380 270 0 0 0.5 1
mass 16 400 270 0 0 0.5 1
mass 17 280 270 0 0 0.5 1
mass 18 260 270 0 0 0.5 1
mass 19 240 270 0 0 0.5 1
mass 20 220 270 0 0 0.5 1
mass 21 200 270 0 0 0.5 1
spng 1 21 20 200 5 20
spng 2 20 19 200 5 20
spng 3 19 18 200 5 20
spng 4 18 17 200 5 20
spng 5 17 1 200 5 20
spng 6 1 12 200 5 20
spng 7 12 13 200 5 20
spng 8 13 14 200 5 20
spng 9 14 15 200 5 20
spng 10 15 16 200 5 20
spng 11 6 5 200 5 20
spng 12 5 4 200 5 20
spng 13 4 3 200 5 20
spng 14 3 2 200 5 20
spng 15 2 1 200 5 20
spng 16 1 7 200 5 20
spng 17 7 8 200 5 20
spng 18 8 9 200 5 20
spng 19 9 10 200 5 20
spng 20 10 11 200 5 20
spng 21 17 11 200 5 101.980390271855697
spng 22 11 12 200 5 101.980390271855697
spng 23 12 6 200 5 101.980390271855697
spng 24 6 17 200 5 101.980390271855697
spng 25 18 5 200 5 89.4427190999915922
spng 26 5 13 200 5 89.4427190999915922
spng 27 13 10 200 5 89.4427190999915922
spng 28 10 18 200 5 89.4427190999915922
spng 29 19 4 200 5 84.8528137423857061
spng 30 4 14 200 5 84.8528137423857061
spng 31 14 9 200 5 84.8528137423857061
spng 32 9 19 200 5 84.8528137423857061
spng 33 20 3 200 5 89.4427190999915922
spng 34 3 15 200 5 89.4427190999915922
spng 35 15 8 200 5 89.4427190999915922
spng 36 8 20 200 5 89.4427190999915922
spng 37 21 2 200 5 101.980390271855697
spng 38 2 16 200 5 101.980390271855697
spng 39 16 7 200 5 101.980390271855697
spng 40 7 21 200 5 101.980390271855697
\BARFOO\
else
echo "will not over write ./lib/xgrid.xsp"
fi
if `test ! -s ./lib/xtrimesh.xsp`
then
echo "writting ./lib/xtrimesh.xsp"
cat > ./lib/xtrimesh.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1
elas 1

kspr 200
kdmp 5
fixm 0


shws 1
cent -1
frce 0 0 10 0
frce 1 0 5 2
frce 2 0 10 0
frce 3 0 10000 1
visc 0
stck 0
step 0.025
prec 1
adpt 0
gsnp 20 0
wall 1 1 1 1

mass 1 100 107 0 0 -1 1
mass 2 100 132 0 0 -1 1
mass 3 100 157 0 0 -1 1
mass 4 100 382 0 0 -1 1
mass 5 100 407 0 0 -1 1
mass 6 100 432 0 0 -1 1
mass 7 125 95 0 0 -1 1
mass 8 125 120 0 0 1 1
mass 9 125 145 0 0 1 1
mass 10 125 170 0 0 -1 1
mass 11 125 370 0 0 -1 1
mass 12 125 395 0 0 1 1
mass 13 125 420 0 0 1 1
mass 14 125 445 0 0 -1 1
mass 15 150 82 0 0 -1 1
mass 16 150 107 0 0 1 1
mass 17 150 132 0 0 1 1
mass 18 150 157 0 0 1 1
mass 19 150 182 0 0 -1 1
mass 20 150 357 0 0 -1 1
mass 21 150 382 0 0 1 1
mass 22 150 407 0 0 1 1
mass 23 150 432 0 0 1 1
mass 24 150 457 0 0 -1 1
mass 25 175 95 0 0 -1 1
mass 26 175 120 0 0 1 1
mass 27 175 145 0 0 1 1
mass 28 175 170 0 0 1 1
mass 29 175 195 0 0 -1 1
mass 30 175 345 0 0 -1 1
mass 31 175 370 0 0 1 1
mass 32 175 395 0 0 1 1
mass 33 175 420 0 0 1 1
mass 34 175 445 0 0 -1 1
mass 35 200 107 0 0 -1 1
mass 36 200 132 0 0 1 1
mass 37 200 157 0 0 1 1
mass 38 200 182 0 0 1 1
mass 39 200 207 0 0 -1 1
mass 40 200 332 0 0 -1 1
mass 41 200 357 0 0 1 1
mass 42 200 382 0 0 1 1
mass 43 200 407 0 0 1 1
mass 44 200 432 0 0 -1 1
mass 45 225 120 0 0 -1 1
mass 46 225 145 0 0 1 1
mass 47 225 170 0 0 1 1
mass 48 225 195 0 0 1 1
mass 49 225 220 0 0 -1 1
mass 50 225 320 0 0 -1 1
mass 51 225 345 0 0 1 1
mass 52 225 370 0 0 1 1
mass 53 225 395 0 0 1 1
mass 54 225 420 0 0 -1 1
mass 55 250 132 0 0 -1 1
mass 56 250 157 0 0 1 1
mass 57 250 182 0 0 1 1
mass 58 250 207 0 0 1 1
mass 59 250 232 0 0 -1 1
mass 60 250 307 0 0 -1 1
mass 61 250 332 0 0 1 1
mass 62 250 357 0 0 1 1
mass 63 250 382 0 0 1 1
mass 64 250 407 0 0 -1 1
mass 65 275 145 0 0 -1 1
mass 66 275 170 0 0 1 1
mass 67 275 195 0 0 1 1
mass 68 275 220 0 0 1 1
mass 69 275 245 0 0 -1 1
mass 70 275 295 0 0 -1 1
mass 71 275 320 0 0 1 1
mass 72 275 345 0 0 1 1
mass 73 275 370 0 0 1 1
mass 74 275 395 0 0 -1 1
mass 75 300 157 0 0 -1 1
mass 76 300 182 0 0 1 1
mass 77 300 207 0 0 1 1
mass 78 300 232 0 0 1 1
mass 79 300 257 0 0 1 1
mass 80 300 282 0 0 1 1
mass 81 300 307 0 0 1 1
mass 82 300 332 0 0 1 1
mass 83 300 357 0 0 1 1
mass 84 300 382 0 0 -1 1
mass 85 325 170 0 0 -1 1
mass 86 325 195 0 0 1 1
mass 87 325 220 0 0 1 1
mass 88 325 245 0 0 1 1
mass 89 325 270 0 0 1 1
mass 90 325 295 0 0 1 1
mass 91 325 320 0 0 1 1
mass 92 325 345 0 0 1 1
mass 93 325 370 0 0 -1 1
mass 94 350 157 0 0 -1 1
mass 95 350 182 0 0 1 1
mass 96 350 207 0 0 1 1
mass 97 350 232 0 0 1 1
mass 98 350 257 0 0 1 1
mass 99 350 282 0 0 1 1
mass 100 350 307 0 0 1 1
mass 101 350 332 0 0 1 1
mass 102 350 357 0 0 1 1
mass 103 350 382 0 0 -1 1
mass 104 375 145 0 0 -1 1
mass 105 375 170 0 0 1 1
mass 106 375 195 0 0 1 1
mass 107 375 220 0 0 1 1
mass 108 375 245 0 0 -1 1
mass 109 375 295 0 0 -1 1
mass 110 375 320 0 0 1 1
mass 111 375 345 0 0 1 1
mass 112 375 370 0 0 1 1
mass 113 375 395 0 0 -1 1
mass 114 400 132 0 0 -1 1
mass 115 400 157 0 0 1 1
mass 116 400 182 0 0 1 1
mass 117 400 207 0 0 1 1
mass 118 400 232 0 0 -1 1
mass 119 400 307 0 0 -1 1
mass 120 400 332 0 0 1 1
mass 121 400 357 0 0 1 1
mass 122 400 382 0 0 1 1
mass 123 400 407 0 0 -1 1
mass 124 425 120 0 0 -1 1
mass 125 425 145 0 0 1 1
mass 126 425 170 0 0 1 1
mass 127 425 195 0 0 1 1
mass 128 425 220 0 0 -1 1
mass 129 425 320 0 0 -1 1
mass 130 425 345 0 0 1 1
mass 131 425 370 0 0 1 1
mass 132 425 395 0 0 1 1
mass 133 425 420 0 0 -1 1
mass 134 450 107 0 0 -1 1
mass 135 450 132 0 0 1 1
mass 136 450 157 0 0 1 1
mass 137 450 182 0 0 1 1
mass 138 450 207 0 0 -1 1
mass 139 450 332 0 0 -1 1
mass 140 450 357 0 0 1 1
mass 141 450 382 0 0 1 1
mass 142 450 407 0 0 1 1
mass 143 450 432 0 0 -1 1
mass 144 475 95 0 0 -1 1
mass 145 475 120 0 0 1 1
mass 146 475 145 0 0 1 1
mass 147 475 170 0 0 1 1
mass 148 475 195 0 0 -1 1
mass 149 475 345 0 0 -1 1
mass 150 475 370 0 0 1 1
mass 151 475 395 0 0 1 1
mass 152 475 420 0 0 1 1
mass 153 475 445 0 0 -1 1
mass 154 500 82 0 0 -1 1
mass 155 500 107 0 0 1 1
mass 156 500 132 0 0 1 1
mass 157 500 157 0 0 1 1
mass 158 500 182 0 0 -1 1
mass 159 500 357 0 0 -1 1
mass 160 500 382 0 0 1 1
mass 161 500 407 0 0 1 1
mass 162 500 432 0 0 1 1
mass 163 500 457 0 0 -1 1
mass 164 525 95 0 0 -1 1
mass 165 525 120 0 0 1 1
mass 166 525 145 0 0 1 1
mass 167 525 170 0 0 -1 1
mass 168 525 370 0 0 -1 1
mass 169 525 395 0 0 1 1
mass 170 525 420 0 0 1 1
mass 171 525 445 0 0 -1 1
mass 172 550 107 0 0 -1 1
mass 173 550 132 0 0 -1 1
mass 174 550 157 0 0 -1 1
mass 175 550 382 0 0 -1 1
mass 176 550 407 0 0 -1 1
mass 177 550 432 0 0 -1 1
spng 1 1 2 200 5 25
spng 2 2 3 200 5 25
spng 3 4 5 200 5 25
spng 4 5 6 200 5 25
spng 5 7 8 200 5 25
spng 6 8 9 200 5 25
spng 7 9 10 200 5 25
spng 8 11 12 200 5 25
spng 9 12 13 200 5 25
spng 10 13 14 200 5 25
spng 11 15 16 200 5 25
spng 12 16 17 200 5 25
spng 13 17 18 200 5 25
spng 14 18 19 200 5 25
spng 15 20 21 200 5 25
spng 16 21 22 200 5 25
spng 17 22 23 200 5 25
spng 18 23 24 200 5 25
spng 19 25 26 200 5 25
spng 20 26 27 200 5 25
spng 21 27 28 200 5 25
spng 22 28 29 200 5 25
spng 23 30 31 200 5 25
spng 24 31 32 200 5 25
spng 25 32 33 200 5 25
spng 26 33 34 200 5 25
spng 27 35 36 200 5 25
spng 28 36 37 200 5 25
spng 29 37 38 200 5 25
spng 30 38 39 200 5 25
spng 31 40 41 200 5 25
spng 32 41 42 200 5 25
spng 33 42 43 200 5 25
spng 34 43 44 200 5 25
spng 35 45 46 200 5 25
spng 36 46 47 200 5 25
spng 37 47 48 200 5 25
spng 38 48 49 200 5 25
spng 39 50 51 200 5 25
spng 40 51 52 200 5 25
spng 41 52 53 200 5 25
spng 42 53 54 200 5 25
spng 43 55 56 200 5 25
spng 44 56 57 200 5 25
spng 45 57 58 200 5 25
spng 46 58 59 200 5 25
spng 47 60 61 200 5 25
spng 48 61 62 200 5 25
spng 49 62 63 200 5 25
spng 50 63 64 200 5 25
spng 51 65 66 200 5 25
spng 52 66 67 200 5 25
spng 53 67 68 200 5 25
spng 54 68 69 200 5 25
spng 55 70 71 200 5 25
spng 56 71 72 200 5 25
spng 57 72 73 200 5 25
spng 58 73 74 200 5 25
spng 59 75 76 200 5 25
spng 60 76 77 200 5 25
spng 61 77 78 200 5 25
spng 62 78 79 200 5 25
spng 63 79 80 200 5 25
spng 64 80 81 200 5 25
spng 65 81 82 200 5 25
spng 66 82 83 200 5 25
spng 67 83 84 200 5 25
spng 68 85 86 200 5 25
spng 69 86 87 200 5 25
spng 70 87 88 200 5 25
spng 71 88 89 200 5 25
spng 72 89 90 200 5 25
spng 73 90 91 200 5 25
spng 74 91 92 200 5 25
spng 75 92 93 200 5 25
spng 76 94 95 200 5 25
spng 77 95 96 200 5 25
spng 78 96 97 200 5 25
spng 79 97 98 200 5 25
spng 80 98 99 200 5 25
spng 81 99 100 200 5 25
spng 82 100 101 200 5 25
spng 83 101 102 200 5 25
spng 84 102 103 200 5 25
spng 85 104 105 200 5 25
spng 86 105 106 200 5 25
spng 87 106 107 200 5 25
spng 88 107 108 200 5 25
spng 89 109 110 200 5 25
spng 90 110 111 200 5 25
spng 91 111 112 200 5 25
spng 92 112 113 200 5 25
spng 93 114 115 200 5 25
spng 94 115 116 200 5 25
spng 95 116 117 200 5 25
spng 96 117 118 200 5 25
spng 97 119 120 200 5 25
spng 98 120 121 200 5 25
spng 99 121 122 200 5 25
spng 100 122 123 200 5 25
spng 101 124 125 200 5 25
spng 102 125 126 200 5 25
spng 103 126 127 200 5 25
spng 104 127 128 200 5 25
spng 105 129 130 200 5 25
spng 106 130 131 200 5 25
spng 107 131 132 200 5 25
spng 108 132 133 200 5 25
spng 109 134 135 200 5 25
spng 110 135 136 200 5 25
spng 111 136 137 200 5 25
spng 112 137 138 200 5 25
spng 113 139 140 200 5 25
spng 114 140 141 200 5 25
spng 115 141 142 200 5 25
spng 116 142 143 200 5 25
spng 117 144 145 200 5 25
spng 118 145 146 200 5 25
spng 119 146 147 200 5 25
spng 120 147 148 200 5 25
spng 121 149 150 200 5 25
spng 122 150 151 200 5 25
spng 123 151 152 200 5 25
spng 124 152 153 200 5 25
spng 125 154 155 200 5 25
spng 126 155 156 200 5 25
spng 127 156 157 200 5 25
spng 128 157 158 200 5 25
spng 129 159 160 200 5 25
spng 130 160 161 200 5 25
spng 131 161 162 200 5 25
spng 132 162 163 200 5 25
spng 133 164 165 200 5 25
spng 134 165 166 200 5 25
spng 135 166 167 200 5 25
spng 136 168 169 200 5 25
spng 137 169 170 200 5 25
spng 138 170 171 200 5 25
spng 139 172 173 200 5 25
spng 140 173 174 200 5 25
spng 141 175 176 200 5 25
spng 142 176 177 200 5 25
spng 143 1 8 200 5 28.1780056072
spng 144 2 9 200 5 28.1780056072
spng 145 3 10 200 5 28.1780056072
spng 146 4 12 200 5 28.1780056072
spng 147 5 13 200 5 28.1780056072
spng 148 6 14 200 5 28.1780056072
spng 149 7 16 200 5 27.7308492477
spng 150 8 17 200 5 27.7308492477
spng 151 9 18 200 5 27.7308492477
spng 152 10 19 200 5 27.7308492477
spng 153 11 21 200 5 27.7308492477
spng 154 12 22 200 5 27.7308492477
spng 155 13 23 200 5 27.7308492477
spng 156 14 24 200 5 27.7308492477
spng 157 15 25 200 5 28.1780056072
spng 158 16 26 200 5 28.1780056072
spng 159 17 27 200 5 28.1780056072
spng 160 18 28 200 5 28.1780056072
spng 161 19 29 200 5 28.1780056072
spng 162 20 31 200 5 28.1780056072
spng 163 21 32 200 5 28.1780056072
spng 164 22 33 200 5 28.1780056072
spng 165 23 34 200 5 28.1780056072
spng 166 25 35 200 5 27.7308492477
spng 167 26 36 200 5 27.7308492477
spng 168 27 37 200 5 27.7308492477
spng 169 28 38 200 5 27.7308492477
spng 170 29 39 200 5 27.7308492477
spng 171 30 41 200 5 27.7308492477
spng 172 31 42 200 5 27.7308492477
spng 173 32 43 200 5 27.7308492477
spng 174 33 44 200 5 27.7308492477
spng 175 35 45 200 5 28.1780056072
spng 176 36 46 200 5 28.1780056072
spng 177 37 47 200 5 28.1780056072
spng 178 38 48 200 5 28.1780056072
spng 179 39 49 200 5 28.1780056072
spng 180 40 51 200 5 28.1780056072
spng 181 41 52 200 5 28.1780056072
spng 182 42 53 200 5 28.1780056072
spng 183 43 54 200 5 28.1780056072
spng 184 45 55 200 5 27.7308492477
spng 185 46 56 200 5 27.7308492477
spng 186 47 57 200 5 27.7308492477
spng 187 48 58 200 5 27.7308492477
spng 188 49 59 200 5 27.7308492477
spng 189 50 61 200 5 27.7308492477
spng 190 51 62 200 5 27.7308492477
spng 191 52 63 200 5 27.7308492477
spng 192 53 64 200 5 27.7308492477
spng 193 55 65 200 5 28.1780056072
spng 194 56 66 200 5 28.1780056072
spng 195 57 67 200 5 28.1780056072
spng 196 58 68 200 5 28.1780056072
spng 197 59 69 200 5 28.1780056072
spng 198 60 71 200 5 28.1780056072
spng 199 61 72 200 5 28.1780056072
spng 200 62 73 200 5 28.1780056072
spng 201 63 74 200 5 28.1780056072
spng 202 65 75 200 5 27.7308492477
spng 203 66 76 200 5 27.7308492477
spng 204 67 77 200 5 27.7308492477
spng 205 68 78 200 5 27.7308492477
spng 206 69 79 200 5 27.7308492477
spng 207 70 81 200 5 27.7308492477
spng 208 71 82 200 5 27.7308492477
spng 209 72 83 200 5 27.7308492477
spng 210 73 84 200 5 27.7308492477
spng 211 75 85 200 5 28.1780056072
spng 212 76 86 200 5 28.1780056072
spng 213 77 87 200 5 28.1780056072
spng 214 78 88 200 5 28.1780056072
spng 215 79 89 200 5 28.1780056072
spng 216 80 90 200 5 28.1780056072
spng 217 81 91 200 5 28.1780056072
spng 218 82 92 200 5 28.1780056072
spng 219 83 93 200 5 28.1780056072
spng 220 85 95 200 5 27.7308492477
spng 221 86 96 200 5 27.7308492477
spng 222 87 97 200 5 27.7308492477
spng 223 88 98 200 5 27.7308492477
spng 224 89 99 200 5 27.7308492477
spng 225 90 100 200 5 27.7308492477
spng 226 91 101 200 5 27.7308492477
spng 227 92 102 200 5 27.7308492477
spng 228 93 103 200 5 27.7308492477
spng 229 94 105 200 5 28.1780056072
spng 230 95 106 200 5 28.1780056072
spng 231 96 107 200 5 28.1780056072
spng 232 97 108 200 5 28.1780056072
spng 233 99 109 200 5 28.1780056072
spng 234 100 110 200 5 28.1780056072
spng 235 101 111 200 5 28.1780056072
spng 236 102 112 200 5 28.1780056072
spng 237 103 113 200 5 28.1780056072
spng 238 104 115 200 5 27.7308492477
spng 239 105 116 200 5 27.7308492477
spng 240 106 117 200 5 27.7308492477
spng 241 107 118 200 5 27.7308492477
spng 242 109 119 200 5 27.7308492477
spng 243 110 120 200 5 27.7308492477
spng 244 111 121 200 5 27.7308492477
spng 245 112 122 200 5 27.7308492477
spng 246 113 123 200 5 27.7308492477
spng 247 114 125 200 5 28.1780056072
spng 248 115 126 200 5 28.1780056072
spng 249 116 127 200 5 28.1780056072
spng 250 117 128 200 5 28.1780056072
spng 251 119 129 200 5 28.1780056072
spng 252 120 130 200 5 28.1780056072
spng 253 121 131 200 5 28.1780056072
spng 254 122 132 200 5 28.1780056072
spng 255 123 133 200 5 28.1780056072
spng 256 124 135 200 5 27.7308492477
spng 257 125 136 200 5 27.7308492477
spng 258 126 137 200 5 27.7308492477
spng 259 127 138 200 5 27.7308492477
spng 260 129 139 200 5 27.7308492477
spng 261 130 140 200 5 27.7308492477
spng 262 131 141 200 5 27.7308492477
spng 263 132 142 200 5 27.7308492477
spng 264 133 143 200 5 27.7308492477
spng 265 134 145 200 5 28.1780056072
spng 266 135 146 200 5 28.1780056072
spng 267 136 147 200 5 28.1780056072
spng 268 137 148 200 5 28.1780056072
spng 269 139 149 200 5 28.1780056072
spng 270 140 150 200 5 28.1780056072
spng 271 141 151 200 5 28.1780056072
spng 272 142 152 200 5 28.1780056072
spng 273 143 153 200 5 28.1780056072
spng 274 144 155 200 5 27.7308492477
spng 275 145 156 200 5 27.7308492477
spng 276 146 157 200 5 27.7308492477
spng 277 147 158 200 5 27.7308492477
spng 278 149 159 200 5 27.7308492477
spng 279 150 160 200 5 27.7308492477
spng 280 151 161 200 5 27.7308492477
spng 281 152 162 200 5 27.7308492477
spng 282 153 163 200 5 27.7308492477
spng 283 154 164 200 5 28.1780056072
spng 284 155 165 200 5 28.1780056072
spng 285 156 166 200 5 28.1780056072
spng 286 157 167 200 5 28.1780056072
spng 287 159 168 200 5 28.1780056072
spng 288 160 169 200 5 28.1780056072
spng 289 161 170 200 5 28.1780056072
spng 290 162 171 200 5 28.1780056072
spng 291 164 172 200 5 27.7308492477
spng 292 165 173 200 5 27.7308492477
spng 293 166 174 200 5 27.7308492477
spng 294 168 175 200 5 27.7308492477
spng 295 169 176 200 5 27.7308492477
spng 296 170 177 200 5 27.7308492477
spng 297 1 7 200 5 27.7308492477
spng 298 2 8 200 5 27.7308492477
spng 299 3 9 200 5 27.7308492477
spng 300 4 11 200 5 27.7308492477
spng 301 5 12 200 5 27.7308492477
spng 302 6 13 200 5 27.7308492477
spng 303 7 15 200 5 28.1780056072
spng 304 8 16 200 5 28.1780056072
spng 305 9 17 200 5 28.1780056072
spng 306 10 18 200 5 28.1780056072
spng 307 11 20 200 5 28.1780056072
spng 308 12 21 200 5 28.1780056072
spng 309 13 22 200 5 28.1780056072
spng 310 14 23 200 5 28.1780056072
spng 311 16 25 200 5 27.7308492477
spng 312 17 26 200 5 27.7308492477
spng 313 18 27 200 5 27.7308492477
spng 314 19 28 200 5 27.7308492477
spng 315 20 30 200 5 27.7308492477
spng 316 21 31 200 5 27.7308492477
spng 317 22 32 200 5 27.7308492477
spng 318 23 33 200 5 27.7308492477
spng 319 24 34 200 5 27.7308492477
spng 320 26 35 200 5 28.1780056072
spng 321 27 36 200 5 28.1780056072
spng 322 28 37 200 5 28.1780056072
spng 323 29 38 200 5 28.1780056072
spng 324 30 40 200 5 28.1780056072
spng 325 31 41 200 5 28.1780056072
spng 326 32 42 200 5 28.1780056072
spng 327 33 43 200 5 28.1780056072
spng 328 34 44 200 5 28.1780056072
spng 329 36 45 200 5 27.7308492477
spng 330 37 46 200 5 27.7308492477
spng 331 38 47 200 5 27.7308492477
spng 332 39 48 200 5 27.7308492477
spng 333 40 50 200 5 27.7308492477
spng 334 41 51 200 5 27.7308492477
spng 335 42 52 200 5 27.7308492477
spng 336 43 53 200 5 27.7308492477
spng 337 44 54 200 5 27.7308492477
spng 338 46 55 200 5 28.1780056072
spng 339 47 56 200 5 28.1780056072
spng 340 48 57 200 5 28.1780056072
spng 341 49 58 200 5 28.1780056072
spng 342 50 60 200 5 28.1780056072
spng 343 51 61 200 5 28.1780056072
spng 344 52 62 200 5 28.1780056072
spng 345 53 63 200 5 28.1780056072
spng 346 54 64 200 5 28.1780056072
spng 347 56 65 200 5 27.7308492477
spng 348 57 66 200 5 27.7308492477
spng 349 58 67 200 5 27.7308492477
spng 350 59 68 200 5 27.7308492477
spng 351 60 70 200 5 27.7308492477
spng 352 61 71 200 5 27.7308492477
spng 353 62 72 200 5 27.7308492477
spng 354 63 73 200 5 27.7308492477
spng 355 64 74 200 5 27.7308492477
spng 356 66 75 200 5 28.1780056072
spng 357 67 76 200 5 28.1780056072
spng 358 68 77 200 5 28.1780056072
spng 359 69 78 200 5 28.1780056072
spng 360 70 80 200 5 28.1780056072
spng 361 71 81 200 5 28.1780056072
spng 362 72 82 200 5 28.1780056072
spng 363 73 83 200 5 28.1780056072
spng 364 74 84 200 5 28.1780056072
spng 365 76 85 200 5 27.7308492477
spng 366 77 86 200 5 27.7308492477
spng 367 78 87 200 5 27.7308492477
spng 368 79 88 200 5 27.7308492477
spng 369 80 89 200 5 27.7308492477
spng 370 81 90 200 5 27.7308492477
spng 371 82 91 200 5 27.7308492477
spng 372 83 92 200 5 27.7308492477
spng 373 84 93 200 5 27.7308492477
spng 374 85 94 200 5 28.1780056072
spng 375 86 95 200 5 28.1780056072
spng 376 87 96 200 5 28.1780056072
spng 377 88 97 200 5 28.1780056072
spng 378 89 98 200 5 28.1780056072
spng 379 90 99 200 5 28.1780056072
spng 380 91 100 200 5 28.1780056072
spng 381 92 101 200 5 28.1780056072
spng 382 93 102 200 5 28.1780056072
spng 383 94 104 200 5 27.7308492477
spng 384 95 105 200 5 27.7308492477
spng 385 96 106 200 5 27.7308492477
spng 386 97 107 200 5 27.7308492477
spng 387 98 108 200 5 27.7308492477
spng 388 100 109 200 5 27.7308492477
spng 389 101 110 200 5 27.7308492477
spng 390 102 111 200 5 27.7308492477
spng 391 103 112 200 5 27.7308492477
spng 392 104 114 200 5 28.1780056072
spng 393 105 115 200 5 28.1780056072
spng 394 106 116 200 5 28.1780056072
spng 395 107 117 200 5 28.1780056072
spng 396 108 118 200 5 28.1780056072
spng 397 110 119 200 5 28.1780056072
spng 398 111 120 200 5 28.1780056072
spng 399 112 121 200 5 28.1780056072
spng 400 113 122 200 5 28.1780056072
spng 401 114 124 200 5 27.7308492477
spng 402 115 125 200 5 27.7308492477
spng 403 116 126 200 5 27.7308492477
spng 404 117 127 200 5 27.7308492477
spng 405 118 128 200 5 27.7308492477
spng 406 120 129 200 5 27.7308492477
spng 407 121 130 200 5 27.7308492477
spng 408 122 131 200 5 27.7308492477
spng 409 123 132 200 5 27.7308492477
spng 410 124 134 200 5 28.1780056072
spng 411 125 135 200 5 28.1780056072
spng 412 126 136 200 5 28.1780056072
spng 413 127 137 200 5 28.1780056072
spng 414 128 138 200 5 28.1780056072
spng 415 130 139 200 5 28.1780056072
spng 416 131 140 200 5 28.1780056072
spng 417 132 141 200 5 28.1780056072
spng 418 133 142 200 5 28.1780056072
spng 419 134 144 200 5 27.7308492477
spng 420 135 145 200 5 27.7308492477
spng 421 136 146 200 5 27.7308492477
spng 422 137 147 200 5 27.7308492477
spng 423 138 148 200 5 27.7308492477
spng 424 140 149 200 5 27.7308492477
spng 425 141 150 200 5 27.7308492477
spng 426 142 151 200 5 27.7308492477
spng 427 143 152 200 5 27.7308492477
spng 428 144 154 200 5 28.1780056072
spng 429 145 155 200 5 28.1780056072
spng 430 146 156 200 5 28.1780056072
spng 431 147 157 200 5 28.1780056072
spng 432 148 158 200 5 28.1780056072
spng 433 150 159 200 5 28.1780056072
spng 434 151 160 200 5 28.1780056072
spng 435 152 161 200 5 28.1780056072
spng 436 153 162 200 5 28.1780056072
spng 437 155 164 200 5 27.7308492477
spng 438 156 165 200 5 27.7308492477
spng 439 157 166 200 5 27.7308492477
spng 440 158 167 200 5 27.7308492477
spng 441 160 168 200 5 27.7308492477
spng 442 161 169 200 5 27.7308492477
spng 443 162 170 200 5 27.7308492477
spng 444 163 171 200 5 27.7308492477
spng 445 165 172 200 5 28.1780056072
spng 446 166 173 200 5 28.1780056072
spng 447 167 174 200 5 28.1780056072
spng 448 169 175 200 5 28.1780056072
spng 449 170 176 200 5 28.1780056072
spng 450 171 177 200 5 28.1780056072
\BARFOO\
else
echo "will not over write ./lib/xtrimesh.xsp"
fi
if `test ! -s ./lib/zgrid.xsp`
then
echo "writting ./lib/zgrid.xsp"
cat > ./lib/zgrid.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 0.5
elas 1
kspr 10

kdmp 1
fixm 0


shws 1
cent -1
frce 0 0 10 0
frce 1 0 5 2
frce 2 0 10 0
frce 3 0 10000 1
visc 0
stck 0
step 0.025
prec 1
adpt 0
gsnp 20 0

wall 0 0 0 0

mass 1 21.6397289999999991 470.925049999999999 0 0 -0.5 1
mass 2 51.7114767926999974 470.928617179000014 0 0 0.5 1
mass 3 81.6493568019999998 470.932166499999994 0 0 0.5 1
mass 4 111.587236711000003 470.935713180999983 0 0 0.5 1
mass 5 141.525116857 470.939260927000021 0 0 0.5 1
mass 6 171.462997564000005 470.942813367999975 0 0 0.5 1
mass 7 201.400878933999991 470.946361678000017 0 0 0.5 1
mass 8 231.338760775999987 470.949910769999974 0 0 0.5 1
mass 9 261.276642832999983 470.953460602000007 0 0 0.5 1
mass 10 291.214524632999996 470.957011640000019 0 0 0.5 1
mass 11 321.152405896000005 470.960560846000021 0 0 0.5 1
mass 12 351.090286780999975 470.964106279000021 0 0 0.5 1
mass 13 381.028167673999974 470.967652214999987 0 0 0.5 1
mass 14 410.966048976000025 470.971200958999987 0 0 0.5 1
mass 15 440.903930746000015 470.974754299999972 0 0 0.5 1
mass 16 470.841812817999994 470.978303239000013 0 0 0.5 1
mass 17 500.779694817000006 470.98184831399999 0 0 0.5 1
mass 18 530.717576533000056 470.985395766000011 0 0 0.5 1
mass 19 560.655457967999951 470.988948186000016 0 0 0.5 1
mass 20 590.593339134999951 470.99249377000001 0 0 0.5 1
mass 21 620.441329999999994 470.996030000000019 0 0 -0.5 1
mass 22 590.612388236000015 450.974980411999979 0 0 0.5 1
mass 23 560.682077190999962 430.885888314999988 0 0 0.5 1
mass 24 530.751764813000023 410.796797882000021 0 0 0.5 1
mass 25 500.821453897000026 390.707705633999979 0 0 0.5 1
mass 26 470.891141367999978 370.618616399000018 0 0 0.5 1
mass 27 440.960829363000016 350.529526499999974 0 0 0.5 1
mass 28 411.030517658000008 330.440435921000017 0 0 0.5 1
mass 29 381.100205464999988 310.351345920000028 0 0 0.5 1
mass 30 351.169893334999983 290.262256137999998 0 0 0.5 1
mass 31 321.239581370999986 270.173166493999986 0 0 0.5 1
mass 32 291.309269916999995 250.08407580299999 0 0 0.5 1
mass 33 261.378957625999988 229.994985923999991 0 0 0.5 1
mass 34 231.448645373999994 209.905896057999996 0 0 0.5 1
mass 35 201.518332796999999 189.816807025999992 0 0 0.5 1
mass 36 171.588021282999989 169.727716484000013 0 0 0.5 1
mass 37 141.657710806000011 149.638624472000004 0 0 0.5 1
mass 38 111.727398502 129.549535721000012 0 0 0.5 1
mass 39 81.7970879344999986 109.460445242000006 0 0 0.5 1
mass 40 51.8667762119999978 89.3713573236999963 0 0 0.5 1
mass 41 22.1056729999999995 69.3958370000000002 0 0 -0.5 1
mass 42 51.908168359500003 69.4258904742000027 0 0 0.5 1
mass 43 81.807738432299999 69.4560486290999961 0 0 0.5 1
mass 44 111.707308087000001 69.4862898933999986 0 0 0.5 1
mass 45 141.606877534000006 69.5165405870999962 0 0 0.5 1
mass 46 171.506447355999995 69.5467412728000056 0 0 0.5 1
mass 47 201.40601769700001 69.5768872967999954 0 0 0.5 1
mass 48 231.305588217999997 69.6070154484000057 0 0 0.5 1
mass 49 261.205158476999998 69.6371992801999937 0 0 0.5 1
mass 50 291.104728390999981 69.6673752790999998 0 0 0.5 1
mass 51 321.004298049999989 69.6975857257999962 0 0 0.5 1
mass 52 350.903867736999985 69.7277906350000052 0 0 0.5 1
mass 53 380.80343762199999 69.757970575300007 0 0 0.5 1
mass 54 410.703007572999979 69.7882416023000047 0 0 0.5 1
mass 55 440.602577607000001 69.8185452384000058 0 0 0.5 1
mass 56 470.502147927999999 69.8487116131999954 0 0 0.5 1
mass 57 500.401718463000009 69.8788431843999973 0 0 0.5 1
mass 58 530.301288973000055 69.9091007956999988 0 0 0.5 1
mass 59 560.200859413999979 69.9393967568999955 0 0 0.5 1
mass 60 590.100429727999995 69.9697163517000007 0 0 0.5 1
mass 61 620 70 0 0 -0.5 1
spng 1 1 2 100 1 30.0717480042734344
spng 2 2 3 100 1 29.9378802196969893
spng 3 3 4 100 1 29.9378801190841202
spng 4 4 5 100 1 29.9378803562103002
spng 5 5 6 100 1 29.9378809177670462
spng 6 6 7 100 1 29.9378815802771179
spng 7 7 8 100 1 29.9378820523698224
spng 8 8 9 100 1 29.9378822674575567
spng 9 9 10 100 1 29.9378820106005996
spng 10 10 11 100 1 29.9378814733833529
spng 11 11 12 100 1 29.9378810949362588
spng 12 12 13 100 1 29.9378811029958598
spng 13 13 14 100 1 29.9378815123286266
spng 14 14 15 100 1 29.9378819808738292
spng 15 15 16 100 1 29.9378822823516657
spng 16 16 17 100 1 29.9378822088938961
spng 17 17 18 100 1 29.9378819261755034
spng 18 18 19 100 1 29.9378816457644383
spng 19 19 20 100 1 29.9378813769541701
spng 20 20 21 100 1 29.8479910744768304
spng 21 21 22 100 1 35.9250357461931884
spng 22 22 23 100 1 36.0471238871036661
spng 23 23 24 100 1 36.0471240665591424
spng 24 24 25 100 1 36.0471238641459948
spng 25 25 26 100 1 36.0471235242898231
spng 26 26 27 100 1 36.0471234592546992
spng 27 27 28 100 1 36.0471235891260164
spng 28 28 29 100 1 36.0471236721978059
spng 29 29 30 100 1 36.0471234978393724
spng 30 30 31 100 1 36.0471232831002695
spng 31 31 32 100 1 36.0471234431357317
spng 32 32 33 100 1 36.047123685577553
spng 33 33 34 100 1 36.0471236459505135
spng 34 34 35 100 1 36.0471234510126592
spng 35 35 36 100 1 36.0471234099165585
spng 36 36 37 100 1 36.047123368116587
spng 37 37 38 100 1 36.0471230677363366
spng 38 38 39 100 1 36.047122588917567
spng 39 39 40 100 1 36.0471221208463248
spng 40 40 41 100 1 35.8433351768200836
spng 41 41 42 100 1 29.8025105127794703
spng 42 42 43 100 1 29.8995852822841677
spng 43 43 44 100 1 29.8995849481280231
spng 44 44 45 100 1 29.8995847499667704
spng 45 45 46 100 1 29.8995850744131424
spng 46 46 47 100 1 29.8995855382507045
spng 47 47 48 100 1 29.8995857002362193
spng 48 48 49 100 1 29.8995854943940564
spng 49 49 50 100 1 29.8995851414878757
spng 50 50 51 100 1 29.8995849212741369
spng 51 51 52 100 1 29.8995849436795496
spng 52 52 53 100 1 29.8995851164660102
spng 53 53 54 100 1 29.8995852745454833
spng 54 54 55 100 1 29.8995853905774567
spng 55 55 56 100 1 29.8995855387761615
spng 56 56 57 100 1 29.8995857176821715
spng 57 57 58 100 1 29.8995858199658997
spng 58 58 59 100 1 29.8995857897995201
spng 59 59 60 100 1 29.8995856867559269
spng 60 60 61 100 1 29.8995856083260954
spng 61 2 22 50 1 539.270191995301161
spng 62 3 23 50 1 480.70370458293354
spng 63 4 24 50 1 423.456716503957068
spng 64 5 25 50 1 368.145297776699863
spng 65 6 26 50 1 315.788153355035831
spng 66 7 27 50 1 268.121584442264862
spng 67 8 28 50 1 228.105326578932733
spng 68 9 29 50 1 200.37645920156163
spng 69 10 30 50 1 190.381829233045039
spng 70 11 31 50 1 200.787413276402901
spng 71 12 32 50 1 228.826916774169177
spng 72 33 13 50 1 269.04230032562549
spng 73 14 34 50 1 316.830540855921072
spng 74 35 15 50 1 369.263125454911403
spng 75 16 36 50 1 424.623065516117492
spng 76 37 17 50 1 481.902549183096369
spng 77 38 18 50 1 540.491642683879036
spng 78 39 19 50 1 600.006830787842091
spng 79 20 40 50 1 660.197698709556676
spng 80 22 42 50 1 660.137822386440689
spng 81 23 43 50 1 599.960133122991351
spng 82 24 44 50 1 540.454549038330015
spng 83 25 45 50 1 481.870186228443174
spng 84 26 46 50 1 424.588587930322262
spng 85 27 47 50 1 369.216593976457375
spng 86 28 48 50 1 316.757199598760678
spng 87 29 49 50 1 268.920290578420065
spng 88 30 50 50 1 228.626169763879432
spng 89 31 51 50 1 200.475718835444553
spng 90 32 52 50 1 189.947112873369264
spng 91 53 33 50 1 199.845208874705122
spng 92 54 34 50 1 227.519413364084642
spng 93 55 35 50 1 267.508614718130843
spng 94 56 36 50 1 315.159436986939056
spng 95 57 37 50 1 367.50358602447875
spng 96 58 38 50 1 422.801470269567176
spng 97 59 39 50 1 480.033417419215994
spng 98 60 40 50 1 538.583224255627897
\BARFOO\
else
echo "will not over write ./lib/zgrid.xsp"
fi
if `test ! -s ./lib/zharp.xsp`
then
echo "writting ./lib/zharp.xsp"
cat > ./lib/zharp.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 0.5
elas 1

kspr 50
kdmp 1
fixm 4


shws 1
cent -1
frce 0 0 10 0
frce 1 0 5 2
frce 2 0 10 0
frce 3 0 10000 1
visc 0
stck 0
step 0.025
prec 1
adpt 0
gsnp 20 0

wall 0 0 0 0
mass 1 21.639729 470.92505 13.392069 -44.74031 -0.5 1

mass 2 51.711478 470.92861 -7.7083843e-13 5.2037036e-13 0.5 1
mass 3 81.64936 470.93216 -7.6106069e-13 9.7156192e-12 0.5 1
mass 4 111.58724 470.93571 -8.7373285e-13 -3.9373629e-13 0.5 1
mass 5 141.52512 470.93926 -1.4240835e-12 4.8611623e-13 0.5 1
mass 6 171.463 470.9428 -1.7837347e-12 -1.6311004e-12 0.5 1
mass 7 201.40089 470.94635 -4.0943029e-13 -3.8606168e-12 0.5 1
mass 8 231.33877 470.9499 1.363033e-13 -2.4046798e-12 0.5 1
mass 9 261.27665 470.95345 4.8969021e-13 3.7918437e-12 0.5 1
mass 10 291.21453 470.957 2.1144444e-13 -2.3854892e-12 0.5 1
mass 11 321.15241 470.96055 -9.0744505e-13 -1.5906151e-13 0.5 1
mass 12 351.09029 470.9641 -1.0754498e-12 -2.5896816e-12 0.5 1
mass 13 381.02817 470.96765 -1.1441579e-12 8.9774278e-12 0.5 1
mass 14 410.96606 470.9712 1.4556016e-13 1.4514479e-12 0.5 1
mass 15 440.90394 470.97474 1.1506149e-12 -8.4449778e-12 0.5 1
mass 16 470.84182 470.97829 -2.3367803e-13 6.1827536e-13 0.5 1
mass 17 500.7797 470.98184 8.3250403e-13 1.8155052e-12 0.5 1
mass 18 530.71758 470.98539 2.0319798e-12 -1.0443703e-12 0.5 1
mass 19 560.65546 470.98894 1.1376887e-12 -1.8735874e-12 0.5 1
mass 20 590.59334 470.99249 -2.2385743e-12 6.9361423e-12 0.5 1


mass 21 620.44133 470.99603 8.9880047 8.5159468 -0.5 1

mass 22 590.77273 453.21806 38.813254 -75.007712 0.5 1
mass 23 561.71769 434.91993 77.586645 -144.73299 0.5 1
mass 24 533.99648 415.74062 115.06045 -203.25444 0.5 1
mass 25 507.98995 395.33699 148.10066 -245.92985 0.5 1
mass 26 483.63466 373.63882 171.03528 -269.91454 0.5 1
mass 27 460.33154 350.80567 177.73718 -274.2825 0.5 1
mass 28 437.11293 327.09344 165.08386 -260.42795 0.5 1
mass 29 412.87161 302.99126 135.43052 -232.25456 0.5 1
mass 30 386.59273 279.35917 95.468111 -193.95025 0.5 1
mass 31 357.62516 257.2676 53.887391 -149.6312 0.5 1
mass 32 325.8534 237.61359 17.103701 -102.27564 0.5 1
mass 33 291.82376 220.53306 -10.705008 -56.570379 0.5 1
mass 34 256.55658 205.11247 -27.109851 -21.686513 0.5 1
mass 35 221.17224 189.64133 -32.516202 -5.4992058 0.5 1
mass 36 186.56205 172.43088 -26.942607 -9.2066618 0.5 1
mass 37 153.08674 152.88905 -13.089972 -22.647851 0.5 1
mass 38 120.5387 131.68873 1.7654496 -33.444678 0.5 1
mass 39 88.193216 110.17993 9.5134966 -33.679048 0.5 1
mass 40 55.36063 89.350776 7.8325801 -21.474131 0.5 1


mass 41 22.105673 69.395837 -9.6851415 -22.137054 -0.5 1

mass 42 51.908168 69.425952 -6.7156897e-11 1.12993e-08 0.5 1
mass 43 81.807738 69.456165 -6.3777058e-11 1.1138385e-08 0.5 1
mass 44 111.70731 69.486378 -4.0981399e-11 1.3369637e-08 0.5 1
mass 45 141.60688 69.516591 3.1682053e-11 5.7626906e-09 0.5 1
mass 46 171.50645 69.546804 7.4571948e-11 -2.5371857e-09 0.5 1
mass 47 201.40602 69.577017 4.6878955e-11 -2.0971638e-09 0.5 1
mass 48 231.30559 69.60723 2.114251e-12 1.5266586e-09 0.5 1
mass 49 261.20516 69.637443 -7.1452348e-12 7.2017851e-10 0.5 1
mass 50 291.10473 69.667656 1.0152752e-11 -4.3573117e-09 0.5 1
mass 51 321.0043 69.697869 2.0877334e-11 -5.4937515e-09 0.5 1
mass 52 350.90387 69.728082 2.981324e-11 -1.0462326e-08 0.5 1
mass 53 380.80344 69.758295 2.8034495e-11 -1.321963e-08 0.5 1
mass 54 410.70301 69.788508 -2.3741179e-12 3.313303e-09 0.5 1
mass 55 440.60258 69.818722 -2.8968274e-11 1.1645608e-08 0.5 1
mass 56 470.50215 69.848935 -1.9409564e-11 -3.4326043e-09 0.5 1
mass 57 500.40172 69.879148 8.0619392e-12 -8.0505231e-09 0.5 1
mass 58 530.30129 69.909361 4.0425885e-11 -6.8537353e-09 0.5 1
mass 59 560.20086 69.939574 5.9940813e-11 -3.9194851e-09 0.5 1
mass 60 590.10043 69.969787 4.0578213e-11 6.2152787e-10 0.5 1

spng 61 20 18 100 1 60
spng 62 20 22 50 1 17
spng 63 19 23 50 1 36.013886
spng 64 18 24 50 1 55.081757
spng 65 25 17 50 1 75.325958
spng 66 16 26 50 1 97.867257
spng 67 15 27 50 1 121.65525
spng 68 28 14 50 1 145.52663
spng 69 13 29 50 1 170.83618
spng 70 30 12 50 1 194.18033
spng 71 11 31 50 1 216.02083
spng 72 32 10 50 1 235.46762
spng 73 9 33 50 1 251.79357
spng 74 34 8 50 1 266.17663
spng 75 7 35 50 1 281.71084
spng 76 36 6 50 1 298.37728
spng 77 5 37 50 1 318.22633
spng 78 38 4 50 1 339.11945
spng 79 3 39 50 1 360.06805
spng 80 40 2 50 1 381.021
spng 81 42 40 50 1 20.396078
spng 82 39 43 50 1 41.593269
spng 83 44 38 50 1 62.64982
spng 84 37 45 50 1 83.862983
spng 85 46 36 50 1 104.0865
spng 86 35 47 50 1 121.65525
spng 87 34 48 50 1 138.2787
spng 88 33 49 50 1 153.95129
spng 89 32 50 50 1 171.40595
spng 90 31 51 50 1 191.41578
spng 91 30 52 50 1 213.06337
spng 92 29 53 50 1 235.18716
spng 93 28 54 50 1 259.40894
spng 94 27 55 50 1 281.71084
spng 95 26 56 50 1 304.27783
spng 96 25 57 50 1 326.07514
spng 97 24 58 50 1 346.01301
spng 98 23 59 50 1 365.00137
spng 99 22 60 50 1 384
\BARFOO\
else
echo "will not over write ./lib/zharp.xsp"
fi
if `test ! -s ./lib/zharp2.xsp`
then
echo "writting ./lib/zharp2.xsp"
cat > ./lib/zharp2.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 0.5
elas 1

kspr 50


kdmp 1
fixm 1
shws 1
cent -1
frce 0 0 10 0
frce 1 0 5 2
frce 2 0 10 0
frce 3 0 10000 1
visc 0
stck 0
step 0.025
prec 1
adpt 0
gsnp 20 0

wall 0 0 0 0
mass 1 21.639729 470.92505 13.392069 -44.74031 -0.5 1

mass 2 51.711478 470.92861 -7.7083843e-13 5.2037036e-13 0.5 1
mass 3 81.64936 470.93216 -7.6106069e-13 9.7156192e-12 0.5 1
mass 4 111.58724 470.93571 -8.7373285e-13 -3.9373629e-13 0.5 1
mass 5 141.52512 470.93926 -1.4240835e-12 4.8611623e-13 0.5 1
mass 6 171.463 470.9428 -1.7837347e-12 -1.6311004e-12 0.5 1
mass 7 201.40089 470.94635 -4.0943029e-13 -3.8606168e-12 0.5 1
mass 8 231.33877 470.9499 1.363033e-13 -2.4046798e-12 0.5 1
mass 9 261.27665 470.95345 4.8969021e-13 3.7918437e-12 0.5 1
mass 10 291.21453 470.957 2.1144444e-13 -2.3854892e-12 0.5 1
mass 11 321.15241 470.96055 -9.0744505e-13 -1.5906151e-13 0.5 1
mass 12 351.09029 470.9641 -1.0754498e-12 -2.5896816e-12 0.5 1
mass 13 381.02817 470.96765 -1.1441579e-12 8.9774278e-12 0.5 1
mass 14 410.96606 470.9712 1.4556016e-13 1.4514479e-12 0.5 1
mass 15 440.90394 470.97474 1.1506149e-12 -8.4449778e-12 0.5 1
mass 16 470.84182 470.97829 -2.3367803e-13 6.1827536e-13 0.5 1
mass 17 500.7797 470.98184 8.3250403e-13 1.8155052e-12 0.5 1
mass 18 530.71758 470.98539 2.0319798e-12 -1.0443703e-12 0.5 1
mass 19 560.65546 470.98894 1.1376887e-12 -1.8735874e-12 0.5 1
mass 20 590.59334 470.99249 -2.2385743e-12 6.9361423e-12 0.5 1


mass 21 620.44133 470.99603 8.9880047 8.5159468 -0.5 1

mass 22 590.77273 453.21806 38.813254 -75.007712 0.5 1
mass 23 561.71769 434.91993 77.586645 -144.73299 0.5 1
mass 24 533.99648 415.74062 115.06045 -203.25444 0.5 1
mass 25 507.98995 395.33699 148.10066 -245.92985 0.5 1
mass 26 483.63466 373.63882 171.03528 -269.91454 0.5 1
mass 27 460.33154 350.80567 177.73718 -274.2825 0.5 1
mass 28 437.11293 327.09344 165.08386 -260.42795 0.5 1
mass 29 412.87161 302.99126 135.43052 -232.25456 0.5 1
mass 30 386.59273 279.35917 95.468111 -193.95025 0.5 1
mass 31 357.62516 257.2676 53.887391 -149.6312 0.5 1
mass 32 325.8534 237.61359 17.103701 -102.27564 0.5 1
mass 33 291.82376 220.53306 -10.705008 -56.570379 0.5 1
mass 34 256.55658 205.11247 -27.109851 -21.686513 0.5 1
mass 35 221.17224 189.64133 -32.516202 -5.4992058 0.5 1
mass 36 186.56205 172.43088 -26.942607 -9.2066618 0.5 1
mass 37 153.08674 152.88905 -13.089972 -22.647851 0.5 1
mass 38 120.5387 131.68873 1.7654496 -33.444678 0.5 1
mass 39 88.193216 110.17993 9.5134966 -33.679048 0.5 1
mass 40 55.36063 89.350776 7.8325801 -21.474131 0.5 1


mass 41 22.105673 69.395837 -9.6851415 -22.137054 -0.5 1

mass 42 51.908168 69.425952 -6.7156897e-11 1.12993e-08 0.5 1
mass 43 81.807738 69.456165 -6.3777058e-11 1.1138385e-08 0.5 1
mass 44 111.70731 69.486378 -4.0981399e-11 1.3369637e-08 0.5 1
mass 45 141.60688 69.516591 3.1682053e-11 5.7626906e-09 0.5 1
mass 46 171.50645 69.546804 7.4571948e-11 -2.5371857e-09 0.5 1
mass 47 201.40602 69.577017 4.6878955e-11 -2.0971638e-09 0.5 1
mass 48 231.30559 69.60723 2.114251e-12 1.5266586e-09 0.5 1
mass 49 261.20516 69.637443 -7.1452348e-12 7.2017851e-10 0.5 1
mass 50 291.10473 69.667656 1.0152752e-11 -4.3573117e-09 0.5 1
mass 51 321.0043 69.697869 2.0877334e-11 -5.4937515e-09 0.5 1
mass 52 350.90387 69.728082 2.981324e-11 -1.0462326e-08 0.5 1
mass 53 380.80344 69.758295 2.8034495e-11 -1.321963e-08 0.5 1
mass 54 410.70301 69.788508 -2.3741179e-12 3.313303e-09 0.5 1
mass 55 440.60258 69.818722 -2.8968274e-11 1.1645608e-08 0.5 1
mass 56 470.50215 69.848935 -1.9409564e-11 -3.4326043e-09 0.5 1
mass 57 500.40172 69.879148 8.0619392e-12 -8.0505231e-09 0.5 1
mass 58 530.30129 69.909361 4.0425885e-11 -6.8537353e-09 0.5 1
mass 59 560.20086 69.939574 5.9940813e-11 -3.9194851e-09 0.5 1
mass 60 590.10043 69.969787 4.0578213e-11 6.2152787e-10 0.5 1

spng 61 20 18 100 1 60
spng 62 20 22 50 1 17
spng 63 19 23 50 1 36.013886
spng 64 18 24 50 1 55.081757
spng 65 25 17 50 1 75.325958
spng 66 16 26 50 1 97.867257
spng 67 15 27 50 1 121.65525
spng 68 28 14 50 1 145.52663
spng 69 13 29 50 1 170.83618
spng 70 30 12 50 1 194.18033
spng 71 11 31 50 1 216.02083
spng 72 32 10 50 1 235.46762
spng 73 9 33 50 1 251.79357
spng 74 34 8 50 1 266.17663
spng 75 7 35 50 1 281.71084
spng 76 36 6 50 1 298.37728
spng 77 5 37 50 1 318.22633
spng 78 38 4 50 1 339.11945
spng 79 3 39 50 1 360.06805
spng 80 40 2 50 1 381.021
spng 81 42 40 50 1 20.396078
spng 82 39 43 50 1 41.593269
spng 83 44 38 50 1 62.64982
spng 84 37 45 50 1 83.862983
spng 85 46 36 50 1 104.0865
spng 86 35 47 50 1 121.65525
spng 87 34 48 50 1 138.2787
spng 88 33 49 50 1 153.95129
spng 89 32 50 50 1 171.40595
spng 90 31 51 50 1 191.41578
spng 91 30 52 50 1 213.06337
spng 92 29 53 50 1 235.18716
spng 93 28 54 50 1 259.40894
spng 94 27 55 50 1 281.71084
spng 95 26 56 50 1 304.27783
spng 96 25 57 50 1 326.07514
spng 97 24 58 50 1 346.01301
spng 98 23 59 50 1 365.00137
spng 99 22 60 50 1 384
spng 100 40 43 50 1 32.802439
spng 101 42 39 50 1 55.226805
spng 102 39 44 50 1 47.010637
spng 103 38 43 50 1 73.24616
spng 104 38 45 50 1 65.459911
spng 105 37 44 50 1 93.021503
spng 106 37 46 50 1 84.929382
spng 107 45 36 50 1 112.40107
spng 108 36 47 50 1 104.0865
spng 109 35 46 50 1 130
spng 110 35 48 50 1 120.41595
spng 111 34 47 50 1 146.70037
spng 112 34 49 50 1 136.09188
spng 113 33 48 50 1 162.48385
spng 114 33 50 50 1 151
spng 115 32 49 50 1 179.77764
spng 116 32 51 50 1 168.04761
spng 117 31 50 50 1 199.24859
spng 118 31 52 50 1 188.13027
spng 119 51 30 50 1 219.82948
spng 120 30 53 50 1 210.0857
spng 121 52 29 50 1 241.10786
spng 122 29 54 50 1 233.00858
spng 123 53 28 50 1 264.2215
spng 124 28 55 50 1 258.01744
spng 125 54 27 50 1 285.41373
spng 126 27 56 50 1 281.17788
spng 127 55 26 50 1 307.02606
spng 128 26 57 50 1 304.47496
spng 129 56 25 50 1 328.09297
spng 130 25 58 50 1 326.81034
spng 131 57 24 50 1 347.57014
spng 132 24 59 50 1 347.05187
spng 133 58 23 50 1 366.31407
spng 134 23 60 50 1 366.15024
spng 135 59 22 50 1 385.17009
spng 136 22 61 50 1 385.17009
spng 137 19 22 50 1 34.481879
spng 138 20 23 50 1 46.227697
spng 139 18 23 50 1 47.507894
spng 140 19 24 50 1 61.269895
spng 141 17 24 50 1 64.140471
spng 142 18 25 50 1 78.447435
spng 143 25 16 50 1 83.630138
spng 144 17 26 50 1 98.478424
spng 145 26 15 50 1 106.10372
spng 146 15 28 50 1 143.03147
spng 147 28 13 50 1 153.57409
spng 148 13 30 50 1 191.06543
spng 149 30 11 50 1 201.75728
spng 150 31 12 50 1 213.08449
spng 151 12 29 50 1 178.73164
spng 152 29 14 50 1 168.0119
spng 153 14 27 50 1 130
spng 154 27 16 50 1 120.41595
spng 155 10 31 50 1 222.99103
spng 156 32 11 50 1 233.03433
spng 157 9 32 50 1 241.62988
spng 158 33 10 50 1 250
spng 159 8 33 50 1 257.0992
spng 160 34 9 50 1 265.04717
spng 161 8 35 50 1 281.17788
spng 162 35 6 50 1 285.41373
spng 163 6 37 50 1 318.50903
spng 164 37 4 50 1 320.76159
spng 165 4 39 50 1 360.73397
spng 166 39 2 50 1 361.89639
spng 167 2 41 50 1 402.04726
spng 168 40 3 50 1 381.88611
spng 169 3 38 50 1 341.23599
spng 170 38 5 50 1 339.64982
spng 171 5 36 50 1 301.3785
spng 172 36 7 50 1 298.37728
spng 173 7 34 50 1 270.64737
spng 174 60 21 50 1 402.12063
spng 175 40 1 50 1 382.51405
\BARFOO\
else
echo "will not over write ./lib/zharp2.xsp"
fi
echo "Finished archive 5 of 16"

Douglas DeCarlo

unread,
Mar 26, 1993, 11:12:44 AM3/26/93
to
Submitted-by: d...@gradient.cis.upenn.edu (Douglas DeCarlo)
Posting-number: Volume 19, Issue 58
Archive-name: xspringies/part06

Environment: X11
Supersedes: xspringies: Volume 14, Issue 25-30

#!/bin/sh


# to extract, remove the header and type "sh filename"

if `test ! -d ./lib`
then
mkdir ./lib
echo "mkdir ./lib"
fi

if `test ! -s ./lib/urchin.xsp`
then
echo "writting ./lib/urchin.xsp"
cat > ./lib/urchin.xsp << '\BARFOO\'


#1.0 *** XSpringies data file

cmas 1.0
elas 1.0
kspr 200.0
kdmp 3.0


fixm 0
shws 1
cent -1

frce 0 1 10.0 0.0
frce 1 0 5.0 2.0
frce 2 0 10.0 0.0
frce 3 0 10000.0 1.0
visc 0.0
stck 2000.0
step 0.025000
prec 1.0
adpt 0
gsnp 20.0 0


wall 1 1 1 1

mass 1 507.296953 392.174236 -11.451186 -71.267273 1.0 1.0
mass 2 514.879820 372.128025 11.950035 -70.858717 1.0 1.0
mass 3 536.571268 364.423706 18.394466 -41.159445 1.0 1.0
mass 4 554.886966 369.953895 15.173664 -11.009243 1.0 1.0
mass 5 572.432935 379.927626 8.228103 -1.120846 1.0 1.0
mass 6 585.774508 392.380791 5.443281 -8.186599 1.0 1.0
mass 7 584.650543 411.934530 -15.582843 -24.911756 1.0 1.0
mass 8 569.409148 424.155713 -24.100159 -42.285960 1.0 1.0
mass 9 553.751996 434.663690 -26.069217 -41.610454 1.0 1.0
mass 10 536.684374 444.915694 -30.702349 -45.021926 1.0 1.0
mass 11 516.677286 435.936238 -33.128410 -60.977340 1.0 1.0
mass 12 514.170680 414.649472 -24.471518 -64.104425 1.0 1.0
mass 13 602.101547 478.298945 1.612646 -53.040881 1.0 1.0
mass 14 637.0 427.598266 0.0 0.0 1.0 1.0
mass 15 608.000171 350.425575 31.812856 23.456940 1.0 1.0
mass 16 484.367809 332.414622 42.575378 -91.238351 1.0 1.0
mass 17 480.857379 475.215663 -24.240991 -53.909049 1.0 1.0
mass 18 548.580015 492.173168 -34.565312 -52.436468 1.0 1.0
mass 19 578.155338 487.173526 22.544495 -71.920721 1.0 1.0
mass 20 630.992588 379.333707 16.662115 37.873709 1.0 1.0
mass 21 591.256916 324.817423 63.036114 27.988433 1.0 1.0
mass 22 539.051461 311.597938 159.501014 -27.955219 1.0 1.0
mass 23 448.396171 396.882674 -15.045910 -138.652372 1.0 1.0
mass 24 448.194414 419.993896 -27.625008 -84.936708 1.0 1.0
spng 1 1 2 200.0 3.0 20.0
spng 2 2 3 200.0 3.0 20.0
spng 3 3 4 200.0 3.0 20.0
spng 4 4 5 200.0 3.0 20.0
spng 5 5 6 200.0 3.0 20.0
spng 6 6 7 200.0 3.0 20.0
spng 7 7 8 200.0 3.0 20.0
spng 8 8 9 200.0 3.0 20.0
spng 9 9 10 200.0 3.0 20.0
spng 10 10 11 200.0 3.0 20.0
spng 11 11 12 200.0 3.0 20.0
spng 12 1 3 200.0 3.0 40.0
spng 13 2 4 200.0 3.0 40.0
spng 14 3 5 200.0 3.0 40.0
spng 15 4 6 200.0 3.0 40.0
spng 16 6 8 200.0 3.0 40.0
spng 17 7 9 200.0 3.0 40.0
spng 18 8 10 200.0 3.0 40.0
spng 19 9 11 200.0 3.0 40.0
spng 20 10 12 200.0 3.0 40.0
spng 21 12 1 200.0 3.0 21.0
spng 22 12 2 200.0 3.0 41.0
spng 23 11 1 200.0 3.0 41.0
spng 24 6 12 200.0 3.0 72.681733
spng 25 5 11 200.0 3.0 81.191259
spng 26 10 4 200.0 3.0 76.026311
spng 27 3 9 200.0 3.0 72.615425
spng 28 8 2 200.0 3.0 74.966659
spng 29 1 7 200.0 3.0 80.280757
spng 30 17 11 200.0 3.0 55.036352
spng 31 10 18 200.0 3.0 49.819675
spng 32 19 9 200.0 3.0 54.918121
spng 33 8 13 200.0 3.0 62.201286
spng 34 14 7 200.0 3.0 58.600341
spng 35 6 20 200.0 3.0 46.400431
spng 36 15 5 200.0 3.0 44.045431
spng 37 4 21 200.0 3.0 57.454330
spng 38 22 3 200.0 3.0 53.823787
spng 39 2 16 200.0 3.0 51.039201
spng 40 23 1 200.0 3.0 58.668561
spng 41 12 24 200.0 3.0 64.404969
spng 42 24 11 200.0 3.0 71.217975
spng 43 17 12 200.0 3.0 65.0
spng 44 11 18 200.0 3.0 60.745370
spng 45 18 9 200.0 3.0 60.406953
spng 46 9 13 200.0 3.0 67.779053
spng 47 13 7 200.0 3.0 66.708320
spng 48 7 20 200.0 3.0 55.659680
spng 49 20 5 200.0 3.0 60.0
spng 50 5 21 200.0 3.0 61.846584
spng 51 21 3 200.0 3.0 64.031242
spng 52 3 16 200.0 3.0 63.568860
spng 53 16 1 200.0 3.0 59.774577
spng 54 1 24 200.0 3.0 65.802736
spng 55 17 10 200.0 3.0 64.845971
spng 56 10 19 200.0 3.0 58.249464
spng 57 19 8 200.0 3.0 67.268120
spng 58 8 14 200.0 3.0 67.268120
spng 59 14 6 200.0 3.0 64.629715
spng 60 6 15 200.0 3.0 50.089919
spng 61 15 4 200.0 3.0 56.320511
spng 62 4 22 200.0 3.0 60.728906
spng 63 22 2 200.0 3.0 61.032778
spng 64 2 23 200.0 3.0 66.528190
spng 65 23 12 200.0 3.0 72.277244
\BARFOO\
else
echo "will not over write ./lib/urchin.xsp"
fi
if `test ! -s ./lib/wave.xsp`
then
echo "writting ./lib/wave.xsp"
cat > ./lib/wave.xsp << '\BARFOO\'


#1.0 *** XSpringies data file

cmas 1.0
elas 1.0
kspr 5.0
kdmp 1.0


fixm 4
shws 1
cent -1

frce 0 1 10.0 0.0
frce 1 0 5.0 2.0
frce 2 0 10.0 0.0
frce 3 0 10000.0 1.0
visc 0.0
stck 0.0
step 0.025000
prec 1.0
adpt 0
gsnp 20.0 0
wall 0 0 0 1
mass 1 17.0 327.0 1.0 1.0 -1.0 1.0
mass 2 40.616434 329.518327 -6.273011 10.049778 0.400000 1.0
mass 3 62.238102 331.226941 -10.902818 14.334082 0.400000 1.0
mass 4 81.984174 330.876525 -14.241514 -0.139785 0.400000 1.0
mass 5 103.763691 328.789814 -17.720418 -3.743862 0.400000 1.0
mass 6 125.683554 326.574376 -21.048221 -9.894053 0.400000 1.0
mass 7 149.406841 322.162228 -24.786785 -20.649368 0.400000 1.0
mass 8 169.827468 316.266647 -26.407921 -24.052778 0.400000 1.0
mass 9 189.212042 310.066089 -25.481679 -23.548001 0.400000 1.0
mass 10 207.411015 303.520450 -22.571148 -20.158552 0.400000 1.0
mass 11 226.572788 296.968612 -18.939909 -16.048344 0.400000 1.0
mass 12 249.771360 290.771354 -19.104835 -24.115007 0.400000 1.0
mass 13 273.500543 289.136201 -16.004752 -16.644013 0.400000 1.0
mass 14 292.016440 292.091226 -10.085961 -32.129264 0.400000 1.0
mass 15 316.291833 297.096132 -6.608704 -33.307975 0.400000 1.0
mass 16 337.765051 304.406971 -1.273004 -37.803058 0.400000 1.0
mass 17 358.513912 313.420001 4.464993 -44.330510 0.400000 1.0
mass 18 379.333502 319.017074 7.034210 -47.210391 0.400000 1.0
mass 19 404.024078 325.157260 8.341837 -45.201158 0.400000 1.0
mass 20 423.080008 328.024010 8.374968 -35.841376 0.400000 1.0
mass 21 446.068042 328.706247 9.352009 -21.931248 0.400000 1.0
mass 22 465.798516 327.701723 11.915921 -14.792277 0.400000 1.0
mass 23 487.307632 325.611160 17.977405 12.379346 0.400000 1.0
mass 24 503.710143 325.736229 19.725355 29.320295 0.400000 1.0
mass 25 523.836754 326.129953 20.012130 30.001541 0.400000 1.0
mass 26 545.657152 324.842163 17.957325 25.173590 0.400000 1.0
mass 27 565.320706 324.907817 14.943513 21.725101 0.400000 1.0
mass 28 581.891905 325.827179 10.929984 16.794330 0.400000 1.0
mass 29 604.432529 326.601636 5.850051 6.924892 0.400000 1.0
mass 30 622.0 327.0 0.0 0.0 -1.0 1.0
spng 1 1 2 50.0 1.400000 18.027756
spng 2 2 3 50.0 1.400000 16.0
spng 3 3 4 50.0 1.400000 14.0
spng 4 4 5 50.0 1.400000 16.031220
spng 5 5 6 50.0 1.400000 16.031220
spng 6 6 7 50.0 1.400000 18.0
spng 7 7 8 50.0 1.400000 15.0
spng 8 8 9 50.0 1.400000 14.0
spng 9 9 10 50.0 1.400000 13.0
spng 10 10 11 50.0 1.400000 14.035669
spng 11 12 11 50.0 1.400000 18.0
spng 12 12 13 50.0 1.400000 18.027756
spng 13 13 14 50.0 1.400000 13.038405
spng 14 14 15 50.0 1.400000 19.026298
spng 15 15 16 50.0 1.400000 17.0
spng 16 16 17 50.0 1.400000 17.029386
spng 17 17 18 50.0 1.400000 16.0
spng 18 18 19 50.0 1.400000 20.0
spng 19 19 20 50.0 1.400000 14.035669
spng 20 20 21 50.0 1.400000 18.0
spng 21 21 22 50.0 1.400000 15.0
spng 22 22 23 50.0 1.400000 17.0
spng 23 23 24 50.0 1.400000 12.0
spng 24 24 25 50.0 1.400000 16.031220
spng 25 25 26 50.0 1.400000 18.0
spng 26 26 27 50.0 1.400000 16.0
spng 27 27 28 50.0 1.400000 13.038405
spng 28 28 29 50.0 1.400000 19.0
spng 29 29 30 50.0 1.400000 14.0
\BARFOO\
else
echo "will not over write ./lib/wave.xsp"
fi
if `test ! -s ./lib/worm.xsp`
then
echo "writting ./lib/worm.xsp"
cat > ./lib/worm.xsp << '\BARFOO\'


#1.0 *** XSpringies data file

cmas 1.0
elas 1.0
kspr 200.0
kdmp 5.0
fixm 0
shws 1
cent 26
frce 0 0 10.0 0.0
frce 1 1 10.0 2.0
frce 2 0 10.0 0.0
frce 3 1 5000.0 1.0
visc 0.0
stck 0.0
step 0.025000
prec 1.0
adpt 0
gsnp 20.0 0


wall 1 1 1 1

mass 1 460.0 350.0 0.0 0.0 1.0 1.0
mass 2 460.0 310.0 0.0 0.0 1.0 1.0
mass 3 480.0 330.0 0.0 0.0 1.0 1.0
mass 4 500.0 350.0 0.0 0.0 1.0 1.0
mass 5 500.0 310.0 0.0 0.0 1.0 1.0
mass 6 520.0 330.0 0.0 0.0 1.0 1.0
mass 7 540.0 350.0 0.0 0.0 1.0 1.0
mass 8 540.0 310.0 0.0 0.0 1.0 1.0
mass 9 560.0 330.0 0.0 0.0 1.0 1.0
mass 10 340.0 350.0 0.0 0.0 1.0 1.0
mass 11 340.0 310.0 0.0 0.0 1.0 1.0
mass 12 360.0 330.0 0.0 0.0 1.0 1.0
mass 13 380.0 350.0 0.0 0.0 1.0 1.0
mass 14 380.0 310.0 0.0 0.0 1.0 1.0
mass 15 400.0 330.0 0.0 0.0 1.0 1.0
mass 16 420.0 350.0 0.0 0.0 1.0 1.0
mass 17 420.0 310.0 0.0 0.0 1.0 1.0
mass 18 220.0 350.0 0.0 0.0 1.0 1.0
mass 19 220.0 310.0 0.0 0.0 1.0 1.0
mass 20 260.0 350.0 0.0 0.0 1.0 1.0
mass 21 260.0 310.0 0.0 0.0 1.0 1.0
mass 22 280.0 330.0 0.0 0.0 1.0 1.0
mass 23 300.0 350.0 0.0 0.0 1.0 1.0
mass 24 300.0 310.0 0.0 0.0 1.0 1.0
mass 25 100.0 350.0 0.0 0.0 1.0 1.0
mass 26 80.0 330.0 0.0 0.0 1.0 1.0
mass 27 100.0 310.0 0.0 0.0 1.0 1.0
mass 28 120.0 330.0 0.0 0.0 1.0 1.0
mass 29 140.0 350.0 0.0 0.0 1.0 1.0
mass 30 140.0 310.0 0.0 0.0 1.0 1.0
mass 31 160.0 330.0 0.0 0.0 1.0 1.0
mass 32 180.0 350.0 0.0 0.0 1.0 1.0
mass 33 180.0 310.0 0.0 0.0 1.0 1.0
mass 34 200.0 330.0 0.0 0.0 1.0 1.0
mass 35 240.0 330.0 0.0 0.0 1.0 1.0
mass 36 320.0 330.0 0.0 0.0 1.0 1.0
mass 37 440.0 330.0 0.0 0.0 1.0 1.0
spng 1 1 3 200.0 5.0 28.284271
spng 2 3 4 200.0 5.0 28.284271
spng 3 4 6 200.0 5.0 28.284271
spng 4 6 7 200.0 5.0 28.284271
spng 5 7 9 200.0 5.0 28.284271
spng 6 9 8 200.0 5.0 28.284271
spng 7 8 6 200.0 5.0 28.284271
spng 8 6 5 200.0 5.0 28.284271
spng 9 5 3 200.0 5.0 28.284271
spng 10 3 2 200.0 5.0 28.284271
spng 11 6 9 200.0 5.0 40.0
spng 12 7 8 200.0 5.0 40.0
spng 13 4 5 200.0 5.0 40.0
spng 14 1 2 200.0 5.0 40.0
spng 15 10 12 200.0 5.0 28.284271
spng 16 12 13 200.0 5.0 28.284271
spng 17 13 15 200.0 5.0 28.284271
spng 18 15 16 200.0 5.0 28.284271
spng 19 17 15 200.0 5.0 28.284271
spng 20 15 14 200.0 5.0 28.284271
spng 21 14 12 200.0 5.0 28.284271
spng 22 12 11 200.0 5.0 28.284271
spng 23 12 15 200.0 5.0 40.0
spng 24 16 17 200.0 5.0 40.0
spng 25 13 14 200.0 5.0 40.0
spng 26 10 11 200.0 5.0 40.0
spng 27 20 22 200.0 5.0 28.284271
spng 28 22 23 200.0 5.0 28.284271
spng 29 24 22 200.0 5.0 28.284271
spng 30 22 21 200.0 5.0 28.284271
spng 31 23 24 200.0 5.0 40.0
spng 32 20 21 200.0 5.0 40.0
spng 33 26 25 200.0 5.0 28.284271
spng 34 25 28 200.0 5.0 28.284271
spng 35 28 29 200.0 5.0 28.284271
spng 36 29 31 200.0 5.0 28.284271
spng 37 31 32 200.0 5.0 28.284271
spng 38 33 31 200.0 5.0 28.284271
spng 39 31 30 200.0 5.0 28.284271
spng 40 30 28 200.0 5.0 28.284271
spng 41 28 27 200.0 5.0 28.284271
spng 42 27 26 200.0 5.0 28.284271
spng 43 26 28 200.0 5.0 40.0
spng 44 28 31 200.0 5.0 40.0
spng 45 32 33 200.0 5.0 40.0
spng 46 29 30 200.0 5.0 40.0
spng 47 25 27 200.0 5.0 40.0
spng 48 35 20 200.0 5.0 28.284271
spng 49 32 34 200.0 5.0 28.284271
spng 50 34 18 200.0 5.0 28.284271
spng 51 18 35 200.0 5.0 28.284271
spng 52 35 19 200.0 5.0 28.284271
spng 53 19 34 200.0 5.0 28.284271
spng 54 34 33 200.0 5.0 28.284271
spng 55 31 34 200.0 5.0 40.0
spng 56 18 19 200.0 5.0 40.0
spng 57 34 35 200.0 5.0 40.0
spng 58 35 21 200.0 5.0 28.284271
spng 59 35 22 200.0 5.0 40.0
spng 60 22 36 200.0 5.0 40.0
spng 61 36 12 200.0 5.0 40.0
spng 62 10 36 200.0 5.0 28.284271
spng 63 36 23 200.0 5.0 28.284271
spng 64 24 36 200.0 5.0 28.284271
spng 65 36 11 200.0 5.0 28.284271
spng 66 15 37 200.0 5.0 40.0
spng 67 37 3 200.0 5.0 40.0
spng 68 3 6 200.0 5.0 40.0
spng 69 16 37 200.0 5.0 28.284271
spng 70 37 1 200.0 5.0 28.284271
spng 71 37 2 200.0 5.0 28.284271
spng 72 37 17 200.0 5.0 28.284271
spng 73 25 29 200.0 5.0 40.0
spng 74 29 32 200.0 5.0 40.0
spng 75 32 18 200.0 5.0 40.0
spng 76 18 20 200.0 5.0 40.0
spng 77 20 23 200.0 5.0 40.0
spng 78 23 10 200.0 5.0 40.0
spng 79 10 13 200.0 5.0 40.0
spng 80 13 16 200.0 5.0 40.0
spng 81 16 1 200.0 5.0 40.0
spng 82 1 4 200.0 5.0 40.0
spng 83 4 7 200.0 5.0 40.0
spng 84 8 5 200.0 5.0 40.0
spng 85 5 2 200.0 5.0 40.0
spng 86 2 17 200.0 5.0 40.0
spng 87 17 14 200.0 5.0 40.0
spng 88 14 11 200.0 5.0 40.0
spng 89 11 24 200.0 5.0 40.0
spng 90 24 21 200.0 5.0 40.0
spng 91 21 19 200.0 5.0 40.0
spng 92 19 33 200.0 5.0 40.0
spng 93 33 30 200.0 5.0 40.0
spng 94 30 27 200.0 5.0 40.0
spng 95 25 31 200.0 5.0 63.245553
spng 96 31 18 200.0 5.0 63.245553
spng 97 18 22 200.0 5.0 63.245553
spng 98 22 10 200.0 5.0 63.245553
spng 99 10 15 200.0 5.0 63.245553
spng 100 15 1 200.0 5.0 63.245553
spng 101 1 6 200.0 5.0 63.245553
spng 102 27 31 200.0 5.0 63.245553
spng 103 31 19 200.0 5.0 63.245553
spng 104 19 22 200.0 5.0 63.245553
spng 105 22 11 200.0 5.0 63.245553
spng 106 11 15 200.0 5.0 63.245553
spng 107 15 2 200.0 5.0 63.245553
spng 108 2 6 200.0 5.0 63.245553
spng 109 29 34 200.0 5.0 63.245553
spng 110 34 20 200.0 5.0 63.245553
spng 111 20 36 200.0 5.0 63.245553
spng 112 36 13 200.0 5.0 63.245553
spng 113 13 37 200.0 5.0 63.245553
spng 114 37 4 200.0 5.0 63.245553
spng 115 4 9 200.0 5.0 63.245553
spng 116 28 33 200.0 5.0 63.245553
spng 117 33 35 200.0 5.0 63.245553
spng 118 35 24 200.0 5.0 63.245553
spng 119 24 12 200.0 5.0 63.245553
spng 120 12 17 200.0 5.0 63.245553
spng 121 17 3 200.0 5.0 63.245553
spng 122 3 8 200.0 5.0 63.245553
spng 123 5 9 200.0 5.0 63.245553
spng 124 26 29 200.0 5.0 63.245553
spng 125 26 30 200.0 5.0 63.245553
spng 126 25 33 200.0 5.0 89.442719
spng 127 27 32 200.0 5.0 89.442719
spng 128 29 19 200.0 5.0 89.442719
spng 129 30 18 200.0 5.0 89.442719
spng 130 32 21 200.0 5.0 89.442719
spng 131 33 20 200.0 5.0 89.442719
spng 132 18 24 200.0 5.0 89.442719
spng 133 19 23 200.0 5.0 89.442719
spng 134 20 11 200.0 5.0 89.442719
spng 135 21 10 200.0 5.0 89.442719
spng 136 23 14 200.0 5.0 89.442719
spng 137 24 13 200.0 5.0 89.442719
spng 138 10 17 200.0 5.0 89.442719
spng 139 11 16 200.0 5.0 89.442719
spng 140 13 2 200.0 5.0 89.442719
spng 141 14 1 200.0 5.0 89.442719
spng 142 16 5 200.0 5.0 89.442719
spng 143 17 4 200.0 5.0 89.442719
spng 144 1 8 200.0 5.0 89.442719
spng 145 2 7 200.0 5.0 89.442719
spng 146 25 30 200.0 5.0 56.568542
spng 147 29 27 200.0 5.0 56.568542
spng 148 29 33 200.0 5.0 56.568542
spng 149 32 30 200.0 5.0 56.568542
spng 150 32 19 200.0 5.0 56.568542
spng 151 18 33 200.0 5.0 56.568542
spng 152 18 21 200.0 5.0 56.568542
spng 153 20 19 200.0 5.0 56.568542
spng 154 20 24 200.0 5.0 56.568542
spng 155 23 21 200.0 5.0 56.568542
spng 156 23 11 200.0 5.0 56.568542
spng 157 10 24 200.0 5.0 56.568542
spng 158 10 14 200.0 5.0 56.568542
spng 159 13 11 200.0 5.0 56.568542
spng 160 13 17 200.0 5.0 56.568542
spng 161 16 14 200.0 5.0 56.568542
spng 162 16 2 200.0 5.0 56.568542
spng 163 1 17 200.0 5.0 56.568542
spng 164 1 5 200.0 5.0 56.568542
spng 165 4 2 200.0 5.0 56.568542
spng 166 4 8 200.0 5.0 56.568542
spng 167 7 5 200.0 5.0 56.568542
\BARFOO\
else
echo "will not over write ./lib/worm.xsp"
fi
echo "Finished archive 6 of 16"

Douglas DeCarlo

unread,
Mar 26, 1993, 11:12:55 AM3/26/93
to
Submitted-by: d...@gradient.cis.upenn.edu (Douglas DeCarlo)
Posting-number: Volume 19, Issue 59
Archive-name: xspringies/part07

Environment: X11
Supersedes: xspringies: Volume 14, Issue 25-30

#!/bin/sh


# to extract, remove the header and type "sh filename"

if `test ! -d ./lib`
then
mkdir ./lib
echo "mkdir ./lib"
fi

if `test ! -s ./lib/tri4.xsp`
then
echo "writting ./lib/tri4.xsp"
cat > ./lib/tri4.xsp << '\BARFOO\'


#1.0 *** XSpringies data file

cmas 1
elas 1
kspr 10
kdmp 1

fixm 0
shws 1
cent -1

frce 0 0 10 0
frce 1 0 5 2
frce 2 0 10 0
frce 3 0 10000 1
visc 0
stck 0
step 0.025
prec 1
adpt 0

gsnp 20 0


wall 1 1 1 1

mass 1 246.077577791 212.283116838 -0.000628783847129 -0.000325779377361 1 1
mass 2 246.077623222 237.283122857 -0.000857660291447 -0.000308089752003 1 1
mass 3 246.077644159 262.28311583 -0.000935091864684 -0.000212196932045 1 1
mass 4 246.077637383 287.283096071 -0.000865192359774 -7.81915889908e-05 1 1
mass 5 246.077600775 312.283063966 -0.000686920850523 5.05112550347e-05 1 1
mass 6 271.077637438 225.283160928 -0.000833375210378 -0.000312537573157 1 1
mass 7 271.077675179 250.283167077 -0.00103651941661 -0.000262482621459 1 1
mass 8 271.077685036 275.283162157 -0.00106080673525 -0.00017746966806 1 1
mass 9 271.077666367 300.283142992 -0.000939196961855 -7.32361711818e-05 1 1
mass 10 296.077683389 237.283199469 -0.00100361691683 -0.000322628751073 1 1
mass 11 296.077708191 262.283206486 -0.00113969211156 -0.000292177245718 1 1
mass 12 296.077707145 287.283202027 -0.00111538402586 -0.000246025750103 1 1
mass 13 321.077706938 250.283215458 -0.00109972667254 -0.000314845847002 1 1
mass 14 321.077718682 275.283221968 -0.0011682527065 -0.000323428565204 1 1
mass 15 346.077706513 262.283200952 -0.00111242382971 -0.000238102585196 1 1
spng 1 1 2 200 1 25
spng 2 2 3 200 1 25
spng 3 3 4 200 1 25
spng 4 4 5 200 1 25
spng 5 6 7 200 1 25
spng 6 7 8 200 1 25
spng 7 8 9 200 1 25
spng 8 10 11 200 1 25
spng 9 11 12 200 1 25
spng 10 13 14 200 1 25
spng 11 1 6 200 1 28.1780056072
spng 12 2 7 200 1 28.1780056072
spng 13 3 8 200 1 28.1780056072
spng 14 4 9 200 1 28.1780056072
spng 15 6 10 200 1 27.7308492477
spng 16 7 11 200 1 27.7308492477
spng 17 8 12 200 1 27.7308492477
spng 18 10 13 200 1 28.1780056072
spng 19 11 14 200 1 28.1780056072
spng 20 13 15 200 1 27.7308492477
spng 21 2 6 200 1 27.7308492477
spng 22 3 7 200 1 27.7308492477
spng 23 4 8 200 1 27.7308492477
spng 24 5 9 200 1 27.7308492477
spng 25 7 10 200 1 28.1780056072
spng 26 8 11 200 1 28.1780056072
spng 27 9 12 200 1 28.1780056072
spng 28 11 13 200 1 27.7308492477
spng 29 12 14 200 1 27.7308492477
spng 30 14 15 200 1 28.1780056072
spng 31 5 3 200 1 50
spng 32 4 2 200 1 50
spng 33 3 1 200 1 50
spng 34 1 4 200 1 75
spng 35 2 5 200 1 75
spng 36 5 12 200 1 55.9016994375
spng 37 9 14 200 1 55.9016994375
spng 38 12 15 200 1 55.9016994375
spng 39 15 9 200 1 84.0773453434
spng 40 5 14 200 1 83.6301381082
spng 41 5 15 200 1 111.803398875
spng 42 15 10 200 1 55.9016994375
spng 43 13 6 200 1 55.9016994375
spng 44 10 1 200 1 55.9016994375
spng 45 1 13 200 1 84.0773453434
spng 46 6 15 200 1 83.6301381082
spng 47 15 1 200 1 111.803398875
\BARFOO\
else
echo "will not over write ./lib/tri4.xsp"
fi
if `test ! -s ./lib/trimesh.xsp`
then
echo "writting ./lib/trimesh.xsp"
cat > ./lib/trimesh.xsp << '\BARFOO\'


#1.0 *** XSpringies data file

cmas 1
elas 1
kspr 200

kdmp 1


fixm 0
shws 1
cent -1

frce 0 0 10 0
frce 1 0 5 2
frce 2 0 10 0
frce 3 0 10000 1
visc 0
stck 0
step 0.025
prec 1
adpt 0

gsnp 20 0


wall 1 1 1 1

mass 1 121.077395771 175.282965835 -0.00110577190056 -0.000619130349398 -1 1
mass 2 121.077395771 200.282965835 -0.00110577190215 -0.000619130349166 -1 1
mass 3 121.077395771 225.282965835 -0.00110577190372 -0.000619130348747 -1 1
mass 4 121.077395771 250.282965835 -0.00110577190434 -0.000619130349385 -1 1
mass 5 121.077395771 275.282965835 -0.00110577190516 -0.000619130350245 -1 1
mass 6 121.077395771 300.282965835 -0.00110577190427 -0.000619130349731 -1 1
mass 7 121.077395771 325.282965835 -0.00110577190356 -0.000619130349946 -1 1
mass 8 121.077395771 350.282965835 -0.00110577190315 -0.000619130348893 -1 1
mass 9 121.077395771 375.282965835 -0.00110577190094 -0.000619130348558 -1 1
mass 10 146.077395771 162.282965835 -0.00110577189924 -0.000619130346833 -1 1
mass 11 146.077406751 187.282971102 -0.000101460026936 -9.35114515078e-05 1 1
mass 12 146.077417521 212.28297531 -0.000145150150241 -0.000116350069281 1 1
mass 13 146.077424728 237.282972476 -0.000152841204147 -8.77765279825e-05 1 1
mass 14 146.077426685 262.282964666 -0.000130277754439 -4.13802003379e-05 1 1
mass 15 146.077422722 287.282955063 -0.000106341131796 -1.50009161287e-06 1 1
mass 16 146.077414008 312.282947049 -9.35547042318e-05 2.79579308948e-05 1 1
mass 17 146.077403065 337.282943792 -7.73119193585e-05 4.54866879687e-05 1 1
mass 18 146.077392855 362.28294682 -5.16851856499e-05 3.84509179465e-05 1 1
mass 19 146.077395771 387.282965835 -0.00110577189972 -0.000619130352893 -1 1
mass 20 171.077395771 150.282965835 -0.00110577189923 -0.00061913034483 -1 1
mass 21 171.077418093 175.282979338 -0.00011153703119 -0.000137764223972 1 1
mass 22 171.07744615 200.28299365 -0.000245050903141 -0.000226569287175 1 1
mass 23 171.077466269 225.282995521 -0.000324823927537 -0.000225830968671 1 1
mass 24 171.077477699 250.282987178 -0.000324802593028 -0.000154654905319 1 1
mass 25 171.077476669 275.28297216 -0.000277696138023 -5.5391910787e-05 1 1
mass 26 171.077463512 300.282955347 -0.000233323117013 3.08302410526e-05 1 1
mass 27 171.077441431 325.282942384 -0.000194592743231 8.30112602492e-05 1 1
mass 28 171.077416987 350.282938091 -0.000136336876903 9.4327847535e-05 1 1
mass 29 171.077395205 375.282944111 -6.51573842497e-05 6.04102587505e-05 1 1
mass 30 171.077395771 400.282965835 -0.00110577189883 -0.00061913035375 -1 1
mass 31 196.07739577 137.282965835 -0.00110577189871 -0.000619130341835 -1 1
mass 32 196.077420435 162.282993064 -7.75886917809e-05 -0.000140654252085 1 1
mass 33 196.077461969 187.283020305 -0.000251538205111 -0.000265767047486 1 1
mass 34 196.077498519 212.283032568 -0.000436758583125 -0.000327911157832 1 1
mass 35 196.07752514 237.283029962 -0.0005330026704 -0.000295484856865 1 1
mass 36 196.07753548 262.28301547 -0.000521591910248 -0.000182732389471 1 1
mass 37 196.077526243 287.282992902 -0.00044944704609 -4.17329744822e-05 1 1
mass 38 196.077498985 312.282968498 -0.000364791687994 6.51691363263e-05 1 1
mass 39 196.077460474 337.282949491 -0.000269294432848 0.000109495961062 1 1
mass 40 196.077421904 362.28294172 -0.000156125151493 9.87736579619e-05 1 1
mass 41 196.077392666 387.282945842 -5.85568029484e-05 5.34544437204e-05 1 1
mass 42 196.07739577 412.282965835 -0.0011057718984 -0.000619130357417 -1 1
mass 43 221.07739577 125.282965835 -0.001105771898 -0.000619130338796 -1 1
mass 44 221.077414608 150.283001322 -3.67470226854e-05 -9.97465547565e-05 1 1
mass 45 221.077463603 175.28304036 -0.000190752888585 -0.000214622202824 1 1
mass 46 221.077515949 200.283065509 -0.000433531671287 -0.000312931337093 1 1
mass 47 221.077560182 225.283073676 -0.000649753259135 -0.000342476110972 1 1
mass 48 221.077586972 250.283067294 -0.000745824639627 -0.000275408937391 1 1
mass 49 221.077590559 275.283048703 -0.00071524030101 -0.000137981817592 1 1
mass 50 221.07756839 300.283020861 -0.000599390925363 8.87734217801e-06 1 1
mass 51 221.077524122 325.282990072 -0.00044859973557 0.000101512658525 1 1
mass 52 221.077468914 350.282964725 -0.000284714420753 0.000116949565037 1 1
mass 53 221.07741863 375.282951772 -0.000136813270738 8.41228552684e-05 1 1
mass 54 221.077386461 400.282951131 -4.04613336151e-05 3.84542771012e-05 1 1
mass 55 221.07739577 425.282965835 -0.00110577189816 -0.000619130359367 -1 1
mass 56 246.07739577 112.282965835 -0.00110577189802 -0.000619130336164 -1 1
mass 57 246.077403496 137.283008037 -1.22619162815e-05 -7.01022254913e-05 1 1
mass 58 246.077451426 162.283056348 -0.00010587989764 -0.000158344134752 1 1
mass 59 246.077514981 187.283094681 -0.000333650060592 -0.000259952030266 1 1
mass 60 246.077577791 212.283116838 -0.000628783847129 -0.000325779377361 1 1
mass 61 246.077623222 237.283122857 -0.000857660291447 -0.000308089752003 1 1
mass 62 246.077644159 262.28311583 -0.000935091864684 -0.000212196932045 1 1
mass 63 246.077637383 287.283096071 -0.000865192359774 -7.81915889908e-05 1 1
mass 64 246.077600775 312.283063966 -0.000686920850523 5.05112550347e-05 1 1
mass 65 246.077539477 337.283026024 -0.000455102143931 0.000110747433363 1 1
mass 66 246.077468709 362.282992959 -0.000240749908235 9.22016521181e-05 1 1
mass 67 246.077410206 387.282972089 -9.31491109083e-05 4.66754303321e-05 1 1
mass 68 246.07737968 412.282962012 -1.91320354775e-05 1.42121388363e-05 1 1
mass 69 246.07739577 437.282965835 -0.00110577189783 -0.00061913036306 -1 1
mass 70 271.07739577 100.282965835 -0.00110577189861 -0.000619130333936 -1 1
mass 71 271.07738986 125.283006058 -4.35870332143e-06 -6.25380699745e-05 1 1
mass 72 271.077429151 150.283057713 -4.55284363705e-05 -0.000130193715054 1 1
mass 73 271.07749469 175.283105309 -0.000202078595201 -0.00021253739395 1 1
mass 74 271.077572184 200.283141049 -0.000501615833707 -0.000291669388087 1 1
mass 75 271.077637438 225.283160928 -0.000833375210378 -0.000312537573157 1 1
mass 76 271.077675179 250.283167077 -0.00103651941661 -0.000262482621459 1 1
mass 77 271.077685036 275.283162157 -0.00106080673525 -0.00017746966806 1 1
mass 78 271.077666367 300.283142992 -0.000939196961855 -7.32361711818e-05 1 1
mass 79 271.077615098 325.283108198 -0.000679330704705 2.01772659783e-05 1 1
mass 80 271.077537454 350.283065859 -0.000376005115754 4.45379510873e-05 1 1
mass 81 271.077455927 375.283026855 -0.00015669982271 1.2323674449e-05 1 1
mass 82 271.077397477 400.282996952 -4.55218739891e-05 -1.49515533427e-05 1 1
mass 83 271.077374589 425.282974949 -8.81090438959e-07 -1.60252634926e-05 1 1
mass 84 271.07739577 450.282965835 -0.00110577189999 -0.00061913036584 -1 1
mass 85 296.07739577 87.2829658346 -0.00110577189933 -0.000619130332441 -1 1
mass 86 296.077378864 112.282999475 9.7049661048e-07 -6.77324427105e-05 1 1
mass 87 296.077402528 137.283048292 -1.73821002876e-05 -0.000133556105799 1 1
mass 88 296.077458871 162.283099902 -9.58345100168e-05 -0.000195268062531 1 1
mass 89 296.077541128 187.283146215 -0.000314816702959 -0.000263866648754 1 1
mass 90 296.077625115 212.28318024 -0.000677368780605 -0.000317948321106 1 1
mass 91 296.077683389 237.283199469 -0.00100361691683 -0.000322628751073 1 1
mass 92 296.077708191 262.283206486 -0.00113969211156 -0.000292177245718 1 1
mass 93 296.077707145 287.283202027 -0.00111538402586 -0.000246025750103 1 1
mass 94 296.077677524 312.2831818 -0.00093422605539 -0.000180534419819 1 1
mass 95 296.077611622 337.283145756 -0.000591970309408 -0.000119962401309 1 1
mass 96 296.077521916 362.283101242 -0.000264995001501 -0.000100484996718 1 1
mass 97 296.077438852 387.28305637 -8.76703510973e-05 -0.000100237704812 1 1
mass 98 296.077388124 412.283016642 -1.65425513042e-05 -8.2459019848e-05 1 1
mass 99 296.077373923 437.282983846 7.48951094322e-06 -4.52672220227e-05 1 1
mass 100 296.07739577 462.282965835 -0.00110577189857 -0.000619130366254 -1 1
mass 101 321.07739577 75.2829658346 -0.00110577189964 -0.000619130331766 -1 1
mass 102 321.077374937 100.282983034 5.99493258115e-06 -4.90455771983e-05 1 1
mass 103 321.077381596 125.283019916 -2.03496532161e-06 -0.000106639989329 1 1
mass 104 321.077418946 150.283065683 -4.43971816278e-05 -0.000155041951166 1 1
mass 105 321.077492098 175.283114912 -0.000166628186515 -0.00019366210426 1 1
mass 106 321.077583982 200.283160186 -0.000454085201567 -0.00023717409319 1 1
mass 107 321.077663195 225.283194978 -0.000840184715584 -0.00028466096073 1 1
mass 108 321.077706938 250.283215458 -0.00109972667254 -0.000314845847002 1 1
mass 109 321.077718682 275.283221968 -0.0011682527065 -0.000323428565204 1 1
mass 110 321.077707085 300.28321583 -0.00109754085559 -0.000315288771044 1 1
mass 111 321.077663248 325.283195689 -0.000834659280205 -0.00028619167227 1 1
mass 112 321.077583897 350.283161147 -0.000448097329923 -0.000240245496181 1 1
mass 113 321.077491979 375.283116046 -0.00016309391338 -0.000197819775203 1 1
mass 114 321.077418908 400.283066912 -4.16895809887e-05 -0.00015973936243 1 1
mass 115 321.077381677 425.283021105 2.36454925667e-07 -0.000110824724322 1 1
mass 116 321.077375147 450.282984047 6.66300186366e-06 -5.20126577865e-05 1 1
mass 117 321.07739577 475.282965835 -0.00110577189931 -0.00061913036656 -1 1
mass 118 346.07739577 87.2829658346 -0.0011057718998 -0.000619130332396 -1 1
mass 119 346.077373355 112.282984191 6.89075243918e-06 -4.51427279612e-05 1 1
mass 120 346.077386953 137.283016918 -1.73550736482e-05 -8.0922974824e-05 1 1
mass 121 346.077436978 162.283056422 -8.70490565019e-05 -9.61937297253e-05 1 1
mass 122 346.077519651 187.283101021 -0.000262418606603 -9.31660788444e-05 1 1
mass 123 346.077609575 212.28314525 -0.00058725336806 -0.000111027406397 1 1
mass 124 346.077676145 237.283181019 -0.000929799277396 -0.000171599939876 1 1
mass 125 346.077706513 262.283200952 -0.00111242382971 -0.000238102585196 1 1
mass 126 346.077708179 287.283205132 -0.00113733450325 -0.000286455164363 1 1
mass 127 346.077684023 312.283197857 -0.0010024999199 -0.000319628216964 1 1
mass 128 346.077626373 337.283178402 -0.000677471720382 -0.000316587134161 1 1
mass 129 346.077542619 362.283144274 -0.000314749235774 -0.000263022112126 1 1
mass 130 346.077460063 387.283098031 -9.43430632274e-05 -0.000194767614972 1 1
mass 131 346.0774032 412.283046676 -1.48609334196e-05 -0.000132862946999 1 1
mass 132 346.077378823 437.2829983 3.14913841372e-06 -6.70068990426e-05 1 1
mass 133 346.07739577 462.282965835 -0.00110577189999 -0.000619130366537 -1 1
mass 134 371.07739577 100.282965835 -0.00110577190046 -0.000619130333933 -1 1
mass 135 371.077374573 125.282974306 -2.91902242015e-06 -1.69010924459e-05 1 1
mass 136 371.07739772 150.282996107 -4.85773739492e-05 -1.749723155e-05 1 1
mass 137 371.077456445 175.283026031 -0.000161333895205 8.88071671223e-06 1 1
mass 138 371.07753821 200.283065142 -0.000381584663639 4.11751107415e-05 1 1
mass 139 371.07761592 225.283107715 -0.000684599564555 1.77426641482e-05 1 1
mass 140 371.07766718 250.283142887 -0.000942014337616 -7.50966707008e-05 1 1
mass 141 371.077685872 275.283162485 -0.00106042286841 -0.000179750093083 1 1
mass 142 371.077676065 300.283167782 -0.00103278681733 -0.000265804957488 1 1
mass 143 371.077638293 325.28316193 -0.000826979256383 -0.000317407380829 1 1
mass 144 371.077572892 350.283142264 -0.000495133418687 -0.000298079497196 1 1
mass 145 371.07749523 375.283106626 -0.000197606356751 -0.000219705074226 1 1
mass 146 371.077429553 400.283058993 -4.33103640266e-05 -0.000136484052432 1 1
mass 147 371.077390328 425.283007159 -3.10237958268e-06 -6.64600831924e-05 1 1
mass 148 371.07739577 450.282965835 -0.00110577190117 -0.000619130363795 -1 1
mass 149 396.07739577 112.282965835 -0.001105771902 -0.00061913033544 -1 1
mass 150 396.077379113 137.282961651 -1.94858186523e-05 1.35379925386e-05 1 1
mass 151 396.07740888 162.282971294 -9.36773490999e-05 4.56774537012e-05 1 1
mass 152 396.07746697 187.282991641 -0.00024131356266 9.08326872796e-05 1 1
mass 153 396.077537678 212.283024156 -0.000455053893988 0.000108602569387 1 1
mass 154 396.077599258 237.283061572 -0.000686057086595 4.71168120574e-05 1 1
mass 155 396.077636422 262.283093254 -0.000863572989644 -8.25456335241e-05 1 1
mass 156 396.077643851 287.28311279 -0.000932897484338 -0.000217189537147 1 1
mass 157 396.077623537 312.283119792 -0.00085594121801 -0.000312873714784 1 1
mass 158 396.077578593 337.283113849 -0.000627984342929 -0.000328953137574 1 1
mass 159 396.07751595 362.283091876 -0.000333040966342 -0.000261296753293 1 1
mass 160 396.077452164 387.28305389 -0.000105062008786 -0.000158906718146 1 1
mass 161 396.077403648 412.283006241 -1.09499054545e-05 -7.02963235098e-05 1 1
mass 162 396.07739577 437.282965835 -0.00110577190244 -0.000619130362096 -1 1
mass 163 421.07739577 125.282965835 -0.00110577190025 -0.000619130338567 -1 1
mass 164 421.077386285 150.282951152 -4.14715263601e-05 3.54604702177e-05 1 1
mass 165 421.077418654 175.282951724 -0.000139130387366 7.87290545259e-05 1 1
mass 166 421.077469213 200.282964712 -0.000287483202371 0.000109296566506 1 1
mass 167 421.077524676 225.282990209 -0.00045081265408 9.23516022431e-05 1 1
mass 168 421.077569144 250.283021182 -0.000600375127161 -1.65243915026e-06 1 1
mass 169 421.077591395 275.283049263 -0.000714290792934 -0.000150086414342 1 1
mass 170 421.077587865 300.283068156 -0.000743006029392 -0.000288244666578 1 1
mass 171 421.077561167 325.283074809 -0.000646123019367 -0.000355259132854 1 1
mass 172 421.077516886 350.283066831 -0.000430074396939 -0.000324089548406 1 1
mass 173 421.077464366 375.283041798 -0.000187929555192 -0.000222333861278 1 1
mass 174 421.07741511 400.283002591 -3.59044775843e-05 -0.000104146061453 1 1
mass 175 421.07739577 425.282965835 -0.001105771901 -0.000619130359302 -1 1
mass 176 446.07739577 137.282965835 -0.00110577190068 -0.000619130341943 -1 1
mass 177 446.077392225 162.28294463 -5.8250194903e-05 5.46250222568e-05 1 1
mass 178 446.077421088 187.282939566 -0.000155547249982 9.94860469281e-05 1 1
mass 179 446.077459493 212.282946465 -0.000269570913277 0.00011096006378 1 1
mass 180 446.077498119 237.282964638 -0.000364578707205 6.86373399662e-05 1 1
mass 181 446.077525618 262.282988416 -0.000447070007521 -3.67617943597e-05 1 1
mass 182 446.07753514 287.283010724 -0.00051816275908 -0.000177267762205 1 1
mass 183 446.07752521 312.28302536 -0.000530301987985 -0.000290343302736 1 1
mass 184 446.077498955 337.283028438 -0.000437091911696 -0.000323565533637 1 1
mass 185 446.07746247 362.283016895 -0.000254255161788 -0.000261573202299 1 1
mass 186 446.077420822 387.282990827 -7.84638550903e-05 -0.000136592066205 1 1
mass 187 446.07739577 412.282965835 -0.00110577190034 -0.000619130355941 -1 1
mass 188 471.07739577 150.282965835 -0.00110577190067 -0.000619130344594 -1 1
mass 189 471.077395032 175.282944283 -6.40884351186e-05 5.76511088597e-05 1 1
mass 190 471.0774168 200.282938143 -0.000136529437013 9.1093552293e-05 1 1
mass 191 471.07744146 225.282942324 -0.000195768872409 7.98485150561e-05 1 1
mass 192 471.077463759 250.28295526 -0.000233728675117 2.79413149314e-05 1 1
mass 193 471.077477016 275.282972157 -0.000277438043374 -5.79646785132e-05 1 1
mass 194 471.077478136 300.282987356 -0.000324392239268 -0.0001576288289 1 1
mass 195 471.077466867 325.282995944 -0.000324933093631 -0.000229912415798 1 1
mass 196 471.077446791 350.282994303 -0.000247350556966 -0.000231820566176 1 1
mass 197 471.077418377 375.282980059 -0.000114435642874 -0.000142613422018 1 1
mass 198 471.07739577 400.282965835 -0.00110577190041 -0.000619130354855 -1 1
mass 199 496.07739577 162.282965835 -0.00110577189935 -0.000619130346904 -1 1
mass 200 496.077392759 187.282945614 -5.17880148052e-05 4.66619419735e-05 1 1
mass 201 496.077402999 212.282941566 -7.85021986708e-05 5.97377019534e-05 1 1
mass 202 496.07741398 237.282943995 -9.46456921131e-05 4.5898050754e-05 1 1
mass 203 496.077422667 262.282951454 -0.000105998017875 1.87028077552e-05 1 1
mass 204 496.077426566 287.282960859 -0.000128253597692 -1.97601104346e-05 1 1
mass 205 496.077424646 312.282968916 -0.000149877947012 -6.61125884701e-05 1 1
mass 206 496.07741756 337.282972476 -0.000143228297336 -9.75542201072e-05 1 1
mass 207 496.077406876 362.282969435 -0.000101993733705 -8.21150922764e-05 1 1
mass 208 496.07739577 387.282965835 -0.00110577189834 -0.000619130352532 -1 1
mass 209 521.07739577 175.282965835 -0.00110577189983 -0.000619130348352 -1 1
mass 210 521.07739577 200.282965835 -0.00110577189633 -0.000619130348852 -1 1
mass 211 521.07739577 225.282965835 -0.00110577189715 -0.000619130349591 -1 1
mass 212 521.07739577 250.282965835 -0.00110577189324 -0.000619130349698 -1 1
mass 213 521.07739577 275.282965835 -0.00110577189376 -0.000619130350273 -1 1
mass 214 521.07739577 300.282965835 -0.00110577189544 -0.000619130349718 -1 1
mass 215 521.07739577 325.282965835 -0.00110577189534 -0.000619130349065 -1 1
mass 216 521.07739577 350.282965835 -0.00110577189707 -0.000619130349183 -1 1
mass 217 521.07739577 375.282965835 -0.00110577189896 -0.000619130349989 -1 1
spng 1 1 2 200 1 25
spng 2 2 3 200 1 25
spng 3 3 4 200 1 25
spng 4 4 5 200 1 25
spng 5 5 6 200 1 25
spng 6 6 7 200 1 25
spng 7 7 8 200 1 25
spng 8 8 9 200 1 25
spng 9 10 11 200 1 25
spng 10 11 12 200 1 25
spng 11 12 13 200 1 25
spng 12 13 14 200 1 25
spng 13 14 15 200 1 25
spng 14 15 16 200 1 25
spng 15 16 17 200 1 25
spng 16 17 18 200 1 25
spng 17 18 19 200 1 25
spng 18 20 21 200 1 25
spng 19 21 22 200 1 25
spng 20 22 23 200 1 25
spng 21 23 24 200 1 25
spng 22 24 25 200 1 25
spng 23 25 26 200 1 25
spng 24 26 27 200 1 25
spng 25 27 28 200 1 25
spng 26 28 29 200 1 25
spng 27 29 30 200 1 25
spng 28 31 32 200 1 25
spng 29 32 33 200 1 25
spng 30 33 34 200 1 25
spng 31 34 35 200 1 25
spng 32 35 36 200 1 25
spng 33 36 37 200 1 25
spng 34 37 38 200 1 25
spng 35 38 39 200 1 25
spng 36 39 40 200 1 25
spng 37 40 41 200 1 25
spng 38 41 42 200 1 25
spng 39 43 44 200 1 25
spng 40 44 45 200 1 25


spng 41 45 46 200 1 25

spng 42 46 47 200 1 25
spng 43 47 48 200 1 25
spng 44 48 49 200 1 25
spng 45 49 50 200 1 25
spng 46 50 51 200 1 25
spng 47 51 52 200 1 25
spng 48 52 53 200 1 25
spng 49 53 54 200 1 25
spng 50 54 55 200 1 25
spng 51 56 57 200 1 25
spng 52 57 58 200 1 25
spng 53 58 59 200 1 25
spng 54 59 60 200 1 25
spng 55 60 61 200 1 25
spng 56 61 62 200 1 25
spng 57 62 63 200 1 25
spng 58 63 64 200 1 25
spng 59 64 65 200 1 25
spng 60 65 66 200 1 25
spng 61 66 67 200 1 25
spng 62 67 68 200 1 25
spng 63 68 69 200 1 25
spng 64 70 71 200 1 25
spng 65 71 72 200 1 25
spng 66 72 73 200 1 25
spng 67 73 74 200 1 25
spng 68 74 75 200 1 25
spng 69 75 76 200 1 25
spng 70 76 77 200 1 25
spng 71 77 78 200 1 25
spng 72 78 79 200 1 25
spng 73 79 80 200 1 25
spng 74 80 81 200 1 25
spng 75 81 82 200 1 25
spng 76 82 83 200 1 25
spng 77 83 84 200 1 25
spng 78 85 86 200 1 25
spng 79 86 87 200 1 25
spng 80 87 88 200 1 25
spng 81 88 89 200 1 25
spng 82 89 90 200 1 25
spng 83 90 91 200 1 25
spng 84 91 92 200 1 25
spng 85 92 93 200 1 25
spng 86 93 94 200 1 25
spng 87 94 95 200 1 25
spng 88 95 96 200 1 25
spng 89 96 97 200 1 25
spng 90 97 98 200 1 25
spng 91 98 99 200 1 25
spng 92 99 100 200 1 25
spng 93 101 102 200 1 25
spng 94 102 103 200 1 25
spng 95 103 104 200 1 25
spng 96 104 105 200 1 25
spng 97 105 106 200 1 25
spng 98 106 107 200 1 25
spng 99 107 108 200 1 25
spng 100 108 109 200 1 25
spng 101 109 110 200 1 25
spng 102 110 111 200 1 25
spng 103 111 112 200 1 25
spng 104 112 113 200 1 25
spng 105 113 114 200 1 25
spng 106 114 115 200 1 25
spng 107 115 116 200 1 25
spng 108 116 117 200 1 25
spng 109 118 119 200 1 25
spng 110 119 120 200 1 25
spng 111 120 121 200 1 25
spng 112 121 122 200 1 25
spng 113 122 123 200 1 25
spng 114 123 124 200 1 25
spng 115 124 125 200 1 25
spng 116 125 126 200 1 25
spng 117 126 127 200 1 25
spng 118 127 128 200 1 25
spng 119 128 129 200 1 25
spng 120 129 130 200 1 25
spng 121 130 131 200 1 25
spng 122 131 132 200 1 25
spng 123 132 133 200 1 25
spng 124 134 135 200 1 25
spng 125 135 136 200 1 25
spng 126 136 137 200 1 25
spng 127 137 138 200 1 25
spng 128 138 139 200 1 25
spng 129 139 140 200 1 25
spng 130 140 141 200 1 25
spng 131 141 142 200 1 25
spng 132 142 143 200 1 25
spng 133 143 144 200 1 25
spng 134 144 145 200 1 25
spng 135 145 146 200 1 25
spng 136 146 147 200 1 25
spng 137 147 148 200 1 25
spng 138 149 150 200 1 25
spng 139 150 151 200 1 25
spng 140 151 152 200 1 25
spng 141 152 153 200 1 25
spng 142 153 154 200 1 25
spng 143 154 155 200 1 25
spng 144 155 156 200 1 25
spng 145 156 157 200 1 25
spng 146 157 158 200 1 25
spng 147 158 159 200 1 25
spng 148 159 160 200 1 25
spng 149 160 161 200 1 25
spng 150 161 162 200 1 25
spng 151 163 164 200 1 25
spng 152 164 165 200 1 25
spng 153 165 166 200 1 25
spng 154 166 167 200 1 25
spng 155 167 168 200 1 25
spng 156 168 169 200 1 25
spng 157 169 170 200 1 25
spng 158 170 171 200 1 25
spng 159 171 172 200 1 25
spng 160 172 173 200 1 25
spng 161 173 174 200 1 25
spng 162 174 175 200 1 25
spng 163 176 177 200 1 25
spng 164 177 178 200 1 25
spng 165 178 179 200 1 25
spng 166 179 180 200 1 25
spng 167 180 181 200 1 25
spng 168 181 182 200 1 25
spng 169 182 183 200 1 25
spng 170 183 184 200 1 25
spng 171 184 185 200 1 25
spng 172 185 186 200 1 25
spng 173 186 187 200 1 25
spng 174 188 189 200 1 25
spng 175 189 190 200 1 25
spng 176 190 191 200 1 25
spng 177 191 192 200 1 25
spng 178 192 193 200 1 25
spng 179 193 194 200 1 25
spng 180 194 195 200 1 25
spng 181 195 196 200 1 25
spng 182 196 197 200 1 25
spng 183 197 198 200 1 25
spng 184 199 200 200 1 25
spng 185 200 201 200 1 25
spng 186 201 202 200 1 25
spng 187 202 203 200 1 25
spng 188 203 204 200 1 25
spng 189 204 205 200 1 25
spng 190 205 206 200 1 25
spng 191 206 207 200 1 25
spng 192 207 208 200 1 25
spng 193 209 210 200 1 25
spng 194 210 211 200 1 25
spng 195 211 212 200 1 25
spng 196 212 213 200 1 25
spng 197 213 214 200 1 25
spng 198 214 215 200 1 25
spng 199 215 216 200 1 25
spng 200 216 217 200 1 25
spng 201 1 11 200 1 27.7308492477
spng 202 2 12 200 1 27.7308492477
spng 203 3 13 200 1 27.7308492477
spng 204 4 14 200 1 27.7308492477
spng 205 5 15 200 1 27.7308492477
spng 206 6 16 200 1 27.7308492477
spng 207 7 17 200 1 27.7308492477
spng 208 8 18 200 1 27.7308492477
spng 209 9 19 200 1 27.7308492477
spng 210 10 21 200 1 28.1780056072
spng 211 11 22 200 1 28.1780056072
spng 212 12 23 200 1 28.1780056072
spng 213 13 24 200 1 28.1780056072
spng 214 14 25 200 1 28.1780056072
spng 215 15 26 200 1 28.1780056072
spng 216 16 27 200 1 28.1780056072
spng 217 17 28 200 1 28.1780056072
spng 218 18 29 200 1 28.1780056072
spng 219 19 30 200 1 28.1780056072
spng 220 20 32 200 1 27.7308492477
spng 221 21 33 200 1 27.7308492477
spng 222 22 34 200 1 27.7308492477
spng 223 23 35 200 1 27.7308492477
spng 224 24 36 200 1 27.7308492477
spng 225 25 37 200 1 27.7308492477
spng 226 26 38 200 1 27.7308492477
spng 227 27 39 200 1 27.7308492477
spng 228 28 40 200 1 27.7308492477
spng 229 29 41 200 1 27.7308492477
spng 230 30 42 200 1 27.7308492477
spng 231 31 44 200 1 28.1780056072
spng 232 32 45 200 1 28.1780056072
spng 233 33 46 200 1 28.1780056072
spng 234 34 47 200 1 28.1780056072
spng 235 35 48 200 1 28.1780056072
spng 236 36 49 200 1 28.1780056072
spng 237 37 50 200 1 28.1780056072
spng 238 38 51 200 1 28.1780056072
spng 239 39 52 200 1 28.1780056072
spng 240 40 53 200 1 28.1780056072
spng 241 41 54 200 1 28.1780056072
spng 242 42 55 200 1 28.1780056072
spng 243 43 57 200 1 27.7308492477
spng 244 44 58 200 1 27.7308492477
spng 245 45 59 200 1 27.7308492477
spng 246 46 60 200 1 27.7308492477
spng 247 47 61 200 1 27.7308492477
spng 248 48 62 200 1 27.7308492477
spng 249 49 63 200 1 27.7308492477
spng 250 50 64 200 1 27.7308492477
spng 251 51 65 200 1 27.7308492477
spng 252 52 66 200 1 27.7308492477
spng 253 53 67 200 1 27.7308492477
spng 254 54 68 200 1 27.7308492477
spng 255 55 69 200 1 27.7308492477
spng 256 56 71 200 1 28.1780056072
spng 257 57 72 200 1 28.1780056072
spng 258 58 73 200 1 28.1780056072
spng 259 59 74 200 1 28.1780056072
spng 260 60 75 200 1 28.1780056072
spng 261 61 76 200 1 28.1780056072
spng 262 62 77 200 1 28.1780056072
spng 263 63 78 200 1 28.1780056072
spng 264 64 79 200 1 28.1780056072
spng 265 65 80 200 1 28.1780056072
spng 266 66 81 200 1 28.1780056072
spng 267 67 82 200 1 28.1780056072
spng 268 68 83 200 1 28.1780056072
spng 269 69 84 200 1 28.1780056072
spng 270 70 86 200 1 27.7308492477
spng 271 71 87 200 1 27.7308492477
spng 272 72 88 200 1 27.7308492477
spng 273 73 89 200 1 27.7308492477
spng 274 74 90 200 1 27.7308492477
spng 275 75 91 200 1 27.7308492477
spng 276 76 92 200 1 27.7308492477
spng 277 77 93 200 1 27.7308492477
spng 278 78 94 200 1 27.7308492477
spng 279 79 95 200 1 27.7308492477
spng 280 80 96 200 1 27.7308492477
spng 281 81 97 200 1 27.7308492477
spng 282 82 98 200 1 27.7308492477
spng 283 83 99 200 1 27.7308492477
spng 284 84 100 200 1 27.7308492477
spng 285 85 102 200 1 28.1780056072
spng 286 86 103 200 1 28.1780056072
spng 287 87 104 200 1 28.1780056072
spng 288 88 105 200 1 28.1780056072
spng 289 89 106 200 1 28.1780056072
spng 290 90 107 200 1 28.1780056072
spng 291 91 108 200 1 28.1780056072
spng 292 92 109 200 1 28.1780056072
spng 293 93 110 200 1 28.1780056072
spng 294 94 111 200 1 28.1780056072
spng 295 95 112 200 1 28.1780056072
spng 296 96 113 200 1 28.1780056072
spng 297 97 114 200 1 28.1780056072
spng 298 98 115 200 1 28.1780056072
spng 299 99 116 200 1 28.1780056072
spng 300 100 117 200 1 28.1780056072
spng 301 101 118 200 1 27.7308492477
spng 302 102 119 200 1 27.7308492477
spng 303 103 120 200 1 27.7308492477
spng 304 104 121 200 1 27.7308492477
spng 305 105 122 200 1 27.7308492477
spng 306 106 123 200 1 27.7308492477
spng 307 107 124 200 1 27.7308492477
spng 308 108 125 200 1 27.7308492477
spng 309 109 126 200 1 27.7308492477
spng 310 110 127 200 1 27.7308492477
spng 311 111 128 200 1 27.7308492477
spng 312 112 129 200 1 27.7308492477
spng 313 113 130 200 1 27.7308492477
spng 314 114 131 200 1 27.7308492477
spng 315 115 132 200 1 27.7308492477
spng 316 116 133 200 1 27.7308492477
spng 317 118 134 200 1 28.1780056072
spng 318 119 135 200 1 28.1780056072
spng 319 120 136 200 1 28.1780056072
spng 320 121 137 200 1 28.1780056072
spng 321 122 138 200 1 28.1780056072
spng 322 123 139 200 1 28.1780056072
spng 323 124 140 200 1 28.1780056072
spng 324 125 141 200 1 28.1780056072
spng 325 126 142 200 1 28.1780056072
spng 326 127 143 200 1 28.1780056072
spng 327 128 144 200 1 28.1780056072
spng 328 129 145 200 1 28.1780056072
spng 329 130 146 200 1 28.1780056072
spng 330 131 147 200 1 28.1780056072
spng 331 132 148 200 1 28.1780056072
spng 332 134 149 200 1 27.7308492477
spng 333 135 150 200 1 27.7308492477
spng 334 136 151 200 1 27.7308492477
spng 335 137 152 200 1 27.7308492477
spng 336 138 153 200 1 27.7308492477
spng 337 139 154 200 1 27.7308492477
spng 338 140 155 200 1 27.7308492477
spng 339 141 156 200 1 27.7308492477
spng 340 142 157 200 1 27.7308492477
spng 341 143 158 200 1 27.7308492477
spng 342 144 159 200 1 27.7308492477
spng 343 145 160 200 1 27.7308492477
spng 344 146 161 200 1 27.7308492477
spng 345 147 162 200 1 27.7308492477
spng 346 149 163 200 1 28.1780056072
spng 347 150 164 200 1 28.1780056072
spng 348 151 165 200 1 28.1780056072
spng 349 152 166 200 1 28.1780056072
spng 350 153 167 200 1 28.1780056072
spng 351 154 168 200 1 28.1780056072
spng 352 155 169 200 1 28.1780056072
spng 353 156 170 200 1 28.1780056072
spng 354 157 171 200 1 28.1780056072
spng 355 158 172 200 1 28.1780056072
spng 356 159 173 200 1 28.1780056072
spng 357 160 174 200 1 28.1780056072
spng 358 161 175 200 1 28.1780056072
spng 359 163 176 200 1 27.7308492477
spng 360 164 177 200 1 27.7308492477
spng 361 165 178 200 1 27.7308492477
spng 362 166 179 200 1 27.7308492477
spng 363 167 180 200 1 27.7308492477
spng 364 168 181 200 1 27.7308492477
spng 365 169 182 200 1 27.7308492477
spng 366 170 183 200 1 27.7308492477
spng 367 171 184 200 1 27.7308492477
spng 368 172 185 200 1 27.7308492477
spng 369 173 186 200 1 27.7308492477
spng 370 174 187 200 1 27.7308492477
spng 371 176 188 200 1 28.1780056072
spng 372 177 189 200 1 28.1780056072
spng 373 178 190 200 1 28.1780056072
spng 374 179 191 200 1 28.1780056072
spng 375 180 192 200 1 28.1780056072
spng 376 181 193 200 1 28.1780056072
spng 377 182 194 200 1 28.1780056072
spng 378 183 195 200 1 28.1780056072
spng 379 184 196 200 1 28.1780056072
spng 380 185 197 200 1 28.1780056072
spng 381 186 198 200 1 28.1780056072
spng 382 188 199 200 1 27.7308492477
spng 383 189 200 200 1 27.7308492477
spng 384 190 201 200 1 27.7308492477
spng 385 191 202 200 1 27.7308492477
spng 386 192 203 200 1 27.7308492477
spng 387 193 204 200 1 27.7308492477
spng 388 194 205 200 1 27.7308492477
spng 389 195 206 200 1 27.7308492477
spng 390 196 207 200 1 27.7308492477
spng 391 197 208 200 1 27.7308492477
spng 392 199 209 200 1 28.1780056072
spng 393 200 210 200 1 28.1780056072
spng 394 201 211 200 1 28.1780056072
spng 395 202 212 200 1 28.1780056072
spng 396 203 213 200 1 28.1780056072
spng 397 204 214 200 1 28.1780056072
spng 398 205 215 200 1 28.1780056072
spng 399 206 216 200 1 28.1780056072
spng 400 207 217 200 1 28.1780056072
spng 401 1 10 200 1 28.1780056072
spng 402 2 11 200 1 28.1780056072
spng 403 3 12 200 1 28.1780056072
spng 404 4 13 200 1 28.1780056072
spng 405 5 14 200 1 28.1780056072
spng 406 6 15 200 1 28.1780056072
spng 407 7 16 200 1 28.1780056072
spng 408 8 17 200 1 28.1780056072
spng 409 9 18 200 1 28.1780056072
spng 410 10 20 200 1 27.7308492477
spng 411 11 21 200 1 27.7308492477
spng 412 12 22 200 1 27.7308492477
spng 413 13 23 200 1 27.7308492477
spng 414 14 24 200 1 27.7308492477
spng 415 15 25 200 1 27.7308492477
spng 416 16 26 200 1 27.7308492477
spng 417 17 27 200 1 27.7308492477
spng 418 18 28 200 1 27.7308492477
spng 419 19 29 200 1 27.7308492477
spng 420 20 31 200 1 28.1780056072
spng 421 21 32 200 1 28.1780056072
spng 422 22 33 200 1 28.1780056072
spng 423 23 34 200 1 28.1780056072
spng 424 24 35 200 1 28.1780056072
spng 425 25 36 200 1 28.1780056072
spng 426 26 37 200 1 28.1780056072
spng 427 27 38 200 1 28.1780056072
spng 428 28 39 200 1 28.1780056072
spng 429 29 40 200 1 28.1780056072
spng 430 30 41 200 1 28.1780056072
spng 431 31 43 200 1 27.7308492477
spng 432 32 44 200 1 27.7308492477
spng 433 33 45 200 1 27.7308492477
spng 434 34 46 200 1 27.7308492477
spng 435 35 47 200 1 27.7308492477
spng 436 36 48 200 1 27.7308492477
spng 437 37 49 200 1 27.7308492477
spng 438 38 50 200 1 27.7308492477
spng 439 39 51 200 1 27.7308492477
spng 440 40 52 200 1 27.7308492477
spng 441 41 53 200 1 27.7308492477
spng 442 42 54 200 1 27.7308492477
spng 443 43 56 200 1 28.1780056072
spng 444 44 57 200 1 28.1780056072
spng 445 45 58 200 1 28.1780056072
spng 446 46 59 200 1 28.1780056072
spng 447 47 60 200 1 28.1780056072
spng 448 48 61 200 1 28.1780056072
spng 449 49 62 200 1 28.1780056072
spng 450 50 63 200 1 28.1780056072
spng 451 51 64 200 1 28.1780056072
spng 452 52 65 200 1 28.1780056072
spng 453 53 66 200 1 28.1780056072
spng 454 54 67 200 1 28.1780056072
spng 455 55 68 200 1 28.1780056072
spng 456 56 70 200 1 27.7308492477
spng 457 57 71 200 1 27.7308492477
spng 458 58 72 200 1 27.7308492477
spng 459 59 73 200 1 27.7308492477
spng 460 60 74 200 1 27.7308492477
spng 461 61 75 200 1 27.7308492477
spng 462 62 76 200 1 27.7308492477
spng 463 63 77 200 1 27.7308492477
spng 464 64 78 200 1 27.7308492477
spng 465 65 79 200 1 27.7308492477
spng 466 66 80 200 1 27.7308492477
spng 467 67 81 200 1 27.7308492477
spng 468 68 82 200 1 27.7308492477
spng 469 69 83 200 1 27.7308492477
spng 470 70 85 200 1 28.1780056072
spng 471 71 86 200 1 28.1780056072
spng 472 72 87 200 1 28.1780056072
spng 473 73 88 200 1 28.1780056072
spng 474 74 89 200 1 28.1780056072
spng 475 75 90 200 1 28.1780056072
spng 476 76 91 200 1 28.1780056072
spng 477 77 92 200 1 28.1780056072
spng 478 78 93 200 1 28.1780056072
spng 479 79 94 200 1 28.1780056072
spng 480 80 95 200 1 28.1780056072
spng 481 81 96 200 1 28.1780056072
spng 482 82 97 200 1 28.1780056072
spng 483 83 98 200 1 28.1780056072
spng 484 84 99 200 1 28.1780056072
spng 485 85 101 200 1 27.7308492477
spng 486 86 102 200 1 27.7308492477
spng 487 87 103 200 1 27.7308492477
spng 488 88 104 200 1 27.7308492477
spng 489 89 105 200 1 27.7308492477
spng 490 90 106 200 1 27.7308492477
spng 491 91 107 200 1 27.7308492477
spng 492 92 108 200 1 27.7308492477
spng 493 93 109 200 1 27.7308492477
spng 494 94 110 200 1 27.7308492477
spng 495 95 111 200 1 27.7308492477
spng 496 96 112 200 1 27.7308492477
spng 497 97 113 200 1 27.7308492477
spng 498 98 114 200 1 27.7308492477
spng 499 99 115 200 1 27.7308492477
spng 500 100 116 200 1 27.7308492477
spng 501 102 118 200 1 28.1780056072
spng 502 103 119 200 1 28.1780056072
spng 503 104 120 200 1 28.1780056072
spng 504 105 121 200 1 28.1780056072
spng 505 106 122 200 1 28.1780056072
spng 506 107 123 200 1 28.1780056072
spng 507 108 124 200 1 28.1780056072
spng 508 109 125 200 1 28.1780056072
spng 509 110 126 200 1 28.1780056072
spng 510 111 127 200 1 28.1780056072
spng 511 112 128 200 1 28.1780056072
spng 512 113 129 200 1 28.1780056072
spng 513 114 130 200 1 28.1780056072
spng 514 115 131 200 1 28.1780056072
spng 515 116 132 200 1 28.1780056072
spng 516 117 133 200 1 28.1780056072
spng 517 119 134 200 1 27.7308492477
spng 518 120 135 200 1 27.7308492477
spng 519 121 136 200 1 27.7308492477
spng 520 122 137 200 1 27.7308492477
spng 521 123 138 200 1 27.7308492477
spng 522 124 139 200 1 27.7308492477
spng 523 125 140 200 1 27.7308492477
spng 524 126 141 200 1 27.7308492477
spng 525 127 142 200 1 27.7308492477
spng 526 128 143 200 1 27.7308492477
spng 527 129 144 200 1 27.7308492477
spng 528 130 145 200 1 27.7308492477
spng 529 131 146 200 1 27.7308492477
spng 530 132 147 200 1 27.7308492477
spng 531 133 148 200 1 27.7308492477
spng 532 135 149 200 1 28.1780056072
spng 533 136 150 200 1 28.1780056072
spng 534 137 151 200 1 28.1780056072
spng 535 138 152 200 1 28.1780056072
spng 536 139 153 200 1 28.1780056072
spng 537 140 154 200 1 28.1780056072
spng 538 141 155 200 1 28.1780056072
spng 539 142 156 200 1 28.1780056072
spng 540 143 157 200 1 28.1780056072
spng 541 144 158 200 1 28.1780056072
spng 542 145 159 200 1 28.1780056072
spng 543 146 160 200 1 28.1780056072
spng 544 147 161 200 1 28.1780056072
spng 545 148 162 200 1 28.1780056072
spng 546 150 163 200 1 27.7308492477
spng 547 151 164 200 1 27.7308492477
spng 548 152 165 200 1 27.7308492477
spng 549 153 166 200 1 27.7308492477
spng 550 154 167 200 1 27.7308492477
spng 551 155 168 200 1 27.7308492477
spng 552 156 169 200 1 27.7308492477
spng 553 157 170 200 1 27.7308492477
spng 554 158 171 200 1 27.7308492477
spng 555 159 172 200 1 27.7308492477
spng 556 160 173 200 1 27.7308492477
spng 557 161 174 200 1 27.7308492477
spng 558 162 175 200 1 27.7308492477
spng 559 164 176 200 1 28.1780056072
spng 560 165 177 200 1 28.1780056072
spng 561 166 178 200 1 28.1780056072
spng 562 167 179 200 1 28.1780056072
spng 563 168 180 200 1 28.1780056072
spng 564 169 181 200 1 28.1780056072
spng 565 170 182 200 1 28.1780056072
spng 566 171 183 200 1 28.1780056072
spng 567 172 184 200 1 28.1780056072
spng 568 173 185 200 1 28.1780056072
spng 569 174 186 200 1 28.1780056072
spng 570 175 187 200 1 28.1780056072
spng 571 177 188 200 1 27.7308492477
spng 572 178 189 200 1 27.7308492477
spng 573 179 190 200 1 27.7308492477
spng 574 180 191 200 1 27.7308492477
spng 575 181 192 200 1 27.7308492477
spng 576 182 193 200 1 27.7308492477
spng 577 183 194 200 1 27.7308492477
spng 578 184 195 200 1 27.7308492477
spng 579 185 196 200 1 27.7308492477
spng 580 186 197 200 1 27.7308492477
spng 581 187 198 200 1 27.7308492477
spng 582 189 199 200 1 28.1780056072
spng 583 190 200 200 1 28.1780056072
spng 584 191 201 200 1 28.1780056072
spng 585 192 202 200 1 28.1780056072
spng 586 193 203 200 1 28.1780056072
spng 587 194 204 200 1 28.1780056072
spng 588 195 205 200 1 28.1780056072
spng 589 196 206 200 1 28.1780056072
spng 590 197 207 200 1 28.1780056072
spng 591 198 208 200 1 28.1780056072
spng 592 200 209 200 1 27.7308492477
spng 593 201 210 200 1 27.7308492477
spng 594 202 211 200 1 27.7308492477
spng 595 203 212 200 1 27.7308492477
spng 596 204 213 200 1 27.7308492477
spng 597 205 214 200 1 27.7308492477
spng 598 206 215 200 1 27.7308492477
spng 599 207 216 200 1 27.7308492477
spng 600 208 217 200 1 27.7308492477
\BARFOO\
else
echo "will not over write ./lib/trimesh.xsp"
fi
echo "Finished archive 7 of 16"

Douglas DeCarlo

unread,
Mar 26, 1993, 11:13:06 AM3/26/93
to
Submitted-by: d...@gradient.cis.upenn.edu (Douglas DeCarlo)
Posting-number: Volume 19, Issue 60
Archive-name: xspringies/part08

Environment: X11
Supersedes: xspringies: Volume 14, Issue 25-30

#!/bin/sh


# to extract, remove the header and type "sh filename"

if `test ! -d ./lib`
then
mkdir ./lib
echo "mkdir ./lib"
fi

if `test ! -s ./lib/psycho.xsp`
then
echo "writting ./lib/psycho.xsp"
cat > ./lib/psycho.xsp << '\BARFOO\'


#1.0 *** XSpringies data file

cmas 1.0
elas 1.0
kspr 1.0
kdmp 1.0
fixm 4
shws 1
cent -1


frce 0 0 10.0 0.0

frce 1 1 5.0 2.0


frce 2 0 10.0 0.0
frce 3 0 10000.0 1.0
visc 0.0
stck 0.0

step 0.150000
prec 1.0
adpt 0
gsnp 20.0 0
wall 0 0 0 0
mass 1 284.991822 33.440112 -2.652160 38.436310 1.0 1.0
mass 2 272.357256 99.901422 -37.208838 31.955037 10.0 1.0
mass 3 392.767212 354.028189 35.042693 17.976519 10.0 1.0
mass 4 425.0 261.0 0.0 0.0 -1.0 1.0
spng 1 1 2 100.0 1.0 67.475922
spng 2 3 4 100.0 1.0 96.041658
\BARFOO\
else
echo "will not over write ./lib/psycho.xsp"
fi
if `test ! -s ./lib/serp.xsp`
then
echo "writting ./lib/serp.xsp"
cat > ./lib/serp.xsp << '\BARFOO\'


#1.0 *** XSpringies data file

cmas 0.010000
elas 1.0
kspr 100.0
kdmp 5.600000


fixm 0
shws 1
cent -1

frce 0 1 50.0 0.0


frce 1 0 5.0 2.0

frce 2 1 120.0 0.0


frce 3 0 10000.0 1.0
visc 0.0
stck 0.0

step 0.046347
prec 1.0
adpt 0
gsnp 18.0 0
wall 0 0 0 0
mass 1 298.645800 381.047998 75.010436 -22.375354 -0.010000 1.0
mass 2 299.938045 362.155202 2.682601 0.130771 1.0 1.0
mass 3 304.237660 344.523948 4.611151 0.497193 1.0 1.0
mass 4 304.248281 326.586921 6.101162 0.351598 1.0 1.0
mass 5 303.919500 308.289250 4.264895 0.281946 1.0 1.0
mass 6 301.714743 290.296736 2.170281 0.514004 1.0 1.0
mass 7 293.372724 273.913178 -0.441274 1.625115 1.0 1.0
mass 8 287.965481 256.521736 -1.604412 2.009808 1.0 1.0
mass 9 287.545315 237.957640 -2.777424 1.914270 1.0 1.0
mass 10 292.753420 219.609313 -3.587352 1.562097 1.0 1.0
mass 11 304.638093 204.391547 -3.960330 1.214064 1.0 1.0
mass 12 321.856789 195.248702 -4.152558 0.784247 1.0 1.0
mass 13 341.456521 194.166666 -4.177155 0.368857 1.0 1.0
mass 14 359.570471 201.877754 -4.022730 -0.056271 1.0 1.0
mass 15 372.492730 216.670434 -3.627684 -0.438885 1.0 1.0
mass 16 377.759317 235.691871 -3.033551 -0.625967 1.0 1.0
mass 17 375.145533 254.341124 -2.409772 -0.538146 1.0 1.0
mass 18 365.364031 271.131333 -1.894722 -0.204562 1.0 1.0
mass 19 350.425331 282.929686 -1.655200 0.187465 1.0 1.0
mass 20 332.441303 288.806523 -1.643985 0.437216 1.0 1.0
mass 21 313.714163 288.608177 -1.715741 0.443918 1.0 1.0
mass 22 295.692835 282.720128 -1.687981 0.165616 1.0 1.0
mass 23 280.793663 272.198451 -1.482793 -0.155377 1.0 1.0
mass 24 269.328478 256.793082 -1.127312 -0.425773 1.0 1.0
mass 25 264.197096 238.315730 -0.712220 -0.528908 1.0 1.0
mass 26 266.586031 219.067668 -0.328644 -0.466140 1.0 1.0
mass 27 293.301596 191.587489 0.106192 -0.006293 1.0 1.0
mass 28 276.862335 202.432647 -0.041888 -0.267319 1.0 1.0
mass 29 312.998703 189.474083 0.109413 0.243802 1.0 1.0
mass 30 331.540138 196.286769 0.020343 0.402176 1.0 1.0
mass 31 345.225117 210.422408 -0.079514 0.454586 1.0 1.0
mass 32 350.461273 229.438250 -0.109749 0.427254 1.0 1.0
mass 33 350.196031 248.022892 -0.023645 0.401284 1.0 1.0
mass 34 341.355222 265.145559 0.085801 0.443240 1.0 1.0
mass 35 324.003275 272.732902 0.194369 0.602135 10.0 1.0
spng 1 1 2 300.0 5.600000 18.0
spng 2 3 2 300.0 5.600000 18.0
spng 3 3 4 300.0 5.600000 18.0
spng 4 4 5 300.0 5.600000 18.0
spng 5 5 6 300.0 5.600000 18.0
spng 6 6 7 300.0 5.600000 18.0
spng 7 7 8 300.0 5.600000 18.0
spng 8 8 9 300.0 5.600000 18.0
spng 9 9 10 300.0 5.600000 18.0
spng 10 10 11 300.0 5.600000 18.0
spng 11 11 12 300.0 5.600000 18.0
spng 12 12 13 300.0 5.600000 18.0
spng 13 13 14 300.0 5.600000 18.0
spng 14 14 15 300.0 5.600000 18.0
spng 15 15 16 300.0 5.600000 18.0
spng 16 16 17 300.0 5.600000 18.0
spng 17 17 18 300.0 5.600000 18.0
spng 18 18 19 300.0 5.600000 18.0
spng 19 19 20 300.0 5.600000 18.0
spng 20 20 21 300.0 5.600000 18.0
spng 21 21 22 300.0 5.600000 18.0
spng 22 22 23 300.0 5.600000 18.0
spng 23 23 24 300.0 5.600000 18.0
spng 24 24 25 300.0 5.600000 18.0
spng 25 25 26 300.0 5.600000 18.0
spng 26 26 28 300.0 5.600000 18.0
spng 27 28 27 300.0 5.600000 18.0
spng 28 27 29 300.0 5.600000 18.0
spng 29 29 30 300.0 5.600000 18.0
spng 30 30 31 300.0 5.600000 18.0
spng 31 31 32 300.0 5.600000 18.0
spng 32 32 33 300.0 5.600000 18.0
spng 33 33 34 300.0 5.600000 18.0
spng 34 34 35 300.0 5.600000 18.0
spng 35 1 3 300.0 5.600000 36.0
spng 36 2 4 300.0 5.600000 36.0
spng 37 3 5 300.0 5.600000 36.0
spng 38 4 6 300.0 5.600000 36.0
spng 39 5 7 300.0 5.600000 36.0
spng 40 6 8 300.0 5.600000 36.0
spng 41 7 9 300.0 5.600000 36.0
spng 42 8 10 300.0 5.600000 36.0
spng 43 9 11 300.0 5.600000 36.0
spng 44 10 12 300.0 5.600000 36.0
spng 45 11 13 300.0 5.600000 36.0
spng 46 12 14 300.0 5.600000 36.0
spng 47 13 15 300.0 5.600000 36.0
spng 48 14 16 300.0 5.600000 36.0
spng 49 15 17 300.0 5.600000 36.0
spng 50 16 18 300.0 5.600000 36.0
spng 51 17 19 300.0 5.600000 36.0
spng 52 18 20 300.0 5.600000 36.0
spng 53 19 21 300.0 5.600000 36.0
spng 54 20 22 300.0 5.600000 36.0
spng 55 21 23 300.0 5.600000 36.0
spng 56 22 24 300.0 5.600000 36.0
spng 57 23 25 300.0 5.600000 36.0
spng 58 24 26 300.0 5.600000 36.0
spng 59 25 28 300.0 5.600000 36.0
spng 60 26 27 300.0 5.600000 36.0
spng 61 28 29 300.0 5.600000 36.0
spng 62 27 30 300.0 5.600000 36.0
spng 63 29 31 300.0 5.600000 36.0
spng 64 30 32 300.0 5.600000 36.0
spng 65 31 33 300.0 5.600000 36.0
spng 66 32 34 300.0 5.600000 36.0
spng 67 33 35 300.0 5.600000 36.0
spng 68 1 4 300.0 5.600000 53.0
spng 69 2 5 300.0 5.600000 54.0
spng 70 3 6 300.0 5.600000 54.0
spng 71 4 7 300.0 5.600000 54.0
spng 72 5 8 300.0 5.600000 54.0
spng 73 6 9 300.0 5.600000 54.0
spng 74 7 10 300.0 5.600000 54.0
spng 75 8 11 300.0 5.600000 54.0
spng 76 9 12 300.0 5.600000 54.0
spng 77 10 13 300.0 5.600000 54.0
spng 78 11 14 300.0 5.600000 54.0
spng 79 12 15 300.0 5.600000 54.0
spng 80 13 16 300.0 5.600000 54.0
spng 81 14 17 300.0 5.600000 54.0
spng 82 15 18 300.0 5.600000 54.0
spng 83 16 19 300.0 5.600000 54.0
spng 84 17 20 300.0 5.600000 54.0
spng 85 18 21 300.0 5.600000 54.0
spng 86 19 22 300.0 5.600000 54.0
spng 87 20 23 300.0 5.600000 54.0
spng 88 21 24 300.0 5.600000 54.0
spng 89 22 25 300.0 5.600000 54.0
spng 90 23 26 300.0 5.600000 54.0
spng 91 24 28 300.0 5.600000 54.0
spng 92 25 27 300.0 5.600000 54.0
spng 93 26 29 300.0 5.600000 54.0
spng 94 28 30 300.0 5.600000 54.0
spng 95 27 31 300.0 5.600000 54.0
spng 96 29 32 300.0 5.600000 54.0
spng 97 30 33 300.0 5.600000 54.0
spng 98 31 34 300.0 5.600000 54.0
spng 99 32 35 300.0 5.600000 50.0
spng 100 1 5 300.0 5.600000 72.0
spng 101 2 6 300.0 5.600000 72.0
spng 102 3 7 300.0 5.600000 72.0
spng 103 4 8 300.0 5.600000 72.0
spng 104 5 9 300.0 5.600000 72.0
spng 105 6 10 300.0 5.600000 72.0
spng 106 7 11 300.0 5.600000 72.0
spng 107 8 12 300.0 5.600000 72.0
spng 108 9 13 300.0 5.600000 72.0
spng 109 10 14 300.0 5.600000 72.0
spng 110 11 15 300.0 5.600000 72.0
spng 111 12 16 300.0 5.600000 72.0
spng 112 13 17 300.0 5.600000 72.0
spng 113 14 18 300.0 5.600000 72.0
spng 114 15 19 300.0 5.600000 72.0
spng 115 16 20 300.0 5.600000 72.0
spng 116 17 21 300.0 5.600000 72.0
spng 117 18 22 300.0 5.600000 72.0
spng 118 19 23 300.0 5.600000 72.0
spng 119 20 24 300.0 5.600000 72.0
spng 120 21 25 300.0 5.600000 72.0
spng 121 22 26 300.0 5.600000 72.0
spng 122 23 28 300.0 5.600000 72.0
spng 123 24 27 300.0 5.600000 72.0
spng 124 25 29 300.0 5.600000 72.0
spng 125 26 30 300.0 5.600000 72.0
spng 126 28 31 300.0 5.600000 72.0
spng 127 27 32 300.0 5.600000 72.0
spng 128 29 33 300.0 5.600000 72.0
spng 129 30 34 300.0 5.600000 72.0
spng 130 31 35 300.0 5.600000 68.0
spng 131 17 16 300.0 5.600000 17.117243
spng 132 35 33 300.0 5.600000 36.055513
spng 133 22 23 300.0 5.600000 16.278821
\BARFOO\
else
echo "will not over write ./lib/serp.xsp"
fi
if `test ! -s ./lib/snake.xsp`
then
echo "writting ./lib/snake.xsp"
cat > ./lib/snake.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1
elas 1
kspr 1

kdmp 1
fixm 0
shws 1
cent -1
frce 0 0 10 0

frce 1 0 200 0
frce 2 1 100 0
frce 3 0 20 0


visc 0
stck 0
step 0.025
prec 1
adpt 0

gsnp 8 0
wall 0 0 0 0
mass 1 221.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 2 229.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 3 237.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 4 245.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 5 253.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 6 261.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 7 269.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 8 277.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 9 285.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 10 293.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 11 301.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 12 309.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 13 317.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 14 325.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 15 213.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 16 205.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 17 197.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 18 189.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 19 181.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 20 173.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 21 165.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 22 157.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 23 149.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 24 141.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 25 133.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 26 125.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 27 117.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 28 109.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 29 101.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 30 93.000115 371.10024 4.4788085e-05 62.000094 1 1
mass 31 85.000115 371.10024 4.4788085e-05 62.000094 1 1
mass 32 77.000115 371.10024 4.4788085e-05 62.000094 1 1
mass 33 69.000115 371.10024 4.4788085e-05 62.000094 1 1
mass 34 61.000115 371.10024 4.4788085e-05 62.000094 1 1
mass 35 53.000115 371.10024 4.4788085e-05 62.000094 1 1
mass 36 333.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 37 341.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 38 349.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 39 357.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 40 365.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 41 373.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 42 381.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 43 389.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 44 397.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 45 405.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 46 413.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 47 421.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 48 429.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 49 437.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 50 445.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 51 453.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 52 461.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 53 477.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 54 469.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 55 485.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 56 493.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 57 501.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 58 509.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 59 517.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 60 525.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 61 533.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 62 541.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 63 549.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 64 557.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 65 565.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 66 573.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 67 581.00012 371.10024 4.4788085e-05 62.000094 1 1
mass 68 589.00012 371.10024 4.4788085e-05 62.000094 1 1
\BARFOO\
else
echo "will not over write ./lib/snake.xsp"
fi
if `test ! -s ./lib/square.xsp`
then
echo "writting ./lib/square.xsp"
cat > ./lib/square.xsp << '\BARFOO\'


#1.0 *** XSpringies data file

cmas 1.0
elas 0.800000
kspr 20.0
kdmp 2.0


fixm 0
shws 1
cent -1

frce 0 1 10.0 0.0
frce 1 0 5.0 2.0
frce 2 0 10.0 0.0
frce 3 0 10000.0 1.0
visc 0.0
stck 0.0

step 0.050000
prec 1.0
adpt 0
gsnp 20.0 0


wall 1 1 1 1

mass 1 250.0 344.0 0.0 0.0 1.0 0.800000
mass 2 300.0 344.0 0.0 0.0 1.0 0.800000
mass 3 350.0 344.0 0.0 0.0 1.0 0.800000
mass 4 400.0 344.0 0.0 0.0 1.0 0.800000
mass 5 400.0 294.0 0.0 0.0 1.0 0.800000
mass 6 350.0 294.0 0.0 0.0 1.0 0.800000
mass 7 250.0 294.0 0.0 0.0 1.0 0.800000
mass 8 250.0 244.0 0.0 0.0 1.0 0.800000
mass 9 300.0 244.0 0.0 0.0 1.0 0.800000
mass 10 350.0 244.0 0.0 0.0 1.0 0.800000
mass 11 400.0 244.0 0.0 0.0 1.0 0.800000
mass 12 400.0 194.0 0.0 0.0 1.0 0.800000
mass 13 350.0 194.0 0.0 0.0 1.0 0.800000
mass 14 300.0 194.0 0.0 0.0 1.0 0.800000
mass 15 250.0 194.0 0.0 0.0 1.0 0.800000
mass 16 200.0 344.0 0.0 0.0 1.0 0.800000
mass 17 200.0 294.0 0.0 0.0 1.0 0.800000
mass 18 200.0 244.0 0.0 0.0 1.0 0.800000
mass 19 200.0 194.0 0.0 0.0 1.0 0.800000
mass 20 200.0 394.0 0.0 0.0 1.0 0.800000
mass 21 250.0 394.0 0.0 0.0 1.0 0.800000
mass 22 300.0 394.0 0.0 0.0 1.0 0.800000
mass 23 350.0 394.0 0.0 0.0 1.0 0.800000
mass 24 400.0 394.0 0.0 0.0 1.0 0.800000
spng 1 20 16 80.0 2.0 50.0
spng 2 20 1 80.0 2.0 70.710678
spng 3 21 1 80.0 2.0 50.0
spng 4 16 21 80.0 2.0 70.710678
spng 5 21 2 80.0 2.0 70.710678
spng 6 22 1 80.0 2.0 70.710678
spng 7 22 3 80.0 2.0 70.710678
spng 8 2 23 80.0 2.0 70.710678
spng 9 23 4 80.0 2.0 70.710678
spng 10 24 3 80.0 2.0 70.710678
spng 11 3 5 80.0 2.0 70.710678
spng 12 4 6 80.0 2.0 70.710678
spng 13 6 5 80.0 2.0 50.0
spng 14 11 6 80.0 2.0 70.710678
spng 15 5 10 80.0 2.0 70.710678
spng 16 10 12 80.0 2.0 70.710678
spng 17 11 13 80.0 2.0 70.710678
spng 18 13 9 80.0 2.0 70.710678
spng 19 9 15 80.0 2.0 70.710678
spng 20 15 18 80.0 2.0 70.710678
spng 21 18 7 80.0 2.0 70.710678
spng 22 17 8 80.0 2.0 70.710678
spng 23 8 19 80.0 2.0 70.710678
spng 24 8 14 80.0 2.0 70.710678
spng 25 14 10 80.0 2.0 70.710678
spng 26 20 21 80.0 2.0 50.0
spng 27 21 22 80.0 2.0 50.0
spng 28 22 23 80.0 2.0 50.0
spng 29 23 24 80.0 2.0 50.0
spng 30 24 4 80.0 2.0 50.0
spng 31 5 4 80.0 2.0 50.0
spng 32 5 11 80.0 2.0 50.0
spng 33 11 12 80.0 2.0 50.0
spng 34 12 13 80.0 2.0 50.0
spng 35 13 14 80.0 2.0 50.0
spng 36 14 15 80.0 2.0 50.0
spng 37 15 19 80.0 2.0 50.0
spng 38 18 19 80.0 2.0 50.0
spng 39 17 18 80.0 2.0 50.0
spng 40 16 17 80.0 2.0 50.0
spng 41 16 7 80.0 2.0 70.710678
spng 42 1 17 80.0 2.0 70.710678
spng 43 7 1 80.0 2.0 50.0
spng 44 8 7 80.0 2.0 50.0
spng 45 8 9 80.0 2.0 50.0
spng 46 9 10 80.0 2.0 50.0
spng 47 6 10 80.0 2.0 50.0
spng 48 3 6 80.0 2.0 50.0
spng 49 2 3 80.0 2.0 50.0
spng 50 1 2 80.0 2.0 50.0
spng 51 22 2 80.0 2.0 50.0
spng 52 3 23 80.0 2.0 50.0
spng 53 3 4 80.0 2.0 50.0
spng 54 10 11 80.0 2.0 50.0
spng 55 10 13 80.0 2.0 50.0
spng 56 14 9 80.0 2.0 50.0
spng 57 8 15 80.0 2.0 50.0
spng 58 8 18 80.0 2.0 50.0
spng 59 17 7 80.0 2.0 50.0
spng 60 1 16 80.0 2.0 50.0
\BARFOO\
else
echo "will not over write ./lib/square.xsp"
fi
if `test ! -s ./lib/stretchmesh.xsp`
then
echo "writting ./lib/stretchmesh.xsp"
cat > ./lib/stretchmesh.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1
elas 1

kspr 100


kdmp 1
fixm 0
shws 1
cent -1
frce 0 0 10 0
frce 1 0 5 2

frce 2 0 1 0


frce 3 0 10000 1
visc 0
stck 0
step 0.025
prec 1
adpt 0
gsnp 20 0
wall 1 1 1 1

mass 1 51 201 0 0 -1 1
mass 2 51 226 0 0 -1 1
mass 3 51 251 0 0 -1 1
mass 4 51 276 0 0 -1 1
mass 5 51 301 0 0 -1 1
mass 6 51 326 0 0 -1 1
mass 7 51 351 0 0 -1 1
mass 8 51 376 0 0 -1 1
mass 9 256 53 0 0 -1 1
mass 10 165.906409372000013 137.670717655999994 0 0 1 1
mass 11 132.737649400999999 189.319170856999989 0 0 1 1
mass 12 120.775731210999993 230.604310414999986 0 0 1 1
mass 13 117.200603927000003 267.811028164999982 0 0 1 1
mass 14 117.190054849999996 303.691494465999995 0 0 1 1
mass 15 120.686913693999998 340.312269168 0 0 1 1
mass 16 132.546585536000009 379.995814069999994 0 0 1 1
mass 17 165.84507378699999 427.283110067999985 0 0 1 1
mass 18 256 500 0 0 -1 1
mass 19 281 53 0 0 -1 1
mass 20 230.289342261999991 115.062710891999998 0 0 1 1
mass 21 200.983598983999997 169.118271254000007 0 0 1 1
mass 22 187.245124755999996 217.249674137 0 0 1 1
mass 23 182.305586495 261.854149966000023 0 0 1 1
mass 24 182.271829351000008 305.026480536000008 0 0 1 1
mass 25 187.105006637999992 348.748968310999999 0 0 1 1
mass 26 200.765450724999994 394.802409916999977 0 0 1 1
mass 27 230.199195594000003 444.744472239000004 0 0 1 1
mass 28 281 500 0 0 -1 1
mass 29 306 53 0 0 -1 1
mass 30 278.272998724999979 107.442073105000006 0 0 1 1
mass 31 259.461113689000001 160.251202984999992 0 0 1 1
mass 32 249.365996776999992 210.424274421000007 0 0 1 1
mass 33 245.303106880000001 258.384369892999985 0 0 1 1
mass 34 245.258150508999989 305.226805477000028 0 0 1 1
mass 35 249.218723684999986 352.217536664000022 0 0 1 1
mass 36 259.252271081000004 400.347246949000009 0 0 1 1
mass 37 278.143800252000005 449.868855897000003 0 0 1 1
mass 38 306 500 0 0 -1 1
mass 39 331 53 0 0 -1 1
mass 40 320.581244916999992 105.505969342 0 0 1 1
mass 41 312.926572238000006 157.391222830000004 0 0 1 1
mass 42 308.401656108999987 207.858952108000011 0 0 1 1
mass 43 306.399282990000017 256.881757268000001 0 0 1 1
mass 44 306.362557028000026 305.031002928000021 0 0 1 1
mass 45 308.297979897000005 353.080763214000001 0 0 1 1
mass 46 312.794189933999974 401.618275829000027 0 0 1 1
mass 47 320.49239417299998 450.729808332999994 0 0 1 1
mass 48 331 500 0 0 -1 1
mass 49 356 53 0 0 -1 1
mass 50 361.368509016000019 105.603850402999996 0 0 1 1
mass 51 364.714092551000022 157.508781174000006 0 0 1 1
mass 52 366.15057182999999 207.936634040999991 0 0 1 1
mass 53 366.538613519000023 256.892928863000009 0 0 1 1
mass 54 366.520126457999993 304.968779938000011 0 0 1 1
mass 55 366.118747444000007 352.946860963000006 0 0 1 1
mass 56 364.706400668000015 401.442286394999996 0 0 1 1
mass 57 361.379480971000021 450.590638049000006 0 0 1 1
mass 58 356 500 0 0 -1 1
mass 59 381 53 0 0 -1 1
mass 60 403.219526954000003 107.622556037999999 0 0 1 1
mass 61 417.474263087999987 160.506422498000006 0 0 1 1
mass 62 424.408043669999984 210.605816913000012 0 0 1 1
mass 63 426.868838902999983 258.408511002000012 0 0 1 1
mass 64 426.860997450000013 305.07210183799998 0 0 1 1
mass 65 424.427730872999973 351.89124179800001 0 0 1 1
mass 66 417.562531504999981 399.942548552000005 0 0 1 1
mass 67 403.294619065999996 449.587750572000004 0 0 1 1
mass 68 381 500 0 0 -1 1
mass 69 406 53 0 0 -1 1
mass 70 449.832361430999981 115.133868140000004 0 0 1 1
mass 71 474.218754932000024 169.342507482000002 0 0 1 1
mass 72 484.864471964000018 217.437796574000004 0 0 1 1
mass 73 488.346453759999974 261.876441123999996 0 0 1 1
mass 74 488.333812625000007 304.855151133999982 0 0 1 1
mass 75 484.892645888999994 348.395341632999987 0 0 1 1
mass 76 474.344190705000017 394.414003077000018 0 0 1 1
mass 77 449.894567904999974 444.582422290000011 0 0 1 1
mass 78 406 500 0 0 -1 1
mass 79 431 53 0 0 -1 1
mass 80 510.489492206000023 137.671323782999991 0 0 1 1
mass 81 539.022788039000034 189.471112572999999 0 0 1 1
mass 82 548.666933405999998 230.733909860000011 0 0 1 1
mass 83 551.287215381999999 267.825066413999991 0 0 1 1
mass 84 551.267824811999958 303.581415248999974 0 0 1 1
mass 85 548.680656502000033 340.076976235000018 0 0 1 1
mass 86 539.161365949000015 379.745497053999998 0 0 1 1
mass 87 510.550753392999979 427.254964417999986 0 0 1 1
mass 88 431 500 0 0 -1 1
mass 89 615 201 0 0 -1 1
mass 90 615 226 0 0 -1 1
mass 91 615 251 0 0 -1 1
mass 92 615 276 0 0 -1 1
mass 93 615 301 0 0 -1 1
mass 94 615 326 0 0 -1 1
mass 95 615 351 0 0 -1 1
mass 96 615 376 0 0 -1 1
spng 1 1 2 100 1 25
spng 2 2 3 100 1 25
spng 3 3 4 100 1 25
spng 4 4 5 100 1 25
spng 5 5 6 100 1 25
spng 6 6 7 100 1 25
spng 7 7 8 100 1 25
spng 8 9 10 100 1 123.636505533874242
spng 9 10 11 100 1 61.3818324593661799
spng 10 11 12 100 1 42.9831389629444018
spng 11 12 13 100 1 37.3780869069695143
spng 12 13 14 100 1 35.8804678517466229
spng 13 14 15 100 1 36.7873505644196186
spng 14 15 16 100 1 41.4178168447949204
spng 15 16 17 100 1 57.834917503221611
spng 16 17 18 100 1 115.82597636909469
spng 17 19 20 100 1 80.1458101929511599
spng 18 20 21 100 1 61.4884557874554858
spng 19 21 22 100 1 50.0537472882808245
spng 20 22 23 100 1 44.8771467699510751
spng 21 23 24 100 1 43.1723437676265931
spng 22 24 25 100 1 43.9888115311450107
spng 23 25 26 100 1 48.0367277862606201
spng 24 26 27 100 1 57.9702934785388067
spng 25 27 28 100 1 75.0592770844704518
spng 26 29 30 100 1 61.0960385268473658
spng 27 30 31 100 1 56.0597111773721792
spng 28 31 32 100 1 51.1785939899574558
spng 29 32 33 100 1 48.1318795809855899
spng 30 33 34 100 1 46.8424571571185524
spng 31 34 35 100 1 47.1573425605318093
spng 32 35 36 100 1 49.1644290668142787
spng 33 36 37 100 1 53.0026379269690437
spng 34 37 38 100 1 57.3506710813066789
spng 35 39 40 100 1 53.5296859137299847
spng 36 40 41 100 1 52.4468639990671406
spng 37 41 42 100 1 50.6701743084823377
spng 38 42 43 100 1 49.0636823308546113
spng 39 43 44 100 1 48.1492596664093639
spng 40 44 45 100 1 48.0887234725970742
spng 41 45 46 100 1 48.7453180884903645
spng 42 46 47 100 1 49.7112157706568567
spng 43 47 48 100 1 50.378185428998151
spng 44 49 50 100 1 52.8770835643956119
spng 45 50 51 100 1 52.0126404591419202
spng 46 51 52 100 1 50.4483083709929261
spng 47 52 53 100 1 48.9578326629252203
spng 48 53 54 100 1 48.07585462950194
spng 49 54 55 100 1 47.9797599405660264
spng 50 55 56 100 1 48.5159871717184501
spng 51 56 57 100 1 49.260824850742523
spng 52 57 58 100 1 49.7013467012944972
spng 53 59 60 100 1 58.9688986346530228
spng 54 60 61 100 1 54.7713504855328353
spng 55 61 62 100 1 50.5769377672181122
spng 56 62 63 100 1 47.8659908008313479
spng 57 63 64 100 1 46.6635914948475161
spng 58 64 65 100 1 46.8823277240882916
spng 59 65 66 100 1 48.53925260167685
spng 60 66 67 100 1 51.6548101242622195
spng 61 67 68 100 1 55.1220911403852369
spng 62 69 70 100 1 76.0387630005691335
spng 63 70 71 100 1 59.4413388753706258
spng 64 71 72 100 1 49.2593963012994038
spng 65 72 73 100 1 44.5748508317068755
spng 66 73 74 100 1 42.9787118690400831
spng 67 74 75 100 1 43.6759638381817865
spng 68 75 76 100 1 47.2121500025825043
spng 69 76 77 100 1 55.8090883404628713
spng 70 77 78 100 1 70.6954101113399105
spng 71 79 80 100 1 116.137041646209312
spng 72 80 81 100 1 59.1385414918402077
spng 73 81 82 100 1 42.3748507939306194
spng 74 82 83 100 1 37.1835954709477505
spng 75 83 84 100 1 35.7563540927260846
spng 76 84 85 100 1 36.5871481745587346
spng 77 85 86 100 1 40.7947108900145281
spng 78 86 87 100 1 55.4591438812440245
spng 79 87 88 100 1 107.796857872668738
spng 80 89 90 100 1 25
spng 81 90 91 100 1 25
spng 82 91 92 100 1 25
spng 83 92 93 100 1 25
spng 84 93 94 100 1 25
spng 85 94 95 100 1 25
spng 86 95 96 100 1 25
spng 87 1 10 100 1 131.20244249621166
spng 88 2 11 100 1 89.590884336626317
spng 89 3 12 100 1 72.6955075618665489
spng 90 4 13 100 1 66.7051663667361794
spng 91 5 14 100 1 66.2447545357858161
spng 92 6 15 100 1 71.1414575963431304
spng 93 7 16 100 1 86.5482688802160567
spng 94 8 17 100 1 125.774990961590106
spng 95 9 19 100 1 25
spng 96 10 20 100 1 68.2369695792486795
spng 97 11 21 100 1 71.1729301016605831
spng 98 12 22 100 1 67.7976886653059978
spng 99 13 23 100 1 65.3769313524067428
spng 100 14 24 100 1 65.0954649726546677
spng 101 15 25 100 1 66.9517808780865664
spng 102 16 26 100 1 69.8072263326036477
spng 103 17 27 100 1 66.6809730164236925
spng 104 18 28 100 1 25
spng 105 19 29 100 1 25
spng 106 20 30 100 1 48.5850327553646153
spng 107 21 31 100 1 59.14596035031132
spng 108 22 32 100 1 62.4947103516180249
spng 109 23 33 100 1 63.0930023727947074
spng 110 24 34 100 1 62.9866397190761589
spng 111 25 35 100 1 62.2104879567280946
spng 112 26 36 100 1 58.7490712527990127
spng 113 27 37 100 1 48.217677501993947
spng 114 28 38 100 1 25
spng 115 29 39 100 1 25
spng 116 30 40 100 1 42.3525228720083007
spng 117 31 41 100 1 53.5418970932281368
spng 118 32 42 100 1 59.0913695164829775
spng 119 33 43 100 1 61.1146511072831515
spng 120 34 44 100 1 61.1047202323798331
spng 121 35 45 100 1 59.0855623197390543
spng 122 36 46 100 1 53.5570031730214353
spng 123 37 47 100 1 42.3573446545319996
spng 124 38 48 100 1 25
spng 125 39 49 100 1 25
spng 126 40 50 100 1 40.7873815460575884
spng 127 41 51 100 1 51.7876537423123011
spng 128 42 52 100 1 57.7489679685609261
spng 129 43 53 100 1 60.1393315666282362
spng 130 44 54 100 1 60.1576016096532129
spng 131 45 55 100 1 57.8209225932709501
spng 132 46 56 100 1 51.9125090471661679
spng 133 47 57 100 1 40.8873236492086605
spng 134 48 58 100 1 25
spng 135 49 59 100 1 25
spng 136 50 60 100 1 41.899676310057302
spng 137 51 61 100 1 52.8452594714102233
spng 138 52 62 100 1 58.3185867660780204
spng 139 53 63 100 1 60.349259184386753
spng 140 54 64 100 1 60.3409594511738732
spng 141 55 65 100 1 58.3185380504767821
spng 142 56 66 100 1 52.8774033085569073
spng 143 57 67 100 1 41.9271342308825297
spng 144 58 68 100 1 25
spng 145 59 69 100 1 25
spng 146 60 70 100 1 47.2141519830002849
spng 147 61 71 100 1 57.4283357975682378
spng 148 62 72 100 1 60.8412332892413161
spng 149 63 73 100 1 61.5753495145313892
spng 150 64 74 100 1 61.4731980065107422
spng 151 65 75 100 1 60.5658919347824991
spng 152 66 76 100 1 57.0501677173178123
spng 153 67 77 100 1 46.8679906013475716
spng 154 68 78 100 1 25
spng 155 69 79 100 1 25
spng 156 70 80 100 1 64.7087661813733632
spng 157 71 81 100 1 67.858112631008126
spng 158 72 82 100 1 65.173159464399447
spng 159 73 83 100 1 63.2212433949084769
spng 160 74 84 100 1 62.9469005834139139
spng 161 75 85 100 1 64.3281081709920102
spng 162 76 86 100 1 66.4562357913702044
spng 163 77 87 100 1 63.0825937502620278
spng 164 78 88 100 1 25
spng 165 80 89 100 1 122.200521564997231
spng 166 81 90 100 1 84.3024101317462566
spng 167 82 91 100 1 69.3598596691677614
spng 168 83 92 100 1 64.2351030427691256
spng 169 84 93 100 1 63.7844327315191961
spng 170 85 94 100 1 67.7968773759268828
spng 171 86 95 100 1 81.1036498291107506
spng 172 87 96 100 1 116.347395734757853
\BARFOO\
else
echo "will not over write ./lib/stretchmesh.xsp"
fi
if `test ! -s ./lib/super-jello.xsp`
then
echo "writting ./lib/super-jello.xsp"
cat > ./lib/super-jello.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1

elas 0.1


kspr 200
kdmp 1
fixm 0
shws 1
cent -1

frce 0 1 10 0


frce 1 0 5 2
frce 2 0 10 0
frce 3 0 10000 1
visc 0
stck 0
step 0.025
prec 1
adpt 0

gsnp 40 0


wall 1 1 1 1

mass 1 267.341544 187.781792 2.3e-05 0.000313 1 0.1
mass 2 307.352886 187.77857 -1e-06 0.000325 1 0.1
mass 3 347.364229 187.781783 -2.5e-05 0.000321 1 0.1
mass 4 267.323768 147.82045 6e-05 0.000247 1 0.1
mass 5 307.352882 147.815849 3e-06 0.000257 1 0.1
mass 6 347.381996 147.820443 -5.3e-05 0.000253 1 0.1
mass 7 267.306829 107.892774 8.1e-05 0.000137 1 0.1
mass 8 307.352878 107.895083 7e-06 0.00013 1 0.1
mass 9 347.398927 107.892769 -6.8e-05 0.000141 1 0.1
mass 10 267.317921 68 0 0 1 0.1
mass 11 307.352876 68 0 0 1 0.1
mass 12 347.387831 68 0 0 1 0.1
spng 1 1 4 200 1 40
spng 2 4 7 200 1 40
spng 3 7 10 200 1 40
spng 4 10 11 200 1 40
spng 5 11 8 200 1 40
spng 6 8 5 200 1 40
spng 7 5 2 200 1 40
spng 8 2 3 200 1 40
spng 9 3 6 200 1 40
spng 10 6 9 200 1 40
spng 11 9 12 200 1 40
spng 12 12 11 200 1 40
spng 13 11 9 200 1 56.568542
spng 14 9 5 200 1 56.568542
spng 15 5 3 200 1 56.568542
spng 16 2 6 200 1 56.568542
spng 17 6 8 200 1 56.568542
spng 18 8 12 200 1 56.568542
spng 19 8 9 200 1 40
spng 20 6 5 200 1 40
spng 21 5 4 200 1 40
spng 22 1 2 200 1 40
spng 23 2 4 200 1 56.568542
spng 24 4 8 200 1 56.568542
spng 25 8 7 200 1 40
spng 26 7 5 200 1 56.568542
spng 27 5 1 200 1 56.568542
spng 28 7 11 200 1 56.568542
spng 29 8 10 200 1 56.568542
spng 30 1 3 200 1 80
spng 31 1 6 200 1 89.4427191
spng 32 1 7 200 1 80
spng 33 1 8 200 1 89.4427191
spng 34 1 9 200 1 113.13708499
spng 35 1 10 200 1 120
spng 36 1 11 200 1 126.491106407
spng 37 1 12 200 1 144.222051019
spng 38 2 7 200 1 89.4427191
spng 39 2 8 200 1 80
spng 40 2 9 200 1 89.4427191
spng 41 2 10 200 1 126.491106407
spng 42 2 11 200 1 120
spng 43 2 12 200 1 126.491106407
spng 44 3 4 200 1 89.4427191
spng 45 3 7 200 1 113.13708499
spng 46 3 8 200 1 89.4427191
spng 47 3 9 200 1 80
spng 48 3 10 200 1 144.222051019
spng 49 3 11 200 1 126.491106407
spng 50 3 12 200 1 120
spng 51 4 6 200 1 80
spng 52 4 9 200 1 89.4427191
spng 53 4 10 200 1 80
spng 54 4 11 200 1 89.4427191
spng 55 4 12 200 1 113.13708499
spng 56 5 10 200 1 89.4427191
spng 57 5 11 200 1 80
spng 58 5 12 200 1 89.4427191
spng 59 6 7 200 1 89.4427191
spng 60 6 10 200 1 113.13708499
spng 61 6 11 200 1 89.4427191
spng 62 6 12 200 1 80
spng 63 7 9 200 1 80
spng 64 7 12 200 1 89.4427191
spng 65 9 10 200 1 89.4427191
spng 66 10 12 200 1 80
\BARFOO\
else
echo "will not over write ./lib/super-jello.xsp"
fi
if `test ! -s ./lib/tire.xsp`
then
echo "writting ./lib/tire.xsp"
cat > ./lib/tire.xsp << '\BARFOO\'


#1.0 *** XSpringies data file

cmas 1.0
elas 1.0
kspr 200.0

kdmp 1.500000


fixm 0
shws 1
cent -1

frce 0 1 10.0 0.0
frce 1 0 5.0 2.0
frce 2 0 10.0 0.0
frce 3 0 10000.0 1.0
visc 0.0
stck 0.0
step 0.025000

prec 1.0
adpt 0
gsnp 18.0 0


wall 1 1 1 1

mass 1 327.456084 281.149678 0.009381 4.202871 1.0 1.0
mass 2 345.301003 277.090310 -0.403509 -0.305837 1.0 1.0
mass 3 362.134891 269.536206 -3.950943 -7.823193 1.0 1.0
mass 4 377.169289 258.961120 -6.652044 -10.265516 1.0 1.0
mass 5 389.939892 245.475316 -7.933797 -10.316392 1.0 1.0
mass 6 400.051317 229.967435 -6.398677 -8.567292 1.0 1.0
mass 7 406.489387 212.636070 -4.609387 -7.729748 1.0 1.0
mass 8 409.660521 194.468639 -1.051530 -7.182024 1.0 1.0
mass 9 409.627643 176.071053 1.324528 -7.182240 1.0 1.0
mass 10 406.069947 158.065979 4.789743 -7.760958 1.0 1.0
mass 11 400.001937 140.767514 6.249134 -8.317223 1.0 1.0
mass 12 391.067706 124.696319 8.557769 -10.154776 1.0 1.0
mass 13 379.238030 110.533915 7.144167 -10.033928 1.0 1.0
mass 14 364.890351 98.869759 4.248841 -7.688030 1.0 1.0
mass 15 348.512649 90.270112 0.405845 -0.949148 1.0 1.0
mass 16 330.863923 84.774918 -0.419848 3.793212 1.0 1.0
mass 17 312.481073 83.252632 0.539601 5.799891 1.0 1.0
mass 18 294.111705 84.662128 1.462951 3.671148 1.0 1.0
mass 19 276.339082 89.549385 0.923736 -0.754176 1.0 1.0
mass 20 259.787879 97.667569 -3.110270 -8.596274 1.0 1.0
mass 21 244.896716 108.496405 -6.174949 -11.455202 1.0 1.0
mass 22 232.400150 121.969559 -7.489704 -11.610818 1.0 1.0
mass 23 222.026285 137.083244 -5.793741 -9.892656 1.0 1.0
mass 24 214.490243 153.800822 -4.343160 -9.165476 1.0 1.0
mass 25 209.612402 171.562156 -1.096641 -8.404341 1.0 1.0
mass 26 208.386222 190.016829 1.067021 -8.272623 1.0 1.0
mass 27 216.953922 225.917917 5.528656 -9.231894 1.0 1.0
mass 28 210.882139 208.385065 4.277214 -8.661665 1.0 1.0
mass 29 226.830950 241.593624 7.563286 -11.160131 1.0 1.0
mass 30 239.044879 255.387635 5.876869 -10.808563 1.0 1.0
mass 31 253.797262 266.421210 3.032326 -8.274159 1.0 1.0
mass 32 270.255662 274.589459 -0.783848 -1.141147 1.0 1.0
mass 33 287.727151 280.214512 -1.812428 4.059169 1.0 1.0
mass 34 305.935015 282.979750 -0.976590 4.852442 1.0 1.0
spng 1 1 2 200.0 1.500000 18.0
spng 2 3 2 200.0 1.500000 18.0
spng 3 3 4 200.0 1.500000 18.0
spng 4 4 5 200.0 1.500000 18.0
spng 5 5 6 200.0 1.500000 18.0
spng 6 6 7 200.0 1.500000 18.0
spng 7 7 8 200.0 1.500000 18.0
spng 8 8 9 200.0 1.500000 18.0
spng 9 9 10 200.0 1.500000 18.0
spng 10 10 11 200.0 1.500000 18.0
spng 11 11 12 200.0 1.500000 18.0
spng 12 12 13 200.0 1.500000 18.0
spng 13 13 14 200.0 1.500000 18.0
spng 14 14 15 200.0 1.500000 18.0
spng 15 15 16 200.0 1.500000 18.0
spng 16 16 17 200.0 1.500000 18.0
spng 17 17 18 200.0 1.500000 18.0
spng 18 18 19 200.0 1.500000 18.0
spng 19 19 20 200.0 1.500000 18.0
spng 20 20 21 200.0 1.500000 18.0
spng 21 21 22 200.0 1.500000 18.0
spng 22 22 23 200.0 1.500000 18.0
spng 23 23 24 200.0 1.500000 18.0
spng 24 24 25 200.0 1.500000 18.0
spng 25 25 26 200.0 1.500000 18.0
spng 26 26 28 200.0 1.500000 18.0
spng 27 28 27 200.0 1.500000 18.0
spng 28 27 29 200.0 1.500000 18.0
spng 29 29 30 200.0 1.500000 18.0
spng 30 30 31 200.0 1.500000 18.0
spng 31 31 32 200.0 1.500000 18.0
spng 32 32 33 200.0 1.500000 18.0
spng 33 33 34 200.0 1.500000 18.0
spng 34 1 3 200.0 1.500000 36.0
spng 35 2 4 200.0 1.500000 36.0
spng 36 3 5 200.0 1.500000 36.0
spng 37 4 6 200.0 1.500000 36.0
spng 38 5 7 200.0 1.500000 36.0
spng 39 6 8 200.0 1.500000 36.0
spng 40 7 9 200.0 1.500000 36.0
spng 41 8 10 200.0 1.500000 36.0
spng 42 9 11 200.0 1.500000 36.0
spng 43 10 12 200.0 1.500000 36.0
spng 44 11 13 200.0 1.500000 36.0
spng 45 12 14 200.0 1.500000 36.0
spng 46 13 15 200.0 1.500000 36.0
spng 47 14 16 200.0 1.500000 36.0
spng 48 15 17 200.0 1.500000 36.0
spng 49 16 18 200.0 1.500000 36.0
spng 50 17 19 200.0 1.500000 36.0
spng 51 18 20 200.0 1.500000 36.0
spng 52 19 21 200.0 1.500000 36.0
spng 53 20 22 200.0 1.500000 36.0
spng 54 21 23 200.0 1.500000 36.0
spng 55 22 24 200.0 1.500000 36.0
spng 56 23 25 200.0 1.500000 36.0
spng 57 24 26 200.0 1.500000 36.0
spng 58 25 28 200.0 1.500000 36.0
spng 59 26 27 200.0 1.500000 36.0
spng 60 28 29 200.0 1.500000 36.0
spng 61 27 30 200.0 1.500000 36.0
spng 62 29 31 200.0 1.500000 36.0
spng 63 30 32 200.0 1.500000 36.0
spng 64 31 33 200.0 1.500000 36.0
spng 65 32 34 200.0 1.500000 36.0
spng 66 1 4 200.0 1.500000 53.0
spng 67 2 5 200.0 1.500000 54.0
spng 68 3 6 200.0 1.500000 54.0
spng 69 4 7 200.0 1.500000 54.0
spng 70 5 8 200.0 1.500000 54.0
spng 71 6 9 200.0 1.500000 54.0
spng 72 7 10 200.0 1.500000 54.0
spng 73 8 11 200.0 1.500000 54.0
spng 74 9 12 200.0 1.500000 54.0
spng 75 10 13 200.0 1.500000 54.0
spng 76 11 14 200.0 1.500000 54.0
spng 77 12 15 200.0 1.500000 54.0
spng 78 13 16 200.0 1.500000 54.0
spng 79 14 17 200.0 1.500000 54.0
spng 80 15 18 200.0 1.500000 54.0
spng 81 16 19 200.0 1.500000 54.0
spng 82 17 20 200.0 1.500000 54.0
spng 83 18 21 200.0 1.500000 54.0
spng 84 19 22 200.0 1.500000 54.0
spng 85 20 23 200.0 1.500000 54.0
spng 86 21 24 200.0 1.500000 54.0
spng 87 22 25 200.0 1.500000 54.0
spng 88 23 26 200.0 1.500000 54.0
spng 89 24 28 200.0 1.500000 54.0
spng 90 25 27 200.0 1.500000 54.0
spng 91 26 29 200.0 1.500000 54.0
spng 92 28 30 200.0 1.500000 54.0
spng 93 27 31 200.0 1.500000 54.0
spng 94 29 32 200.0 1.500000 54.0
spng 95 30 33 200.0 1.500000 54.0
spng 96 31 34 200.0 1.500000 54.0
spng 97 1 5 200.0 1.500000 72.0
spng 98 2 6 200.0 1.500000 72.0
spng 99 3 7 200.0 1.500000 72.0
spng 100 4 8 200.0 1.500000 72.0
spng 101 5 9 200.0 1.500000 72.0
spng 102 6 10 200.0 1.500000 72.0
spng 103 7 11 200.0 1.500000 72.0
spng 104 8 12 200.0 1.500000 72.0
spng 105 9 13 200.0 1.500000 72.0
spng 106 10 14 200.0 1.500000 72.0
spng 107 11 15 200.0 1.500000 72.0
spng 108 12 16 200.0 1.500000 72.0
spng 109 13 17 200.0 1.500000 72.0
spng 110 14 18 200.0 1.500000 72.0
spng 111 15 19 200.0 1.500000 72.0
spng 112 16 20 200.0 1.500000 72.0
spng 113 17 21 200.0 1.500000 72.0
spng 114 18 22 200.0 1.500000 72.0
spng 115 19 23 200.0 1.500000 72.0
spng 116 20 24 200.0 1.500000 72.0
spng 117 21 25 200.0 1.500000 72.0
spng 118 22 26 200.0 1.500000 72.0
spng 119 23 28 200.0 1.500000 72.0
spng 120 24 27 200.0 1.500000 72.0
spng 121 25 29 200.0 1.500000 72.0
spng 122 26 30 200.0 1.500000 72.0
spng 123 28 31 200.0 1.500000 72.0
spng 124 27 32 200.0 1.500000 72.0
spng 125 29 33 200.0 1.500000 72.0
spng 126 30 34 200.0 1.500000 72.0
spng 127 1 6 200.0 1.500000 90.0
spng 128 2 7 200.0 1.500000 90.0
spng 129 3 8 200.0 1.500000 90.0
spng 130 4 9 200.0 1.500000 90.0
spng 131 5 10 200.0 1.500000 90.0
spng 132 6 11 200.0 1.500000 90.0
spng 133 7 12 200.0 1.500000 90.0
spng 134 8 13 200.0 1.500000 90.0
spng 135 9 14 200.0 1.500000 90.0
spng 136 10 15 200.0 1.500000 90.0
spng 137 11 16 200.0 1.500000 90.0
spng 138 12 17 200.0 1.500000 90.0
spng 139 13 18 200.0 1.500000 90.0
spng 140 14 19 200.0 1.500000 90.0
spng 141 15 20 200.0 1.500000 90.0
spng 142 16 21 200.0 1.500000 90.0
spng 143 17 22 200.0 1.500000 90.0
spng 144 18 23 200.0 1.500000 90.0
spng 145 19 24 200.0 1.500000 90.0
spng 146 20 25 200.0 1.500000 90.0
spng 147 21 26 200.0 1.500000 90.0
spng 148 22 28 200.0 1.500000 90.0
spng 149 23 27 200.0 1.500000 90.0
spng 150 24 29 200.0 1.500000 90.0
spng 151 25 30 200.0 1.500000 90.0
spng 152 26 31 200.0 1.500000 90.0
spng 153 28 32 200.0 1.500000 90.0
spng 154 27 33 200.0 1.500000 90.0
spng 155 29 34 200.0 1.500000 90.0
spng 156 34 1 200.0 1.500000 21.0
spng 157 34 2 200.0 1.500000 39.0
spng 158 34 3 200.0 1.500000 57.0
spng 159 34 4 200.0 1.500000 75.0
spng 160 34 5 200.0 1.500000 93.0
spng 161 33 1 200.0 1.500000 39.0
spng 162 33 2 200.0 1.500000 57.0
spng 163 33 3 200.0 1.500000 75.0
spng 164 33 4 200.0 1.500000 93.0
spng 165 32 1 200.0 1.500000 57.0
spng 166 32 2 200.0 1.500000 75.0
spng 167 32 3 200.0 1.500000 93.0
spng 168 31 1 200.0 1.500000 75.0
spng 169 2 31 200.0 1.500000 93.0
spng 170 30 1 200.0 1.500000 93.0
spng 171 33 16 200.0 1.500000 200.202398
spng 172 17 34 200.0 1.500000 199.832430
spng 173 1 18 200.0 1.500000 199.248588
spng 174 19 2 200.0 1.500000 199.822421
spng 175 3 20 200.0 1.500000 200.010000
spng 176 21 4 200.0 1.500000 200.529300
spng 177 5 22 200.0 1.500000 200.002500
spng 178 23 6 200.0 1.500000 200.810856
spng 179 7 24 200.0 1.500000 200.691305
spng 180 25 8 200.0 1.500000 201.357890
spng 181 9 26 200.0 1.500000 201.791972
spng 182 28 10 200.0 1.500000 201.444782
spng 183 11 27 200.0 1.500000 201.943061
spng 184 29 12 200.0 1.500000 201.526673
spng 185 13 30 200.0 1.500000 201.638290
spng 186 31 14 200.0 1.500000 201.039797
spng 187 15 32 200.0 1.500000 200.124961
\BARFOO\
else
echo "will not over write ./lib/tire.xsp"
fi
echo "Finished archive 8 of 16"

Douglas DeCarlo

unread,
Mar 26, 1993, 11:13:18 AM3/26/93
to
Submitted-by: d...@gradient.cis.upenn.edu (Douglas DeCarlo)
Posting-number: Volume 19, Issue 61
Archive-name: xspringies/part09

Environment: X11
Supersedes: xspringies: Volume 14, Issue 25-30

#!/bin/sh


# to extract, remove the header and type "sh filename"

if `test ! -d ./lib`
then
mkdir ./lib
echo "mkdir ./lib"
fi

if `test ! -s ./lib/nifty.xsp`
then
echo "writting ./lib/nifty.xsp"
cat > ./lib/nifty.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1
elas 0.1
kspr 200

kdmp 1.5


fixm 0
shws 1
cent -1
frce 0 1 10 0
frce 1 0 5 2
frce 2 0 10 0
frce 3 0 10000 1
visc 0
stck 0
step 0.025
prec 1
adpt 0

gsnp 20 0
wall 1 1 1 1

mass 1 148.581450999999987 350.573888000000011 0 -7.75 1 0.1
mass 2 168.564277000000004 351.402524000000028 0 -7.75 1 0.1
mass 3 188.54710399999999 352.231158999999991 0 -7.75 1 0.1
mass 4 208.529931000000005 353.059794000000011 0 -7.75 1 0.1
mass 5 228.512757999999991 353.888428999999974 0 -7.75 1 0.1
mass 6 248.495584000000008 354.717063999999993 0 -7.75 1 0.1
mass 7 149.410086000000007 330.591061000000025 0 -7.75 1 0.1
mass 8 150.238720999999998 310.608234999999979 0 -7.75 1 0.1
mass 9 151.06735599999999 290.625407999999993 0 -7.75 1 0.1
mass 10 151.895991000000009 270.642581000000007 0 -7.75 1 0.1
mass 11 152.724626000000001 250.65975499999999 0 -7.75 1 0.1
mass 12 172.707452999999987 251.48839000000001 0 -7.749999 1 0.1
mass 13 192.690280000000001 252.317025000000001 0 -7.75 1 0.1
mass 14 212.67310599999999 253.145659999999992 0 -7.75 1 0.1
mass 15 232.655933000000005 253.974295000000012 0 -7.75 1 0.1
mass 16 252.638759999999991 254.802930000000003 0 -7.75 1 0.1
mass 17 251.810124999999999 274.78575699999999 0 -7.75 1 0.1
mass 18 250.98148900000001 294.768583999999976 0 -7.75 1 0.1
mass 19 249.324218999999999 334.734237000000007 0 -7.75 1 0.1
mass 20 250.152853999999991 314.751410000000021 0 -7.75 1 0.1
spng 1 1 2 200 1.5 20
spng 2 2 3 200 1.5 20
spng 3 3 4 200 1.5 20
spng 4 4 5 200 1.5 20
spng 5 5 6 200 1.5 20
spng 6 6 19 200 1.5 20
spng 7 19 20 200 1.5 20
spng 8 20 18 200 1.5 20
spng 9 18 17 200 1.5 20
spng 10 17 16 200 1.5 20
spng 11 16 15 200 1.5 20
spng 12 15 14 200 1.5 20
spng 13 14 13 200 1.5 20
spng 14 13 12 200 1.5 20
spng 15 12 11 200 1.5 20
spng 16 11 10 200 1.5 20
spng 17 10 9 200 1.5 20
spng 18 9 8 200 1.5 20
spng 19 8 7 200 1.5 20
spng 20 7 1 200 1.5 20
spng 21 1 19 200 1.5 101.98039
spng 22 19 14 200 1.5 89.4427189999999968
spng 23 14 8 200 1.5 84.8528139999999951
spng 24 8 5 200 1.5 89.4427189999999968
spng 25 5 16 200 1.5 101.98039
spng 26 16 10 200 1.5 101.98039
spng 27 10 3 200 1.5 89.4427189999999968
spng 28 3 18 200 1.5 84.8528139999999951
spng 29 18 12 200 1.5 89.4427189999999968
spng 30 12 1 200 1.5 101.98039
spng 31 2 20 200 1.5 89.4427189999999968
spng 32 20 13 200 1.5 84.8528139999999951
spng 33 13 7 200 1.5 89.4427189999999968
spng 34 7 6 200 1.5 101.98039
spng 35 6 15 200 1.5 101.98039
spng 36 15 9 200 1.5 89.4427189999999968
spng 37 9 4 200 1.5 84.8528139999999951
spng 38 4 17 200 1.5 89.4427189999999968
spng 39 17 11 200 1.5 101.98039
spng 40 11 2 200 1.5 101.98039
\BARFOO\
else
echo "will not over write ./lib/nifty.xsp"
fi
if `test ! -s ./lib/nifty12.xsp`
then
echo "writting ./lib/nifty12.xsp"
cat > ./lib/nifty12.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1

elas 0.5
kspr 1000


kdmp 1
fixm 0
shws 1
cent -1
frce 0 1 10 0
frce 1 0 5 2
frce 2 0 10 0
frce 3 0 10000 1
visc 0
stck 0

step 0.05


prec 1
adpt 0
gsnp 20 0
wall 1 1 1 1

mass 1 170 434 0 0 1 0.5
mass 2 170 414 0 0 1 0.5
mass 3 170 394 0 0 1 0.5
mass 4 170 374 0 0 1 0.5
mass 5 190 434 0 0 1 0.5
mass 6 210 434 0 0 1 0.5
mass 7 230 434 0 0 1 0.5
mass 8 250 434 0 0 1 0.5
mass 9 170 354 0 0 1 0.5
mass 10 170 334 0 0 1 0.5
mass 11 170 314 0 0 1 0.5
mass 12 270 434 0 0 1 0.5
mass 13 290 434 0 0 1 0.5
mass 14 310 434 0 0 1 0.5
mass 15 170 294 0 0 1 0.5
mass 16 170 274 0 0 1 0.5
mass 17 170 254 0 0 1 0.5
mass 18 330 434 0 0 1 0.5
mass 19 350 434 0 0 1 0.5
mass 20 170 234 0 0 1 0.5
mass 21 170 214 0 0 1 0.5
mass 22 370 434 0 0 1 0.5
mass 23 390 434 0 0 1 0.5
mass 24 390 414 0 0 1 0.5
mass 25 390 394 0 0 1 0.5
mass 26 390 374 0 0 1 0.5
mass 27 390 354 0 0 1 0.5
mass 28 390 334 0 0 1 0.5
mass 29 390 314 0 0 1 0.5
mass 30 390 294 0 0 1 0.5
mass 31 390 274 0 0 1 0.5
mass 32 390 254 0 0 1 0.5
mass 33 390 234 0 0 1 0.5
mass 34 390 214 0 0 1 0.5
mass 35 370 214 0 0 1 0.5
mass 36 350 214 0 0 1 0.5
mass 37 330 214 0 0 1 0.5
mass 38 310 214 0 0 1 0.5
mass 39 290 214 0 0 1 0.5
mass 40 270 214 0 0 1 0.5
mass 41 250 214 0 0 1 0.5
mass 42 230 214 0 0 1 0.5
mass 43 210 214 0 0 1 0.5
mass 44 190 214 0 0 1 0.5
spng 1 1 2 100 1 20
spng 2 2 3 100 1 20
spng 3 1 5 100 1 20
spng 4 5 6 100 1 20
spng 5 6 7 100 1 20
spng 6 7 8 100 1 20
spng 7 8 12 100 1 20
spng 8 12 13 100 1 20
spng 9 13 14 100 1 20
spng 10 14 18 100 1 20
spng 11 18 19 100 1 20
spng 12 19 22 100 1 20
spng 13 22 23 100 1 20
spng 14 3 4 100 1 20
spng 15 4 9 100 1 20
spng 16 9 10 100 1 20
spng 17 10 11 100 1 20
spng 18 11 15 100 1 20
spng 19 15 16 100 1 20
spng 20 16 17 100 1 20
spng 21 17 20 100 1 20
spng 22 20 21 100 1 20
spng 23 21 44 100 1 20
spng 24 44 43 100 1 20
spng 25 43 42 100 1 20
spng 26 42 41 100 1 20
spng 27 41 40 100 1 20
spng 28 39 40 100 1 20
spng 29 39 38 100 1 20
spng 30 38 37 100 1 20
spng 31 37 36 100 1 20
spng 32 36 35 100 1 20
spng 33 35 34 100 1 20
spng 34 34 33 100 1 20
spng 35 33 32 100 1 20
spng 36 32 31 100 1 20
spng 37 31 30 100 1 20
spng 38 30 29 100 1 20
spng 39 29 28 100 1 20
spng 40 28 27 100 1 20
spng 41 27 26 100 1 20
spng 42 26 25 100 1 20
spng 43 25 24 100 1 20
spng 44 24 23 100 1 20
spng 45 1 24 100 1 220.907220343745223
spng 46 5 25 100 1 203.960780543711394
spng 47 6 26 100 1 189.736659610102748
spng 48 7 27 100 1 178.885438199983184
spng 49 8 28 100 1 172.046505340852548
spng 50 12 29 100 1 169.705627484771412
spng 51 13 30 100 1 172.046505340852548
spng 52 14 31 100 1 178.885438199983184
spng 53 18 32 100 1 189.736659610102748
spng 54 19 33 100 1 203.960780543711394
spng 55 22 34 100 1 220.907220343745223
spng 56 1 44 100 1 220.907220343745223
spng 57 2 43 100 1 203.960780543711394
spng 58 3 42 100 1 189.736659610102748
spng 59 4 41 100 1 178.885438199983184
spng 60 9 40 100 1 172.046505340852548
spng 61 10 39 100 1 169.705627484771412
spng 62 11 38 100 1 172.046505340852548
spng 63 15 37 100 1 178.885438199983184
spng 64 16 36 100 1 189.736659610102748
spng 65 17 35 100 1 203.960780543711394
spng 66 20 34 100 1 220.907220343745223
spng 67 23 35 100 1 220.907220343745223
spng 68 24 36 100 1 203.960780543711394
spng 69 25 37 100 1 189.736659610102748
spng 70 26 38 100 1 178.885438199983184
spng 71 27 39 100 1 172.046505340852548
spng 72 28 40 100 1 169.705627484771412
spng 73 29 41 100 1 172.046505340852548
spng 74 30 42 100 1 178.885438199983184
spng 75 31 43 100 1 189.736659610102748
spng 76 32 44 100 1 203.960780543711394
spng 77 33 21 100 1 220.907220343745223
spng 78 23 2 100 1 220.907220343745223
spng 79 22 3 100 1 203.960780543711394
spng 80 19 4 100 1 189.736659610102748
spng 81 18 9 100 1 178.885438199983184
spng 82 14 10 100 1 172.046505340852548
spng 83 13 11 100 1 169.705627484771412
spng 84 12 15 100 1 172.046505340852548
spng 85 8 16 100 1 178.885438199983184
spng 86 7 17 100 1 189.736659610102748
spng 87 6 20 100 1 203.960780543711394
spng 88 5 21 100 1 220.907220343745223
\BARFOO\
else
echo "will not over write ./lib/nifty12.xsp"
fi
if `test ! -s ./lib/octanifty.xsp`
then
echo "writting ./lib/octanifty.xsp"
cat > ./lib/octanifty.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1
elas 1

kspr 10


kdmp 1
fixm 0
shws 1
cent -1
frce 0 0 10 0
frce 1 0 5 2

frce 2 0 10 0
frce 3 0 10000 1
visc 0
stck 0
step 0.025
prec 1
adpt 0

gsnp 20 0
wall 1 1 1 1

mass 1 180 350 0 0 1 0.5
mass 2 200 350 0 0 1 0.5
mass 3 220 350 0 0 1 0.5
mass 4 240 350 0 0 1 0.5
mass 5 260 350 0 0 1 0.5
mass 6 280 350 0 0 1 0.5
mass 7 160 330 0 0 1 0.5
mass 8 300 330 0 0 1 0.5
mass 9 140 310 0 0 1 0.5
mass 10 320 310 0 0 1 0.5
mass 11 120 290 0 0 1 0.5
mass 12 120 270 0 0 1 0.5
mass 13 120 250 0 0 1 0.5
mass 14 120 230 0 0 1 0.5
mass 15 120 210 0 0 1 0.5
mass 16 120 190 0 0 1 0.5
mass 17 340 290 0 0 1 0.5
mass 18 340 270 0 0 1 0.5
mass 19 340 250 0 0 1 0.5
mass 20 340 230 0 0 1 0.5
mass 21 340 210 0 0 1 0.5
mass 22 340 190 0 0 1 0.5
mass 23 140 170 0 0 1 0.5
mass 24 320 170 0 0 1 0.5
mass 25 300 150 0 0 1 0.5
mass 26 280 130 0 0 1 0.5
mass 27 160 150 0 0 1 0.5
mass 28 180 130 0 0 1 0.5
mass 29 200 130 0 0 1 0.5
mass 30 220 130 0 0 1 0.5
mass 31 240 130 0 0 1 0.5
mass 32 260 130 0 0 1 0.5
spng 1 1 17 100 1 170.880074906350615
spng 2 2 18 100 1 161.245154965970983
spng 3 3 19 100 1 156.20499351813308
spng 4 4 20 100 1 156.20499351813308
spng 5 5 21 100 1 161.245154965970983
spng 6 6 22 100 1 170.880074906350615
spng 7 11 6 100 1 170.880074906350615
spng 8 12 5 100 1 161.245154965970983
spng 9 13 4 100 1 156.20499351813308
spng 10 14 3 100 1 156.20499351813308
spng 11 2 15 100 1 161.245154965970983
spng 12 16 1 100 1 170.880074906350615
spng 13 16 26 100 1 170.880074906350615
spng 14 32 15 100 1 161.245154965970983
spng 15 14 31 100 1 156.20499351813308
spng 16 30 13 100 1 156.20499351813308
spng 17 12 29 100 1 161.245154965970983
spng 18 28 11 100 1 170.880074906350615
spng 19 22 28 100 1 170.880074906350615
spng 20 29 21 100 1 161.245154965970983
spng 21 20 30 100 1 156.20499351813308
spng 22 31 19 100 1 156.20499351813308
spng 23 18 32 100 1 161.245154965970983
spng 24 26 17 100 1 170.880074906350615
spng 25 7 10 100 1 161.245154965970983
spng 26 9 8 100 1 161.245154965970983
spng 27 8 24 100 1 161.245154965970983
spng 28 25 10 100 1 161.245154965970983
spng 29 7 23 100 1 161.245154965970983
spng 30 9 27 100 1 161.245154965970983
spng 31 23 25 100 1 161.245154965970983
spng 32 24 27 100 1 161.245154965970983
spng 33 11 9 100 1 28.284271247461902
spng 34 9 7 100 1 28.284271247461902
spng 35 7 1 100 1 28.284271247461902
spng 36 1 2 100 1 20
spng 37 2 3 100 1 20
spng 38 3 4 100 1 20
spng 39 4 5 100 1 20
spng 40 5 6 100 1 20
spng 41 6 8 100 1 28.284271247461902
spng 42 8 10 100 1 28.284271247461902
spng 43 10 17 100 1 28.284271247461902
spng 44 17 18 100 1 20
spng 45 18 19 100 1 20
spng 46 19 20 100 1 20
spng 47 20 21 100 1 20
spng 48 21 22 100 1 20
spng 49 22 24 100 1 28.284271247461902
spng 50 24 25 100 1 28.284271247461902
spng 51 25 26 100 1 28.284271247461902
spng 52 26 32 100 1 20
spng 53 32 31 100 1 20
spng 54 31 30 100 1 20
spng 55 30 29 100 1 20
spng 56 29 28 100 1 20
spng 57 28 27 100 1 28.284271247461902
spng 58 27 23 100 1 28.284271247461902
spng 59 23 16 100 1 28.284271247461902
spng 60 16 15 100 1 20
spng 61 15 14 100 1 20
spng 62 14 13 100 1 20
spng 63 13 12 100 1 20
spng 64 12 11 100 1 20
\BARFOO\
else
echo "will not over write ./lib/octanifty.xsp"
fi
if `test ! -s ./lib/pend.xsp`
then
echo "writting ./lib/pend.xsp"
cat > ./lib/pend.xsp << '\BARFOO\'


#1.0 *** XSpringies data file

cmas 0.400000
elas 1.0
kspr 10.0
kdmp 5.0


fixm 0
shws 1
cent -1
frce 0 1 10.0 0.0
frce 1 0 5.0 2.0
frce 2 0 10.0 0.0
frce 3 0 10000.0 1.0
visc 0.0
stck 0.0
step 0.050000

prec 1.0
adpt 0


gsnp 20.0 0
wall 0 0 0 0

mass 1 542.0 403.0 0.0 0.0 -1.0 1.0
mass 2 110.0 410.0 0.0 0.0 -1.0 1.0
mass 3 128.0 189.0 0.0 0.0 -1.0 1.0
mass 4 542.000550 439.714724 0.000005 0.0 4.860000 1.0
mass 5 542.000092 545.273040 0.0 0.0 2.566667 1.0
mass 6 110.000172 497.623789 0.0 0.0 6.573333 1.0
mass 7 110.000078 537.774346 0.0 0.0 1.973333 1.0
mass 8 128.303139 281.517759 0.000901 -0.000002 9.020000 1.0
mass 9 128.328227 328.325760 -0.001437 0.0 3.053333 1.0
mass 10 128.910731 352.455526 0.004823 -0.000150 1.0 1.0
mass 11 327.0 405.0 0.0 0.0 -1.0 1.0
mass 12 327.006168 505.861534 0.000012 0.0 11.173333 1.0
mass 13 314.0 193.0 0.0 0.0 -1.0 1.0
mass 14 314.062004 226.672686 0.000388 -0.000148 8.680000 1.0
mass 15 314.150118 279.541838 0.000327 -0.000203 4.073333 1.0
mass 16 314.342320 387.496158 0.000356 -0.000214 1.0 1.0
mass 17 530.0 191.0 0.0 0.0 -1.0 1.0
mass 18 530.480508 223.413144 0.005579 -0.000093 7.666667 1.0
mass 19 530.671757 248.769962 0.001509 -0.000064 1.966667 1.0
mass 20 530.216461 304.446021 -0.001475 -0.000119 3.920000 1.0
mass 21 530.728001 336.415585 0.003196 -0.000195 0.840000 1.0
spng 1 2 6 200.0 5.0 88.051122
spng 2 6 7 200.0 5.0 40.249224
spng 3 9 10 200.0 5.0 24.186773
spng 4 3 8 200.0 5.0 93.171884
spng 5 8 9 200.0 5.0 47.010637
spng 6 11 12 200.0 5.0 101.420201
spng 7 13 14 200.0 5.0 34.359830
spng 8 14 15 200.0 5.0 53.122632
spng 9 15 16 200.0 5.0 108.004438
spng 10 1 4 200.0 5.0 37.086057
spng 11 4 5 200.0 5.0 105.686650
spng 12 17 18 200.0 5.0 33.136083
spng 13 18 19 200.0 5.0 25.455844
spng 14 18 20 200.0 5.0 81.271151
spng 15 20 21 200.0 5.0 32.015621
\BARFOO\
else
echo "will not over write ./lib/pend.xsp"
fi
if `test ! -s ./lib/pendbees.xsp`
then
echo "writting ./lib/pendbees.xsp"
cat > ./lib/pendbees.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1.0

elas 0.500000
kspr 1.0
kdmp 5.0
fixm 0
shws 1
cent 2


frce 0 1 10.0 0.0
frce 1 0 5.0 2.0

frce 2 1 100.0 0.0


frce 3 0 10000.0 1.0
visc 0.0
stck 0.0
step 0.050000

prec 1.0
adpt 0


gsnp 20.0 0
wall 1 1 1 1

mass 1 292.0 369.0 0.0 0.0 -10.0 0.500000
mass 2 200.946362 243.531754 4.296648 -3.190722 10.0 0.500000
mass 3 219.374753 156.916979 40.429966 95.236370 1.0 0.500000
mass 4 296.278086 98.593745 55.958965 -28.513296 1.0 0.500000
mass 5 144.590956 246.440923 -3.574704 -85.589201 1.0 0.500000
mass 6 125.354318 235.486575 30.806894 -3.545221 1.0 0.500000
mass 7 234.477807 227.723201 -2.977061 20.418804 1.0 0.500000
mass 8 198.516279 241.518837 11.929557 -16.282766 1.0 0.500000
mass 9 109.004530 142.158076 19.659490 -13.717909 1.0 0.500000
spng 1 2 1 100.0 5.0 154.207652
\BARFOO\
else
echo "will not over write ./lib/pendbees.xsp"
fi
if `test ! -s ./lib/pendwave.xsp`
then
echo "writting ./lib/pendwave.xsp"
cat > ./lib/pendwave.xsp << '\BARFOO\'


#1.0 *** XSpringies data file

cmas 5
elas 1
kspr 10


kdmp 1
fixm 0
shws 1
cent -1
frce 0 1 10 0
frce 1 0 5 2
frce 2 0 10 0
frce 3 0 10000 1
visc 0
stck 0
step 0.025
prec 1
adpt 0

gsnp 20 0


wall 0 0 0 0

mass 1 81.6397290000000027 302.925049999999999 0 0 -0.5 1
mass 2 118.729846489619362 287.666731974590846 0 0 0.5 1
mass 3 155.497884663999514 272.495399630665531 0 0 0.5 1
mass 4 192.215867846832026 257.299213040903112 0 0 0.5 1
mass 5 228.883868543773929 242.078209090648073 0 0 0.5 1
mass 6 265.50195904023758 226.832424569283603 0 0 0.5 1
mass 7 302.070211313395646 211.561896106128046 0 0 0.5 1
mass 8 338.588696944257038 196.266660106376293 0 0 0.5 1
mass 9 375.057487029906099 180.94675268716469 0 0 5 1
mass 10 398.444618519282812 196.246884594991116 0 0 0.5 1
mass 11 421.782846005191118 211.533974485895357 0 0 0.5 1
mass 12 445.072071590107328 226.80800808547167 0 0 0.5 1
mass 13 468.312196677159875 242.068971211829592 0 0 0.5 1
mass 14 491.503122047847228 257.316849800958096 0 0 0.5 1
mass 15 514.644747940337993 272.551629931889238 0 0 0.5 1
mass 16 537.736974128273914 287.773297851652046 0 0 0.5 1
mass 17 560.779700000000048 302.981839999999977 0 0 -0.5 1
mass 18 321 303 0 0 -1 1


spng 1 1 2 100 1 8
spng 2 2 3 100 1 8
spng 3 3 4 100 1 8
spng 4 4 5 100 1 8
spng 5 5 6 100 1 8
spng 6 6 7 100 1 8
spng 7 7 8 100 1 8
spng 8 8 9 100 1 8
spng 9 9 10 100 1 8
spng 10 10 11 100 1 8
spng 11 11 12 100 1 8
spng 12 12 13 100 1 8
spng 13 13 14 100 1 8

spng 14 14 15 100 1 8
spng 15 15 16 100 1 8
spng 16 16 17 100 1 8
spng 17 9 18 400 4 140
\BARFOO\
else
echo "will not over write ./lib/pendwave.xsp"
fi
if `test ! -s ./lib/person1.xsp`
then
echo "writting ./lib/person1.xsp"
cat > ./lib/person1.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1
elas 1

kspr 10


kdmp 1
fixm 0
shws 1
cent -1
frce 0 0 10 0
frce 1 0 5 2

frce 2 0 10 0
frce 3 0 10000 1
visc 0
stck 0

step 0.3511854587
prec 1
adpt 1
gsnp 10 1


wall 1 1 1 1

mass 1 204.886727261 259.620568731 -1.67486949674 1.76948372819 1 1
mass 2 198.13311423 241.040914987 -0.487940614861 1.35643112061 1 1
mass 3 187.684480794 267.234222316 -2.14646378356 0.600628104569 1 1
mass 4 179.630375164 248.411781854 -1.14161270252 0.221969795027 1 1
mass 5 169.496468125 275.062075787 -2.53222852453 -0.289221663128 1 1
mass 6 161.474623565 256.728449547 -1.64209384511 -0.695931323623 1 1
mass 7 145.401568917 279.732989502 -1.8999546384 -0.859337127139 1 1
mass 8 145.593666616 259.950285647 -2.10535541997 -0.88772672029 1 1
mass 9 126.059290287 280.498412178 -1.87996392893 -0.735728715929 1 1
mass 10 125.631648823 258.488609731 -2.07927747701 -0.661637876239 1 1
mass 11 107.978077244 279.683059801 -1.94074716802 -0.508894497438 1 1
mass 12 105.234803734 260.04014539 -2.07312690142 -0.50428853568 1 1
mass 15 214.444772868 262.581709455 -0.9018583986 1.64331468729 1 1
mass 16 230.558842041 252.960828274 -1.74102996642 1.04880360578 1 1
mass 17 245.470459291 241.439739349 -2.01925828018 -0.00923299403737 1 1
mass 18 256.913751898 227.275565402 -2.1551727978 -1.04144679093 1 1
mass 19 270.047936628 212.570722811 -1.73859779035 -1.78018583523 1 1
mass 20 284.654440038 220.480161097 -0.978534546469 -3.01832690102 1 1
mass 21 299.406434187 235.212060253 -1.85431410735 -2.37536990719 1 1
mass 22 286.812582482 254.302639395 -1.37635952498 -2.01087090359 1 1
mass 23 270.437542672 271.390288471 -0.743725323131 -1.26471756792 1 1
mass 24 252.217865999 287.714047552 0.155740088188 0.11209163773 1 1
mass 25 232.568619124 297.012655493 0.806819925383 0.927824031103 1 1
mass 26 225.545175897 278.799650451 1.12406637941 0.41901508463 1 1
mass 27 245.486882792 317.485129941 1.11990019775 0.615678409171 1 1
mass 28 261.190216876 307.94403364 1.04851357755 0.75839258525 1 1
mass 29 257.043157517 335.408657593 1.21020029531 0.689667991767 1 1
mass 30 272.834049308 327.347330226 1.05349307085 0.954058942649 1 1
mass 31 265.228327446 354.570869599 1.01701260428 0.953254148793 1 1
mass 32 282.60068638 347.124280935 1.01709321259 1.14853324216 1 1
mass 33 286.404441803 377.521808668 0.270942951295 1.32927926385 1 1
mass 34 294.827815974 360.919827259 0.912836309115 1.7105424452 1 1
mass 35 306.4216006 387.674121706 -0.238988278481 1.95562042769 1 1
mass 36 313.671500336 371.856545217 0.557862797866 2.35585681541 1 1
mass 37 333.069065719 400.118607466 -1.64587209953 3.33284983197 1 1
mass 38 332.401561896 380.881558139 0.347022461845 3.75468129492 1 1
mass 39 257.666728165 237.391138204 -0.62759047744 -1.99132060014 1 1
mass 40 254.49376004 220.641815636 -1.49068338704 -2.00637177749 1 1
mass 41 239.951413178 245.017445779 -0.084870487519 -1.27908799601 1 1
mass 42 232.112383208 225.423624756 -1.34144926739 -0.809987707009 1 1
mass 43 219.040317175 249.460197306 0.39452865453 0.157087584438 1 1
mass 44 213.608863911 232.276243386 -1.08801453877 0.663827982597 1 1
mass 45 184.863150919 224.078296415 -1.19587220139 0.18892080629 1 1
mass 46 203.465487027 224.249344199 -1.24207524033 0.97874172765 1 1
mass 47 183.427858785 202.503893882 -0.598818303524 0.397036995079 1 1
mass 48 204.425537895 205.415613887 -0.643425528988 0.707179157902 1 1
mass 49 187.246173376 182.864907697 -0.443607195031 0.479079070731 1 1
mass 50 206.797280034 185.988235225 -0.467895076499 0.654291655064 1 1
mass 51 306.808156623 212.643834552 0.0356376905782 -1.78416877572 1 1
mass 53 323.768861204 199.337577475 1.75565920945 0.176310861576 1 1
mass 54 320.3028547 227.086522255 -1.33076245043 -0.482229352183 1 1
mass 55 335.590643951 214.114591562 0.208480259914 1.22305830562 1 1
mass 56 343.068833995 190.394758318 2.66674927179 1.83839110409 1 1
mass 57 353.056709601 206.72528973 1.20716479916 2.75011640727 1 1
mass 58 370.574101816 183.872282428 1.81442519715 3.21952039381 1 1
mass 59 368.691639016 202.995921086 1.99150428876 3.28099068525 1 1
mass 60 391.417577278 185.351976635 1.73315838193 2.98897388194 1 1
mass 61 388.057697747 205.393349031 2.26100257555 2.94850282396 1 1
mass 62 411.34752746 188.167627469 1.91572046815 2.42783177277 1 1
mass 63 408.868279834 207.262118519 2.26664232781 2.47091877412 1 1
mass 64 202.285314503 284.919601791 0.707876585199 2.35666418737 1 1
mass 65 203.662563846 264.018315545 -0.988046353 2.31969202232 1 1
mass 66 195.012993215 303.305086973 1.99932381409 2.95987368543 1 1
mass 67 184.269270381 259.634304404 -1.34511666852 3.79863247481 1 1
mass 68 165.529610322 255.484913692 -1.66711449525 5.24478050269 1 1
mass 69 161.217246864 274.950135794 -0.139042020865 5.57023253213 1 1
mass 72 156.279567034 294.17829036 1.32879936829 5.9360179046 1 1
mass 73 175.290539506 298.81012512 1.6484585405 4.4843582627 1 1
mass 74 50 510 0 0 -1 1
mass 75 590 510 0 0 -1 1
mass 76 580 40 0 0 -1 1
mass 77 50 30 0 0 -1 1
mass 80 167.613940858 178.982565069 -0.408678227168 0.29645155605 1 1
mass 81 165.714590569 188.815304856 -0.501693236171 0.277996486573 1 1
mass 82 406.563689809 226.981534 2.74806839193 2.5360108988 1 1
mass 83 396.650041726 226.022169185 2.72659674319 2.7615457029 1 1
mass 84 88.2410653591 282.688072121 -1.92752941293 -0.398663603574 1 1
mass 85 85.3929152825 262.702216147 -2.05279830311 -0.364882284337 1 1
mass 86 76.8907840246 274.153262955 -1.97866025063 -0.323321555902 1 1
mass 87 100.043562926 291.305242682 -1.91074727908 -0.482743725319 1 1
mass 88 352.289715833 379.499922878 0.861813191086 4.67098953564 1 1
mass 89 362.789220842 389.642515109 0.0615140165162 6.21572375051 1 1
mass 90 352.949562374 400.412659879 -1.08135167493 5.84193362404 1 1
mass 91 341.970890435 411.120202802 -3.74171789366 5.37067634632 1 1
spng 1 11 9 1 1 20
spng 2 9 7 1 1 20
spng 3 7 8 1 1 20
spng 4 8 10 1 1 20
spng 5 10 12 1 1 20
spng 6 12 11 1 1 20
spng 7 11 10 1 1 28.2842712475
spng 8 12 9 1 1 28.2842712475
spng 9 9 8 1 1 28.2842712475
spng 10 10 7 1 1 28.2842712475
spng 11 7 6 1 1 28.2842712475
spng 12 8 5 1 1 28.2842712475
spng 13 5 3 1 1 20
spng 14 5 4 1 1 28.2842712475
spng 15 6 3 1 1 28.2842712475
spng 16 5 6 1 1 20
spng 17 6 4 1 1 20
spng 18 4 3 1 1 20
spng 19 3 2 1 1 28.2842712475
spng 20 4 1 1 1 28.2842712475
spng 21 3 1 1 1 20
spng 22 4 2 1 1 20
spng 23 1 2 1 1 20
spng 24 15 17 1 1 40
spng 25 16 17 1 1 20
spng 26 17 18 1 1 20
spng 27 18 19 1 1 20
spng 28 19 20 1 1 20
spng 29 20 21 1 1 20
spng 30 21 22 1 1 20
spng 31 22 23 1 1 20
spng 32 23 24 1 1 20
spng 33 24 25 1 1 20
spng 34 25 26 1 1 20
spng 35 26 15 1 1 20
spng 36 15 24 1 1 44.72135955
spng 37 25 16 1 1 44.72135955
spng 38 16 23 1 1 44.72135955
spng 40 17 24 1 1 44.72135955
spng 42 18 23 1 1 44.72135955
spng 43 17 22 1 1 44.72135955
spng 44 19 22 1 1 44.72135955
spng 45 18 21 1 1 44.72135955
spng 46 26 20 1 1 80
spng 47 17 23 1 1 40
spng 48 16 24 1 1 40
spng 49 18 22 1 1 40
spng 50 1 16 1 1 28.2842712475
spng 51 2 15 1 1 28.2842712475
spng 52 24 27 1 1 28.2842712475
spng 53 25 28 1 1 28.2842712475
spng 54 27 29 1 1 20
spng 55 29 31 1 1 20
spng 56 31 32 1 1 20
spng 57 32 30 1 1 20
spng 58 30 28 1 1 20
spng 59 28 27 1 1 20
spng 60 29 30 1 1 20
spng 61 30 27 1 1 28.2842712475
spng 62 28 29 1 1 28.2842712475
spng 63 29 32 1 1 28.2842712475
spng 64 30 31 1 1 28.2842712475
spng 65 32 33 1 1 28.2842712475
spng 66 31 34 1 1 28.2842712475
spng 67 34 33 1 1 20
spng 69 35 36 1 1 20
spng 70 36 34 1 1 20
spng 71 33 35 1 1 20
spng 73 33 36 1 1 28.2842712475
spng 74 34 35 1 1 28.2842712475
spng 75 35 37 1 1 20
spng 76 37 38 1 1 20
spng 77 38 36 1 1 20
spng 78 36 37 1 1 28.2842712475
spng 79 35 38 1 1 28.2842712475
spng 80 19 39 1 1 22.360679775
spng 81 19 40 1 1 22.360679775
spng 82 51 21 1 1 22.360679775
spng 83 21 54 1 1 22.360679775
spng 84 39 40 1 1 20
spng 85 40 42 1 1 20
spng 86 42 41 1 1 20
spng 87 41 39 1 1 20
spng 88 39 42 1 1 28.2842712475
spng 89 41 40 1 1 28.2842712475
spng 90 41 43 1 1 20
spng 91 43 42 1 1 28.2842712475
spng 92 41 44 1 1 28.2842712475
spng 93 44 42 1 1 20
spng 94 43 44 1 1 20
spng 95 44 45 1 1 28.2842712475
spng 96 43 46 1 1 28.2842712475
spng 97 45 47 1 1 20
spng 98 45 46 1 1 20
spng 99 45 46 1 1 20
spng 100 48 45 1 1 28.2842712475
spng 101 46 48 1 1 20
spng 102 48 47 1 1 20
spng 103 47 46 1 1 28.2842712475
spng 104 47 49 1 1 20
spng 105 49 50 1 1 20
spng 106 48 50 1 1 20
spng 107 47 50 1 1 28.2842712475
spng 108 49 48 1 1 28.2842712475
spng 109 51 53 1 1 20
spng 110 53 55 1 1 20
spng 111 55 54 1 1 20
spng 112 54 51 1 1 20
spng 113 51 55 1 1 28.2842712475
spng 115 53 56 1 1 20
spng 116 56 57 1 1 20
spng 117 57 55 1 1 20
spng 118 53 57 1 1 28.2842712475
spng 119 56 53 1 1 20
spng 120 56 57 1 1 20
spng 121 59 56 1 1 28.2842712475
spng 123 57 58 1 1 28.2842712475
spng 124 58 59 1 1 20
spng 125 59 61 1 1 20
spng 127 60 58 1 1 20
spng 128 60 62 1 1 20
spng 129 62 63 1 1 20
spng 130 63 59 1 1 40
spng 131 61 62 1 1 28.2842712475
spng 132 60 63 1 1 28.2842712475
spng 133 60 59 1 1 28.2842712475
spng 134 58 61 1 1 28.2842712475
spng 135 60 61 1 1 20
spng 136 53 54 1 1 28.2842712475
spng 137 39 20 1 1 36.0555127546
spng 138 54 20 1 1 36.0555127546
spng 139 68 67 1 1 20
spng 140 67 65 1 1 20
spng 141 65 64 1 1 20
spng 142 64 66 1 1 20
spng 143 66 73 1 1 20
spng 144 73 72 1 1 20
spng 145 72 69 1 1 20
spng 146 69 68 1 1 20
spng 147 67 65 1 1 20
spng 148 65 66 1 1 40
spng 149 66 72 1 1 40
spng 150 72 68 1 1 40
spng 151 15 64 1 1 28.2842712475
spng 152 64 25 1 1 28.2842712475
spng 153 25 65 1 1 44.72135955
spng 154 15 66 1 1 44.72135955
spng 155 74 11 10 1 237.69728648
spng 156 37 75 10 1 278.028775489
spng 159 10 3 1 1 63.2455532034
spng 160 4 9 1 1 63.2455532034
spng 161 30 35 1 1 63.2455532034
spng 162 36 29 1 1 63.2455532034
spng 163 2 26 1 1 44.72135955
spng 164 3 16 1 1 44.72135955
spng 165 24 29 1 1 44.72135955
spng 166 30 26 1 1 63.2455532034
spng 167 68 64 1 1 44.72135955
spng 168 69 66 1 1 44.72135955
spng 169 65 69 1 1 44.72135955
spng 170 64 72 1 1 44.72135955
spng 171 68 73 1 1 44.72135955
spng 172 67 66 1 1 44.72135955
spng 173 73 65 1 1 44.72135955
spng 174 67 72 1 1 44.72135955
spng 175 69 64 1 1 40
spng 176 67 73 1 1 40
spng 177 65 72 1 1 56.5685424949
spng 178 66 68 1 1 56.5685424949
spng 179 26 64 1 1 20
spng 180 45 42 1 1 44.72135955
spng 182 46 41 1 1 44.72135955
spng 183 43 48 1 1 44.72135955
spng 184 47 44 1 1 44.72135955
spng 185 53 59 1 1 44.72135955
spng 186 58 55 1 1 44.72135955
spng 187 57 60 1 1 44.72135955
spng 188 56 61 1 1 44.72135955
spng 189 40 20 1 1 22.360679775
spng 190 20 51 1 1 22.360679775
spng 191 42 19 1 1 41.2310562562
spng 192 41 20 1 1 50
spng 193 55 21 1 1 41.2310562562
spng 194 53 20 1 1 41.2310562562
spng 195 81 47 10 1 22.360679775
spng 196 81 80 10 1 10
spng 197 80 47 10 1 28.2842712475
spng 198 81 49 10 1 22.360679775
spng 199 49 80 10 1 20
spng 200 61 83 10 1 22.360679775
spng 201 83 63 10 1 22.360679775
spng 202 61 82 10 1 28.2842712475
spng 203 63 82 10 1 20
spng 204 82 83 10 1 10
spng 205 77 80 10 1 189.73665961
spng 206 82 76 10 1 254.95097568
spng 207 85 12 10 1 20
spng 208 86 12 10 1 31.6227766017
spng 209 11 12 10 1 20
spng 210 84 12 10 1 28.2842712475
spng 211 87 12 10 1 31.6227766017
spng 212 88 38 10 1 20
spng 213 89 38 10 1 31.6227766017
spng 214 90 38 10 1 28.2842712475
spng 215 91 38 10 1 31.6227766017
spng 216 88 37 10 1 28.2842712475
spng 217 88 37 10 1 28.2842712475
spng 218 89 37 10 1 31.6227766017
spng 219 90 37 10 1 20
spng 220 91 37 10 1 14.1421356237
spng 221 85 11 10 1 28.2842712475
spng 222 86 11 10 1 31.6227766017
spng 223 84 11 10 1 20
spng 224 87 11 10 1 14.1421356237
\BARFOO\
else
echo "will not over write ./lib/person1.xsp"
fi
if `test ! -s ./lib/person2.xsp`
then
echo "writting ./lib/person2.xsp"
cat > ./lib/person2.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1
elas 1

kspr 3


kdmp 1
fixm 0
shws 1
cent -1

frce 0 0 5 0


frce 1 0 5 2
frce 2 0 10 0
frce 3 0 10000 1
visc 0
stck 0

step 0.373069775401
prec 1
adpt 1
gsnp 10 0


wall 1 1 1 1

mass 1 273.022148044735729 295.029105939035446 -0.409095720077 0.86580310094 1 1
mass 2 279.119684969316836 276.551010472703069 -0.56714599947 0.725889217645 1 1
mass 3 284.939070929001275 257.684919748049936 -0.715117570291 0.629770431878 1 1
mass 4 291.067048311651661 239.573206424322507 -0.809073304271 0.343011731995 1 1
mass 5 314.931462403424234 224.381301141764226 -0.827061261208 0.421773824718 1 1
mass 6 328.328115592508539 249.382760970670262 -0.840539684317 0.398508427534 1 1
mass 7 323.444453715201405 269.252649896107016 -0.672812737204 0.366635892012 1 1
mass 8 317.431605164454083 288.725207361492039 -0.506333654458 0.401083845324 1 1
mass 9 311.08222177958595 307.691288841147411 -0.273140637481 0.491344584277 1 1
mass 10 266.424875738422202 313.655474855874559 -0.204679488659 0.91196784955 1 1
mass 11 285.82819159069237 319.459223565201171 -0.119663784888 0.768926129594 1 1
mass 12 304.192734697557739 326.963608558555052 -0.127258293048 0.609572125177 1 1
mass 13 243.588387321255681 300.632467400690928 -0.628405714224 0.251240835053 1 1
mass 14 251.569273080480514 287.953945381840867 -0.223757087155 0.496167433889 1 1
mass 15 264.237824709212191 295.924327854784224 -0.473224774791 0.910804176924 1 1
mass 16 256.044767644448712 308.818950230506118 -0.820155566194 0.592159708521 1 1
mass 18 230.879875548285469 292.745416125667816 -0.379774270499 -0.168736586502 1 1
mass 19 211.401853450390377 284.462236404334249 -0.481245756699 0.0250517630314 1 1
mass 20 222.886026529876091 294.143879472758897 -0.269325427384 -0.238665080262 1 1
mass 21 315.524854367375951 313.519687473991326 -0.37931699893 0.553097322676 1 1
mass 22 319.301849404722986 328.262569712329878 -0.347913583081 0.561199360417 1 1
mass 23 329.982082537322356 309.874666240539057 -0.432245929937 0.564666168239 1 1
mass 24 333.769510209372982 324.367331372831757 -0.371650006898 0.535668358904 1 1
mass 25 344.48812805680177 306.032405064558475 -0.495113885385 0.461375166691 1 1
mass 26 348.272166975970265 320.59019145225858 -0.431248702144 0.461828333457 1 1
mass 27 362.480384468701345 304.94770265123492 -0.219183092884 0.489167857652 1 1
mass 28 360.467735175922712 319.870491685969739 -0.347365543569 0.41150243662 1 1
mass 29 201.794968535762166 295.967930434832112 -0.237555414741 0.24442541777 1 1
mass 30 213.187649500765815 305.654224612997723 -0.0196144500946 -0.0186085369228 1 1
mass 31 191.9672430591242 307.208123700981787 0.0110326722644 0.443715515144 1 1
mass 32 203.356111052565581 317.056821590100299 0.225968397995 0.200598056818 1 1
mass 35 377.280055537867895 307.054546610338036 -0.450726032725 0.530371989645 1 1
mass 36 375.341119020026042 321.898283186649564 -0.514274536312 0.424363778487 1 1
mass 37 392.280270344285213 308.960340842718665 -0.844906584195 0.537461689946 1 1
mass 38 390.209919327745695 323.88698342898806 -0.542274655255 0.498508712415 1 1
mass 41 238.78403217101129 280.023755179826367 0.0314233789368 0.0916870626433 1 1
mass 58 301.531884050278393 202.842645709651549 -0.462027257523 0.2211655212 1 1
mass 59 335.527476115873185 209.575857361544138 -0.57148991108 0.712095365216 1 1
mass 60 286.644481578901491 199.830732010815922 -0.307802292475 -0.0102303469161 1 1
mass 61 350.091982140235018 214.757696514837704 -0.583421063666 0.688183558267 1 1
mass 62 287.865984790629682 186.404729829026877 0.162835033148 -0.447243575368 1 1
mass 63 302.942918465933985 186.945913255701441 0.0799230186064 0.490696342866 1 1
mass 64 341.498113285836382 195.454250515990509 -0.543981637868 0.710790287226 1 1
mass 65 355.328909024971779 201.021858183849019 -0.547863737884 0.734235231896 1 1
mass 66 361.180899932780335 187.345264097673123 -0.514375323253 0.761096610581 1 1
mass 67 347.394444058090244 181.458543949602301 -0.500176563107 0.714492258201 1 1
mass 68 303.444955866624753 171.940561125486482 1.06415087324 0.514024814714 1 1
mass 69 288.669597734625881 171.046901815709361 1.14600929762 -0.432199423 1 1
mass 70 285.427424716285373 160.143843621593277 1.49214209708 -0.136738817015 1 1
mass 71 297.328562330253249 151.458444505306659 1.0490014078 -0.587840973799 1 1
mass 72 288.841405239310461 139.176133002229989 0.593532082532 -0.458074315419 1 1
mass 73 276.19614291073907 147.404250719681556 0.631108633932 -0.0271223401566 1 1
mass 74 267.998200997573804 135.193874617494913 0.279008160289 0.845057915642 1 1
mass 75 280.547227030051374 126.730466589871014 0.0464078523948 -0.0982362034353 1 1
mass 76 346.378872983588622 172.208444091558249 -0.376583570909 0.639913123733 1 1
mass 77 337.100699218870261 160.517741819500316 -0.0977429074316 0.439316060505 1 1
mass 78 327.567829337551359 149.013950756402608 0.121464226425 0.276513953735 1 1
mass 79 339.105267124173793 139.485910153098615 0.291894035206 0.495862253429 1 1
mass 80 348.753533076558654 150.88945025616087 0.099696819789 0.626107895313 1 1
mass 81 358.041463010138841 162.914463475673159 -0.176323265932 0.896598805212 1 1
mass 82 256.768318463366938 136.222566012758875 0.565424505336 0.0313445237629 1 1
mass 83 261.763757689049328 144.756858449163531 -0.676405300434 1.1856804637 1 1
mass 84 247.651463302513775 140.983893190214729 -0.270372184112 -2.66338751434 1 1
mass 85 252.572622120232325 149.955102272826565 -2.93223034225 -1.37027277052 1 1
mass 86 343.021184049749877 129.0917245591707 0.294122050766 0.524952841839 1 1
mass 87 349.846947042301224 136.487147317612283 0.30595744854 0.540974486309 1 1
mass 88 350.09028165946188 122.207329227592098 0.194676876407 0.490367950929 1 1
mass 89 357.033371255814529 129.399591808827694 0.252211481928 0.432266324429 1 1
mass 90 187.610989987915531 322.62652464521716 -0.344604932041 0.270730539939 1 1
mass 91 178.259595463110088 315.160065486454016 0.234172707744 0.83062300474 1 1
mass 92 190.734511489675327 328.028156331404716 0.769335036552 0.544508973415 1 1
mass 93 407.748081153701833 310.151441318742741 -0.408865514084 0.766068565773 1 1
mass 94 406.88223101893783 302.127130114197087 -0.338586423608 0.670824303835 1 1
mass 95 404.782869822861755 326.144932060895655 -0.150646202962 0.256531743263 1 1
mass 96 277.920280072716992 338.256059779281543 -0.063338153253 0.827161580849 1 1
mass 97 268.866226519590782 332.763309225004946 -0.0324789248703 0.685069007902 1 1
mass 98 287.013598641332237 341.323711924013594 -0.107521423351 0.841791744243 1 1
mass 100 255.320959576005492 336.831362817911383 -0.104199732809 0.37093652503 1 1
mass 101 291.287017416644403 354.761060179323749 -0.383781583635 0.966926715085 1 1
mass 102 247.554189819859062 344.045499995652676 -0.308967223069 0.193788806389 1 1
mass 103 283.435984535878333 361.690287149345295 -0.592837317994 0.757445432035 1 1
mass 104 246.514928403799047 354.645322270368524 -0.391415034261 0.236288080072 1 1
mass 105 282.433496132023208 372.278065844530715 -0.656375842824 0.779954444691 1 1
mass 106 251.200402889759033 368.086877980700365 -0.544020681038 0.29411879237 1 1
mass 107 259.576168000729808 373.736597924951013 -0.686576624277 0.541555950193 1 1
mass 108 269.022795009818708 377.171686722051675 -0.726635546771 0.648287805214 1 1
mass 109 50 490 0 0 -1 1
mass 110 560 490 0 0 -1 1
mass 111 570 40 0 0 -1 1
mass 112 70 40 0 0 -1 1
spng 1 10 1 1 1 20
spng 2 1 2 1 1 20
spng 3 2 3 1 1 20
spng 4 3 4 1 1 20
spng 5 4 5 1 1 28.284271247461902
spng 6 5 6 1 1 28.284271247461902
spng 7 6 7 1 1 20
spng 8 7 8 1 1 20
spng 9 8 9 1 1 20
spng 10 9 12 1 1 20
spng 11 12 11 1 1 20
spng 12 11 10 1 1 20
spng 13 4 8 1 1 56.568542494923804
spng 14 6 2 1 1 56.568542494923804
spng 15 3 9 1 1 56.568542494923804
spng 16 7 1 1 1 56.568542494923804
spng 17 2 12 1 1 56.568542494923804
spng 18 8 10 1 1 56.568542494923804
spng 19 4 6 1 1 40
spng 20 3 7 1 1 40
spng 21 2 8 1 1 40
spng 22 1 9 1 1 40
spng 23 4 7 1 1 44.7213595499957961
spng 24 6 3 1 1 44.7213595499957961
spng 25 3 8 1 1 44.7213595499957961
spng 26 7 2 1 1 44.7213595499957961
spng 27 2 9 1 1 44.7213595499957961
spng 28 8 1 1 1 44.7213595499957961
spng 29 1 12 1 1 44.7213595499957961
spng 30 9 10 1 1 44.7213595499957961
spng 31 10 2 1 1 40
spng 32 1 3 1 1 40
spng 33 2 4 1 1 40
spng 34 12 8 1 1 40
spng 35 9 7 1 1 40
spng 36 8 6 1 1 40
spng 37 5 3 1 1 44.7213595499957961
spng 38 5 7 1 1 44.7213595499957961
spng 39 11 1 1 1 28.284271247461902
spng 40 11 9 1 1 28.284271247461902
spng 41 10 12 1 1 40
spng 43 32 30 1 1 15
spng 44 36 38 1 1 15
spng 46 13 16 1 1 15
spng 47 18 13 1 1 15
spng 48 22 24 1 1 15
spng 49 24 26 1 1 15
spng 51 31 29 1 1 15
spng 53 14 15 1 1 15
spng 54 30 20 1 1 15
spng 56 28 36 1 1 15
spng 57 27 35 1 1 15
spng 58 41 14 1 1 15
spng 59 21 23 1 1 15
spng 60 23 25 1 1 15
spng 61 35 37 1 1 15
spng 62 29 19 1 1 15
spng 63 31 19 1 1 30
spng 64 32 20 1 1 30
spng 65 18 16 1 1 30
spng 66 41 15 1 1 30
spng 67 22 26 1 1 30
spng 68 21 25 1 1 30
spng 69 28 38 1 1 30
spng 70 27 37 1 1 30
spng 71 32 19 1 1 33.5410196624968435
spng 72 31 20 1 1 33.5410196624968435
spng 73 29 30 1 1 15
spng 74 31 32 1 1 15
spng 75 19 20 3 1 15
spng 76 20 29 1 1 21.2132034355964265
spng 77 19 30 1 1 21.2132034355964265
spng 78 30 31 1 1 21.2132034355964265
spng 79 32 29 1 1 21.2132034355964265
spng 80 41 16 1 1 33.5410196624968435
spng 81 15 18 1 1 33.5410196624968435
spng 82 41 13 1 1 21.2132034355964265
spng 83 14 18 1 1 21.2132034355964265
spng 84 14 16 1 1 21.2132034355964265
spng 85 15 13 1 1 21.2132034355964265
spng 86 18 41 3 1 15
spng 87 13 14 1 1 15
spng 88 16 15 1 1 15
spng 89 21 24 1 1 21.2132034355964265
spng 90 21 26 1 1 33.5410196624968435
spng 91 21 22 1 1 15
spng 92 21 25 1 1 30
spng 93 22 26 1 1 30
spng 94 25 26 3 1 15
spng 95 25 24 1 1 21.2132034355964265
spng 96 25 22 1 1 33.5410196624968435
spng 97 23 24 1 1 15
spng 98 23 22 1 1 21.2132034355964265
spng 99 23 26 1 1 21.2132034355964265
spng 100 28 36 1 1 15
spng 101 27 37 1 1 30
spng 102 27 38 1 1 33.5410196624968435
spng 104 37 28 1 1 33.5410196624968435
spng 105 27 28 3 1 15
spng 106 35 36 1 1 15
spng 107 37 38 1 1 15
spng 108 38 35 1 1 21.2132034355964265
spng 109 36 27 1 1 21.2132034355964265
spng 110 28 35 1 1 21.2132034355964265
spng 111 36 37 1 1 21.2132034355964265
spng 112 28 25 3 1 21.2132034355964265
spng 113 26 27 3 1 21.2132034355964265
spng 114 18 19 3 1 21.2132034355964265
spng 115 20 41 3 1 21.2132034355964265
spng 116 10 15 1 1 18.0277563773199461
spng 117 1 16 1 1 22.3606797749978981
spng 118 9 22 1 1 22.3606797749978981
spng 119 21 12 1 1 18.0277563773199461
spng 120 60 68 1 1 33.5410196624968435
spng 121 69 58 1 1 33.5410196624968435
spng 122 70 75 1 1 33.5410196624968435
spng 123 74 71 1 1 33.5410196624968435
spng 124 60 63 1 1 21.2132034355964265
spng 125 58 62 1 1 21.2132034355964265
spng 126 62 68 1 1 21.2132034355964265
spng 127 63 69 1 1 21.2132034355964265
spng 128 70 72 1 1 21.2132034355964265
spng 129 71 73 1 1 21.2132034355964265
spng 130 73 75 1 1 21.2132034355964265
spng 131 72 74 1 1 21.2132034355964265
spng 132 74 73 1 1 15
spng 133 74 70 1 1 30
spng 134 75 72 1 1 15
spng 135 75 71 1 1 30
spng 136 68 63 1 1 15
spng 137 68 58 1 1 30
spng 138 69 62 1 1 15
spng 139 69 60 1 1 30
spng 140 60 58 1 1 15
spng 141 62 63 1 1 15
spng 142 70 71 3 1 15
spng 143 69 68 3 1 15
spng 144 73 72 1 1 15
spng 145 74 75 1 1 15
spng 146 59 66 1 1 33.5410196624968435
spng 147 67 61 1 1 33.5410196624968435
spng 148 61 64 1 1 21.2132034355964265
spng 149 64 66 1 1 21.2132034355964265
spng 150 67 65 1 1 21.2132034355964265
spng 151 65 59 1 1 21.2132034355964265
spng 152 59 61 1 1 15
spng 153 61 65 1 1 15
spng 154 61 66 1 1 30
spng 155 66 67 3 1 15
spng 156 67 64 1 1 15
spng 157 67 59 1 1 30
spng 158 59 64 1 1 15
spng 159 64 65 1 1 15
spng 160 76 80 1 1 21.2132034355964265
spng 161 76 79 1 1 33.5410196624968435
spng 162 78 80 1 1 21.2132034355964265
spng 163 78 81 1 1 33.5410196624968435
spng 164 77 81 1 1 21.2132034355964265
spng 165 77 79 1 1 21.2132034355964265
spng 166 79 78 1 1 15
spng 167 78 77 1 1 15
spng 168 78 76 1 1 30
spng 169 76 77 1 1 15
spng 170 76 81 3 1 15
spng 171 81 80 1 1 15
spng 172 81 79 1 1 30
spng 173 79 80 1 1 15
spng 174 80 77 1 1 15
spng 175 70 68 3 1 21.2132034355964265
spng 176 71 69 3 1 21.2132034355964265
spng 177 76 66 3 1 21.2132034355964265
spng 178 81 67 3 1 21.2132034355964265
spng 179 92 31 1 1 21.2132034355964265
spng 180 91 31 1 1 15.8113883008418963
spng 181 90 31 1 1 15.8113883008418963
spng 182 37 95 1 1 21.2132034355964265
spng 183 37 94 1 1 15.8113883008418963
spng 184 37 93 1 1 15.8113883008418963
spng 185 93 35 1 1 30.4138126514910994
spng 186 35 94 1 1 30.4138126514910994
spng 187 35 95 1 1 33.5410196624968435
spng 188 29 90 1 1 30.4138126514910994
spng 189 29 91 1 1 30.4138126514910994
spng 190 29 92 1 1 33.5410196624968435
spng 191 83 82 1 1 10
spng 192 82 84 1 1 10
spng 193 84 85 1 1 10
spng 194 85 83 1 1 10
spng 195 83 84 1 1 14.142135623730951
spng 196 85 82 1 1 14.142135623730951
spng 197 82 75 1 1 25.4950975679639242
spng 198 73 82 1 1 22.3606797749978981
spng 199 83 73 1 1 14.142135623730951
spng 200 83 74 1 1 11.180339887498949
spng 201 82 74 1 1 11.180339887498949
spng 202 89 86 1 1 14.142135623730951
spng 203 87 88 1 1 14.142135623730951
spng 204 88 89 1 1 10
spng 205 89 87 1 1 10
spng 206 87 86 1 1 10
spng 207 86 88 1 1 10
spng 208 86 78 1 1 25.4950975679639242
spng 209 86 79 1 1 11.180339887498949
spng 210 86 80 1 1 22.3606797749978981
spng 211 87 79 1 1 11.180339887498949
spng 212 87 80 1 1 14.142135623730951
spng 213 4 60 3 1 41.2310562561766076
spng 214 5 58 3 1 25
spng 215 5 59 1 1 25
spng 216 6 61 3 1 41.2310562561766076
spng 217 60 6 3 1 64.0312423743284853
spng 218 61 4 3 1 64.0312423743284853
spng 219 59 4 3 1 53.1507290636732463
spng 220 58 6 1 1 53.1507290636732463
spng 221 104 100 1 1 20
spng 222 97 98 1 1 20
spng 223 101 105 1 1 20
spng 224 108 106 1 1 20
spng 225 104 102 1 1 10
spng 226 102 100 1 1 10
spng 227 97 96 1 1 10
spng 228 96 98 1 1 10
spng 229 101 103 1 1 10
spng 230 103 105 1 1 10
spng 231 108 107 1 1 10
spng 232 107 106 1 1 10
spng 233 104 106 1 1 14.142135623730951
spng 234 100 97 1 1 14.142135623730951
spng 235 98 101 1 1 14.142135623730951
spng 236 105 108 1 1 14.142135623730951
spng 237 104 101 1 1 44.7213595499957961
spng 238 97 108 1 1 44.7213595499957961
spng 239 98 106 1 1 44.7213595499957961
spng 240 100 105 1 1 44.7213595499957961
spng 241 103 102 1 1 40
spng 242 96 107 1 1 40
spng 243 100 104 1 1 20
spng 244 97 101 1 1 31.6227766016837926
spng 245 101 108 1 1 31.6227766016837926
spng 246 108 104 1 1 31.6227766016837926
spng 247 106 100 1 1 31.6227766016837926
spng 248 104 97 1 1 31.6227766016837926
spng 249 98 105 1 1 31.6227766016837926
spng 250 105 106 1 1 31.6227766016837926
spng 251 98 100 1 1 31.6227766016837926
spng 252 10 96 1 1 28.284271247461902
spng 253 12 96 1 1 28.284271247461902
spng 254 11 97 1 1 22.3606797749978981
spng 255 11 98 1 1 22.3606797749978981
spng 256 11 96 1 1 20
spng 257 32 109 30 1 231.138486626524411
spng 258 38 110 30 1 237.539470404394052
spng 260 112 75 30 1 227.705950734714008
spng 261 111 78 30 1 265.800677200040241
\BARFOO\
else
echo "will not over write ./lib/person2.xsp"
fi
echo "Finished archive 9 of 16"

Douglas DeCarlo

unread,
Mar 26, 1993, 11:13:29 AM3/26/93
to
Submitted-by: d...@gradient.cis.upenn.edu (Douglas DeCarlo)
Posting-number: Volume 19, Issue 62
Archive-name: xspringies/part10

Environment: X11
Supersedes: xspringies: Volume 14, Issue 25-30

#!/bin/sh


# to extract, remove the header and type "sh filename"

if `test ! -d ./lib`
then
mkdir ./lib
echo "mkdir ./lib"
fi

if `test ! -s ./lib/jello2.xsp`
then
echo "writting ./lib/jello2.xsp"
cat > ./lib/jello2.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1.0

elas 0.010000
kspr 200.0
kdmp 1.0


fixm 0
shws 1
cent -1
frce 0 1 10.0 0.0
frce 1 0 5.0 2.0
frce 2 0 10.0 0.0
frce 3 0 10000.0 1.0
visc 0.0
stck 0.0

step 0.025000
prec 1.0
adpt 0
gsnp 40.0 0


wall 1 1 1 1

mass 1 267.341544 187.781792 0.000023 0.000313 1.0 0.010000
mass 2 307.352886 187.778570 -0.000001 0.000325 1.0 0.010000
mass 3 347.364229 187.781783 -0.000025 0.000321 1.0 0.010000
mass 4 267.323768 147.820450 0.000060 0.000247 1.0 0.010000
mass 5 307.352882 147.815849 0.000003 0.000257 1.0 0.010000
mass 6 347.381996 147.820443 -0.000053 0.000253 1.0 0.010000
mass 7 267.306829 107.892774 0.000081 0.000137 1.0 0.010000
mass 8 307.352878 107.895083 0.000007 0.000130 1.0 0.010000
mass 9 347.398927 107.892769 -0.000068 0.000141 1.0 0.010000
mass 10 267.317921 68.0 0.0 0.0 1.0 0.010000
mass 11 307.352876 68.0 0.0 0.0 1.0 0.010000
mass 12 347.387831 68.0 0.0 0.0 1.0 0.010000
spng 1 1 2 200.0 1.0 40.0
spng 2 2 3 200.0 1.0 40.0
spng 3 3 6 200.0 1.0 40.0
spng 4 6 5 200.0 1.0 40.0
spng 5 5 4 200.0 1.0 40.0
spng 6 4 7 200.0 1.0 40.0
spng 7 7 8 200.0 1.0 40.0
spng 8 8 9 200.0 1.0 40.0
spng 9 9 12 200.0 1.0 40.0
spng 10 12 11 200.0 1.0 40.0
spng 11 11 10 200.0 1.0 40.0
spng 12 10 8 200.0 1.0 56.568542
spng 13 8 6 200.0 1.0 56.568542
spng 14 6 2 200.0 1.0 56.568542
spng 15 2 4 200.0 1.0 56.568542
spng 16 4 8 200.0 1.0 56.568542
spng 17 8 12 200.0 1.0 56.568542
spng 18 9 11 200.0 1.0 56.568542
spng 19 11 7 200.0 1.0 56.568542
spng 20 7 5 200.0 1.0 56.568542
spng 21 5 9 200.0 1.0 56.568542
spng 22 3 5 200.0 1.0 56.568542
spng 23 5 1 200.0 1.0 56.568542
spng 24 1 4 200.0 1.0 40.0
spng 25 6 9 200.0 1.0 40.0
spng 26 5 8 200.0 1.0 40.0
spng 27 2 5 200.0 1.0 40.0
spng 28 8 11 200.0 1.0 40.0
spng 29 7 10 200.0 1.0 40.0
spng 30 1 6 200.0 1.0 89.442719
spng 31 3 4 200.0 1.0 89.442719
spng 32 4 9 200.0 1.0 89.442719
spng 33 6 7 200.0 1.0 89.442719
spng 34 7 12 200.0 1.0 89.442719
spng 35 9 10 200.0 1.0 89.442719
spng 36 10 5 200.0 1.0 89.442719
spng 37 4 11 200.0 1.0 89.442719
spng 38 12 5 200.0 1.0 89.442719
spng 39 6 11 200.0 1.0 89.442719
spng 40 2 9 200.0 1.0 89.442719
spng 41 3 8 200.0 1.0 89.442719
spng 42 8 1 200.0 1.0 89.442719
spng 43 2 7 200.0 1.0 89.442719
spng 44 1 11 200.0 1.0 126.491106
spng 45 2 10 200.0 1.0 126.491106
spng 46 2 12 200.0 1.0 126.491106
spng 47 11 3 200.0 1.0 126.491106
spng 48 10 6 200.0 1.0 113.137085
spng 49 4 12 200.0 1.0 113.137085
spng 50 1 9 200.0 1.0 113.137085
spng 51 3 7 200.0 1.0 113.137085
spng 52 1 12 200.0 1.0 144.222051
spng 53 10 3 200.0 1.0 144.222051
\BARFOO\
else
echo "will not over write ./lib/jello2.xsp"
fi
if `test ! -s ./lib/kalied-maker.xsp`
then
echo "writting ./lib/kalied-maker.xsp"
cat > ./lib/kalied-maker.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1
elas 1
kspr 1

kdmp 1
fixm 0
shws 1
cent -1
frce 0 0 10 0

frce 1 0 10000 2
frce 2 1 10 0


frce 3 0 10000 1
visc 0
stck 0
step 0.025
prec 1
adpt 0

gsnp 20 1


wall 1 1 1 1

mass 1 301 255 7.7232906e-13 3.8616453e-13 1 1
mass 2 341 255 7.7232906e-13 3.8616453e-13 1 1
mass 3 321 255 7.7232906e-13 3.8616453e-13 1 1
mass 4 301 275 7.7232906e-13 3.8616453e-13 1 1
mass 5 321 275 7.7232906e-13 3.8616453e-13 1 1
mass 6 341 275 7.7232906e-13 3.8616453e-13 1 1
mass 7 301 295 7.7232906e-13 3.8616453e-13 1 1
mass 8 321 295 7.7232906e-13 3.8616453e-13 1 1
mass 9 341 295 7.7232906e-13 3.8616453e-13 1 1
mass 10 281 295 7.7232906e-13 3.8616453e-13 1 1
mass 11 281 275 7.7232906e-13 3.8616453e-13 1 1
mass 12 281 255 7.7232906e-13 3.8616453e-13 1 1
mass 13 281 235 7.7232906e-13 3.8616453e-13 1 1
mass 14 301 235 7.7232906e-13 3.8616453e-13 1 1
mass 15 321 235 7.7232906e-13 3.8616453e-13 1 1
mass 16 341 235 7.7232906e-13 3.8616453e-13 1 1
mass 17 361 235 7.7232906e-13 3.8616453e-13 1 1
mass 18 361 255 7.7232906e-13 3.8616453e-13 1 1
mass 19 361 275 7.7232906e-13 3.8616453e-13 1 1
mass 20 361 295 7.7232906e-13 3.8616453e-13 1 1
mass 21 361 315 7.7232906e-13 3.8616453e-13 1 1
mass 22 341 315 7.7232906e-13 3.8616453e-13 1 1
mass 23 321 315 7.7232906e-13 3.8616453e-13 1 1
mass 24 301 315 7.7232906e-13 3.8616453e-13 1 1
mass 25 281 315 7.7232906e-13 3.8616453e-13 1 1
mass 26 261 315 7.7232906e-13 3.8616453e-13 1 1
mass 27 261 295 7.7232906e-13 3.8616453e-13 1 1
mass 28 261 275 7.7232906e-13 3.8616453e-13 1 1
mass 29 261 255 7.7232906e-13 3.8616453e-13 1 1
mass 30 261 235 7.7232906e-13 3.8616453e-13 1 1
mass 31 261 215 7.7232906e-13 3.8616453e-13 1 1
mass 32 281 215 7.7232906e-13 3.8616453e-13 1 1
mass 33 301 215 7.7232906e-13 3.8616453e-13 1 1
mass 34 321 215 7.7232906e-13 3.8616453e-13 1 1
mass 35 341 215 7.7232906e-13 3.8616453e-13 1 1
mass 36 361 215 7.7232906e-13 3.8616453e-13 1 1
mass 37 381 215 7.7232906e-13 3.8616453e-13 1 1
mass 38 381 235 7.7232906e-13 3.8616453e-13 1 1
mass 39 381 255 7.7232906e-13 3.8616453e-13 1 1
mass 40 381 275 7.7232906e-13 3.8616453e-13 1 1
mass 41 381 295 7.7232906e-13 3.8616453e-13 1 1
mass 42 381 315 7.7232906e-13 3.8616453e-13 1 1
mass 43 261 335 7.7232906e-13 3.8616453e-13 1 1
mass 44 281 335 7.7232906e-13 3.8616453e-13 1 1
mass 45 301 335 7.7232906e-13 3.8616453e-13 1 1
mass 46 321 335 7.7232906e-13 3.8616453e-13 1 1
mass 47 341 335 7.7232906e-13 3.8616453e-13 1 1
mass 48 361 335 7.7232906e-13 3.8616453e-13 1 1
mass 49 381 335 7.7232906e-13 3.8616453e-13 1 1
\BARFOO\
else
echo "will not over write ./lib/kalied-maker.xsp"
fi
if `test ! -s ./lib/kalied1.xsp`
then
echo "writting ./lib/kalied1.xsp"
cat > ./lib/kalied1.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1
elas 1
kspr 1

kdmp 1
fixm 0
shws 1
cent -1
frce 0 0 10 0

frce 1 0 400 0
frce 2 1 100 0


frce 3 0 10000 1
visc 0
stck 0
step 0.025
prec 1
adpt 0
gsnp 20 0
wall 1 1 1 1

mass 1 340.29013 263.97704 87.029152 -49.730807 1 1
mass 2 350.72109 255.18592 71.886103 -47.923949 1 1
mass 3 357.26987 245.98411 56.673251 -45.3385 1 1
mass 4 359.32134 236.67868 41.735234 -41.735148 1 1
mass 5 356.33965 227.88048 27.765232 -37.020239 1 1
mass 6 348.26649 220.46703 15.826529 -31.653014 1 1
mass 7 335.88286 215.46857 6.7507805 -27.00314 1 1
mass 8 320.99998 213.66837 -2.311821e-05 -25.133353 1 1
mass 9 306.11712 215.46859 -6.7508313 -27.003133 1 1
mass 10 285.66034 227.88051 -27.765285 -37.020233 1 1
mass 11 293.73348 220.46706 -15.826576 -31.653004 1 1
mass 12 282.67867 236.6787 -41.735284 -41.735128 1 1
mass 13 284.73017 245.98414 -56.673294 -45.338472 1 1
mass 14 291.27896 255.18595 -71.886138 -47.923918 1 1
mass 15 301.70993 263.97706 -87.029208 -49.730778 1 1
mass 16 348.18848 263.34777 85.602118 -36.68648 1 1
mass 17 359.16373 255.91813 69.686136 -34.842948 1 1
mass 18 366.09454 247.94329 53.382634 -32.029478 1 1
mass 19 368.11954 239.66037 37.020314 -27.76515 1 1
mass 20 364.35549 231.64454 21.527521 -21.527456 1 1
mass 21 354.49393 224.75913 8.948992 -13.423444 1 1
mass 22 339.22083 220.33751 1.6987519 -5.096246 1 1
mass 23 320.99998 218.94175 -1.5074526e-05 -1.214057 1 1
mass 24 302.77913 220.33752 -1.6987838 -5.0962447 1 1
mass 25 287.50605 224.75916 -8.9490285 -13.423437 1 1
mass 26 277.64451 231.64457 -21.527559 -21.527441 1 1
mass 27 273.88047 239.6604 -37.020364 -27.765143 1 1
mass 28 275.90549 247.94332 -53.382673 -32.029461 1 1
mass 29 282.83631 255.91815 -69.686181 -34.842932 1 1
mass 30 293.81157 263.34779 -85.602168 -36.686468 1 1
mass 31 354.37989 265.46288 84.217674 -24.06206 1 1
mass 32 365.95446 260.01519 67.562528 -22.520725 1 1
mass 33 373.37276 254.05092 50.002972 -20.001086 1 1
mass 34 375.53298 247.73355 31.653069 -15.826452 1 1
mass 35 371.24089 241.50612 13.423492 -8.9489353 1 1
mass 36 359.25269 236.74736 -2.3232411 2.3232732 1 1
mass 37 340.77369 235.45265 -8.9161205 17.832247 1 1
mass 38 320.99998 236.36525 4.4386852e-07 27.168034 1 1
mass 39 301.22627 235.45266 8.9161086 17.832236 1 1
mass 40 282.74729 236.74739 2.3232195 2.3232727 1 1
mass 41 270.75911 241.50615 -13.423522 -8.9489294 1 1
mass 42 266.46704 247.73358 -31.6531 -15.826442 1 1
mass 43 268.62726 254.05094 -50.003024 -20.001082 1 1
mass 44 276.0456 260.0152 -67.562546 -22.520701 1 1
mass 45 287.62017 265.46289 -84.217705 -24.062043 1 1
mass 46 358.34207 269.6654 83.167232 -11.880894 1 1
mass 47 359.74403 274.99999 82.89197 0.00014309977 1 1
mass 48 358.34205 280.33456 83.167208 11.881183 1 1
mass 49 370.37048 283.22842 65.952935 10.99229 1 1
mass 50 371.90647 275.00002 65.344256 0.00012412036 1 1
mass 51 370.37051 266.77159 65.952959 -10.992038 1 1
mass 52 378.15693 263.56865 47.254067 -9.4507107 1 1
mass 53 379.89938 275.00004 46.275383 0.00010836024 1 1
mass 54 378.15689 286.43141 47.25404 9.4509241 1 1
mass 55 380.53136 289.8829 27.003155 6.7508818 1 1
mass 56 382.33159 275.00005 25.133378 8.5158341e-05 1 1
mass 57 380.53141 260.1172 27.003177 -6.7507122 1 1
mass 58 375.66251 256.77923 5.0962822 -1.6987097 1 1
mass 59 377.05824 275.00007 1.214098 5.100715e-05 1 1
mass 60 375.66245 293.2209 5.0962773 1.6988215 1 1
mass 61 360.54733 294.77375 -17.832191 -8.916081 1 1
mass 62 359.63476 275.00007 -27.167994 -2.3217079e-06 1 1
mass 63 360.54739 255.22637 -17.832226 8.9161229 1 1
mass 64 334.46292 261.53712 -33.38628 33.386231 1 1
mass 65 319.60239 275.00002 -41.130854 -0.00010717519 1 1
mass 66 334.46292 288.46299 -33.386143 -33.386239 1 1
mass 67 320.99999 273.60245 3.4322922e-05 -41.130957 1 1
mass 68 321.00004 274.99987 1.3505908e-05 -4.6205595e-05 1 1
mass 69 320.99999 276.39765 3.4323088e-05 41.130791 1 1
mass 70 307.53705 261.53712 33.386279 33.386194 1 1
mass 71 322.39758 275.00002 41.130914 -0.0001071751 1 1
mass 72 307.53705 288.46298 33.386148 -33.386196 1 1
mass 73 281.45265 294.77374 17.832162 -8.9160734 1 1
mass 74 282.36524 275.00007 27.167964 -2.3216628e-06 1 1
mass 75 281.4526 255.22639 17.832199 8.9161117 1 1
mass 76 266.3375 256.77924 -5.0963115 -1.698706 1 1
mass 77 264.94175 275.00007 -1.214131 5.1007182e-05 1 1
mass 78 266.33756 293.22088 -5.0963055 1.6988209 1 1
mass 79 261.46867 289.88288 -27.003179 6.7508768 1 1
mass 80 259.66844 275.00005 -25.133398 8.5158442e-05 1 1
mass 81 261.46862 260.11722 -27.003201 -6.7507072 1 1
mass 82 263.8431 263.56866 -47.254092 -9.4507015 1 1
mass 83 262.10065 275.00004 -46.275428 0.0001083603 1 1
mass 84 263.84315 286.4314 -47.254065 9.4509159 1 1
mass 85 271.62955 283.22841 -65.952969 10.992284 1 1
mass 86 270.09358 275.00002 -65.344286 0.00012412044 1 1
mass 87 271.62953 266.7716 -65.952992 -10.992031 1 1
mass 88 283.65799 269.66541 -83.167281 -11.88089 1 1
mass 89 282.25603 274.99999 -82.89201 0.00014309986 1 1
mass 90 283.65801 280.33456 -83.167259 11.881174 1 1
mass 91 287.62022 284.53707 -84.217648 24.062319 1 1
mass 92 276.04566 289.98478 -67.562476 22.520946 1 1
mass 93 268.62731 295.9491 -50.003004 20.001304 1 1
mass 94 266.46712 302.26648 -31.653061 15.826613 1 1
mass 95 270.75921 308.49391 -13.423496 8.9490551 1 1
mass 96 282.7474 313.25265 2.3232242 -2.3231921 1 1
mass 97 287.50614 325.24082 -8.9489999 13.423543 1 1
mass 98 277.64461 318.35542 -21.52751 21.527575 1 1
mass 99 273.88055 310.33962 -37.020336 27.765335 1 1
mass 100 275.90557 302.05667 -53.382609 32.029665 1 1
mass 101 282.83637 294.08181 -69.686121 34.843181 1 1
mass 102 293.81162 286.65214 -85.602112 36.686757 1 1
mass 103 301.70999 286.02283 -87.029113 49.731059 1 1
mass 104 291.27903 294.81396 -71.886026 47.92414 1 1
mass 105 284.73027 304.01579 -56.673199 45.33866 1 1
mass 106 282.67878 313.32124 -41.735214 41.7353 1 1
mass 107 285.66042 322.11947 -27.765257 37.020408 1 1
mass 108 293.73357 329.53288 -15.826537 31.653115 1 1
mass 109 300.05093 327.37268 -20.001218 50.003075 1 1
mass 110 293.94335 320.09442 -32.02957 53.38268 1 1
mass 111 291.98421 311.26973 -45.338559 56.673285 1 1
mass 112 294.32718 301.67282 -59.405172 59.405273 1 1
mass 113 300.69122 291.92397 -73.925463 61.604672 1 1
mass 114 310.73218 282.33412 -88.379297 63.128247 1 1
mass 115 319.84757 275.98775 -107.87818 92.467206 1 1
mass 116 310.56714 285.43283 -75.478 75.478148 1 1
mass 117 304.07602 295.30875 -61.60455 73.925569 1 1
mass 118 301.18604 304.72093 -47.924019 71.886113 1 1
mass 119 301.9182 313.1636 -34.843071 69.686198 1 1
mass 120 306.01523 319.9543 -22.520835 67.562521 1 1
mass 121 354.37984 284.53708 84.217617 24.062336 1 1
mass 122 365.95439 289.9848 67.562459 22.520966 1 1
mass 123 359.16367 294.08183 69.686076 34.843197 1 1
mass 124 348.18843 286.65216 85.602062 36.686768 1 1
mass 125 340.29005 286.02284 87.029055 49.73109 1 1
mass 126 350.721 294.81399 71.885993 47.924167 1 1
mass 127 341.30883 291.92399 73.925413 61.60471 1 1
mass 128 331.26788 282.33414 88.379236 63.128296 1 1
mass 129 322.15249 275.98777 107.87794 92.467114 1 1
mass 130 331.43291 285.43285 75.477929 75.478194 1 1
mass 131 312.57711 266.57701 108.71756 108.71774 1 1
mass 132 321.98784 276.1524 92.466845 107.87831 1 1
mass 133 328.33419 285.2678 63.127978 88.379483 1 1
mass 134 337.92402 295.30878 61.60449 73.925603 1 1
mass 135 347.67285 301.67284 59.405109 59.405293 1 1
mass 136 350.0158 311.26976 45.338505 56.67331 1 1
mass 137 340.81399 304.72096 47.923957 71.886144 1 1
mass 138 332.02288 294.28998 49.73084 87.029234 1 1
mass 139 332.65217 302.18835 36.686552 85.602214 1 1
mass 140 340.08182 313.16362 34.842998 69.686216 1 1
mass 141 348.05665 320.09444 32.029508 53.382699 1 1
mass 142 341.94906 327.37269 20.00115 50.003082 1 1
mass 143 335.98477 319.95432 22.520763 67.562541 1 1
mass 144 330.53708 308.37975 24.062125 84.217722 1 1
mass 145 326.33457 312.34194 11.880982 83.167321 1 1
mass 146 329.2284 324.37041 10.992113 65.953025 1 1
mass 147 332.43135 332.15684 9.4507699 47.254112 1 1
mass 148 320.99999 333.89932 -3.1248195e-05 46.275483 1 1
mass 149 321 325.90637 -3.7468442e-05 65.344323 1 1
mass 150 321.00001 313.7439 -4.4097678e-05 82.89206 1 1
mass 151 315.66544 312.34193 -11.881065 83.16732 1 1
mass 152 312.7716 324.3704 -10.992187 65.953018 1 1
mass 153 309.56863 332.15683 -9.4508309 47.254105 1 1
mass 154 311.46293 308.37974 -24.062201 84.217712 1 1
mass 155 309.34785 302.18833 -36.686631 85.602202 1 1
mass 156 309.97715 294.28996 -49.730926 87.029202 1 1
mass 157 313.66586 285.26778 -63.128075 88.379429 1 1
mass 158 320.01221 276.15239 -92.467034 107.87836 1 1
mass 159 329.42295 266.57699 -108.71759 108.71769 1 1
mass 160 357.26977 304.01582 56.673157 45.338687 1 1
mass 161 359.32124 313.32127 41.735164 41.73532 1 1
mass 162 356.33958 322.11949 27.7652 37.020417 1 1
mass 163 348.26641 329.5329 15.826487 31.653126 1 1
mass 164 335.88281 334.53133 6.7507577 27.003223 1 1
mass 165 320.99998 336.33152 -2.3118309e-05 25.133422 1 1
mass 166 306.11717 334.53131 -6.7508085 27.003216 1 1
mass 167 366.09445 302.05669 53.382568 32.029685 1 1
mass 168 373.37271 295.94911 50.002951 20.001311 1 1
mass 169 375.53289 302.2665 31.653028 15.826625 1 1
mass 170 368.11946 310.33964 37.020283 27.765346 1 1
mass 171 364.35539 318.35545 21.527471 21.527589 1 1
mass 172 371.2408 308.49394 13.423465 8.9490635 1 1
mass 173 359.25259 313.25268 -2.3232486 -2.3231907 1 1
mass 174 354.49384 325.24085 8.9489644 13.42355 1 1
mass 175 339.22078 329.66247 1.6987447 5.0963447 1 1
mass 176 340.77364 314.5474 -8.9160877 -17.832152 1 1
mass 177 320.99998 313.63476 4.438214e-07 -27.167932 1 1
mass 178 320.99998 331.05824 -1.5074554e-05 1.214172 1 1
mass 179 302.77919 329.66245 -1.6987787 5.0963427 1 1
mass 180 301.22633 314.54739 8.9160723 -17.832143 1 1
mass 181 331.26795 267.66571 88.379416 -63.127968 1 1
mass 182 341.30891 258.07588 73.925541 -61.604493 1 1
mass 183 347.67293 248.32706 59.405177 -59.405077 1 1
mass 184 350.0159 238.73013 45.338601 -56.673166 1 1
mass 185 348.05674 229.90546 32.029573 -53.382562 1 1
mass 186 341.94911 222.62724 20.001171 -50.002901 1 1
mass 187 332.43139 217.84304 9.4507957 -47.254027 1 1
mass 188 320.99999 216.10059 -3.1248127e-05 -46.275329 1 1
mass 189 309.56859 217.84305 -9.4508567 -47.25402 1 1
mass 190 300.05088 222.62725 -20.001239 -50.002894 1 1
mass 191 293.94327 229.90548 -32.029635 -53.382543 1 1
mass 192 291.98412 238.73016 -45.338654 -56.67314 1 1
mass 193 294.3271 248.32708 -59.405244 -59.405054 1 1
mass 194 300.69114 258.0759 -73.925591 -61.604455 1 1
mass 195 310.73211 267.66573 -88.379468 -63.127919 1 1
mass 196 322.15254 274.01207 107.87766 -92.466382 1 1
mass 197 331.43299 264.56699 75.478084 -75.477954 1 1
mass 198 337.9241 254.69106 61.604615 -73.925435 1 1
mass 199 340.81407 245.27888 47.924065 -71.886019 1 1
mass 200 340.08188 236.83623 34.843059 -69.686057 1 1
mass 201 335.98484 230.0455 22.520832 -67.562484 1 1
mass 202 329.22843 225.62944 10.992135 -65.952909 1 1
mass 203 321 224.09347 -3.7468369e-05 -65.344219 1 1
mass 204 312.77157 225.62945 -10.992209 -65.952903 1 1
mass 205 306.01517 230.04553 -22.520904 -67.562464 1 1
mass 206 301.91814 236.83625 -34.843132 -69.68604 1 1
mass 207 301.18595 245.27891 -47.924131 -71.885986 1 1
mass 208 304.07594 254.69109 -61.604679 -73.925397 1 1
mass 209 310.56707 264.56701 -75.478164 -75.4779 1 1
mass 210 319.84751 274.01208 -107.8779 -92.466474 1 1
mass 211 312.57716 283.42279 108.71774 -108.71765 1 1
mass 212 321.98789 273.84742 92.466554 -107.87748 1 1
mass 213 328.33427 264.73201 63.128138 -88.379285 1 1
mass 214 332.02295 255.70984 49.730936 -87.029064 1 1
mass 215 332.65222 247.81148 36.686605 -85.602028 1 1
mass 216 330.53713 241.62006 24.062174 -84.217622 1 1
mass 217 326.33459 237.65788 11.881004 -83.16717 1 1
mass 218 321.00001 236.25591 -4.4097573e-05 -82.89192 1 1
mass 219 315.66542 237.65789 -11.881085 -83.16717 1 1
mass 220 311.46289 241.62007 -24.062256 -84.217599 1 1
mass 221 309.3478 247.81149 -36.686687 -85.602014 1 1
mass 222 309.97709 255.70986 -49.731021 -87.029033 1 1
mass 223 313.66578 264.73203 -63.128237 -88.379231 1 1
mass 224 320.01215 273.84744 -92.466752 -107.87757 1 1
mass 225 329.4229 283.4228 -108.71777 -108.7176 1 1
mass 226 301.03812 292.46659 115.70872 -101.24508 1 1
mass 227 309.86256 283.35302 123.00007 -92.249962 1 1
mass 228 318.794 276.3787 129.56431 -80.977467 1 1
mass 229 326.76645 272.11672 108.21888 -54.10921 1 1
mass 230 333.8184 270.19306 100.86483 -37.824125 1 1
mass 231 339.47384 270.3815 100.08721 -25.021634 1 1
mass 232 343.04583 272.24423 99.461858 -12.432568 1 1
mass 233 344.26102 274.99997 99.16279 0.00016513535 1 1
mass 234 343.04581 277.75569 99.461838 12.432901 1 1
mass 235 339.47381 279.61841 100.08717 25.021988 1 1
mass 236 333.81835 279.80683 100.86473 37.824518 1 1
mass 237 326.76641 277.88314 108.21894 54.109766 1 1
mass 238 318.79393 273.62113 129.56409 80.977883 1 1
mass 239 309.86251 266.64679 122.99992 92.250085 1 1
mass 240 301.03806 257.53321 115.7086 101.24512 1 1
mass 241 292.57711 246.577 108.71762 108.71769 1 1
mass 242 303.53331 255.03796 101.24501 115.7087 1 1
mass 243 312.64688 263.8624 92.249901 123.00003 1 1
mass 244 319.6212 272.79383 80.977471 129.56436 1 1
mass 245 323.88319 280.7663 54.109458 108.21934 1 1
mass 246 325.80687 287.81824 37.824195 100.8649 1 1
mass 247 325.61844 293.47369 25.021723 100.08729 1 1
mass 248 323.75572 297.04568 12.432674 99.461924 1 1
mass 249 321.00001 298.26087 -4.6632363e-05 99.16284 1 1
mass 250 318.24429 297.04568 -12.432766 99.461922 1 1
mass 251 316.38158 293.47367 -25.021823 100.08727 1 1
mass 252 316.19316 287.81822 -37.824307 100.86488 1 1
mass 253 318.11684 280.76629 -54.10961 108.21935 1 1
mass 254 322.37885 272.79382 -80.977594 129.56428 1 1
mass 255 329.35318 263.86238 -92.249937 122.99999 1 1
mass 256 338.46675 255.03794 -101.24503 115.70866 1 1
mass 257 349.42295 246.57699 -108.71762 108.71766 1 1
mass 258 340.962 257.53319 -115.7086 101.24509 1 1
mass 259 332.13756 266.64677 -122.99993 92.250038 1 1
mass 260 323.20613 273.62112 -129.56414 80.97781 1 1
mass 261 315.23366 277.88312 -108.21914 54.109799 1 1
mass 262 308.18172 279.80681 -100.86479 37.824482 1 1
mass 263 302.52626 279.6184 -100.08721 25.021972 1 1
mass 264 298.95426 277.75568 -99.461867 12.432897 1 1
mass 265 297.73904 274.99997 -99.16281 0.00016513564 1 1
mass 266 298.95424 272.24424 -99.461898 -12.432564 1 1
mass 267 302.52623 270.38151 -100.08725 -25.021617 1 1
mass 268 308.18167 270.19307 -100.86488 -37.824091 1 1
mass 269 315.23361 272.11674 -108.21908 -54.109243 1 1
mass 270 323.20607 276.37872 -129.56436 -80.977407 1 1
mass 271 332.13751 283.35304 -123.00008 -92.249915 1 1
mass 272 340.96194 292.46661 -115.70872 -101.24505 1 1
mass 273 349.4229 303.4228 -108.71772 -108.71765 1 1
mass 274 338.4667 294.96184 -101.24515 -115.70864 1 1
mass 275 329.35313 286.1374 -92.250099 -122.99997 1 1
mass 276 322.37879 277.20596 -80.977819 -129.5641 1 1
mass 277 318.11679 269.2335 -54.10955 -108.21868 1 1
mass 278 316.19312 262.18156 -37.824413 -100.86471 1 1
mass 279 316.38155 256.5261 -25.021882 -100.08713 1 1
mass 280 318.24428 252.9541 -12.432801 -99.4618 1 1
mass 281 321.00001 251.73889 -4.6632075e-05 -99.16276 1 1
mass 282 323.75574 252.9541 12.4327 -99.461813 1 1
mass 283 325.61848 256.52609 25.021782 -100.08715 1 1
mass 284 325.80692 262.18154 37.8243 -100.86474 1 1
mass 285 323.88324 269.23349 54.109398 -108.21867 1 1
mass 286 319.62126 277.20594 80.977708 -129.56415 1 1
mass 287 312.64693 286.13738 92.250063 -123.00001 1 1
mass 288 303.53336 294.96182 101.24514 -115.70868 1 1
mass 289 292.57716 303.42278 108.71772 -108.71768 1 1
\BARFOO\
else
echo "will not over write ./lib/kalied1.xsp"
fi
if `test ! -s ./lib/kalied2.xsp`
then
echo "writting ./lib/kalied2.xsp"
cat > ./lib/kalied2.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1
elas 1
kspr 1

kdmp 1
fixm 4


shws 1
cent -1
frce 0 0 10 0

frce 1 0 100 0
frce 2 1 20 0


frce 3 0 10000 1
visc 0
stck 0
step 0.025
prec 1
adpt 0

gsnp 20 1


wall 0 0 0 0

mass 1 253.11392 342.88608 -18.519384 18.519384 1 1
mass 2 321 267.31438 2.2533475e-12 -53.794247 1 1
mass 3 293.52766 329.94468 14.97073 -29.941459 1 1
mass 4 266.05532 302.47234 29.941459 -14.97073 1 1
mass 5 328.68562 275 53.794247 1.3405463e-12 1 1
mass 6 266.05532 247.52766 29.941459 14.97073 1 1
mass 7 253.11392 207.11392 -18.519384 -18.519384 1 1
mass 8 293.52766 220.05532 14.97073 29.941459 1 1
mass 9 321 282.68562 2.2533475e-12 53.794247 1 1
mass 10 348.47234 220.05532 -14.97073 29.941459 1 1
mass 11 348.47234 329.94468 -14.97073 -29.941459 1 1
mass 12 388.88608 342.88608 18.519384 18.519384 1 1
mass 13 375.94468 302.47234 -29.941459 -14.97073 1 1
mass 14 313.31438 275 -53.794247 1.3405463e-12 1 1
mass 15 375.94468 247.52766 -29.941459 14.97073 1 1
mass 16 388.88608 207.11392 18.519384 -18.519384 1 1
mass 17 241.69877 215.52408 4.7755778 3.5816834 1 1
mass 18 307.84979 271.71245 50.933826 12.733457 1 1
mass 19 307.84979 278.28755 50.933826 -12.733457 1 1
mass 20 241.69877 334.47592 4.7755778 -3.5816834 1 1
mass 21 261.52408 354.30123 3.5816834 -4.7755778 1 1
mass 22 317.71245 288.15021 12.733457 -50.933826 1 1
mass 23 324.28755 288.15021 -12.733457 -50.933826 1 1
mass 24 380.47592 354.30123 -3.5816834 -4.7755778 1 1
mass 25 400.30123 334.47592 -4.7755778 -3.5816834 1 1
mass 26 334.15021 278.28755 -50.933826 -12.733457 1 1
mass 27 334.15021 271.71245 -50.933826 12.733457 1 1
mass 28 400.30123 215.52408 -4.7755778 3.5816834 1 1
mass 29 380.47592 195.69877 -3.5816834 4.7755778 1 1
mass 30 324.28755 261.84979 -12.733457 50.933826 1 1
mass 31 317.71245 261.84979 12.733457 50.933826 1 1
mass 32 261.52408 195.69877 3.5816834 4.7755778 1 1
mass 33 337.85709 291.85709 -25.583303 -25.583303 1 1
mass 34 281.42534 255.21267 3.8180324 1.9090162 1 1
mass 35 306.37483 275 31.814851 4.6168449e-12 1 1
mass 36 281.42534 294.78733 3.8180324 -1.9090162 1 1
mass 37 337.85709 258.14291 -25.583303 25.583303 1 1
mass 38 301.21267 314.57466 1.9090162 -3.8180324 1 1
mass 39 321 289.62517 1.9997646e-12 -31.814851 1 1
mass 40 340.78733 314.57466 -1.9090162 -3.8180324 1 1
mass 41 304.14291 258.14291 25.583303 25.583303 1 1
mass 42 360.57466 294.78733 -3.8180324 -1.9090162 1 1
mass 43 335.62517 275 -31.814851 4.6168449e-12 1 1
mass 44 360.57466 255.21267 -3.8180324 1.9090162 1 1
mass 45 304.14291 291.85709 25.583303 -25.583303 1 1
mass 46 340.78733 235.42534 -1.9090162 3.8180324 1 1
mass 47 321 260.37483 1.9997646e-12 31.814851 1 1
mass 48 301.21267 235.42534 1.9090162 3.8180324 1 1
mass 49 293.41104 254.30828 -19.942239 -14.956679 1 1
mass 50 295.55839 268.6396 23.740486 5.9351215 1 1
mass 51 295.55839 281.3604 23.740486 -5.9351215 1 1
mass 52 293.41104 295.69172 -19.942239 14.956679 1 1
mass 53 300.30828 302.58896 -14.956679 19.942239 1 1
mass 54 314.6396 300.44161 5.9351215 -23.740486 1 1
mass 55 327.3604 300.44161 -5.9351215 -23.740486 1 1
mass 56 341.69172 302.58896 14.956679 19.942239 1 1
mass 57 348.58896 295.69172 19.942239 14.956679 1 1
mass 58 346.44161 281.3604 -23.740486 -5.9351215 1 1
mass 59 346.44161 268.6396 -23.740486 5.9351215 1 1
mass 60 348.58896 254.30828 19.942239 -14.956679 1 1
mass 61 341.69172 247.41104 14.956679 -19.942239 1 1
mass 62 327.3604 249.55839 -5.9351215 23.740486 1 1
mass 63 314.6396 249.55839 5.9351215 23.740486 1 1
mass 64 300.30828 247.41104 -14.956679 -19.942239 1 1
mass 65 313.81596 267.81596 -19.040046 -19.040046 1 1
mass 66 324.14342 276.57171 24.518421 12.259211 1 1
mass 67 340.9848 275 -1.2380577 7.8631594e-14 1 1
mass 68 324.14342 273.42829 24.518421 -12.259211 1 1
mass 69 313.81596 282.18404 -19.040046 19.040046 1 1
mass 70 322.57171 271.85658 12.259211 -24.518421 1 1
mass 71 321 255.0152 -8.3482677e-13 1.2380577 1 1
mass 72 319.42829 271.85658 -12.259211 -24.518421 1 1
mass 73 328.18404 282.18404 19.040046 19.040046 1 1
mass 74 317.85658 273.42829 -24.518421 -12.259211 1 1
mass 75 301.0152 275 1.2380577 7.8631594e-14 1 1
mass 76 317.85658 276.57171 -24.518421 12.259211 1 1
mass 77 328.18404 267.81596 19.040046 -19.040046 1 1
mass 79 319.42829 278.14342 -12.259211 24.518421 1 1
mass 80 322.57171 278.14342 12.259211 24.518421 1 1
mass 81 321 294.9848 -8.3482677e-13 -1.2380577 1 1
mass 82 324.48776 278.48776 6.5396334 6.5396334 1 1
mass 83 322.46735 275 9.5234068 4.1998808e-12 1 1
mass 84 324.48776 271.51224 6.5396334 -6.5396334 1 1
mass 85 321 273.53265 1.51992e-11 -9.5234068 1 1
mass 86 317.51224 271.51224 -6.5396334 -6.5396334 1 1
mass 87 321 276.46735 1.51992e-11 9.5234068 1 1
mass 88 317.51224 278.48776 -6.5396334 6.5396334 1 1
mass 89 319.53265 275 -9.5234068 4.1998808e-12 1 1
\BARFOO\
else
echo "will not over write ./lib/kalied2.xsp"
fi
if `test ! -s ./lib/lgrid.xsp`
then
echo "writting ./lib/lgrid.xsp"
cat > ./lib/lgrid.xsp << '\BARFOO\'


#1.0 *** XSpringies data file

cmas 0.5


elas 1
kspr 10
kdmp 1
fixm 0
shws 1
cent -1
frce 0 0 10 0
frce 1 0 5 2
frce 2 0 10 0
frce 3 0 10000 1
visc 0
stck 0
step 0.025
prec 1
adpt 0
gsnp 20 0
wall 1 1 1 1

mass 1 140 430 0 0 -0.5 1
mass 2 460 430 0 0 -0.5 1
mass 3 160 430 0 0 0.5 1
mass 4 180 430 0 0 0.5 1
mass 5 200 430 0 0 0.5 1
mass 6 220 430 0 0 0.5 1
mass 7 240 430 0 0 0.5 1
mass 8 260 430 0 0 0.5 1
mass 9 280 430 0 0 0.5 1
mass 10 300 430 0 0 0.5 1
mass 11 320 430 0 0 0.5 1
mass 12 340 430 0 0 0.5 1
mass 13 360 430 0 0 0.5 1
mass 14 380 430 0 0 0.5 1
mass 15 400 430 0 0 0.5 1
mass 16 420 430 0 0 0.5 1
mass 17 440 430 0 0 0.5 1
mass 18 140 410 0 0 0.5 1
mass 19 140 390 0 0 0.5 1
mass 20 140 370 0 0 0.5 1
mass 21 140 350 0 0 0.5 1
mass 22 140 330 0 0 0.5 1
mass 23 140 310 0 0 0.5 1
mass 24 140 290 0 0 0.5 1
mass 25 140 270 0 0 0.5 1
mass 26 140 250 0 0 0.5 1
mass 27 140 230 0 0 0.5 1
mass 28 140 210 0 0 0.5 1
mass 29 140 190 0 0 0.5 1
mass 30 140 170 0 0 0.5 1
mass 31 140 150 0 0 0.5 1
mass 32 140 130 0 0 0.5 1
mass 33 140 110 0 0 -0.5 1
spng 1 3 1 200 5 20
spng 2 3 4 200 5 20
spng 3 4 5 200 5 20
spng 4 5 6 200 5 20
spng 5 6 7 200 5 20
spng 6 7 8 200 5 20
spng 7 8 9 200 5 20
spng 8 9 10 200 5 20
spng 9 10 11 200 5 20
spng 10 11 12 200 5 20
spng 11 12 13 200 5 20
spng 12 13 14 200 5 20
spng 13 14 15 200 5 20
spng 14 15 16 200 5 20
spng 15 16 17 200 5 20
spng 16 17 2 200 5 20
spng 17 1 18 200 5 20
spng 18 18 19 200 5 20
spng 19 19 20 200 5 20
spng 20 20 21 200 5 20
spng 21 21 22 200 5 20
spng 22 22 23 200 5 20
spng 23 23 24 200 5 20
spng 24 24 25 200 5 20
spng 25 25 26 200 5 20
spng 26 26 27 200 5 20
spng 27 27 28 200 5 20
spng 28 28 29 200 5 20
spng 29 29 30 200 5 20
spng 30 30 31 200 5 20
spng 31 31 32 200 5 20
spng 32 3 32 200 5 300.665927567458141
spng 33 31 4 200 5 282.84271247461902
spng 34 30 5 200 5 266.833281282526684
spng 35 29 6 200 5 252.982212813470341
spng 36 28 7 200 5 241.660919471891447
spng 37 27 8 200 5 233.238075793812015
spng 38 26 9 200 5 228.035085019827591
spng 39 25 10 200 5 226.274169979695216
spng 40 24 11 200 5 228.035085019827591
spng 41 23 12 200 5 233.238075793812015
spng 42 22 13 200 5 241.660919471891447
spng 43 21 14 200 5 252.982212813470341
spng 44 20 15 200 5 266.833281282526684
spng 45 19 16 200 5 282.84271247461902
spng 46 18 17 200 5 300.665927567458141
spng 47 33 32 200 5 20
\BARFOO\
else
echo "will not over write ./lib/lgrid.xsp"
fi
if `test ! -s ./lib/lissajous.xsp`
then
echo "writting ./lib/lissajous.xsp"
cat > ./lib/lissajous.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1.0

elas 1.0
kspr 1.0
kdmp 1.0

fixm 0
shws 1
cent -1

frce 0 0 10.0 0.0


frce 1 0 5.0 2.0
frce 2 0 10.0 0.0

frce 3 1 10000.0 1.0
visc 0.0
stck 0.0
step 0.025000
prec 1.0
adpt 0
gsnp 20.0 1


wall 1 1 1 1

mass 65 331.162144 367.434251 212.685591 -199.422600 1.0 1.0
mass 66 309.890546 387.221956 212.676212 -196.193125 1.0 1.0
mass 67 288.640992 406.642733 212.243781 -192.057404 1.0 1.0
mass 68 267.456243 425.596866 211.377362 -186.821651 1.0 1.0
mass 69 246.380720 443.961097 210.054487 -180.202350 1.0 1.0
mass 70 225.461736 461.577298 208.239390 -171.774378 1.0 1.0
mass 71 204.750961 478.234143 205.880027 -160.878592 1.0 1.0
mass 72 184.306276 493.636104 202.903366 -146.452603 1.0 1.0
mass 73 164.194199 507.349248 199.208069 -126.724906 1.0 1.0
mass 74 144.493257 518.708196 194.653018 -98.761798 1.0 1.0
mass 75 125.298801 526.691754 189.038939 -58.568204 1.0 1.0
mass 76 106.730212 529.973887 182.078055 -5.440683 1.0 1.0
mass 77 88.942109 527.723682 173.342116 49.260690 1.0 1.0
mass 78 72.142566 520.534471 162.169997 92.141305 1.0 1.0
mass 79 56.623996 509.729421 147.498474 122.128046 1.0 1.0
mass 80 42.817264 496.405872 127.555864 143.160685 1.0 1.0
mass 81 31.384776 481.287812 99.405443 158.434751 1.0 1.0
mass 82 23.345747 464.844798 59.031315 169.907062 1.0 1.0
mass 83 20.347656 451.837500 19.838185 176.738693 1.0 1.0
mass 84 21.197241 433.781223 -36.363878 184.092574 1.0 1.0
mass 85 27.284416 415.070445 -83.039759 189.897016 1.0 1.0
mass 86 37.346131 395.842091 -116.176523 194.489804 1.0 1.0
mass 87 46.767454 381.147524 -134.273397 197.279725 1.0 1.0
mass 88 61.147359 361.264006 -152.379573 200.258725 1.0 1.0
mass 89 77.089943 341.120391 -165.849265 202.498148 1.0 1.0
mass 90 89.837967 325.884123 -173.845611 203.743064 1.0 1.0
mass 91 107.670882 305.448567 -182.476297 204.869474 1.0 1.0
mass 92 126.275193 284.929430 -189.358697 205.419182 1.0 1.0
mass 93 140.641538 269.519344 -193.631078 205.464326 1.0 1.0
mass 94 160.250222 248.989625 -198.378110 205.036537 1.0 1.0
mass 95 180.287431 228.531059 -202.231227 204.037460 1.0 1.0
mass 96 200.671747 208.202247 -205.341336 202.434227 1.0 1.0
mass 97 216.146131 193.078441 -207.252599 200.803065 1.0 1.0
mass 98 236.978470 173.132252 -209.304185 197.992910 1.0 1.0
mass 99 252.722993 158.378857 -210.503414 195.348546 1.0 1.0
mass 100 273.836286 139.053550 -211.685505 190.985124 1.0 1.0
mass 101 295.045162 120.220209 -212.419216 185.467187 1.0 1.0
mass 102 310.988138 106.494928 -212.687018 180.389910 1.0 1.0
mass 103 326.942277 93.186799 -212.717224 174.307208 1.0 1.0
mass 104 342.889795 80.380303 -212.510257 166.962766 1.0 1.0
mass 105 358.812816 68.182873 -212.063200 157.993476 1.0 1.0
mass 106 379.973823 53.116172 -211.082080 142.564058 1.0 1.0
mass 107 395.767705 42.972013 -210.043454 127.310082 1.0 1.0
mass 108 411.473428 34.133032 -208.728112 107.505119 1.0 1.0
mass 109 427.069485 27.002876 -207.115095 81.434485 1.0 1.0
mass 110 442.532578 22.114316 -205.177280 47.581460 1.0 1.0
mass 111 462.898528 20.047489 -202.026909 -7.341041 1.0 1.0
mass 112 477.946562 22.153322 -199.179108 -47.992577 1.0 1.0
mass 113 492.763331 27.069481 -195.848204 -81.758431 1.0 1.0
mass 114 502.493650 31.624075 -193.320633 -99.872597 1.0 1.0
mass 115 521.539792 43.076014 -187.392302 -127.497865 1.0 1.0
mass 116 535.398440 53.232609 -182.023179 -142.710247 1.0 1.0
mass 117 548.818429 64.401680 -175.658123 -154.674085 1.0 1.0
mass 118 561.715824 76.374746 -168.036160 -164.269517 1.0 1.0
mass 119 573.983333 88.997930 -158.787974 -172.091759 1.0 1.0
mass 120 585.480201 102.154485 -147.378711 -178.549035 1.0 1.0
mass 121 596.016707 115.753380 -133.019661 -183.927422 1.0 1.0
mass 122 605.330756 129.721796 -114.548596 -188.431897 1.0 1.0
mass 123 613.056065 144.000094 -90.351140 -192.212311 1.0 1.0
mass 124 618.695859 158.538349 -58.695094 -195.380066 1.0 1.0
mass 125 621.666230 173.293901 -19.442055 -198.019048 1.0 1.0
mass 126 621.526334 188.229591 23.113686 -200.192931 1.0 1.0
mass 127 618.299773 203.312434 61.795203 -201.950146 1.0 1.0
mass 128 612.454182 218.512619 92.748481 -203.327304 1.0 1.0
mass 129 604.571695 233.802714 116.370325 -204.351576 1.0 1.0
mass 130 595.137597 249.157023 134.422790 -205.042328 1.0 1.0
mass 131 580.744907 269.687091 152.488797 -205.465534 1.0 1.0
mass 132 564.792810 290.231565 165.932024 -205.331202 1.0 1.0
mass 133 547.661643 310.734624 176.261922 -204.635050 1.0 1.0
mass 134 529.613369 331.139119 184.392678 -203.354544 1.0 1.0
mass 135 510.837009 351.384650 190.900029 -201.446725 1.0 1.0
mass 136 481.609551 381.308586 198.408289 -197.252076 1.0 1.0
mass 137 461.569618 400.849286 202.255685 -193.405966 1.0 1.0
mass 138 441.183104 419.955397 205.360969 -188.525819 1.0 1.0
mass 139 420.518532 438.511703 207.832038 -182.359300 1.0 1.0
mass 140 410.100795 447.539599 208.854985 -178.682985 1.0 1.0
mass 141 389.128209 464.983496 210.513424 -169.825287 1.0 1.0
mass 142 368.014080 481.417134 211.692251 -158.327461 1.0 1.0
mass 143 346.804685 496.522710 212.422873 -143.015678 1.0 1.0
mass 144 325.543808 509.829063 212.724058 -121.924802 1.0 1.0
mass 145 309.589934 518.204391 212.673091 -100.435913 1.0 1.0
mass 146 293.648786 524.724007 212.384331 -72.142975 1.0 1.0
mass 147 272.444826 529.555107 211.621850 -22.353754 1.0 1.0
mass 148 251.339403 528.972890 210.409327 33.677425 1.0 1.0
mass 149 230.379026 523.136019 208.714352 80.751859 1.0 1.0
mass 150 219.968808 518.627447 207.671695 99.034251 1.0 1.0
mass 151 199.322385 507.245691 205.157382 126.914463 1.0 1.0
mass 152 178.958663 493.516453 202.002135 146.588881 1.0 1.0
mass 153 158.946959 478.102719 198.095442 160.980112 1.0 1.0
mass 154 139.369696 461.436979 193.282987 171.852151 1.0 1.0
mass 155 120.327747 443.813897 187.345730 180.263088 1.0 1.0
mass 156 111.045983 434.711552 183.861022 183.761298 1.0 1.0
mass 157 93.057409 416.030304 175.592645 189.634860 1.0 1.0
mass 158 76.002145 396.825316 165.072246 194.282717 1.0 1.0
mass 159 67.904440 387.061692 158.691542 196.223008 1.0 1.0
mass 160 52.788711 367.271347 142.838810 199.445699 1.0 1.0
mass 161 39.532352 347.198211 121.071718 201.897280 1.0 1.0
mass 162 33.820144 337.078491 106.992721 202.864079 1.0 1.0
mass 163 24.867104 316.714032 69.838796 204.322578 1.0 1.0
mass 164 20.320158 296.233774 19.045446 205.186421 1.0 1.0
mass 165 20.490141 280.832501 -23.506691 205.461738 1.0 1.0
mass 166 23.744029 265.422341 -62.124919 205.423735 1.0 1.0
mass 167 29.611479 250.026786 -93.002913 205.071734 1.0 1.0
mass 168 37.510648 234.669584 -116.563711 204.399407 1.0 1.0
mass 169 50.385833 214.295391 -139.626091 202.982473 1.0 1.0
mass 170 61.362947 199.124849 -152.597836 201.503209 1.0 1.0
mass 171 73.211471 184.079631 -162.997552 199.634786 1.0 1.0
mass 172 90.083854 164.267656 -173.982481 196.467983 1.0 1.0
mass 173 98.899040 154.491003 -178.534594 194.559388 1.0 1.0
mass 174 112.517028 140.020156 -184.443869 191.231471 1.0 1.0
mass 175 126.542985 125.822266 -189.445717 187.263200 1.0 1.0
mass 176 145.774102 107.408256 -194.982510 180.761570 1.0 1.0
mass 177 155.583332 98.465249 -197.345780 176.880215 1.0 1.0
mass 178 175.527379 81.226144 -201.394204 167.504401 1.0 1.0
mass 179 195.836419 65.058999 -204.668475 155.273263 1.0 1.0
mass 180 206.105119 57.479810 -206.053226 147.704975 1.0 1.0
mass 181 226.831286 43.618845 -208.374823 128.464932 1.0 1.0
mass 182 237.274438 37.495796 -209.329425 116.091154 1.0 1.0
mass 183 258.288019 27.419796 -210.860785 83.426347 1.0 1.0
mass 184 268.846221 23.766107 -211.448082 62.118150 1.0 1.0
mass 185 290.036575 20.083716 -212.285410 9.746004 1.0 1.0
mass 186 305.972350 20.943659 -212.628553 -32.319485 1.0 1.0
mass 187 316.606621 23.208644 -212.724699 -57.755810 1.0 1.0
mass 188 332.560459 28.776859 -212.671498 -89.382984 1.0 1.0
mass 189 353.809090 39.351211 -212.230016 -120.216466 1.0 1.0
mass 190 364.411485 45.663249 -211.847531 -131.924099 1.0 1.0
mass 191 380.272296 56.113398 -211.064984 -146.165987 1.0 1.0
mass 192 396.064708 67.513963 -210.021302 -157.428007 1.0 1.0
mass 193 416.979837 83.869038 -208.195268 -169.140374 1.0 1.0
mass 194 437.685599 101.252455 -205.823657 -178.150239 1.0 1.0
mass 195 447.942138 110.255260 -204.411280 -181.886938 1.0 1.0
mass 196 458.123962 119.434153 -202.832924 -185.203489 1.0 1.0
\BARFOO\
else
echo "will not over write ./lib/lissajous.xsp"
fi
if `test ! -s ./lib/mesh.xsp`
then
echo "writting ./lib/mesh.xsp"
cat > ./lib/mesh.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1.0

elas 1.0
kspr 150.0
kdmp 2.0


fixm 0
shws 1
cent -1

frce 0 0 10.0 0.0


frce 1 0 5.0 2.0
frce 2 0 10.0 0.0
frce 3 0 10000.0 1.0
visc 0.0
stck 0.0

step 0.100000
prec 1.0
adpt 0
gsnp 20.0 0
wall 0 0 0 1
mass 1 0.0 544.0 0.0 0.0 -1.0 1.0
mass 2 66.0 544.0 0.0 0.0 -1.0 1.0
mass 3 132.0 544.0 0.0 0.0 -1.0 1.0
mass 4 198.0 544.0 0.0 0.0 -1.0 1.0
mass 5 264.0 544.0 0.0 0.0 -1.0 1.0
mass 6 330.0 544.0 0.0 0.0 -1.0 1.0
mass 7 396.0 544.0 0.0 0.0 -1.0 1.0
mass 8 462.0 544.0 0.0 0.0 -1.0 1.0
mass 9 528.0 544.0 0.0 0.0 -1.0 1.0
mass 10 594.0 544.0 0.0 0.0 -1.0 1.0
mass 11 660.0 544.0 0.0 0.0 -1.0 1.0
mass 12 726.0 544.0 0.0 0.0 -1.0 1.0
mass 13 0.0 478.0 0.0 0.0 -1.0 1.0
mass 14 66.0 478.0 0.0 0.0 1.0 1.0
mass 15 132.0 478.0 0.0 0.0 1.0 1.0
mass 16 198.0 478.0 0.0 0.0 1.0 1.0
mass 17 264.0 478.0 0.0 0.0 1.0 1.0
mass 18 330.0 478.0 0.0 0.0 1.0 1.0
mass 19 396.0 478.0 0.0 0.0 1.0 1.0
mass 20 462.0 478.0 0.0 0.0 1.0 1.0
mass 21 528.0 478.0 0.0 0.0 1.0 1.0
mass 22 594.0 478.0 0.0 0.0 1.0 1.0
mass 23 660.0 478.0 0.0 0.0 1.0 1.0
mass 24 726.0 478.0 0.0 0.0 -1.0 1.0
mass 25 0.0 412.0 0.0 0.0 -1.0 1.0
mass 26 66.0 412.0 0.0 0.0 1.0 1.0
mass 27 132.0 412.0 0.0 0.0 1.0 1.0
mass 28 198.0 412.0 0.0 0.0 1.0 1.0
mass 29 264.0 412.0 0.0 0.0 1.0 1.0
mass 30 330.0 412.0 0.0 0.0 1.0 1.0
mass 31 396.0 412.0 0.0 0.0 1.0 1.0
mass 32 462.0 412.0 0.0 0.0 1.0 1.0
mass 33 528.0 412.0 0.0 0.0 1.0 1.0
mass 34 594.0 412.0 0.0 0.0 1.0 1.0
mass 35 660.0 412.0 0.0 0.0 1.0 1.0
mass 36 726.0 412.0 0.0 0.0 -1.0 1.0
mass 37 0.0 346.0 0.0 0.0 -1.0 1.0
mass 38 66.0 346.0 0.0 0.0 1.0 1.0
mass 39 132.0 346.0 0.0 0.0 1.0 1.0
mass 40 198.0 346.0 0.0 0.0 1.0 1.0
mass 41 264.0 346.0 0.0 0.0 1.0 1.0
mass 42 330.0 346.0 0.0 0.0 1.0 1.0
mass 43 396.0 346.0 0.0 0.0 1.0 1.0
mass 44 462.0 346.0 0.0 0.0 1.0 1.0
mass 45 528.0 346.0 0.0 0.0 1.0 1.0
mass 46 594.0 346.0 0.0 0.0 1.0 1.0
mass 47 660.0 346.0 0.0 0.0 1.0 1.0
mass 48 726.0 346.0 0.0 0.0 -1.0 1.0
mass 49 0.0 280.0 0.0 0.0 -1.0 1.0
mass 50 66.0 280.0 0.0 0.0 1.0 1.0
mass 51 132.0 280.0 0.0 0.0 1.0 1.0
mass 52 198.0 280.0 0.0 0.0 1.0 1.0
mass 53 264.0 280.0 0.0 0.0 1.0 1.0
mass 54 330.0 280.0 0.0 0.0 1.0 1.0
mass 55 396.0 280.0 0.0 0.0 1.0 1.0
mass 56 462.0 280.0 0.0 0.0 1.0 1.0
mass 57 528.0 280.0 0.0 0.0 1.0 1.0
mass 58 594.0 280.0 0.0 0.0 1.0 1.0
mass 59 660.0 280.0 0.0 0.0 1.0 1.0
mass 60 726.0 280.0 0.0 0.0 -1.0 1.0
mass 61 0.0 214.0 0.0 0.0 -1.0 1.0
mass 62 66.0 214.0 0.0 0.0 1.0 1.0
mass 63 132.0 214.0 0.0 0.0 1.0 1.0
mass 64 198.0 214.0 0.0 0.0 1.0 1.0
mass 65 264.0 214.0 0.0 0.0 1.0 1.0
mass 66 330.0 214.0 0.0 0.0 1.0 1.0
mass 67 396.0 214.0 0.0 0.0 1.0 1.0
mass 68 462.0 214.0 0.0 0.0 1.0 1.0
mass 69 528.0 214.0 0.0 0.0 1.0 1.0
mass 70 594.0 214.0 0.0 0.0 1.0 1.0
mass 71 660.0 214.0 0.0 0.0 1.0 1.0
mass 72 726.0 214.0 0.0 0.0 -1.0 1.0
mass 73 0.0 148.0 0.0 0.0 -1.0 1.0
mass 74 66.0 148.0 0.0 0.0 1.0 1.0
mass 75 132.0 148.0 0.0 0.0 1.0 1.0
mass 76 198.0 148.0 0.0 0.0 1.0 1.0
mass 77 264.0 148.0 0.0 0.0 1.0 1.0
mass 78 330.0 148.0 0.0 0.0 1.0 1.0
mass 79 396.0 148.0 0.0 0.0 1.0 1.0
mass 80 462.0 148.0 0.0 0.0 1.0 1.0
mass 81 528.0 148.0 0.0 0.0 1.0 1.0
mass 82 594.0 148.0 0.0 0.0 1.0 1.0
mass 83 660.0 148.0 0.0 0.0 1.0 1.0
mass 84 726.0 148.0 0.0 0.0 -1.0 1.0
mass 85 0.0 82.0 0.0 0.0 -1.0 1.0
mass 86 66.0 82.0 0.0 0.0 1.0 1.0
mass 87 132.0 82.0 0.0 0.0 1.0 1.0
mass 88 198.0 82.0 0.0 0.0 1.0 1.0
mass 89 264.0 82.0 0.0 0.0 1.0 1.0
mass 90 330.0 82.0 0.0 0.0 1.0 1.0
mass 91 396.0 82.0 0.0 0.0 1.0 1.0
mass 92 462.0 82.0 0.0 0.0 1.0 1.0
mass 93 528.0 82.0 0.0 0.0 1.0 1.0
mass 94 594.0 82.0 0.0 0.0 1.0 1.0
mass 95 660.0 82.0 0.0 0.0 1.0 1.0
mass 96 726.0 82.0 0.0 0.0 -1.0 1.0
mass 97 0.0 16.0 0.0 0.0 -1.0 1.0
mass 98 66.0 16.0 0.0 0.0 -1.0 1.0
mass 99 132.0 16.0 0.0 0.0 -1.0 1.0
mass 100 198.0 16.0 0.0 0.0 -1.0 1.0
mass 101 264.0 16.0 0.0 0.0 -1.0 1.0
mass 102 330.0 16.0 0.0 0.0 -1.0 1.0
mass 103 396.0 16.0 0.0 0.0 -1.0 1.0
mass 104 462.0 16.0 0.0 0.0 -1.0 1.0
mass 105 528.0 16.0 0.0 0.0 -1.0 1.0
mass 106 594.0 16.0 0.0 0.0 -1.0 1.0
mass 107 660.0 16.0 0.0 0.0 -1.0 1.0
mass 108 726.0 16.0 0.0 0.0 -1.0 1.0
spng 1 1 2 18.0 0.500000 66.0
spng 2 13 14 18.0 0.500000 66.0
spng 3 25 26 18.0 0.500000 66.0
spng 4 37 38 18.0 0.500000 66.0
spng 5 49 50 18.0 0.500000 66.0
spng 6 61 62 18.0 0.500000 66.0
spng 7 73 74 18.0 0.500000 66.0
spng 8 85 86 18.0 0.500000 66.0
spng 9 97 98 18.0 0.500000 66.0
spng 10 2 3 18.0 0.500000 66.0
spng 11 14 15 18.0 0.500000 66.0
spng 12 26 27 18.0 0.500000 66.0
spng 13 38 39 18.0 0.500000 66.0
spng 14 50 51 18.0 0.500000 66.0
spng 15 62 63 18.0 0.500000 66.0
spng 16 74 75 18.0 0.500000 66.0
spng 17 86 87 18.0 0.500000 66.0
spng 18 98 99 18.0 0.500000 66.0
spng 19 3 4 18.0 0.500000 66.0
spng 20 15 16 18.0 0.500000 66.0
spng 21 27 28 18.0 0.500000 66.0
spng 22 39 40 18.0 0.500000 66.0
spng 23 51 52 18.0 0.500000 66.0
spng 24 63 64 18.0 0.500000 66.0
spng 25 75 76 18.0 0.500000 66.0
spng 26 87 88 18.0 0.500000 66.0
spng 27 99 100 18.0 0.500000 66.0
spng 28 4 5 18.0 0.500000 66.0
spng 29 16 17 18.0 0.500000 66.0
spng 30 28 29 18.0 0.500000 66.0
spng 31 40 41 18.0 0.500000 66.0
spng 32 52 53 18.0 0.500000 66.0
spng 33 64 65 18.0 0.500000 66.0
spng 34 76 77 18.0 0.500000 66.0
spng 35 88 89 18.0 0.500000 66.0
spng 36 100 101 18.0 0.500000 66.0
spng 37 5 6 18.0 0.500000 66.0
spng 38 17 18 18.0 0.500000 66.0
spng 39 29 30 18.0 0.500000 66.0
spng 40 41 42 18.0 0.500000 66.0
spng 41 53 54 18.0 0.500000 66.0
spng 42 65 66 18.0 0.500000 66.0
spng 43 77 78 18.0 0.500000 66.0
spng 44 89 90 18.0 0.500000 66.0
spng 45 101 102 18.0 0.500000 66.0
spng 46 6 7 18.0 0.500000 66.0
spng 47 18 19 18.0 0.500000 66.0
spng 48 30 31 18.0 0.500000 66.0
spng 49 42 43 18.0 0.500000 66.0
spng 50 54 55 18.0 0.500000 66.0
spng 51 66 67 18.0 0.500000 66.0
spng 52 78 79 18.0 0.500000 66.0
spng 53 90 91 18.0 0.500000 66.0
spng 54 102 103 18.0 0.500000 66.0
spng 55 7 8 18.0 0.500000 66.0
spng 56 19 20 18.0 0.500000 66.0
spng 57 31 32 18.0 0.500000 66.0
spng 58 43 44 18.0 0.500000 66.0
spng 59 55 56 18.0 0.500000 66.0
spng 60 67 68 18.0 0.500000 66.0
spng 61 79 80 18.0 0.500000 66.0
spng 62 91 92 18.0 0.500000 66.0
spng 63 103 104 18.0 0.500000 66.0
spng 64 8 9 18.0 0.500000 66.0
spng 65 20 21 18.0 0.500000 66.0
spng 66 32 33 18.0 0.500000 66.0
spng 67 44 45 18.0 0.500000 66.0
spng 68 56 57 18.0 0.500000 66.0
spng 69 68 69 18.0 0.500000 66.0
spng 70 80 81 18.0 0.500000 66.0
spng 71 92 93 18.0 0.500000 66.0
spng 72 104 105 18.0 0.500000 66.0
spng 73 9 10 18.0 0.500000 66.0
spng 74 21 22 18.0 0.500000 66.0
spng 75 33 34 18.0 0.500000 66.0
spng 76 45 46 18.0 0.500000 66.0
spng 77 57 58 18.0 0.500000 66.0
spng 78 69 70 18.0 0.500000 66.0
spng 79 81 82 18.0 0.500000 66.0
spng 80 93 94 18.0 0.500000 66.0
spng 81 105 106 18.0 0.500000 66.0
spng 82 10 11 18.0 0.500000 66.0
spng 83 22 23 18.0 0.500000 66.0
spng 84 34 35 18.0 0.500000 66.0
spng 85 46 47 18.0 0.500000 66.0
spng 86 58 59 18.0 0.500000 66.0
spng 87 70 71 18.0 0.500000 66.0
spng 88 82 83 18.0 0.500000 66.0
spng 89 94 95 18.0 0.500000 66.0
spng 90 106 107 18.0 0.500000 66.0
spng 91 11 12 18.0 0.500000 66.0
spng 92 23 24 18.0 0.500000 66.0
spng 93 35 36 18.0 0.500000 66.0
spng 94 47 48 18.0 0.500000 66.0
spng 95 59 60 18.0 0.500000 66.0
spng 96 71 72 18.0 0.500000 66.0
spng 97 83 84 18.0 0.500000 66.0
spng 98 95 96 18.0 0.500000 66.0
spng 99 107 108 18.0 0.500000 66.0
spng 100 1 13 18.0 0.500000 66.0
spng 101 13 25 18.0 0.500000 66.0
spng 102 25 37 18.0 0.500000 66.0
spng 103 37 49 18.0 0.500000 66.0
spng 104 49 61 18.0 0.500000 66.0
spng 105 61 73 18.0 0.500000 66.0
spng 106 73 85 18.0 0.500000 66.0
spng 107 85 97 18.0 0.500000 66.0
spng 108 2 14 18.0 0.500000 66.0
spng 109 14 26 18.0 0.500000 66.0
spng 110 26 38 18.0 0.500000 66.0
spng 111 38 50 18.0 0.500000 66.0
spng 112 50 62 18.0 0.500000 66.0
spng 113 62 74 18.0 0.500000 66.0
spng 114 74 86 18.0 0.500000 66.0
spng 115 86 98 18.0 0.500000 66.0
spng 116 3 15 18.0 0.500000 66.0
spng 117 15 27 18.0 0.500000 66.0
spng 118 27 39 18.0 0.500000 66.0
spng 119 39 51 18.0 0.500000 66.0
spng 120 51 63 18.0 0.500000 66.0
spng 121 63 75 18.0 0.500000 66.0
spng 122 75 87 18.0 0.500000 66.0
spng 123 87 99 18.0 0.500000 66.0
spng 124 4 16 18.0 0.500000 66.0
spng 125 16 28 18.0 0.500000 66.0
spng 126 28 40 18.0 0.500000 66.0
spng 127 40 52 18.0 0.500000 66.0
spng 128 52 64 18.0 0.500000 66.0
spng 129 64 76 18.0 0.500000 66.0
spng 130 76 88 18.0 0.500000 66.0
spng 131 88 100 18.0 0.500000 66.0
spng 132 5 17 18.0 0.500000 66.0
spng 133 17 29 18.0 0.500000 66.0
spng 134 29 41 18.0 0.500000 66.0
spng 135 41 53 18.0 0.500000 66.0
spng 136 53 65 18.0 0.500000 66.0
spng 137 65 77 18.0 0.500000 66.0
spng 138 77 89 18.0 0.500000 66.0
spng 139 89 101 18.0 0.500000 66.0
spng 140 6 18 18.0 0.500000 66.0
spng 141 18 30 18.0 0.500000 66.0
spng 142 30 42 18.0 0.500000 66.0
spng 143 42 54 18.0 0.500000 66.0
spng 144 54 66 18.0 0.500000 66.0
spng 145 66 78 18.0 0.500000 66.0
spng 146 78 90 18.0 0.500000 66.0
spng 147 90 102 18.0 0.500000 66.0
spng 148 7 19 18.0 0.500000 66.0
spng 149 19 31 18.0 0.500000 66.0
spng 150 31 43 18.0 0.500000 66.0
spng 151 43 55 18.0 0.500000 66.0
spng 152 55 67 18.0 0.500000 66.0
spng 153 67 79 18.0 0.500000 66.0
spng 154 79 91 18.0 0.500000 66.0
spng 155 91 103 18.0 0.500000 66.0
spng 156 8 20 18.0 0.500000 66.0
spng 157 20 32 18.0 0.500000 66.0
spng 158 32 44 18.0 0.500000 66.0
spng 159 44 56 18.0 0.500000 66.0
spng 160 56 68 18.0 0.500000 66.0
spng 161 68 80 18.0 0.500000 66.0
spng 162 80 92 18.0 0.500000 66.0
spng 163 92 104 18.0 0.500000 66.0
spng 164 9 21 18.0 0.500000 66.0
spng 165 21 33 18.0 0.500000 66.0
spng 166 33 45 18.0 0.500000 66.0
spng 167 45 57 18.0 0.500000 66.0
spng 168 57 69 18.0 0.500000 66.0
spng 169 69 81 18.0 0.500000 66.0
spng 170 81 93 18.0 0.500000 66.0
spng 171 93 105 18.0 0.500000 66.0
spng 172 10 22 18.0 0.500000 66.0
spng 173 22 34 18.0 0.500000 66.0
spng 174 34 46 18.0 0.500000 66.0
spng 175 46 58 18.0 0.500000 66.0
spng 176 58 70 18.0 0.500000 66.0
spng 177 70 82 18.0 0.500000 66.0
spng 178 82 94 18.0 0.500000 66.0
spng 179 94 106 18.0 0.500000 66.0
spng 180 11 23 18.0 0.500000 66.0
spng 181 23 35 18.0 0.500000 66.0
spng 182 35 47 18.0 0.500000 66.0
spng 183 47 59 18.0 0.500000 66.0
spng 184 59 71 18.0 0.500000 66.0
spng 185 71 83 18.0 0.500000 66.0
spng 186 83 95 18.0 0.500000 66.0
spng 187 95 107 18.0 0.500000 66.0
spng 188 12 24 18.0 0.500000 66.0
spng 189 24 36 18.0 0.500000 66.0
spng 190 36 48 18.0 0.500000 66.0
spng 191 48 60 18.0 0.500000 66.0
spng 192 60 72 18.0 0.500000 66.0
spng 193 72 84 18.0 0.500000 66.0
spng 194 84 96 18.0 0.500000 66.0
spng 195 96 108 18.0 0.500000 66.0
\BARFOO\
else
echo "will not over write ./lib/mesh.xsp"
fi
echo "Finished archive 10 of 16"

Douglas DeCarlo

unread,
Mar 26, 1993, 11:13:39 AM3/26/93
to
Submitted-by: d...@gradient.cis.upenn.edu (Douglas DeCarlo)
Posting-number: Volume 19, Issue 63
Archive-name: xspringies/part11

Environment: X11
Supersedes: xspringies: Volume 14, Issue 25-30

#!/bin/sh


# to extract, remove the header and type "sh filename"

if `test ! -d ./lib`
then
mkdir ./lib
echo "mkdir ./lib"
fi

if `test ! -s ./lib/hexhexmesh.xsp`
then
echo "writting ./lib/hexhexmesh.xsp"
cat > ./lib/hexhexmesh.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1
elas 1

kspr 200
kdmp 3


fixm 0
shws 1
cent -1
frce 0 0 10 0
frce 1 0 5 2
frce 2 0 10 0
frce 3 0 10000 1
visc 0
stck 0
step 0.025
prec 1
adpt 0
gsnp 20 0
wall 1 1 1 1

mass 1 121.077395771 175.282965835 -0.00110577190056 -0.000619130349398 -1 1
mass 2 121.077395771 200.282965835 -0.00110577190215 -0.000619130349166 -1 1
mass 3 121.077395771 225.282965835 -0.00110577190372 -0.000619130348747 -1 1
mass 4 121.077395771 250.282965835 -0.00110577190434 -0.000619130349385 -1 1
mass 5 121.077395771 275.282965835 -0.00110577190516 -0.000619130350245 -1 1
mass 6 121.077395771 300.282965835 -0.00110577190427 -0.000619130349731 -1 1
mass 7 121.077395771 325.282965835 -0.00110577190356 -0.000619130349946 -1 1
mass 8 121.077395771 350.282965835 -0.00110577190315 -0.000619130348893 -1 1
mass 9 121.077395771 375.282965835 -0.00110577190094 -0.000619130348558 -1 1
mass 10 146.077395771 162.282965835 -0.00110577189924 -0.000619130346833 -1 1
mass 11 146.077406751 187.282971102 -0.000101460026936 -9.35114515078e-05 1 1

mass 13 146.077424728 237.282972476 -0.000152841204147 -8.77765279825e-05 1 1
mass 14 146.077426685 262.282964666 -0.000130277754439 -4.13802003379e-05 1 1

mass 16 146.077414008 312.282947049 -9.35547042318e-05 2.79579308948e-05 1 1
mass 17 146.077403065 337.282943792 -7.73119193585e-05 4.54866879687e-05 1 1

mass 19 146.077395771 387.282965835 -0.00110577189972 -0.000619130352893 -1 1
mass 20 171.077395771 150.282965835 -0.00110577189923 -0.00061913034483 -1 1

mass 22 171.07744615 200.28299365 -0.000245050903141 -0.000226569287175 1 1
mass 23 171.077466269 225.282995521 -0.000324823927537 -0.000225830968671 1 1

mass 25 171.077476669 275.28297216 -0.000277696138023 -5.5391910787e-05 1 1
mass 26 171.077463512 300.282955347 -0.000233323117013 3.08302410526e-05 1 1

mass 28 171.077416987 350.282938091 -0.000136336876903 9.4327847535e-05 1 1
mass 29 171.077395205 375.282944111 -6.51573842497e-05 6.04102587505e-05 1 1
mass 30 171.077395771 400.282965835 -0.00110577189883 -0.00061913035375 -1 1
mass 31 196.07739577 137.282965835 -0.00110577189871 -0.000619130341835 -1 1
mass 32 196.077420435 162.282993064 -7.75886917809e-05 -0.000140654252085 1 1
mass 33 196.077461969 187.283020305 -0.000251538205111 -0.000265767047486 1 1

mass 35 196.07752514 237.283029962 -0.0005330026704 -0.000295484856865 1 1
mass 36 196.07753548 262.28301547 -0.000521591910248 -0.000182732389471 1 1

mass 38 196.077498985 312.282968498 -0.000364791687994 6.51691363263e-05 1 1
mass 39 196.077460474 337.282949491 -0.000269294432848 0.000109495961062 1 1

mass 41 196.077392666 387.282945842 -5.85568029484e-05 5.34544437204e-05 1 1
mass 42 196.07739577 412.282965835 -0.0011057718984 -0.000619130357417 -1 1
mass 43 221.07739577 125.282965835 -0.001105771898 -0.000619130338796 -1 1
mass 44 221.077414608 150.283001322 -3.67470226854e-05 -9.97465547565e-05 1 1

mass 46 221.077515949 200.283065509 -0.000433531671287 -0.000312931337093 1 1
mass 47 221.077560182 225.283073676 -0.000649753259135 -0.000342476110972 1 1

mass 49 221.077590559 275.283048703 -0.00071524030101 -0.000137981817592 1 1
mass 50 221.07756839 300.283020861 -0.000599390925363 8.87734217801e-06 1 1

mass 52 221.077468914 350.282964725 -0.000284714420753 0.000116949565037 1 1
mass 53 221.07741863 375.282951772 -0.000136813270738 8.41228552684e-05 1 1

mass 55 221.07739577 425.282965835 -0.00110577189816 -0.000619130359367 -1 1
mass 56 246.07739577 112.282965835 -0.00110577189802 -0.000619130336164 -1 1

mass 58 246.077451426 162.283056348 -0.00010587989764 -0.000158344134752 1 1
mass 59 246.077514981 187.283094681 -0.000333650060592 -0.000259952030266 1 1

mass 61 246.077623222 237.283122857 -0.000857660291447 -0.000308089752003 1 1
mass 62 246.077644159 262.28311583 -0.000935091864684 -0.000212196932045 1 1

mass 64 246.077600775 312.283063966 -0.000686920850523 5.05112550347e-05 1 1
mass 65 246.077539477 337.283026024 -0.000455102143931 0.000110747433363 1 1

mass 67 246.077410206 387.282972089 -9.31491109083e-05 4.66754303321e-05 1 1
mass 68 246.07737968 412.282962012 -1.91320354775e-05 1.42121388363e-05 1 1
mass 69 246.07739577 437.282965835 -0.00110577189783 -0.00061913036306 -1 1
mass 70 271.07739577 100.282965835 -0.00110577189861 -0.000619130333936 -1 1
mass 71 271.07738986 125.283006058 -4.35870332143e-06 -6.25380699745e-05 1 1
mass 72 271.077429151 150.283057713 -4.55284363705e-05 -0.000130193715054 1 1

mass 74 271.077572184 200.283141049 -0.000501615833707 -0.000291669388087 1 1
mass 75 271.077637438 225.283160928 -0.000833375210378 -0.000312537573157 1 1

mass 77 271.077685036 275.283162157 -0.00106080673525 -0.00017746966806 1 1
mass 78 271.077666367 300.283142992 -0.000939196961855 -7.32361711818e-05 1 1

mass 80 271.077537454 350.283065859 -0.000376005115754 4.45379510873e-05 1 1
mass 81 271.077455927 375.283026855 -0.00015669982271 1.2323674449e-05 1 1

mass 83 271.077374589 425.282974949 -8.81090438959e-07 -1.60252634926e-05 1 1
mass 84 271.07739577 450.282965835 -0.00110577189999 -0.00061913036584 -1 1
mass 85 296.07739577 87.2829658346 -0.00110577189933 -0.000619130332441 -1 1
mass 86 296.077378864 112.282999475 9.7049661048e-07 -6.77324427105e-05 1 1

mass 88 296.077458871 162.283099902 -9.58345100168e-05 -0.000195268062531 1 1
mass 89 296.077541128 187.283146215 -0.000314816702959 -0.000263866648754 1 1

mass 91 296.077683389 237.283199469 -0.00100361691683 -0.000322628751073 1 1
mass 92 296.077708191 262.283206486 -0.00113969211156 -0.000292177245718 1 1

mass 94 296.077677524 312.2831818 -0.00093422605539 -0.000180534419819 1 1
mass 95 296.077611622 337.283145756 -0.000591970309408 -0.000119962401309 1 1

mass 97 296.077438852 387.28305637 -8.76703510973e-05 -0.000100237704812 1 1
mass 98 296.077388124 412.283016642 -1.65425513042e-05 -8.2459019848e-05 1 1

mass 100 296.07739577 462.282965835 -0.00110577189857 -0.000619130366254 -1 1
mass 101 321.07739577 75.2829658346 -0.00110577189964 -0.000619130331766 -1 1

mass 103 321.077381596 125.283019916 -2.03496532161e-06 -0.000106639989329 1 1
mass 104 321.077418946 150.283065683 -4.43971816278e-05 -0.000155041951166 1 1

mass 106 321.077583982 200.283160186 -0.000454085201567 -0.00023717409319 1 1
mass 107 321.077663195 225.283194978 -0.000840184715584 -0.00028466096073 1 1

mass 109 321.077718682 275.283221968 -0.0011682527065 -0.000323428565204 1 1
mass 110 321.077707085 300.28321583 -0.00109754085559 -0.000315288771044 1 1

mass 112 321.077583897 350.283161147 -0.000448097329923 -0.000240245496181 1 1
mass 113 321.077491979 375.283116046 -0.00016309391338 -0.000197819775203 1 1

mass 115 321.077381677 425.283021105 2.36454925667e-07 -0.000110824724322 1 1
mass 116 321.077375147 450.282984047 6.66300186366e-06 -5.20126577865e-05 1 1
mass 117 321.07739577 475.282965835 -0.00110577189931 -0.00061913036656 -1 1
mass 118 346.07739577 87.2829658346 -0.0011057718998 -0.000619130332396 -1 1
mass 119 346.077373355 112.282984191 6.89075243918e-06 -4.51427279612e-05 1 1

mass 121 346.077436978 162.283056422 -8.70490565019e-05 -9.61937297253e-05 1 1
mass 122 346.077519651 187.283101021 -0.000262418606603 -9.31660788444e-05 1 1

mass 124 346.077676145 237.283181019 -0.000929799277396 -0.000171599939876 1 1
mass 125 346.077706513 262.283200952 -0.00111242382971 -0.000238102585196 1 1

mass 127 346.077684023 312.283197857 -0.0010024999199 -0.000319628216964 1 1
mass 128 346.077626373 337.283178402 -0.000677471720382 -0.000316587134161 1 1

mass 130 346.077460063 387.283098031 -9.43430632274e-05 -0.000194767614972 1 1
mass 131 346.0774032 412.283046676 -1.48609334196e-05 -0.000132862946999 1 1

mass 133 346.07739577 462.282965835 -0.00110577189999 -0.000619130366537 -1 1
mass 134 371.07739577 100.282965835 -0.00110577190046 -0.000619130333933 -1 1
mass 135 371.077374573 125.282974306 -2.91902242015e-06 -1.69010924459e-05 1 1
mass 136 371.07739772 150.282996107 -4.85773739492e-05 -1.749723155e-05 1 1

mass 138 371.07753821 200.283065142 -0.000381584663639 4.11751107415e-05 1 1
mass 139 371.07761592 225.283107715 -0.000684599564555 1.77426641482e-05 1 1

mass 141 371.077685872 275.283162485 -0.00106042286841 -0.000179750093083 1 1
mass 142 371.077676065 300.283167782 -0.00103278681733 -0.000265804957488 1 1

mass 144 371.077572892 350.283142264 -0.000495133418687 -0.000298079497196 1 1
mass 145 371.07749523 375.283106626 -0.000197606356751 -0.000219705074226 1 1

mass 147 371.077390328 425.283007159 -3.10237958268e-06 -6.64600831924e-05 1 1
mass 148 371.07739577 450.282965835 -0.00110577190117 -0.000619130363795 -1 1
mass 149 396.07739577 112.282965835 -0.001105771902 -0.00061913033544 -1 1

mass 151 396.07740888 162.282971294 -9.36773490999e-05 4.56774537012e-05 1 1
mass 152 396.07746697 187.282991641 -0.00024131356266 9.08326872796e-05 1 1

mass 154 396.077599258 237.283061572 -0.000686057086595 4.71168120574e-05 1 1
mass 155 396.077636422 262.283093254 -0.000863572989644 -8.25456335241e-05 1 1

mass 157 396.077623537 312.283119792 -0.00085594121801 -0.000312873714784 1 1
mass 158 396.077578593 337.283113849 -0.000627984342929 -0.000328953137574 1 1

mass 160 396.077452164 387.28305389 -0.000105062008786 -0.000158906718146 1 1
mass 161 396.077403648 412.283006241 -1.09499054545e-05 -7.02963235098e-05 1 1
mass 162 396.07739577 437.282965835 -0.00110577190244 -0.000619130362096 -1 1
mass 163 421.07739577 125.282965835 -0.00110577190025 -0.000619130338567 -1 1
mass 164 421.077386285 150.282951152 -4.14715263601e-05 3.54604702177e-05 1 1

mass 166 421.077469213 200.282964712 -0.000287483202371 0.000109296566506 1 1
mass 167 421.077524676 225.282990209 -0.00045081265408 9.23516022431e-05 1 1

mass 169 421.077591395 275.283049263 -0.000714290792934 -0.000150086414342 1 1
mass 170 421.077587865 300.283068156 -0.000743006029392 -0.000288244666578 1 1

mass 172 421.077516886 350.283066831 -0.000430074396939 -0.000324089548406 1 1
mass 173 421.077464366 375.283041798 -0.000187929555192 -0.000222333861278 1 1

mass 175 421.07739577 425.282965835 -0.001105771901 -0.000619130359302 -1 1
mass 176 446.07739577 137.282965835 -0.00110577190068 -0.000619130341943 -1 1
mass 177 446.077392225 162.28294463 -5.8250194903e-05 5.46250222568e-05 1 1
mass 178 446.077421088 187.282939566 -0.000155547249982 9.94860469281e-05 1 1

mass 180 446.077498119 237.282964638 -0.000364578707205 6.86373399662e-05 1 1
mass 181 446.077525618 262.282988416 -0.000447070007521 -3.67617943597e-05 1 1

mass 183 446.07752521 312.28302536 -0.000530301987985 -0.000290343302736 1 1
mass 184 446.077498955 337.283028438 -0.000437091911696 -0.000323565533637 1 1

mass 186 446.077420822 387.282990827 -7.84638550903e-05 -0.000136592066205 1 1
mass 187 446.07739577 412.282965835 -0.00110577190034 -0.000619130355941 -1 1
mass 188 471.07739577 150.282965835 -0.00110577190067 -0.000619130344594 -1 1

mass 190 471.0774168 200.282938143 -0.000136529437013 9.1093552293e-05 1 1
mass 191 471.07744146 225.282942324 -0.000195768872409 7.98485150561e-05 1 1

mass 193 471.077477016 275.282972157 -0.000277438043374 -5.79646785132e-05 1 1
mass 194 471.077478136 300.282987356 -0.000324392239268 -0.0001576288289 1 1

mass 196 471.077446791 350.282994303 -0.000247350556966 -0.000231820566176 1 1
mass 197 471.077418377 375.282980059 -0.000114435642874 -0.000142613422018 1 1
mass 198 471.07739577 400.282965835 -0.00110577190041 -0.000619130354855 -1 1
mass 199 496.07739577 162.282965835 -0.00110577189935 -0.000619130346904 -1 1
mass 200 496.077392759 187.282945614 -5.17880148052e-05 4.66619419735e-05 1 1

mass 202 496.07741398 237.282943995 -9.46456921131e-05 4.5898050754e-05 1 1
mass 203 496.077422667 262.282951454 -0.000105998017875 1.87028077552e-05 1 1

mass 205 496.077424646 312.282968916 -0.000149877947012 -6.61125884701e-05 1 1
mass 206 496.07741756 337.282972476 -0.000143228297336 -9.75542201072e-05 1 1

mass 208 496.07739577 387.282965835 -0.00110577189834 -0.000619130352532 -1 1
mass 209 521.07739577 175.282965835 -0.00110577189983 -0.000619130348352 -1 1
mass 210 521.07739577 200.282965835 -0.00110577189633 -0.000619130348852 -1 1
mass 211 521.07739577 225.282965835 -0.00110577189715 -0.000619130349591 -1 1
mass 212 521.07739577 250.282965835 -0.00110577189324 -0.000619130349698 -1 1
mass 213 521.07739577 275.282965835 -0.00110577189376 -0.000619130350273 -1 1
mass 214 521.07739577 300.282965835 -0.00110577189544 -0.000619130349718 -1 1
mass 215 521.07739577 325.282965835 -0.00110577189534 -0.000619130349065 -1 1
mass 216 521.07739577 350.282965835 -0.00110577189707 -0.000619130349183 -1 1

mass 217 521.07739577 375.282965835 -0.00110577189896 -0.000619130349989 -1 1
spng 1 1 2 200 3 25
spng 2 2 3 200 3 25
spng 3 3 4 200 3 25
spng 4 4 5 200 3 25
spng 5 5 6 200 3 25
spng 6 6 7 200 3 25
spng 7 7 8 200 3 25
spng 8 8 9 200 3 25
spng 9 10 11 200 3 25
spng 12 13 14 200 3 25
spng 15 16 17 200 3 25
spng 20 22 23 200 3 25
spng 23 25 26 200 3 25
spng 26 28 29 200 3 25
spng 29 32 33 200 3 25
spng 32 35 36 200 3 25
spng 35 38 39 200 3 25
spng 38 41 42 200 3 25
spng 39 43 44 200 3 25
spng 42 46 47 200 3 25
spng 45 49 50 200 3 25
spng 48 52 53 200 3 25
spng 53 58 59 200 3 25
spng 56 61 62 200 3 25
spng 59 64 65 200 3 25
spng 62 67 68 200 3 25
spng 65 71 72 200 3 25
spng 68 74 75 200 3 25
spng 71 77 78 200 3 25
spng 74 80 81 200 3 25
spng 77 83 84 200 3 25
spng 78 85 86 200 3 25
spng 81 88 89 200 3 25
spng 84 91 92 200 3 25
spng 87 94 95 200 3 25
spng 90 97 98 200 3 25
spng 95 103 104 200 3 25
spng 98 106 107 200 3 25
spng 101 109 110 200 3 25
spng 104 112 113 200 3 25
spng 107 115 116 200 3 25
spng 109 118 119 200 3 25
spng 112 121 122 200 3 25
spng 115 124 125 200 3 25
spng 118 127 128 200 3 25
spng 121 130 131 200 3 25
spng 125 135 136 200 3 25
spng 128 138 139 200 3 25
spng 131 141 142 200 3 25
spng 134 144 145 200 3 25
spng 137 147 148 200 3 25
spng 140 151 152 200 3 25
spng 143 154 155 200 3 25
spng 146 157 158 200 3 25
spng 149 160 161 200 3 25
spng 151 163 164 200 3 25
spng 154 166 167 200 3 25
spng 157 169 170 200 3 25
spng 160 172 173 200 3 25
spng 164 177 178 200 3 25
spng 167 180 181 200 3 25
spng 170 183 184 200 3 25
spng 173 186 187 200 3 25
spng 176 190 191 200 3 25
spng 179 193 194 200 3 25
spng 182 196 197 200 3 25
spng 184 199 200 200 3 25
spng 187 202 203 200 3 25
spng 190 205 206 200 3 25
spng 193 209 210 200 3 25
spng 194 210 211 200 3 25
spng 195 211 212 200 3 25
spng 196 212 213 200 3 25
spng 197 213 214 200 3 25
spng 198 214 215 200 3 25
spng 199 215 216 200 3 25
spng 200 216 217 200 3 25
spng 203 3 13 200 3 27.7308492477
spng 206 6 16 200 3 27.7308492477
spng 209 9 19 200 3 27.7308492477
spng 211 11 22 200 3 28.1780056072
spng 214 14 25 200 3 28.1780056072
spng 217 17 28 200 3 28.1780056072
spng 219 19 30 200 3 28.1780056072
spng 220 20 32 200 3 27.7308492477
spng 223 23 35 200 3 27.7308492477
spng 226 26 38 200 3 27.7308492477
spng 229 29 41 200 3 27.7308492477
spng 230 30 42 200 3 27.7308492477
spng 233 33 46 200 3 28.1780056072
spng 236 36 49 200 3 28.1780056072
spng 239 39 52 200 3 28.1780056072
spng 242 42 55 200 3 28.1780056072
spng 244 44 58 200 3 27.7308492477
spng 247 47 61 200 3 27.7308492477
spng 250 50 64 200 3 27.7308492477
spng 253 53 67 200 3 27.7308492477
spng 255 55 69 200 3 27.7308492477
spng 256 56 71 200 3 28.1780056072
spng 259 59 74 200 3 28.1780056072
spng 262 62 77 200 3 28.1780056072
spng 265 65 80 200 3 28.1780056072
spng 268 68 83 200 3 28.1780056072
spng 269 69 84 200 3 28.1780056072
spng 272 72 88 200 3 27.7308492477
spng 275 75 91 200 3 27.7308492477
spng 278 78 94 200 3 27.7308492477
spng 281 81 97 200 3 27.7308492477
spng 284 84 100 200 3 27.7308492477
spng 286 86 103 200 3 28.1780056072
spng 289 89 106 200 3 28.1780056072
spng 292 92 109 200 3 28.1780056072
spng 295 95 112 200 3 28.1780056072
spng 298 98 115 200 3 28.1780056072
spng 300 100 117 200 3 28.1780056072
spng 301 101 118 200 3 27.7308492477
spng 304 104 121 200 3 27.7308492477
spng 307 107 124 200 3 27.7308492477
spng 310 110 127 200 3 27.7308492477
spng 313 113 130 200 3 27.7308492477
spng 316 116 133 200 3 27.7308492477
spng 317 118 134 200 3 28.1780056072
spng 318 119 135 200 3 28.1780056072
spng 321 122 138 200 3 28.1780056072
spng 324 125 141 200 3 28.1780056072
spng 327 128 144 200 3 28.1780056072
spng 330 131 147 200 3 28.1780056072
spng 332 134 149 200 3 27.7308492477
spng 334 136 151 200 3 27.7308492477
spng 337 139 154 200 3 27.7308492477
spng 340 142 157 200 3 27.7308492477
spng 343 145 160 200 3 27.7308492477
spng 346 149 163 200 3 28.1780056072
spng 349 152 166 200 3 28.1780056072
spng 352 155 169 200 3 28.1780056072
spng 355 158 172 200 3 28.1780056072
spng 358 161 175 200 3 28.1780056072
spng 359 163 176 200 3 27.7308492477
spng 360 164 177 200 3 27.7308492477
spng 363 167 180 200 3 27.7308492477
spng 366 170 183 200 3 27.7308492477
spng 369 173 186 200 3 27.7308492477
spng 371 176 188 200 3 28.1780056072
spng 373 178 190 200 3 28.1780056072
spng 376 181 193 200 3 28.1780056072
spng 379 184 196 200 3 28.1780056072
spng 382 188 199 200 3 27.7308492477
spng 385 191 202 200 3 27.7308492477
spng 388 194 205 200 3 27.7308492477
spng 391 197 208 200 3 27.7308492477
spng 392 199 209 200 3 28.1780056072
spng 393 200 210 200 3 28.1780056072
spng 396 203 213 200 3 28.1780056072
spng 399 206 216 200 3 28.1780056072
spng 401 1 10 200 3 28.1780056072
spng 402 2 11 200 3 28.1780056072
spng 405 5 14 200 3 28.1780056072
spng 408 8 17 200 3 28.1780056072
spng 410 10 20 200 3 27.7308492477
spng 413 13 23 200 3 27.7308492477
spng 416 16 26 200 3 27.7308492477
spng 419 19 29 200 3 27.7308492477
spng 420 20 31 200 3 28.1780056072
spng 422 22 33 200 3 28.1780056072
spng 425 25 36 200 3 28.1780056072
spng 428 28 39 200 3 28.1780056072
spng 431 31 43 200 3 27.7308492477
spng 432 32 44 200 3 27.7308492477
spng 435 35 47 200 3 27.7308492477
spng 438 38 50 200 3 27.7308492477
spng 441 41 53 200 3 27.7308492477
spng 443 43 56 200 3 28.1780056072
spng 446 46 59 200 3 28.1780056072
spng 449 49 62 200 3 28.1780056072
spng 452 52 65 200 3 28.1780056072
spng 455 55 68 200 3 28.1780056072
spng 456 56 70 200 3 27.7308492477
spng 458 58 72 200 3 27.7308492477
spng 461 61 75 200 3 27.7308492477
spng 464 64 78 200 3 27.7308492477
spng 467 67 81 200 3 27.7308492477
spng 470 70 85 200 3 28.1780056072
spng 471 71 86 200 3 28.1780056072
spng 474 74 89 200 3 28.1780056072
spng 477 77 92 200 3 28.1780056072
spng 480 80 95 200 3 28.1780056072
spng 483 83 98 200 3 28.1780056072
spng 485 85 101 200 3 27.7308492477
spng 488 88 104 200 3 27.7308492477
spng 491 91 107 200 3 27.7308492477
spng 494 94 110 200 3 27.7308492477
spng 497 97 113 200 3 27.7308492477
spng 500 100 116 200 3 27.7308492477
spng 502 103 119 200 3 28.1780056072
spng 505 106 122 200 3 28.1780056072
spng 508 109 125 200 3 28.1780056072
spng 511 112 128 200 3 28.1780056072
spng 514 115 131 200 3 28.1780056072
spng 516 117 133 200 3 28.1780056072
spng 519 121 136 200 3 27.7308492477
spng 522 124 139 200 3 27.7308492477
spng 525 127 142 200 3 27.7308492477
spng 528 130 145 200 3 27.7308492477
spng 531 133 148 200 3 27.7308492477
spng 532 135 149 200 3 28.1780056072
spng 535 138 152 200 3 28.1780056072
spng 538 141 155 200 3 28.1780056072
spng 541 144 158 200 3 28.1780056072
spng 544 147 161 200 3 28.1780056072
spng 545 148 162 200 3 28.1780056072
spng 547 151 164 200 3 27.7308492477
spng 550 154 167 200 3 27.7308492477
spng 553 157 170 200 3 27.7308492477
spng 556 160 173 200 3 27.7308492477
spng 558 162 175 200 3 27.7308492477
spng 561 166 178 200 3 28.1780056072
spng 564 169 181 200 3 28.1780056072
spng 567 172 184 200 3 28.1780056072
spng 570 175 187 200 3 28.1780056072
spng 571 177 188 200 3 27.7308492477
spng 574 180 191 200 3 27.7308492477
spng 577 183 194 200 3 27.7308492477
spng 580 186 197 200 3 27.7308492477
spng 581 187 198 200 3 27.7308492477
spng 583 190 200 200 3 28.1780056072
spng 586 193 203 200 3 28.1780056072
spng 589 196 206 200 3 28.1780056072
spng 591 198 208 200 3 28.1780056072
spng 594 202 211 200 3 27.7308492477
spng 597 205 214 200 3 27.7308492477
spng 600 208 217 200 3 27.7308492477
\BARFOO\
else
echo "will not over write ./lib/hexhexmesh.xsp"
fi
if `test ! -s ./lib/hexmesh.xsp`
then
echo "writting ./lib/hexmesh.xsp"
cat > ./lib/hexmesh.xsp << '\BARFOO\'


#1.0 *** XSpringies data file

cmas 0.400000
elas 1.0
kspr 40.0
kdmp 0.600000


fixm 0
shws 1
cent -1
frce 0 0 10.0 0.0
frce 1 0 5.0 2.0
frce 2 0 10.0 0.0
frce 3 0 10000.0 1.0

visc 0.010000
stck 0.0
step 0.100000
prec 1.0
adpt 0


gsnp 20.0 0
wall 0 0 0 1

mass 1 23.0 544.0 0.0 0.0 -1.0 1.0
mass 2 70.0 544.0 0.0 0.0 -1.0 1.0
mass 3 164.0 544.0 0.0 0.0 -1.0 1.0
mass 4 211.0 544.0 0.0 0.0 -1.0 1.0
mass 5 305.0 544.0 0.0 0.0 -1.0 1.0
mass 6 352.0 544.0 0.0 0.0 -1.0 1.0
mass 7 446.0 544.0 0.0 0.0 -1.0 1.0
mass 8 493.0 544.0 0.0 0.0 -1.0 1.0
mass 9 587.0 544.0 0.0 0.0 -1.0 1.0
mass 10 634.0 544.0 0.0 0.0 -1.0 1.0
mass 11 728.0 544.0 0.0 0.0 -1.0 1.0
mass 12 0.0 497.0 0.0 0.0 -1.0 1.0
mass 13 92.268039 497.799722 0.004311 0.001471 1.0 1.0
mass 14 142.673941 497.460916 0.004901 -0.002918 1.0 1.0
mass 15 232.969870 497.675424 0.004619 -0.000639 1.0 1.0
mass 16 283.405276 497.535684 0.006036 -0.005501 1.0 1.0
mass 17 373.769703 497.594813 -0.008143 -0.006025 1.0 1.0
mass 18 424.209735 497.603999 -0.007519 0.001629 1.0 1.0
mass 19 514.562408 497.528907 -0.008736 -0.001327 1.0 1.0
mass 20 564.990318 497.687358 -0.009954 0.007458 1.0 1.0
mass 21 654.710682 497.219337 0.001773 0.004261 1.0 1.0
mass 22 705.0 497.0 0.0 0.0 -1.0 1.0
mass 23 23.0 450.0 0.0 0.0 -1.0 1.0
mass 24 73.160942 450.364509 0.000031 0.002878 1.0 1.0
mass 25 163.004125 450.494211 0.004330 -0.004070 1.0 1.0
mass 26 213.259719 450.452749 0.005097 -0.002981 1.0 1.0
mass 27 303.550173 450.476444 -0.000392 -0.010756 1.0 1.0
mass 28 353.822777 450.455447 0.000624 -0.012047 1.0 1.0
mass 29 444.151376 450.464075 -0.012492 -0.001308 1.0 1.0
mass 30 494.419801 450.473812 -0.012654 0.001827 1.0 1.0
mass 31 584.548317 450.403884 -0.002509 0.013414 1.0 1.0
mass 32 634.769745 450.153535 -0.003770 0.009894 1.0 1.0
mass 33 728.0 450.0 0.0 0.0 -1.0 1.0
mass 34 0.0 403.0 0.0 0.0 -1.0 1.0
mass 35 93.098960 403.266106 -0.005656 0.000508 1.0 1.0
mass 36 143.324681 403.280362 -0.006115 -0.000815 1.0 1.0
mass 37 233.393453 403.388716 -0.008543 -0.010153 1.0 1.0
mass 38 283.656509 403.323103 -0.007278 -0.009953 1.0 1.0
mass 39 373.870589 403.354066 -0.000228 -0.013990 1.0 1.0
mass 40 424.139825 403.350576 0.000824 -0.007648 1.0 1.0
mass 41 514.310840 403.323038 0.002795 0.009411 1.0 1.0
mass 42 564.561300 403.301119 0.002030 0.014041 1.0 1.0
mass 43 654.763973 403.089182 0.001914 0.014543 1.0 1.0
mass 44 705.0 403.0 0.0 0.0 -1.0 1.0
mass 45 23.0 356.0 0.0 0.0 -1.0 1.0
mass 46 73.229106 356.139640 -0.001933 -0.001052 1.0 1.0
mass 47 163.341033 356.195468 -0.023343 -0.008274 1.0 1.0
mass 48 213.586079 356.204814 -0.023433 -0.005654 1.0 1.0
mass 49 303.693572 356.220596 -0.010300 -0.012240 1.0 1.0
mass 50 353.956077 356.202938 -0.007868 -0.011846 1.0 1.0
mass 51 444.104719 356.219762 0.016459 -0.001724 1.0 1.0
mass 52 494.361680 356.195999 0.017118 0.004486 1.0 1.0
mass 53 584.483101 356.171211 0.011497 0.019255 1.0 1.0
mass 54 634.724827 356.048149 0.009461 0.014070 1.0 1.0
mass 55 728.0 356.0 0.0 0.0 -1.0 1.0
mass 56 0.0 309.0 0.0 0.0 -1.0 1.0
mass 57 93.231413 309.073396 -0.018055 -0.007317 1.0 1.0
mass 58 143.470116 309.054196 -0.020206 -0.010018 1.0 1.0
mass 59 233.564481 309.086677 -0.030652 -0.009047 1.0 1.0
mass 60 283.818525 309.058422 -0.029182 -0.005314 1.0 1.0
mass 61 373.944672 309.079848 0.010852 -0.004372 1.0 1.0
mass 62 424.204221 309.066394 0.013675 -0.000873 1.0 1.0
mass 63 514.312273 309.068142 0.029423 0.009826 1.0 1.0
mass 64 564.559320 309.050361 0.028563 0.013309 1.0 1.0
mass 65 654.760097 308.996015 0.002825 0.012395 1.0 1.0
mass 66 705.0 309.0 0.0 0.0 -1.0 1.0
mass 67 23.0 262.0 0.0 0.0 -1.0 1.0
mass 68 73.239903 262.003985 -0.002825 -0.012395 1.0 1.0
mass 69 163.440680 261.949639 -0.028563 -0.013309 1.0 1.0
mass 70 213.687727 261.931858 -0.029423 -0.009826 1.0 1.0
mass 71 303.795779 261.933606 -0.013675 0.000873 1.0 1.0
mass 72 354.055328 261.920152 -0.010852 0.004372 1.0 1.0
mass 73 444.181475 261.941578 0.029182 0.005314 1.0 1.0
mass 74 494.435519 261.913323 0.030652 0.009047 1.0 1.0
mass 75 584.529884 261.945804 0.020206 0.010018 1.0 1.0
mass 76 634.768587 261.926604 0.018055 0.007317 1.0 1.0
mass 77 728.0 262.0 0.0 0.0 -1.0 1.0
mass 78 0.0 215.0 0.0 0.0 -1.0 1.0
mass 79 93.275173 214.951851 -0.009461 -0.014070 1.0 1.0
mass 80 143.516899 214.828789 -0.011497 -0.019255 1.0 1.0
mass 81 233.638320 214.804001 -0.017118 -0.004486 1.0 1.0
mass 82 283.895281 214.780238 -0.016459 0.001724 1.0 1.0
mass 83 374.043923 214.797062 0.007868 0.011846 1.0 1.0
mass 84 424.306428 214.779404 0.010300 0.012240 1.0 1.0
mass 85 514.413921 214.795186 0.023433 0.005654 1.0 1.0
mass 86 564.658967 214.804532 0.023343 0.008274 1.0 1.0
mass 87 654.770894 214.860360 0.001933 0.001052 1.0 1.0
mass 88 705.0 215.0 0.0 0.0 -1.0 1.0
mass 89 23.0 168.0 0.0 0.0 -1.0 1.0
mass 90 73.236027 167.910818 -0.001914 -0.014543 1.0 1.0
mass 91 163.438700 167.698881 -0.002030 -0.014041 1.0 1.0
mass 92 213.689160 167.676962 -0.002795 -0.009411 1.0 1.0
mass 93 303.860175 167.649424 -0.000824 0.007648 1.0 1.0
mass 94 354.129411 167.645934 0.000228 0.013990 1.0 1.0
mass 95 444.343491 167.676897 0.007278 0.009953 1.0 1.0
mass 96 494.606547 167.611284 0.008543 0.010153 1.0 1.0
mass 97 584.675319 167.719638 0.006115 0.000815 1.0 1.0
mass 98 634.901040 167.733894 0.005656 -0.000508 1.0 1.0
mass 99 728.0 168.0 0.0 0.0 -1.0 1.0
mass 100 0.0 121.0 0.0 0.0 -1.0 1.0
mass 101 93.230255 120.846465 0.003770 -0.009894 1.0 1.0
mass 102 143.451683 120.596116 0.002509 -0.013414 1.0 1.0
mass 103 233.580199 120.526188 0.012654 -0.001827 1.0 1.0
mass 104 283.848624 120.535925 0.012492 0.001308 1.0 1.0
mass 105 374.177223 120.544553 -0.000624 0.012047 1.0 1.0
mass 106 424.449827 120.523556 0.000392 0.010756 1.0 1.0
mass 107 514.740281 120.547251 -0.005097 0.002981 1.0 1.0
mass 108 564.995875 120.505789 -0.004330 0.004070 1.0 1.0
mass 109 654.839058 120.635491 -0.000031 -0.002878 1.0 1.0
mass 110 705.0 121.0 0.0 0.0 -1.0 1.0
mass 111 23.0 74.0 0.0 0.0 -1.0 1.0
mass 112 73.289318 73.780663 -0.001773 -0.004261 1.0 1.0
mass 113 163.009682 73.312642 0.009954 -0.007458 1.0 1.0
mass 114 213.437592 73.471093 0.008736 0.001327 1.0 1.0
mass 115 303.790265 73.396001 0.007519 -0.001629 1.0 1.0
mass 116 354.230297 73.405187 0.008143 0.006025 1.0 1.0
mass 117 444.594724 73.464316 -0.006036 0.005501 1.0 1.0
mass 118 495.030130 73.324576 -0.004619 0.000639 1.0 1.0
mass 119 585.326059 73.539084 -0.004901 0.002918 1.0 1.0
mass 120 635.731961 73.200278 -0.004311 -0.001471 1.0 1.0
mass 121 728.0 74.0 0.0 0.0 -1.0 1.0
mass 122 0.0 27.0 0.0 0.0 -1.0 1.0
mass 123 94.0 27.0 0.0 0.0 -1.0 1.0
mass 124 141.0 27.0 0.0 0.0 -1.0 1.0
mass 125 235.0 27.0 0.0 0.0 -1.0 1.0
mass 126 282.0 27.0 0.0 0.0 -1.0 1.0
mass 127 376.0 27.0 0.0 0.0 -1.0 1.0
mass 128 423.0 27.0 0.0 0.0 -1.0 1.0
mass 129 517.0 27.0 0.0 0.0 -1.0 1.0
mass 130 564.0 27.0 0.0 0.0 -1.0 1.0
mass 131 658.0 27.0 0.0 0.0 -1.0 1.0
mass 132 705.0 27.0 0.0 0.0 -1.0 1.0
spng 1 1 2 24.0 0.500000 47.0
spng 2 23 24 24.0 0.500000 47.0
spng 3 45 46 24.0 0.500000 47.0
spng 4 67 68 24.0 0.500000 47.0
spng 5 89 90 24.0 0.500000 47.0
spng 6 111 112 24.0 0.500000 47.0
spng 7 13 14 24.0 0.500000 47.0
spng 8 35 36 24.0 0.500000 47.0
spng 9 57 58 24.0 0.500000 47.0
spng 10 79 80 24.0 0.500000 47.0
spng 11 101 102 24.0 0.500000 47.0
spng 12 123 124 24.0 0.500000 47.0
spng 13 3 4 24.0 0.500000 47.0
spng 14 25 26 24.0 0.500000 47.0
spng 15 47 48 24.0 0.500000 47.0
spng 16 69 70 24.0 0.500000 47.0
spng 17 91 92 24.0 0.500000 47.0
spng 18 113 114 24.0 0.500000 47.0
spng 19 15 16 24.0 0.500000 47.0
spng 20 37 38 24.0 0.500000 47.0
spng 21 59 60 24.0 0.500000 47.0
spng 22 81 82 24.0 0.500000 47.0
spng 23 103 104 24.0 0.500000 47.0
spng 24 125 126 24.0 0.500000 47.0
spng 25 5 6 24.0 0.500000 47.0
spng 26 27 28 24.0 0.500000 47.0
spng 27 49 50 24.0 0.500000 47.0
spng 28 71 72 24.0 0.500000 47.0
spng 29 93 94 24.0 0.500000 47.0
spng 30 115 116 24.0 0.500000 47.0
spng 31 17 18 24.0 0.500000 47.0
spng 32 39 40 24.0 0.500000 47.0
spng 33 61 62 24.0 0.500000 47.0
spng 34 83 84 24.0 0.500000 47.0
spng 35 105 106 24.0 0.500000 47.0
spng 36 127 128 24.0 0.500000 47.0
spng 37 7 8 24.0 0.500000 47.0
spng 38 29 30 24.0 0.500000 47.0
spng 39 51 52 24.0 0.500000 47.0
spng 40 73 74 24.0 0.500000 47.0
spng 41 95 96 24.0 0.500000 47.0
spng 42 117 118 24.0 0.500000 47.0
spng 43 19 20 24.0 0.500000 47.0
spng 44 41 42 24.0 0.500000 47.0
spng 45 63 64 24.0 0.500000 47.0
spng 46 85 86 24.0 0.500000 47.0
spng 47 107 108 24.0 0.500000 47.0
spng 48 129 130 24.0 0.500000 47.0
spng 49 9 10 24.0 0.500000 47.0
spng 50 31 32 24.0 0.500000 47.0
spng 51 53 54 24.0 0.500000 47.0
spng 52 75 76 24.0 0.500000 47.0
spng 53 97 98 24.0 0.500000 47.0
spng 54 119 120 24.0 0.500000 47.0
spng 55 21 22 24.0 0.500000 47.0
spng 56 43 44 24.0 0.500000 47.0
spng 57 65 66 24.0 0.500000 47.0
spng 58 87 88 24.0 0.500000 47.0
spng 59 109 110 24.0 0.500000 47.0
spng 60 131 132 24.0 0.500000 47.0
spng 61 1 12 24.0 0.500000 47.0
spng 62 12 23 24.0 0.500000 47.0
spng 63 23 34 24.0 0.500000 47.0
spng 64 34 45 24.0 0.500000 47.0
spng 65 45 56 24.0 0.500000 47.0
spng 66 56 67 24.0 0.500000 47.0
spng 67 67 78 24.0 0.500000 47.0
spng 68 78 89 24.0 0.500000 47.0
spng 69 89 100 24.0 0.500000 47.0
spng 70 100 111 24.0 0.500000 47.0
spng 71 111 122 24.0 0.500000 47.0
spng 72 3 14 24.0 0.500000 47.0
spng 73 14 25 24.0 0.500000 47.0
spng 74 25 36 24.0 0.500000 47.0
spng 75 36 47 24.0 0.500000 47.0
spng 76 47 58 24.0 0.500000 47.0
spng 77 58 69 24.0 0.500000 47.0
spng 78 69 80 24.0 0.500000 47.0
spng 79 80 91 24.0 0.500000 47.0
spng 80 91 102 24.0 0.500000 47.0
spng 81 102 113 24.0 0.500000 47.0
spng 82 113 124 24.0 0.500000 47.0
spng 83 5 16 24.0 0.500000 47.0
spng 84 16 27 24.0 0.500000 47.0
spng 85 27 38 24.0 0.500000 47.0
spng 86 38 49 24.0 0.500000 47.0
spng 87 49 60 24.0 0.500000 47.0
spng 88 60 71 24.0 0.500000 47.0
spng 89 71 82 24.0 0.500000 47.0
spng 90 82 93 24.0 0.500000 47.0
spng 91 93 104 24.0 0.500000 47.0
spng 92 104 115 24.0 0.500000 47.0
spng 93 115 126 24.0 0.500000 47.0
spng 94 7 18 24.0 0.500000 47.0
spng 95 18 29 24.0 0.500000 47.0
spng 96 29 40 24.0 0.500000 47.0
spng 97 40 51 24.0 0.500000 47.0
spng 98 51 62 24.0 0.500000 47.0
spng 99 62 73 24.0 0.500000 47.0
spng 100 73 84 24.0 0.500000 47.0
spng 101 84 95 24.0 0.500000 47.0
spng 102 95 106 24.0 0.500000 47.0
spng 103 106 117 24.0 0.500000 47.0
spng 104 117 128 24.0 0.500000 47.0
spng 105 9 20 24.0 0.500000 47.0
spng 106 20 31 24.0 0.500000 47.0
spng 107 31 42 24.0 0.500000 47.0
spng 108 42 53 24.0 0.500000 47.0
spng 109 53 64 24.0 0.500000 47.0
spng 110 64 75 24.0 0.500000 47.0
spng 111 75 86 24.0 0.500000 47.0
spng 112 86 97 24.0 0.500000 47.0
spng 113 97 108 24.0 0.500000 47.0
spng 114 108 119 24.0 0.500000 47.0
spng 115 119 130 24.0 0.500000 47.0
spng 116 11 22 24.0 0.500000 47.0
spng 117 22 33 24.0 0.500000 47.0
spng 118 33 44 24.0 0.500000 47.0
spng 119 44 55 24.0 0.500000 47.0
spng 120 55 66 24.0 0.500000 47.0
spng 121 66 77 24.0 0.500000 47.0
spng 122 77 88 24.0 0.500000 47.0
spng 123 88 99 24.0 0.500000 47.0
spng 124 99 110 24.0 0.500000 47.0
spng 125 110 121 24.0 0.500000 47.0
spng 126 121 132 24.0 0.500000 47.0
spng 127 2 13 24.0 0.500000 47.0
spng 128 24 35 24.0 0.500000 47.0
spng 129 46 57 24.0 0.500000 47.0
spng 130 68 79 24.0 0.500000 47.0
spng 131 90 101 24.0 0.500000 47.0
spng 132 112 123 24.0 0.500000 47.0
spng 133 4 15 24.0 0.500000 47.0
spng 134 26 37 24.0 0.500000 47.0
spng 135 48 59 24.0 0.500000 47.0
spng 136 70 81 24.0 0.500000 47.0
spng 137 92 103 24.0 0.500000 47.0
spng 138 114 125 24.0 0.500000 47.0
spng 139 6 17 24.0 0.500000 47.0
spng 140 28 39 24.0 0.500000 47.0
spng 141 50 61 24.0 0.500000 47.0
spng 142 72 83 24.0 0.500000 47.0
spng 143 94 105 24.0 0.500000 47.0
spng 144 116 127 24.0 0.500000 47.0
spng 145 8 19 24.0 0.500000 47.0
spng 146 30 41 24.0 0.500000 47.0
spng 147 52 63 24.0 0.500000 47.0
spng 148 74 85 24.0 0.500000 47.0
spng 149 96 107 24.0 0.500000 47.0
spng 150 118 129 24.0 0.500000 47.0
spng 151 10 21 24.0 0.500000 47.0
spng 152 32 43 24.0 0.500000 47.0
spng 153 54 65 24.0 0.500000 47.0
spng 154 76 87 24.0 0.500000 47.0
spng 155 98 109 24.0 0.500000 47.0
spng 156 120 131 24.0 0.500000 47.0
spng 157 13 24 24.0 0.500000 47.0
spng 158 35 46 24.0 0.500000 47.0
spng 159 57 68 24.0 0.500000 47.0
spng 160 79 90 24.0 0.500000 47.0
spng 161 101 112 24.0 0.500000 47.0
spng 162 15 26 24.0 0.500000 47.0
spng 163 37 48 24.0 0.500000 47.0
spng 164 59 70 24.0 0.500000 47.0
spng 165 81 92 24.0 0.500000 47.0
spng 166 103 114 24.0 0.500000 47.0
spng 167 17 28 24.0 0.500000 47.0
spng 168 39 50 24.0 0.500000 47.0
spng 169 61 72 24.0 0.500000 47.0
spng 170 83 94 24.0 0.500000 47.0
spng 171 105 116 24.0 0.500000 47.0
spng 172 19 30 24.0 0.500000 47.0
spng 173 41 52 24.0 0.500000 47.0
spng 174 63 74 24.0 0.500000 47.0
spng 175 85 96 24.0 0.500000 47.0
spng 176 107 118 24.0 0.500000 47.0
spng 177 21 32 24.0 0.500000 47.0
spng 178 43 54 24.0 0.500000 47.0
spng 179 65 76 24.0 0.500000 47.0
spng 180 87 98 24.0 0.500000 47.0
spng 181 109 120 24.0 0.500000 47.0
\BARFOO\
else
echo "will not over write ./lib/hexmesh.xsp"
fi
if `test ! -s ./lib/jello-buttress.xsp`
then
echo "writting ./lib/jello-buttress.xsp"
cat > ./lib/jello-buttress.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1.0

elas 0.800000
kspr 200.0
kdmp 3.0


fixm 0
shws 1
cent -1
frce 0 1 10.0 0.0
frce 1 0 5.0 2.0
frce 2 0 10.0 0.0
frce 3 0 10000.0 1.0
visc 0.0

stck 10000.0
step 0.025000
prec 1.0
adpt 0


gsnp 40.0 0
wall 1 1 1 1

mass 1 41.767055 307.848484 0.410808 0.768756 1.0 0.800000
mass 2 42.127019 348.429694 -0.171779 0.693754 1.0 0.800000
mass 3 3.0 306.469211 0.0 0.0 1.0 0.800000
mass 4 3.0 347.191664 0.0 0.0 1.0 0.800000
mass 5 42.585872 388.576799 -0.757224 0.816165 1.0 0.800000
mass 6 3.0 387.590354 0.0 0.0 1.0 0.800000
mass 7 115.704690 306.239920 0.574544 2.732245 1.0 0.800000
mass 8 120.656031 347.053053 -0.193842 2.890844 1.0 0.800000
mass 9 79.402922 308.000818 0.674938 1.687426 1.0 0.800000
mass 10 81.418723 348.829883 -0.177559 1.758612 1.0 0.800000
mass 11 125.461394 386.111752 -0.915358 2.948273 1.0 0.800000
mass 12 83.432707 388.521874 -0.993595 1.863920 1.0 0.800000
mass 13 183.064941 293.153708 -0.197342 3.951829 1.0 0.800000
mass 14 197.593431 331.971771 -0.111126 3.973805 1.0 0.800000
mass 15 150.413974 301.570267 0.269049 3.543446 1.0 0.800000
mass 16 159.582261 341.847470 -0.140722 3.712172 1.0 0.800000
mass 17 211.179172 367.965880 -0.091105 3.775509 1.0 0.800000
mass 18 168.309574 379.775042 -0.541036 3.679323 1.0 0.800000
mass 19 239.231953 262.853819 -1.561233 3.413559 1.0 0.800000
mass 20 266.216334 294.461344 -0.831573 2.768226 1.0 0.800000
mass 21 212.965543 280.358577 -0.810812 3.891516 1.0 0.800000
mass 22 233.637036 316.378153 -0.284615 3.604009 1.0 0.800000
mass 23 290.785204 323.146160 -0.248293 2.130041 1.0 0.800000
mass 24 252.670518 349.341253 0.102277 3.176047 1.0 0.800000
mass 25 277.191956 214.350380 -3.090435 1.897859 1.0 0.800000
mass 26 314.311761 233.084501 -2.745046 1.161243 1.0 0.800000
mass 27 260.906106 240.691110 -2.384188 2.679037 1.0 0.800000
mass 28 293.602603 266.355278 -1.747193 1.833291 1.0 0.800000
mass 29 348.061007 250.230268 -2.308676 0.575162 1.0 0.800000
mass 30 323.231817 289.630518 -1.166154 1.117955 1.0 0.800000
mass 31 292.986671 152.335883 -3.269399 0.562509 1.0 0.800000
mass 32 334.118479 157.858156 -3.395567 0.767555 1.0 0.800000
mass 33 287.776055 184.630614 -3.428399 1.189780 1.0 0.800000
mass 34 327.674146 196.332740 -3.390349 0.860203 1.0 0.800000
mass 35 372.644385 163.203463 -3.301983 0.955744 1.0 0.800000
mass 36 364.369176 207.261452 -3.145631 0.606031 1.0 0.800000
mass 37 291.268566 81.777898 -1.700601 -0.330503 1.0 0.800000
mass 38 332.229122 80.201980 -1.751965 0.458221 1.0 0.800000
mass 39 293.714287 117.995353 -2.647799 0.031623 1.0 0.800000
mass 40 334.999837 118.942569 -2.769430 0.666512 1.0 0.800000
mass 41 372.435038 78.692408 -1.802462 1.219203 1.0 0.800000
mass 42 374.564070 119.992813 -2.761933 1.246289 1.0 0.800000
mass 43 284.574086 3.0 0.0 0.0 1.0 0.800000
mass 44 324.249904 3.0 0.0 0.0 1.0 0.800000
mass 45 287.545616 43.492144 -0.620128 -0.402148 1.0 0.800000
mass 46 327.868990 41.714496 -0.433815 -0.012708 1.0 0.800000
mass 47 364.624915 3.0 0.0 0.0 1.0 0.800000
mass 48 368.679410 39.607421 -0.841131 0.572211 1.0 0.800000
spng 1 1 3 200.0 3.0 40.0
spng 2 3 4 200.0 3.0 40.0
spng 3 4 6 200.0 3.0 40.0
spng 4 6 5 200.0 3.0 40.0
spng 5 5 2 200.0 3.0 40.0
spng 6 2 1 200.0 3.0 40.0
spng 7 1 4 200.0 3.0 56.568542
spng 8 4 2 200.0 3.0 40.0
spng 9 2 6 200.0 3.0 56.568542
spng 10 5 4 200.0 3.0 56.568542
spng 11 2 3 200.0 3.0 56.568542
spng 12 7 9 200.0 3.0 40.0
spng 13 9 10 200.0 3.0 40.0
spng 14 10 12 200.0 3.0 40.0
spng 15 12 11 200.0 3.0 40.0
spng 16 11 8 200.0 3.0 40.0
spng 17 8 7 200.0 3.0 40.0
spng 18 7 10 200.0 3.0 56.568542
spng 19 10 8 200.0 3.0 40.0
spng 20 8 12 200.0 3.0 56.568542
spng 21 11 10 200.0 3.0 56.568542
spng 22 8 9 200.0 3.0 56.568542
spng 23 9 1 200.0 3.0 40.0
spng 24 10 2 200.0 3.0 40.0
spng 25 5 12 200.0 3.0 40.0
spng 26 9 2 200.0 3.0 56.568542
spng 27 1 10 200.0 3.0 56.568542
spng 28 10 5 200.0 3.0 56.568542
spng 29 2 12 200.0 3.0 56.568542
spng 30 13 15 200.0 3.0 40.0
spng 31 15 16 200.0 3.0 40.0
spng 32 16 18 200.0 3.0 40.0
spng 33 18 17 200.0 3.0 40.0
spng 34 17 14 200.0 3.0 40.0
spng 35 14 13 200.0 3.0 40.0
spng 36 13 16 200.0 3.0 56.568542
spng 37 16 14 200.0 3.0 40.0
spng 38 14 18 200.0 3.0 56.568542
spng 39 17 16 200.0 3.0 56.568542
spng 40 14 15 200.0 3.0 56.568542
spng 41 19 21 200.0 3.0 40.0
spng 42 21 22 200.0 3.0 40.0
spng 43 22 24 200.0 3.0 40.0
spng 44 24 23 200.0 3.0 40.0
spng 45 23 20 200.0 3.0 40.0
spng 46 20 19 200.0 3.0 40.0
spng 47 19 22 200.0 3.0 56.568542
spng 48 22 20 200.0 3.0 40.0
spng 49 20 24 200.0 3.0 56.568542
spng 50 23 22 200.0 3.0 56.568542
spng 51 20 21 200.0 3.0 56.568542
spng 52 21 13 200.0 3.0 40.0
spng 53 22 14 200.0 3.0 40.0
spng 54 17 24 200.0 3.0 40.0
spng 55 21 14 200.0 3.0 56.568542
spng 56 13 22 200.0 3.0 56.568542
spng 57 22 17 200.0 3.0 56.568542
spng 58 14 24 200.0 3.0 56.568542
spng 59 15 7 200.0 3.0 40.0
spng 60 16 7 200.0 3.0 56.568542
spng 61 15 8 200.0 3.0 56.568542
spng 62 8 16 200.0 3.0 40.0
spng 63 16 11 200.0 3.0 56.568542
spng 64 8 18 200.0 3.0 56.568542
spng 65 18 11 200.0 3.0 40.0
spng 66 25 27 200.0 3.0 40.0
spng 67 27 28 200.0 3.0 40.0
spng 68 28 30 200.0 3.0 40.0
spng 69 30 29 200.0 3.0 40.0
spng 70 29 26 200.0 3.0 40.0
spng 71 26 25 200.0 3.0 40.0
spng 72 25 28 200.0 3.0 56.568542
spng 73 28 26 200.0 3.0 40.0
spng 74 26 30 200.0 3.0 56.568542
spng 75 29 28 200.0 3.0 56.568542
spng 76 26 27 200.0 3.0 56.568542
spng 77 31 33 200.0 3.0 40.0
spng 78 33 34 200.0 3.0 40.0
spng 79 34 36 200.0 3.0 40.0
spng 80 36 35 200.0 3.0 40.0
spng 81 35 32 200.0 3.0 40.0
spng 82 32 31 200.0 3.0 40.0
spng 83 31 34 200.0 3.0 56.568542
spng 84 34 32 200.0 3.0 40.0
spng 85 32 36 200.0 3.0 56.568542
spng 86 35 34 200.0 3.0 56.568542
spng 87 32 33 200.0 3.0 56.568542
spng 88 33 25 200.0 3.0 40.0
spng 89 34 26 200.0 3.0 40.0
spng 90 29 36 200.0 3.0 40.0
spng 91 33 26 200.0 3.0 56.568542
spng 92 25 34 200.0 3.0 56.568542
spng 93 34 29 200.0 3.0 56.568542
spng 94 26 36 200.0 3.0 56.568542
spng 95 37 39 200.0 3.0 40.0
spng 96 39 40 200.0 3.0 40.0
spng 97 40 42 200.0 3.0 40.0
spng 98 42 41 200.0 3.0 40.0
spng 99 41 38 200.0 3.0 40.0
spng 100 38 37 200.0 3.0 40.0
spng 101 37 40 200.0 3.0 56.568542
spng 102 40 38 200.0 3.0 40.0
spng 103 38 42 200.0 3.0 56.568542
spng 104 41 40 200.0 3.0 56.568542
spng 105 38 39 200.0 3.0 56.568542
spng 106 43 45 200.0 3.0 40.0
spng 107 45 46 200.0 3.0 40.0
spng 108 46 48 200.0 3.0 40.0
spng 109 48 47 200.0 3.0 40.0
spng 110 47 44 200.0 3.0 40.0
spng 111 44 43 200.0 3.0 40.0
spng 112 43 46 200.0 3.0 56.568542
spng 113 46 44 200.0 3.0 40.0
spng 114 44 48 200.0 3.0 56.568542
spng 115 47 46 200.0 3.0 56.568542
spng 116 44 45 200.0 3.0 56.568542
spng 117 45 37 200.0 3.0 40.0
spng 118 46 38 200.0 3.0 40.0
spng 119 41 48 200.0 3.0 40.0
spng 120 45 38 200.0 3.0 56.568542
spng 121 37 46 200.0 3.0 56.568542
spng 122 46 41 200.0 3.0 56.568542
spng 123 38 48 200.0 3.0 56.568542
spng 124 39 31 200.0 3.0 40.0
spng 125 40 31 200.0 3.0 56.568542
spng 126 39 32 200.0 3.0 56.568542
spng 127 32 40 200.0 3.0 40.0
spng 128 40 35 200.0 3.0 56.568542
spng 129 32 42 200.0 3.0 56.568542
spng 130 42 35 200.0 3.0 40.0
spng 131 19 27 200.0 3.0 40.0
spng 132 28 20 200.0 3.0 40.0
spng 133 23 30 200.0 3.0 40.0
spng 134 30 20 200.0 3.0 56.568542
spng 135 28 23 200.0 3.0 56.568542
spng 136 27 20 200.0 3.0 56.568542
spng 137 19 28 200.0 3.0 56.568542
\BARFOO\
else
echo "will not over write ./lib/jello-buttress.xsp"
fi
if `test ! -s ./lib/jello-pend.xsp`
then
echo "writting ./lib/jello-pend.xsp"
cat > ./lib/jello-pend.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1.0
elas 1.0

kspr 10.0
kdmp 1.0
fixm 1


shws 1
cent -1
frce 0 1 10.0 0.0
frce 1 0 5.0 2.0
frce 2 0 10.0 0.0
frce 3 0 10000.0 1.0
visc 0.0
stck 0.0

step 0.050000
prec 1.0
adpt 0


gsnp 40.0 0
wall 1 1 1 1

mass 1 284.881416 547.0 0.0 0.0 -1.0 1.0
mass 2 325.802925 547.0 0.0 0.0 -1.0 1.0
mass 3 286.763139 505.435292 0.112296 -0.397592 1.0 1.0
mass 4 326.191222 507.416946 0.110763 0.084379 1.0 1.0
mass 5 289.760692 463.928826 0.854843 -0.728891 1.0 1.0
mass 6 329.242767 467.708870 0.678030 0.498465 1.0 1.0
mass 7 294.626730 422.692179 2.669458 -1.215879 1.0 1.0
mass 8 333.906340 428.189724 2.259825 1.211325 1.0 1.0
mass 9 301.257308 381.732210 6.066652 -1.531961 1.0 1.0
mass 10 340.278383 388.950584 5.265910 2.386591 1.0 1.0
mass 11 309.691865 341.133139 11.198623 -1.327759 1.0 1.0
mass 12 348.372537 350.080499 9.887431 4.028782 1.0 1.0
mass 13 319.928943 301.005060 17.726700 -0.345301 1.0 1.0
mass 14 358.202783 311.640295 15.884869 6.065313 1.0 1.0
mass 15 331.870096 261.467138 25.028818 1.445474 1.0 1.0
mass 16 369.709999 273.642635 22.747662 8.390261 1.0 1.0
mass 17 345.256208 222.599690 32.485575 3.870329 1.0 1.0
mass 18 382.705489 236.026840 29.941690 10.874972 1.0 1.0
mass 19 359.668272 184.389017 39.640617 6.638315 1.0 1.0
mass 20 396.833030 198.647836 37.025093 13.365584 1.0 1.0
mass 21 374.522887 146.697008 46.237474 9.422972 5.0 1.0
mass 22 411.667355 161.356113 43.759365 15.789159 5.0 1.0
spng 1 1 3 200.0 1.0 40.0
spng 2 3 5 200.0 1.0 40.0
spng 3 5 7 200.0 1.0 40.0
spng 4 7 9 200.0 1.0 40.0
spng 5 9 11 200.0 1.0 40.0
spng 6 11 13 200.0 1.0 40.0
spng 7 13 15 200.0 1.0 40.0
spng 8 15 17 200.0 1.0 40.0
spng 9 17 19 200.0 1.0 40.0
spng 10 19 21 200.0 1.0 40.0
spng 11 21 22 200.0 1.0 40.0
spng 12 22 20 200.0 1.0 40.0
spng 13 20 18 200.0 1.0 40.0
spng 14 18 16 200.0 1.0 40.0
spng 15 16 14 200.0 1.0 40.0
spng 16 14 12 200.0 1.0 40.0
spng 17 12 10 200.0 1.0 40.0
spng 18 10 8 200.0 1.0 40.0
spng 19 8 6 200.0 1.0 40.0
spng 20 6 4 200.0 1.0 40.0
spng 21 4 2 200.0 1.0 40.0
spng 22 2 1 200.0 1.0 40.0
spng 23 1 4 200.0 1.0 56.568542
spng 24 4 5 200.0 1.0 56.568542
spng 25 5 8 200.0 1.0 56.568542
spng 26 8 9 200.0 1.0 56.568542
spng 27 9 12 200.0 1.0 56.568542
spng 28 12 13 200.0 1.0 56.568542
spng 29 13 16 200.0 1.0 56.568542
spng 30 16 17 200.0 1.0 56.568542
spng 31 17 20 200.0 1.0 56.568542
spng 32 20 21 200.0 1.0 56.568542
spng 33 19 20 200.0 1.0 40.0
spng 34 18 17 200.0 1.0 40.0
spng 35 15 16 200.0 1.0 40.0
spng 36 22 19 200.0 1.0 56.568542
spng 37 19 18 200.0 1.0 56.568542
spng 38 18 15 200.0 1.0 56.568542
spng 39 15 14 200.0 1.0 56.568542
spng 40 14 13 200.0 1.0 40.0
spng 41 14 11 200.0 1.0 56.568542
spng 42 11 10 200.0 1.0 56.568542
spng 43 12 11 200.0 1.0 40.0
spng 44 9 10 200.0 1.0 40.0
spng 45 10 7 200.0 1.0 56.568542
spng 46 7 8 200.0 1.0 40.0
spng 47 7 6 200.0 1.0 56.568542
spng 48 6 5 200.0 1.0 40.0
spng 49 6 3 200.0 1.0 56.568542
spng 50 3 4 200.0 1.0 40.0
spng 51 2 3 200.0 1.0 56.568542
\BARFOO\
else
echo "will not over write ./lib/jello-pend.xsp"
fi
if `test ! -s ./lib/jello.xsp`
then
echo "writting ./lib/jello.xsp"
cat > ./lib/jello.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1.0

elas 0.100000
kspr 50.0


kdmp 1.0
fixm 0
shws 1
cent -1
frce 0 1 10.0 0.0
frce 1 0 5.0 2.0
frce 2 0 10.0 0.0
frce 3 0 10000.0 1.0
visc 0.0
stck 0.0
step 0.025000

prec 1.0
adpt 0


gsnp 40.0 0
wall 1 1 1 1

mass 1 267.341544 187.781792 0.000023 0.000313 1.0 0.100000
mass 2 307.352886 187.778570 -0.000001 0.000325 1.0 0.100000
mass 3 347.364229 187.781783 -0.000025 0.000321 1.0 0.100000
mass 4 267.323768 147.820450 0.000060 0.000247 1.0 0.100000
mass 5 307.352882 147.815849 0.000003 0.000257 1.0 0.100000
mass 6 347.381996 147.820443 -0.000053 0.000253 1.0 0.100000
mass 7 267.306829 107.892774 0.000081 0.000137 1.0 0.100000
mass 8 307.352878 107.895083 0.000007 0.000130 1.0 0.100000
mass 9 347.398927 107.892769 -0.000068 0.000141 1.0 0.100000
mass 10 267.317921 68.0 0.0 0.0 1.0 0.100000
mass 11 307.352876 68.0 0.0 0.0 1.0 0.100000
mass 12 347.387831 68.0 0.0 0.0 1.0 0.100000
spng 1 1 4 200.0 1.0 40.0
spng 2 4 7 200.0 1.0 40.0
spng 3 7 10 200.0 1.0 40.0
spng 4 10 11 200.0 1.0 40.0
spng 5 11 8 200.0 1.0 40.0
spng 6 8 5 200.0 1.0 40.0
spng 7 5 2 200.0 1.0 40.0
spng 8 2 3 200.0 1.0 40.0
spng 9 3 6 200.0 1.0 40.0
spng 10 6 9 200.0 1.0 40.0
spng 11 9 12 200.0 1.0 40.0
spng 12 12 11 200.0 1.0 40.0
spng 13 11 9 200.0 1.0 56.568542
spng 14 9 5 200.0 1.0 56.568542
spng 15 5 3 200.0 1.0 56.568542
spng 16 2 6 200.0 1.0 56.568542
spng 17 6 8 200.0 1.0 56.568542
spng 18 8 12 200.0 1.0 56.568542
spng 19 8 9 200.0 1.0 40.0
spng 20 6 5 200.0 1.0 40.0
spng 21 5 4 200.0 1.0 40.0
spng 22 1 2 200.0 1.0 40.0
spng 23 2 4 200.0 1.0 56.568542
spng 24 4 8 200.0 1.0 56.568542
spng 25 8 7 200.0 1.0 40.0
spng 26 7 5 200.0 1.0 56.568542
spng 27 5 1 200.0 1.0 56.568542
spng 28 7 11 200.0 1.0 56.568542
spng 29 8 10 200.0 1.0 56.568542
\BARFOO\
else
echo "will not over write ./lib/jello.xsp"
fi
echo "Finished archive 11 of 16"

Douglas DeCarlo

unread,
Mar 26, 1993, 11:13:53 AM3/26/93
to
Submitted-by: d...@gradient.cis.upenn.edu (Douglas DeCarlo)
Posting-number: Volume 19, Issue 64
Archive-name: xspringies/part12

Environment: X11
Supersedes: xspringies: Volume 14, Issue 25-30

#!/bin/sh


# to extract, remove the header and type "sh filename"

if `test ! -d ./lib`
then
mkdir ./lib
echo "mkdir ./lib"
fi

if `test ! -s ./lib/blanket.xsp`
then
echo "writting ./lib/blanket.xsp"
cat > ./lib/blanket.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1
elas 1

kspr 30
kdmp 1


fixm 0
shws 1
cent -1
frce 0 0 10 0
frce 1 0 5 2
frce 2 0 10 0
frce 3 0 10000 1
visc 0
stck 0
step 0.025
prec 1
adpt 0
gsnp 20 0
wall 1 1 1 1

mass 1 279.95247999999998 314.014439999999979 0 0 1 1
mass 2 279.95247999999998 294.014439999999979 0 0 1 1
mass 3 279.95247999999998 274.014439999999979 0 0 1 1
mass 4 279.95247999999998 254.014440000000008 0 0 1 1
mass 5 279.95247999999998 234.014440000000008 0 0 1 1
mass 6 299.95247999999998 314.014439999999979 0 0 1 1
mass 7 299.95247999999998 294.014439999999979 0 0 1 1
mass 8 299.95247999999998 274.014439999999979 0 0 1 1
mass 9 299.95247999999998 254.014440000000008 0 0 1 1
mass 10 299.95247999999998 234.014440000000008 0 0 1 1
mass 11 319.95247999999998 314.014439999999979 0 0 1 1
mass 12 319.95247999999998 294.014439999999979 0 0 1 1
mass 13 319.95247999999998 274.014439999999979 0 0 1 1
mass 14 319.95247999999998 254.014440000000008 0 0 1 1
mass 15 319.95247999999998 234.014440000000008 0 0 1 1
mass 16 339.95247999999998 314.014439999999979 0 0 1 1
mass 17 339.95247999999998 294.014439999999979 0 0 1 1
mass 18 339.95247999999998 274.014439999999979 0 0 1 1
mass 19 339.95247999999998 254.014440000000008 0 0 1 1
mass 20 339.95247999999998 234.014440000000008 0 0 1 1
mass 21 359.95247999999998 314.014439999999979 0 0 1 1
mass 22 359.95247999999998 294.014439999999979 0 0 1 1
mass 23 359.95247999999998 274.014439999999979 0 0 1 1
mass 24 359.95247999999998 254.014440000000008 0 0 1 1
mass 25 359.95247999999998 234.014440000000008 0 0 1 1
spng 1 1 2 30 1 20
spng 2 2 3 30 1 20
spng 3 3 4 30 1 19.9999999999999716
spng 4 4 5 30 1 20
spng 5 5 10 30 1 20
spng 6 10 9 30 1 20
spng 7 9 8 30 1 19.9999999999999716
spng 8 8 7 30 1 20
spng 9 7 6 30 1 20
spng 10 6 11 30 1 20
spng 11 11 12 30 1 20
spng 12 12 13 30 1 20
spng 13 13 14 30 1 19.9999999999999716
spng 14 14 15 30 1 20
spng 15 15 20 30 1 20
spng 16 20 19 30 1 20
spng 17 19 18 30 1 19.9999999999999716
spng 18 18 17 30 1 20
spng 19 17 16 30 1 20
spng 20 16 21 30 1 20
spng 21 21 22 30 1 20
spng 22 22 23 30 1 20
spng 23 23 24 30 1 19.9999999999999716
spng 24 24 25 30 1 20
spng 25 25 20 30 1 20
spng 26 19 24 30 1 20
spng 27 23 18 30 1 20
spng 28 17 22 30 1 20
spng 29 16 11 30 1 20
spng 30 12 17 30 1 20
spng 31 18 13 30 1 20
spng 32 14 19 30 1 20
spng 33 15 10 30 1 20
spng 34 9 14 30 1 20


spng 35 8 13 30 1 20

spng 36 12 7 30 1 20
spng 37 6 1 30 1 20
spng 38 2 7 30 1 20
spng 39 8 3 30 1 20
spng 40 4 9 30 1 20
spng 41 1 7 30 1 28.284271247461902
spng 42 6 2 30 1 28.284271247461902
spng 43 2 8 30 1 28.284271247461902
spng 44 7 3 30 1 28.284271247461902
spng 45 3 4 30 1 19.9999999999999716
spng 46 8 4 30 1 28.2842712474618807
spng 47 3 4 30 1 19.9999999999999716
spng 48 3 9 30 1 28.2842712474618807
spng 49 9 5 30 1 28.284271247461902
spng 50 4 10 30 1 28.284271247461902
spng 51 9 15 30 1 28.284271247461902
spng 52 14 10 30 1 28.284271247461902
spng 53 8 14 30 1 28.2842712474618807
spng 54 13 9 30 1 28.2842712474618807
spng 55 7 13 30 1 28.284271247461902
spng 56 12 8 30 1 28.284271247461902
spng 57 7 12 30 1 20
spng 58 12 6 30 1 28.284271247461902
spng 59 7 11 30 1 28.284271247461902
spng 60 11 17 30 1 28.284271247461902
spng 61 16 12 30 1 28.284271247461902
spng 62 12 17 30 1 20
spng 63 12 18 30 1 28.284271247461902
spng 64 17 13 30 1 28.284271247461902
spng 65 13 19 30 1 28.2842712474618807
spng 66 18 14 30 1 28.2842712474618807
spng 67 14 20 30 1 28.284271247461902
spng 68 19 15 30 1 28.284271247461902
spng 69 19 25 30 1 28.284271247461902
spng 70 24 20 30 1 28.284271247461902
spng 71 18 24 30 1 28.2842712474618807
spng 72 23 19 30 1 28.2842712474618807
spng 73 17 23 30 1 28.284271247461902
spng 74 22 18 30 1 28.284271247461902
spng 75 16 22 30 1 28.284271247461902
spng 76 21 17 30 1 28.284271247461902
spng 77 1 12 30 1 44.7213595499957961
spng 78 2 11 30 1 44.7213595499957961
spng 79 6 17 30 1 44.7213595499957961
spng 80 7 16 30 1 44.7213595499957961
spng 81 11 22 30 1 44.7213595499957961
spng 82 12 21 30 1 44.7213595499957961
spng 83 2 13 30 1 44.7213595499957961
spng 84 12 3 30 1 44.7213595499957961
spng 85 7 18 30 1 44.7213595499957961
spng 86 8 17 30 1 44.7213595499957961
spng 87 12 23 30 1 44.7213595499957961
spng 88 13 22 30 1 44.7213595499957961
spng 89 3 14 30 1 44.7213595499957819
spng 90 4 13 30 1 44.7213595499957819
spng 91 8 19 30 1 44.7213595499957819
spng 92 9 18 30 1 44.7213595499957819
spng 93 13 24 30 1 44.7213595499957819
spng 94 14 23 30 1 44.7213595499957819
spng 95 4 15 30 1 44.7213595499957961
spng 96 5 14 30 1 44.7213595499957961
spng 97 9 20 30 1 44.7213595499957961
spng 98 10 19 30 1 44.7213595499957961
spng 99 14 25 30 1 44.7213595499957961
spng 100 15 24 30 1 44.7213595499957961
spng 101 1 8 30 1 44.7213595499957961
spng 102 3 6 30 1 44.7213595499957961
spng 103 6 13 30 1 44.7213595499957961
spng 104 11 8 30 1 44.7213595499957961
spng 105 11 18 30 1 44.7213595499957961
spng 106 16 13 30 1 44.7213595499957961
spng 107 16 22 30 1 28.284271247461902
spng 108 16 23 30 1 44.7213595499957961
spng 109 21 18 30 1 44.7213595499957961
spng 110 3 10 30 1 44.7213595499957677
spng 111 8 5 30 1 44.7213595499957677
spng 112 8 15 30 1 44.7213595499957677
spng 113 13 10 30 1 44.7213595499957677
spng 114 13 20 30 1 44.7213595499957677
spng 115 18 15 30 1 44.7213595499957677
spng 116 18 25 30 1 44.7213595499957677
spng 117 23 20 30 1 44.7213595499957677
spng 118 2 9 30 1 44.7213595499957677
spng 119 7 4 30 1 44.7213595499957677
spng 120 7 14 30 1 44.7213595499957677
spng 121 12 9 30 1 44.7213595499957677
spng 122 12 19 30 1 44.7213595499957677
spng 123 17 14 30 1 44.7213595499957677
spng 124 17 24 30 1 44.7213595499957677
spng 125 22 19 30 1 44.7213595499957677
spng 126 1 18 30 1 72.1110255092797843
spng 127 3 16 30 1 72.1110255092797843
spng 128 6 23 30 1 72.1110255092797843
spng 129 8 21 30 1 72.1110255092797843
spng 130 2 19 30 1 72.1110255092797701
spng 131 4 17 30 1 72.1110255092797701
spng 132 7 24 30 1 72.1110255092797701
spng 133 9 22 30 1 72.1110255092797701
spng 134 3 20 30 1 72.1110255092797701
spng 135 5 18 30 1 72.1110255092797701
spng 136 8 25 30 1 72.1110255092797701
spng 137 10 23 30 1 72.1110255092797701
spng 138 1 14 30 1 72.1110255092797559
spng 139 4 11 30 1 72.1110255092797559
spng 140 6 19 30 1 72.1110255092797559
spng 141 9 16 30 1 72.1110255092797559
spng 142 11 24 30 1 72.1110255092797559
spng 143 14 21 30 1 72.1110255092797559
spng 144 2 15 30 1 72.1110255092797559
spng 145 5 12 30 1 72.1110255092797559
spng 146 7 20 30 1 72.1110255092797559
spng 147 10 17 30 1 72.1110255092797559
spng 148 12 25 30 1 72.1110255092797559
spng 149 15 22 30 1 72.1110255092797559
spng 150 5 13 30 1 56.5685424949237827
spng 151 1 13 30 1 56.568542494923804
spng 152 11 3 30 1 56.568542494923804
spng 153 11 23 30 1 56.568542494923804
spng 154 13 21 30 1 56.568542494923804
spng 155 13 25 30 1 56.5685424949237827
spng 156 23 15 30 1 56.5685424949237827
spng 157 3 15 30 1 56.5685424949237827
spng 158 2 14 30 1 56.5685424949237827
spng 159 12 4 30 1 56.5685424949237827
spng 160 6 18 30 1 56.568542494923804
spng 161 16 8 30 1 56.568542494923804
spng 162 12 24 30 1 56.5685424949237827
spng 163 22 14 30 1 56.5685424949237827
spng 164 8 20 30 1 56.5685424949237827
spng 165 18 10 30 1 56.5685424949237827
spng 166 7 19 30 1 56.5685424949237827
spng 167 17 9 30 1 56.5685424949237827
\BARFOO\
else
echo "will not over write ./lib/blanket.xsp"
fi
if `test ! -s ./lib/bridge.xsp`
then
echo "writting ./lib/bridge.xsp"
cat > ./lib/bridge.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1
elas 1

kspr 10
kdmp 1


fixm 0
shws 1
cent -1

frce 0 1 10 0


frce 1 0 5 2
frce 2 0 10 0
frce 3 0 10000 1
visc 0
stck 0
step 0.025
prec 1
adpt 0

gsnp 5 0


wall 1 1 1 1

mass 1 40 230 0 0 1 1
mass 2 60 230 0 0 1 1
mass 3 80 230 0 0 1 1
mass 4 100 230 0 0 1 1
mass 5 120 230 0 0 1 1
mass 6 140 230 0 0 1 1
mass 7 160 230 0 0 1 1
mass 8 180 230 0 0 1 1
mass 9 200 230 0 0 1 1
mass 10 220 230 0 0 1 1
mass 11 240 230 0 0 1 1
mass 12 260 230 0 0 1 1
mass 13 300 230 0 0 1 1
mass 14 280 230 0 0 1 1
mass 15 320 230 0 0 1 1
mass 16 340 230 0 0 1 1
mass 17 360 230 0 0 1 1
mass 18 380 230 0 0 1 1
mass 19 400 230 0 0 1 1
mass 20 420 230 0 0 1 1
mass 21 440 230 0 0 1 1
mass 22 460 230 0 0 1 1
mass 23 20 230 0 0 1 1
mass 24 480 230 0 0 1 1
mass 25 500 230 0 0 1 1
mass 26 520 230 0 0 1 1
mass 27 540 230 0 0 1 1
mass 28 560 230 0 0 1 1
mass 29 580 230 0 0 1 1
mass 30 600 230 0 0 1 1
mass 31 620 230 0 0 1 1
mass 32 640 230 0 0 -1 1
mass 33 0 230 0 0 -1 1
mass 34 0 210 0 0 -1 1
mass 35 20 210 0 0 1 1
mass 36 40 210 0 0 1 1
mass 37 60 210 0 0 1 1
mass 38 80 210 0 0 1 1
mass 39 100 210 0 0 1 1
mass 40 120 210 0 0 1 1
mass 41 140 210 0 0 1 1
mass 42 160 210 0 0 1 1
mass 43 180 210 0 0 1 1
mass 44 200 210 0 0 1 1
mass 45 220 210 0 0 1 1
mass 46 240 210 0 0 1 1
mass 47 260 210 0 0 1 1
mass 48 280 210 0 0 1 1
mass 49 300 210 0 0 1 1
mass 50 320 210 0 0 1 1
mass 51 340 210 0 0 1 1
mass 52 360 210 0 0 1 1
mass 53 380 210 0 0 1 1
mass 54 400 210 0 0 1 1
mass 55 420 210 0 0 1 1
mass 56 440 210 0 0 1 1
mass 57 460 210 0 0 1 1
mass 58 480 210 0 0 1 1
mass 59 500 210 0 0 1 1
mass 60 520 210 0 0 1 1
mass 61 540 210 0 0 1 1
mass 62 560 210 0 0 1 1
mass 63 580 210 0 0 1 1
mass 64 600 210 0 0 1 1
mass 65 620 210 0 0 1 1
mass 66 640 210 0 0 -1 1
mass 67 140 190 0 0 1 1
mass 68 160 190 0 0 1 1
mass 69 140 170 0 0 1 1
mass 70 160 170 0 0 1 1
mass 71 140 150 0 0 1 1
mass 72 160 150 0 0 1 1
mass 73 140 130 0 0 1 1
mass 74 160 130 0 0 1 1
mass 75 140 110 0 0 1 1
mass 76 160 110 0 0 1 1
mass 77 140 90 0 0 1 1
mass 78 160 90 0 0 1 1
mass 79 480 190 0 0 1 1
mass 80 500 190 0 0 1 1
mass 81 480 170 0 0 1 1
mass 82 500 170 0 0 1 1
mass 83 480 150 0 0 1 1
mass 84 500 150 0 0 1 1
mass 85 500 130 0 0 1 1
mass 86 480 130 0 0 1 1
mass 87 480 110 0 0 1 1
mass 88 500 110 0 0 1 1
mass 89 480 90 0 0 1 1
mass 90 500 90 0 0 1 1
mass 91 140 70 0 0 -1 1
mass 92 160 70 0 0 -1 1
mass 93 480 70 0 0 -1 1
mass 94 500 70 0 0 -1 1
mass 95 140 250 0 0 1 1
mass 96 160 250 0 0 1 1
mass 97 160 270 0 0 1 1
mass 98 140 270 0 0 1 1
mass 99 140 290 0 0 1 1
mass 100 160 290 0 0 1 1
mass 101 160 310 0 0 1 1
mass 102 140 310 0 0 1 1
mass 103 140 330 0 0 1 1
mass 104 160 330 0 0 1 1
mass 105 160 350 0 0 1 1
mass 106 140 350 0 0 1 1
mass 107 140 370 0 0 1 1
mass 108 160 370 0 0 1 1
mass 109 160 390 0 0 1 1
mass 110 140 390 0 0 1 1
mass 111 140 410 0 0 1 1
mass 112 160 410 0 0 1 1
mass 113 480 250 0 0 1 1
mass 114 500 250 0 0 1 1
mass 115 500 270 0 0 1 1
mass 116 480 270 0 0 1 1
mass 117 480 290 0 0 1 1
mass 118 500 290 0 0 1 1
mass 119 500 310 0 0 1 1
mass 120 480 310 0 0 1 1
mass 121 480 350 0 0 1 1
mass 122 480 330 0 0 1 1
mass 123 500 330 0 0 1 1
mass 124 500 350 0 0 1 1
mass 125 500 370 0 0 1 1
mass 126 480 370 0 0 1 1
mass 127 480 390 0 0 1 1
mass 128 500 390 0 0 1 1
mass 129 500 410 0 0 1 1
mass 130 480 410 0 0 1 1
mass 131 320 240 0 0 0.5 1
mass 132 300 245 0 0 0.5 1
mass 133 340 245 0 0 0.5 1
mass 134 280 260 0 0 0.5 1
mass 135 360 260 0 0 0.5 1
mass 136 260 280 0 0 0.5 1
mass 137 380 280 0 0 0.5 1
mass 138 200 350 0 0 0.5 1
mass 139 220 325 0 0 0.5 1
mass 140 240 300 0 0 0.5 1
mass 141 180 380 0 0 0.5 1
mass 142 400 300 0 0 0.5 1
mass 143 420 325 0 0 0.5 1
mass 144 440 350 0 0 0.5 1
mass 145 460 380 0 0 0.5 1
mass 146 20 240 0 0 0.5 1
mass 147 40 255 0 0 0.5 1
mass 148 60 280 0 0 0.5 1
mass 149 80 310 0 0 0.5 1
mass 150 100 340 0 0 0.5 1
mass 151 560 310 0 0 0.5 1
mass 152 540 340 0 0 0.5 1
mass 153 600 255 0 0 0.5 1
mass 154 620 240 0 0 0.5 1
mass 155 580 280 0 0 0.5 1
mass 156 120 375 0 0 0.5 1
mass 157 520 375 0 0 0.5 1
spng 1 77 91 1000 1 20
spng 2 78 92 1000 1 20
spng 3 77 75 1000 1 20
spng 4 75 78 1000 1 28.284271247461902
spng 5 77 76 1000 1 28.284271247461902
spng 6 76 78 1000 1 20
spng 7 78 77 1000 1 20
spng 8 75 76 1000 1 20
spng 9 76 73 1000 1 28.284271247461902
spng 10 73 74 1000 1 20
spng 11 74 75 1000 1 28.284271247461902
spng 12 75 73 1000 1 20
spng 13 73 71 1000 1 20
spng 14 71 74 1000 1 28.284271247461902
spng 15 74 72 1000 1 20
spng 16 72 73 1000 1 28.284271247461902
spng 17 76 74 1000 1 20
spng 18 72 71 1000 1 20
spng 19 71 69 1000 1 20
spng 20 67 69 1000 1 20
spng 21 41 67 1000 1 20
spng 22 42 68 1000 1 20
spng 23 68 70 1000 1 20
spng 24 70 72 1000 1 20
spng 25 72 69 1000 1 28.284271247461902
spng 26 71 70 1000 1 28.284271247461902
spng 27 70 67 1000 1 28.284271247461902
spng 28 67 42 1000 1 28.284271247461902
spng 29 42 41 1000 1 20
spng 30 41 68 1000 1 28.284271247461902
spng 31 68 67 1000 1 20
spng 32 69 68 1000 1 28.284271247461902
spng 33 70 69 1000 1 20
spng 34 6 41 1000 1 20
spng 35 7 42 1000 1 20
spng 36 95 6 1000 1 20
spng 37 111 110 1000 1 20
spng 38 110 107 1000 1 20
spng 39 107 106 1000 1 20
spng 40 106 103 1000 1 20
spng 41 103 102 1000 1 20
spng 42 102 99 1000 1 20
spng 43 98 95 1000 1 20
spng 44 7 96 1000 1 20
spng 45 96 97 1000 1 20
spng 46 100 101 1000 1 20
spng 47 101 104 1000 1 20
spng 48 104 105 1000 1 20
spng 49 105 108 1000 1 20
spng 50 108 109 1000 1 20
spng 51 109 112 1000 1 20
spng 52 112 111 1000 1 20
spng 53 111 109 1000 1 28.284271247461902
spng 54 112 110 1000 1 28.284271247461902
spng 55 110 109 1000 1 20
spng 56 109 107 1000 1 28.284271247461902
spng 57 107 108 1000 1 20
spng 58 108 110 1000 1 28.284271247461902
spng 59 107 105 1000 1 28.284271247461902
spng 60 105 103 1000 1 28.284271247461902
spng 61 103 101 1000 1 28.284271247461902
spng 62 101 99 1000 1 28.284271247461902
spng 63 97 95 1000 1 28.284271247461902
spng 64 95 7 1000 1 28.284271247461902
spng 65 42 6 1000 1 28.284271247461902
spng 66 41 7 1000 1 28.284271247461902
spng 67 6 7 1000 1 20
spng 68 6 96 1000 1 28.284271247461902
spng 69 96 95 1000 1 20
spng 70 96 98 1000 1 28.284271247461902
spng 71 100 97 1000 1 20
spng 72 97 98 1000 1 20
spng 73 98 99 1000 1 20
spng 74 99 97 1000 1 28.284271247461902
spng 75 98 100 1000 1 28.284271247461902
spng 76 100 99 1000 1 20
spng 77 100 102 1000 1 28.284271247461902
spng 78 102 101 1000 1 20
spng 79 102 104 1000 1 28.284271247461902
spng 80 104 103 1000 1 20
spng 81 104 106 1000 1 28.284271247461902
spng 82 106 108 1000 1 28.284271247461902
spng 83 105 106 1000 1 20
spng 84 91 78 1000 1 28.284271247461902
spng 85 92 77 1000 1 28.284271247461902
spng 86 89 93 1000 1 20
spng 87 93 90 1000 1 28.284271247461902
spng 88 90 89 1000 1 20
spng 89 89 94 1000 1 28.284271247461902
spng 90 90 94 1000 1 20
spng 91 90 88 1000 1 20
spng 92 88 87 1000 1 20
spng 93 87 89 1000 1 20
spng 94 89 88 1000 1 28.284271247461902
spng 95 88 85 1000 1 20
spng 96 85 86 1000 1 20
spng 97 86 87 1000 1 20
spng 98 87 85 1000 1 28.284271247461902
spng 99 85 84 1000 1 20
spng 100 84 83 1000 1 20
spng 101 83 86 1000 1 20
spng 102 86 84 1000 1 28.284271247461902
spng 103 90 87 1000 1 28.284271247461902
spng 104 88 86 1000 1 28.284271247461902
spng 105 85 83 1000 1 28.284271247461902
spng 106 84 81 1000 1 28.284271247461902
spng 107 81 82 1000 1 20
spng 108 82 83 1000 1 28.284271247461902
spng 109 83 81 1000 1 20
spng 110 81 79 1000 1 20
spng 111 79 82 1000 1 28.284271247461902
spng 112 82 80 1000 1 20
spng 113 80 79 1000 1 20
spng 114 81 80 1000 1 28.284271247461902
spng 115 82 84 1000 1 20
spng 116 130 127 1000 1 20
spng 117 127 126 1000 1 20
spng 118 126 121 1000 1 20
spng 119 121 122 1000 1 20
spng 120 122 120 1000 1 20
spng 121 120 117 1000 1 20
spng 122 117 116 1000 1 20
spng 123 116 113 1000 1 20
spng 124 113 24 1000 1 20
spng 125 25 114 1000 1 20
spng 126 114 115 1000 1 20
spng 127 115 118 1000 1 20
spng 128 118 119 1000 1 20
spng 129 119 123 1000 1 20
spng 130 123 124 1000 1 20
spng 131 124 125 1000 1 20
spng 132 125 128 1000 1 20
spng 133 128 129 1000 1 20
spng 134 129 130 1000 1 20
spng 135 130 128 1000 1 28.284271247461902
spng 136 129 127 1000 1 28.284271247461902
spng 137 127 128 1000 1 20
spng 138 128 126 1000 1 28.284271247461902
spng 139 127 125 1000 1 28.284271247461902
spng 140 125 126 1000 1 20
spng 141 126 124 1000 1 28.284271247461902
spng 142 125 121 1000 1 28.284271247461902
spng 143 121 124 1000 1 20
spng 144 124 122 1000 1 28.284271247461902
spng 145 121 123 1000 1 28.284271247461902
spng 146 123 122 1000 1 20
spng 147 122 119 1000 1 28.284271247461902
spng 148 123 120 1000 1 28.284271247461902
spng 149 120 119 1000 1 20
spng 150 119 117 1000 1 28.284271247461902
spng 151 117 118 1000 1 20
spng 152 118 116 1000 1 28.284271247461902
spng 153 116 115 1000 1 20
spng 154 115 113 1000 1 28.284271247461902
spng 155 120 118 1000 1 28.284271247461902
spng 156 117 115 1000 1 28.284271247461902
spng 157 116 114 1000 1 28.284271247461902
spng 158 114 113 1000 1 20
spng 159 113 25 1000 1 28.284271247461902
spng 160 25 58 1000 1 28.284271247461902
spng 161 58 24 1000 1 20
spng 162 24 114 1000 1 28.284271247461902
spng 163 24 25 1000 1 20
spng 164 25 59 1000 1 20
spng 165 59 24 1000 1 28.284271247461902
spng 166 59 80 1000 1 20
spng 167 80 58 1000 1 28.284271247461902
spng 168 58 79 1000 1 20
spng 169 79 59 1000 1 28.284271247461902
spng 170 60 61 50 1 20
spng 171 61 62 50 1 20
spng 172 62 63 50 1 20
spng 173 63 64 50 1 20
spng 174 64 65 50 1 20
spng 175 65 66 50 1 20
spng 176 32 31 50 1 20
spng 177 31 30 50 1 20
spng 178 30 29 50 1 20
spng 179 29 28 50 1 20
spng 180 28 27 50 1 20
spng 181 27 26 50 1 20
spng 182 26 25 50 1 20
spng 183 33 23 50 1 20
spng 184 23 1 50 1 20
spng 185 1 2 50 1 20
spng 186 2 3 50 1 20
spng 187 3 4 50 1 20
spng 188 4 5 50 1 20
spng 189 5 6 50 1 20
spng 190 7 8 50 1 20
spng 191 8 9 50 1 20
spng 192 9 10 50 1 20
spng 193 10 11 50 1 20


spng 194 11 12 50 1 20

spng 195 12 14 50 1 20
spng 196 14 13 50 1 20
spng 197 13 15 50 1 20
spng 198 15 16 50 1 20
spng 199 16 17 50 1 20
spng 200 17 18 50 1 20
spng 201 18 19 50 1 20
spng 202 19 20 50 1 20
spng 203 20 21 50 1 20
spng 204 21 22 50 1 20
spng 205 22 24 50 1 20
spng 206 34 35 50 1 20
spng 207 35 36 50 1 20
spng 208 36 37 50 1 20
spng 209 37 38 50 1 20
spng 210 38 39 50 1 20
spng 211 39 40 50 1 20
spng 212 40 41 50 1 20
spng 213 42 43 50 1 20
spng 214 43 44 50 1 20
spng 215 44 45 50 1 20
spng 216 45 46 50 1 20
spng 217 46 47 50 1 20
spng 218 47 48 50 1 20
spng 219 48 49 50 1 20
spng 220 49 50 50 1 20
spng 221 50 51 50 1 20
spng 222 51 52 50 1 20
spng 223 52 53 50 1 20
spng 224 53 54 50 1 20
spng 225 54 55 50 1 20
spng 226 55 56 50 1 20
spng 227 56 57 50 1 20
spng 228 57 58 50 1 20
spng 229 33 35 50 1 28.284271247461902
spng 230 35 1 50 1 28.284271247461902
spng 231 1 37 50 1 28.284271247461902
spng 232 37 3 50 1 28.284271247461902
spng 233 3 39 50 1 28.284271247461902
spng 234 39 5 50 1 28.284271247461902
spng 235 5 41 50 1 28.284271247461902
spng 236 7 43 50 1 28.284271247461902
spng 237 43 9 50 1 28.284271247461902
spng 238 9 45 50 1 28.284271247461902
spng 239 45 11 50 1 28.284271247461902
spng 240 11 47 50 1 28.284271247461902
spng 241 47 14 50 1 28.284271247461902
spng 242 14 49 50 1 28.284271247461902
spng 243 49 15 50 1 28.284271247461902
spng 244 15 51 50 1 28.284271247461902
spng 245 51 17 50 1 28.284271247461902
spng 246 17 53 50 1 28.284271247461902
spng 247 53 19 50 1 28.284271247461902
spng 248 19 55 50 1 28.284271247461902
spng 249 55 21 50 1 28.284271247461902
spng 250 21 57 50 1 28.284271247461902
spng 251 57 24 50 1 28.284271247461902
spng 252 25 60 50 1 28.284271247461902
spng 253 60 27 50 1 28.284271247461902
spng 254 27 62 50 1 28.284271247461902
spng 255 62 29 50 1 28.284271247461902
spng 256 29 64 50 1 28.284271247461902
spng 257 64 31 50 1 28.284271247461902
spng 258 31 66 50 1 28.284271247461902
spng 259 34 23 50 1 28.284271247461902
spng 260 23 36 50 1 28.284271247461902
spng 261 36 2 50 1 28.284271247461902
spng 262 2 38 50 1 28.284271247461902
spng 263 38 4 50 1 28.284271247461902
spng 264 4 40 50 1 28.284271247461902
spng 265 40 6 50 1 28.284271247461902
spng 266 42 8 50 1 28.284271247461902
spng 267 8 44 50 1 28.284271247461902
spng 268 44 10 50 1 28.284271247461902
spng 269 10 46 50 1 28.284271247461902
spng 270 46 12 50 1 28.284271247461902
spng 271 12 48 50 1 28.284271247461902
spng 272 48 13 50 1 28.284271247461902
spng 273 13 50 50 1 28.284271247461902
spng 274 50 16 50 1 28.284271247461902
spng 275 16 52 50 1 28.284271247461902
spng 276 52 18 50 1 28.284271247461902
spng 277 18 54 50 1 28.284271247461902
spng 278 54 20 50 1 28.284271247461902
spng 279 20 56 50 1 28.284271247461902
spng 280 56 22 50 1 28.284271247461902
spng 281 22 58 50 1 28.284271247461902
spng 282 59 26 50 1 28.284271247461902
spng 283 26 61 50 1 28.284271247461902
spng 284 61 28 50 1 28.284271247461902
spng 285 28 63 50 1 28.284271247461902
spng 286 63 30 50 1 28.284271247461902
spng 287 30 65 50 1 28.284271247461902
spng 288 65 32 50 1 28.284271247461902
spng 289 23 35 50 1 20
spng 290 1 36 50 1 20
spng 291 2 37 50 1 20
spng 292 3 38 50 1 20
spng 293 4 39 50 1 20
spng 294 5 40 50 1 20
spng 295 8 43 50 1 20
spng 296 9 44 50 1 20
spng 297 10 45 50 1 20
spng 298 11 46 50 1 20
spng 299 12 47 50 1 20
spng 300 14 48 50 1 20
spng 301 13 49 50 1 20
spng 302 15 50 50 1 20
spng 303 16 51 50 1 20
spng 304 17 52 50 1 20
spng 305 18 53 50 1 20
spng 306 19 54 50 1 20
spng 307 20 55 50 1 20
spng 308 21 56 50 1 20
spng 309 22 57 50 1 20
spng 310 26 60 50 1 20
spng 311 27 61 50 1 20
spng 312 28 62 50 1 20
spng 313 29 63 50 1 20
spng 314 30 64 50 1 20
spng 315 31 65 50 1 20
spng 316 33 146 1000 2 22.3606797749978981
spng 317 146 147 1000 2 25
spng 318 147 148 1000 2 32.0156211871642427
spng 319 148 149 1000 2 36.0555127546398921
spng 320 149 150 1000 2 36.0555127546398921
spng 321 150 156 1000 2 40.3112887414927457
spng 322 156 111 1000 2 40.3112887414927457
spng 323 112 141 1000 2 36.0555127546398921
spng 324 141 138 1000 2 36.0555127546398921
spng 325 138 139 1000 2 32.0156211871642427
spng 326 139 140 1000 2 32.0156211871642427
spng 327 140 136 1000 2 28.284271247461902
spng 328 136 134 1000 2 28.284271247461902
spng 329 134 132 1000 2 25
spng 330 132 131 1000 2 20.6155281280883038
spng 331 131 133 1000 2 20.6155281280883038
spng 332 133 135 1000 2 25
spng 333 135 137 1000 2 28.284271247461902
spng 334 137 142 1000 2 28.284271247461902
spng 335 142 143 1000 2 32.0156211871642427
spng 336 143 144 1000 2 32.0156211871642427
spng 337 144 145 1000 2 36.0555127546398921
spng 338 145 130 1000 2 36.0555127546398921
spng 339 129 157 1000 2 40.3112887414927457
spng 340 157 152 1000 2 40.3112887414927457
spng 341 152 151 1000 2 36.0555127546398921
spng 342 151 155 1000 2 36.0555127546398921
spng 343 155 153 1000 2 32.0156211871642427
spng 344 153 154 1000 2 25
spng 345 154 32 1000 2 22.3606797749978981
spng 346 146 23 1000 2 10
spng 347 147 1 1000 2 25
spng 348 148 2 1000 2 50
spng 349 3 149 1000 2 80
spng 350 150 4 1000 2 110
spng 351 5 156 1000 2 145
spng 352 141 8 1000 2 150
spng 353 9 138 1000 2 120
spng 354 139 10 1000 2 95
spng 355 11 140 1000 2 70
spng 356 136 12 1000 2 50
spng 357 134 14 1000 2 30
spng 358 132 13 1000 2 15
spng 359 131 15 1000 2 10
spng 360 133 16 1000 2 15
spng 361 17 135 1000 2 30
spng 362 137 18 1000 2 50
spng 363 19 142 1000 2 70
spng 364 20 143 1000 2 95
spng 365 21 144 1000 2 120
spng 366 22 145 1000 2 150
spng 367 26 157 1000 2 145
spng 368 152 27 1000 2 110
spng 369 28 151 1000 2 80
spng 370 29 155 1000 2 50
spng 371 30 153 1000 2 25
spng 372 31 154 1000 2 10
spng 373 59 60 50 1 20
spng 374 58 59 1000 1 20
\BARFOO\
else
echo "will not over write ./lib/bridge.xsp"
fi
if `test ! -s ./lib/diamond-chain.xsp`
then
echo "writting ./lib/diamond-chain.xsp"
cat > ./lib/diamond-chain.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1.0
elas 1.0

kspr 200.0
kdmp 5.0


fixm 0
shws 1
cent -1
frce 0 0 10.0 0.0
frce 1 0 5.0 2.0
frce 2 0 10.0 0.0
frce 3 0 10000.0 1.0

visc 0.0
stck 0.0
step 0.025000

prec 1.0
adpt 0
gsnp 20.0 0


wall 1 1 1 1

mass 1 460.0 350.0 0.0 0.0 1.0 1.0
mass 3 460.0 310.0 0.0 0.0 1.0 1.0
mass 5 480.0 330.0 0.0 0.0 1.0 1.0
mass 6 500.0 350.0 0.0 0.0 1.0 1.0
mass 7 500.0 310.0 0.0 0.0 1.0 1.0
mass 8 520.0 330.0 0.0 0.0 1.0 1.0
mass 9 540.0 350.0 0.0 0.0 1.0 1.0
mass 10 540.0 310.0 0.0 0.0 1.0 1.0
mass 11 560.0 330.0 0.0 0.0 1.0 1.0
mass 15 340.0 350.0 0.0 0.0 1.0 1.0
mass 17 340.0 310.0 0.0 0.0 1.0 1.0
mass 18 360.0 330.0 0.0 0.0 1.0 1.0
mass 19 380.0 350.0 0.0 0.0 1.0 1.0
mass 20 380.0 310.0 0.0 0.0 1.0 1.0
mass 21 400.0 330.0 0.0 0.0 1.0 1.0
mass 22 420.0 350.0 0.0 0.0 1.0 1.0
mass 23 420.0 310.0 0.0 0.0 1.0 1.0
mass 25 220.0 350.0 0.0 0.0 1.0 1.0
mass 27 220.0 310.0 0.0 0.0 1.0 1.0
mass 29 260.0 350.0 0.0 0.0 1.0 1.0
mass 30 260.0 310.0 0.0 0.0 1.0 1.0
mass 31 280.0 330.0 0.0 0.0 1.0 1.0
mass 32 300.0 350.0 0.0 0.0 1.0 1.0
mass 33 300.0 310.0 0.0 0.0 1.0 1.0
mass 35 100.0 350.0 0.0 0.0 1.0 1.0
mass 36 80.0 330.0 0.0 0.0 1.0 1.0
mass 37 100.0 310.0 0.0 0.0 1.0 1.0
mass 38 120.0 330.0 0.0 0.0 1.0 1.0
mass 39 140.0 350.0 0.0 0.0 1.0 1.0
mass 40 140.0 310.0 0.0 0.0 1.0 1.0
mass 41 160.0 330.0 0.0 0.0 1.0 1.0
mass 42 180.0 350.0 0.0 0.0 1.0 1.0
mass 43 180.0 310.0 0.0 0.0 1.0 1.0
mass 45 200.0 330.0 0.0 0.0 1.0 1.0
mass 46 240.0 330.0 0.0 0.0 1.0 1.0
mass 47 320.0 330.0 0.0 0.0 1.0 1.0
mass 48 440.0 330.0 0.0 0.0 1.0 1.0
spng 2 1 5 200.0 5.0 28.284271
spng 3 5 6 200.0 5.0 28.284271
spng 4 6 8 200.0 5.0 28.284271
spng 5 8 9 200.0 5.0 28.284271
spng 6 9 11 200.0 5.0 28.284271
spng 7 11 10 200.0 5.0 28.284271
spng 8 10 8 200.0 5.0 28.284271
spng 9 8 7 200.0 5.0 28.284271
spng 10 7 5 200.0 5.0 28.284271
spng 11 5 3 200.0 5.0 28.284271
spng 15 8 11 200.0 5.0 40.0
spng 16 9 10 200.0 5.0 40.0
spng 17 6 7 200.0 5.0 40.0
spng 18 1 3 200.0 5.0 40.0
spng 20 15 18 200.0 5.0 28.284271
spng 21 18 19 200.0 5.0 28.284271
spng 22 19 21 200.0 5.0 28.284271
spng 23 21 22 200.0 5.0 28.284271
spng 26 23 21 200.0 5.0 28.284271
spng 27 21 20 200.0 5.0 28.284271
spng 28 20 18 200.0 5.0 28.284271
spng 29 18 17 200.0 5.0 28.284271
spng 32 18 21 200.0 5.0 40.0
spng 34 22 23 200.0 5.0 40.0
spng 35 19 20 200.0 5.0 40.0
spng 36 15 17 200.0 5.0 40.0
spng 40 29 31 200.0 5.0 28.284271
spng 41 31 32 200.0 5.0 28.284271
spng 44 33 31 200.0 5.0 28.284271
spng 45 31 30 200.0 5.0 28.284271
spng 52 32 33 200.0 5.0 40.0
spng 53 29 30 200.0 5.0 40.0
spng 55 36 35 200.0 5.0 28.284271
spng 56 35 38 200.0 5.0 28.284271
spng 57 38 39 200.0 5.0 28.284271
spng 58 39 41 200.0 5.0 28.284271
spng 59 41 42 200.0 5.0 28.284271
spng 62 43 41 200.0 5.0 28.284271
spng 63 41 40 200.0 5.0 28.284271
spng 64 40 38 200.0 5.0 28.284271
spng 65 38 37 200.0 5.0 28.284271
spng 66 37 36 200.0 5.0 28.284271
spng 67 36 38 200.0 5.0 40.0
spng 68 38 41 200.0 5.0 40.0
spng 70 42 43 200.0 5.0 40.0
spng 71 39 40 200.0 5.0 40.0
spng 72 35 37 200.0 5.0 40.0
spng 76 46 29 200.0 5.0 28.284271
spng 77 42 45 200.0 5.0 28.284271
spng 78 45 25 200.0 5.0 28.284271
spng 79 25 46 200.0 5.0 28.284271
spng 80 46 27 200.0 5.0 28.284271
spng 81 27 45 200.0 5.0 28.284271
spng 82 45 43 200.0 5.0 28.284271
spng 83 41 45 200.0 5.0 40.0
spng 84 25 27 200.0 5.0 40.0
spng 85 45 46 200.0 5.0 40.0
spng 86 46 30 200.0 5.0 28.284271
spng 87 46 31 200.0 5.0 40.0
spng 88 31 47 200.0 5.0 40.0
spng 89 47 18 200.0 5.0 40.0
spng 90 15 47 200.0 5.0 28.284271
spng 91 47 32 200.0 5.0 28.284271
spng 92 33 47 200.0 5.0 28.284271
spng 93 47 17 200.0 5.0 28.284271
spng 94 21 48 200.0 5.0 40.0
spng 96 48 5 200.0 5.0 40.0
spng 97 5 8 200.0 5.0 40.0
spng 98 22 48 200.0 5.0 28.284271
spng 99 48 1 200.0 5.0 28.284271
spng 100 48 3 200.0 5.0 28.284271
spng 101 48 23 200.0 5.0 28.284271
\BARFOO\
else
echo "will not over write ./lib/diamond-chain.xsp"
fi
if `test ! -s ./lib/hammer.xsp`
then
echo "writting ./lib/hammer.xsp"
cat > ./lib/hammer.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 0.400000

elas 0.0


kspr 40.0
kdmp 0.600000
fixm 0
shws 1
cent -1
frce 0 0 10.0 0.0
frce 1 0 5.0 2.0
frce 2 0 10.0 0.0
frce 3 0 10000.0 1.0
visc 0.0

stck 0.0
step 0.080000
prec 1.0
adpt 0


gsnp 20.0 0
wall 0 0 0 1

mass 1 -13133.725324 -6425.360271 0.0 -113.338189 0.400000 1.0
mass 2 898.303380 8.887617 0.024580 0.834509 10.506667 1.0
mass 3 937.239495 9.579231 -0.024580 -0.273367 10.506667 1.0
mass 4 202.0 359.0 0.0 0.0 -1.0 1.0
mass 5 188.889645 377.109743 -0.248638 -0.198289 0.400000 1.0
mass 6 217.251695 338.546673 0.304325 0.190412 0.400000 1.0
mass 7 151.313796 323.790273 0.573654 -0.818250 0.400000 1.0
mass 8 159.0 203.0 0.0 0.0 -1.0 1.0
mass 9 166.993820 177.858224 -4.943932 -1.430884 0.400000 1.0
mass 10 185.825862 182.896551 -3.916424 -5.171271 0.400000 1.0
mass 11 146.744029 171.118516 -6.430616 2.645500 0.400000 1.0
mass 12 196.483560 82.469817 -24.472050 -7.336580 14.326667 1.0
mass 13 267.360658 411.029890 -0.647243 0.807406 0.400000 1.0
mass 14 250.874745 76.931848 -1.189795 0.170683 0.400000 1.0
mass 15 269.225333 66.701476 -0.913683 0.572021 0.400000 1.0
mass 16 236.097511 51.837379 -0.581436 -0.111073 0.400000 1.0
mass 17 254.502804 41.647814 -0.241515 0.321008 0.400000 1.0
mass 18 220.720650 31.028126 0.122629 -0.626536 0.400000 1.0
mass 19 244.055053 17.515080 0.477097 0.098099 0.400000 1.0
mass 20 281.023010 86.683194 -1.368747 0.765935 0.400000 1.0
mass 21 273.435889 117.712881 -2.276592 0.438272 0.400000 1.0
mass 22 292.090841 108.403239 -1.849327 1.067535 0.400000 1.0
mass 23 259.661083 130.445713 -2.990458 -0.418003 0.400000 1.0
mass 24 279.226244 131.667417 -2.996147 0.583174 0.400000 1.0
mass 25 298.815275 121.804114 -2.597711 1.499455 0.400000 0.0
mass 26 308.041325 93.011219 -0.260432 2.310850 0.400000 0.0
mass 27 320.945854 117.962287 -2.433941 3.449323 0.400000 0.0
mass 28 236.0 35.0 0.0 0.0 -1.0 1.0
mass 29 301.062270 96.000816 -0.577220 1.750962 0.400000 0.0
mass 30 313.949805 120.888826 -2.672396 2.794398 0.400000 0.0
mass 31 262.002181 98.306588 -1.677305 0.313088 0.400000 1.0
spng 1 2 3 10.0 0.600000 39.0
spng 2 5 4 55.0 0.600000 22.0
spng 3 4 6 55.0 0.600000 26.0
spng 4 8 10 55.0 0.600000 32.802439
spng 5 10 9 55.0 0.600000 20.024984
spng 6 9 11 55.0 0.600000 22.0
spng 7 11 8 55.0 0.600000 33.301652
spng 8 8 9 55.0 0.600000 25.0
spng 9 11 12 55.0 0.600000 101.0
spng 10 10 12 55.0 0.600000 100.439036
spng 11 12 9 55.0 0.600000 99.020200
spng 12 7 9 55.0 0.600000 147.357330
spng 13 7 5 55.0 0.600000 65.912747
spng 14 4 7 55.0 0.600000 61.987230
spng 15 7 6 55.0 0.600000 66.880875
spng 16 6 13 55.0 0.600000 87.456419
spng 17 4 13 55.0 0.600000 83.294658
spng 18 5 13 55.0 0.600000 86.140773
spng 19 18 19 40.0 0.600000 27.081104
spng 20 19 28 40.0 0.600000 19.067646
spng 21 28 17 40.0 0.600000 19.945491
spng 22 17 16 40.0 0.600000 20.831837
spng 23 16 18 40.0 0.600000 25.955289
spng 24 18 28 40.0 0.600000 15.639902
spng 25 28 16 40.0 0.600000 17.106482
spng 26 19 17 40.0 0.600000 26.411806
spng 27 16 14 40.0 0.600000 29.330268
spng 28 14 15 40.0 0.600000 20.903498
spng 29 15 16 40.0 0.600000 36.424500
spng 30 15 17 40.0 0.600000 29.320212
spng 31 17 14 40.0 0.600000 35.554347
spng 32 15 31 40.0 0.600000 32.525061
spng 33 31 20 40.0 0.600000 22.081697
spng 34 20 14 40.0 0.600000 31.739891
spng 35 15 20 40.0 0.600000 23.476230
spng 36 14 31 40.0 0.600000 24.324260
spng 37 31 21 40.0 0.600000 22.709252
spng 38 21 22 40.0 0.600000 20.894498
spng 39 22 31 40.0 0.600000 31.878047
spng 40 20 22 40.0 0.600000 24.299726
spng 41 21 20 40.0 0.600000 31.783713
spng 42 23 21 40.0 0.600000 18.752413
spng 43 21 24 40.0 0.600000 15.137808
spng 44 24 23 40.0 0.600000 19.578870
spng 45 24 25 40.0 0.600000 21.898158
spng 46 25 21 40.0 0.600000 25.757027
spng 47 22 24 40.0 0.600000 26.565778
spng 48 22 29 40.0 0.600000 15.382186
spng 49 29 30 40.0 0.600000 28.0
spng 50 30 25 40.0 0.600000 15.160493
spng 51 22 30 40.0 0.600000 25.238475
spng 52 25 29 40.0 0.600000 25.871057
spng 53 22 25 40.0 0.600000 14.997376
spng 54 29 26 40.0 0.600000 7.618656
spng 55 26 27 40.0 0.600000 28.094790
spng 56 30 26 40.0 0.600000 28.480958
spng 57 30 27 40.0 0.600000 7.601085
spng 58 27 29 40.0 0.600000 29.630441
spng 59 13 20 40.0 0.600000 325.227859
\BARFOO\
else
echo "will not over write ./lib/hammer.xsp"
fi
if `test ! -s ./lib/hexball1.xsp`
then
echo "writting ./lib/hexball1.xsp"
cat > ./lib/hexball1.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1
elas 1

kspr 10
kdmp 1


fixm 0
shws 1
cent -1
frce 0 0 10 0
frce 1 0 5 2
frce 2 0 10 0
frce 3 0 10000 1
visc 0
stck 0
step 0.025
prec 1
adpt 0
gsnp 20 0
wall 1 1 1 1

mass 1 296.090922348 237.275844277 0.000885326083942 -0.000454002806975 1 1
mass 2 296.092517501 262.275844226 0.000990587953803 -0.000454007559934 1 1
mass 3 321.090156623 225.274249145 0.000834795169429 -0.00055927935356 1 1
mass 4 321.091751777 250.274249095 0.000940054573336 -0.000559283559342 1 1
mass 5 321.09334693 275.274249043 0.00104531936481 -0.000559292485359 1 1
mass 6 346.090922245 237.27265397 0.000885312551559 -0.000664525922171 1 1
mass 7 346.0925174 262.272653919 0.000990575093515 -0.00066453474819 1 1
spng 1 1 2 200 1 25
spng 2 3 4 200 1 25
spng 3 4 5 200 1 25
spng 4 6 7 200 1 25
spng 5 1 4 200 1 28.1780056072
spng 6 2 5 200 1 28.1780056072
spng 7 3 6 200 1 27.7308492477
spng 8 4 7 200 1 27.7308492477
spng 9 1 3 200 1 27.7308492477
spng 10 2 4 200 1 27.7308492477
spng 11 4 6 200 1 28.1780056072


spng 12 5 7 200 1 28.1780056072

spng 13 5 3 200 1 50
spng 14 1 7 200 1 55.9016994375
spng 15 2 6 200 1 55.9016994375
\BARFOO\
else
echo "will not over write ./lib/hexball1.xsp"
fi
if `test ! -s ./lib/hexball2.xsp`
then
echo "writting ./lib/hexball2.xsp"
cat > ./lib/hexball2.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1
elas 1
kspr 20

kdmp 1


fixm 0
shws 1
cent -1
frce 0 0 10 0
frce 1 0 5 2
frce 2 0 10 0
frce 3 0 10000 1
visc 0
stck 0
step 0.025
prec 1
adpt 0
gsnp 20 0
wall 1 1 1 1

mass 1 271.096136358 225.274444424 0.000884103150068 -0.000393757459995 1 1
mass 2 271.097905829 250.274444362 0.000967204296225 -0.000393775515472 1 1
mass 3 271.099675315 275.274444299 0.00105033979206 -0.000393776618778 1 1
mass 4 296.095216177 212.272674997 0.000840842524337 -0.00047691391271 1 1
mass 5 296.096985646 237.272674926 0.000923969644027 -0.000476898890954 1 1
mass 6 296.098755117 262.272674859 0.00100713134336 -0.000476929028527 1 1
mass 7 296.100524595 287.272674802 0.00109028207975 -0.000476990178115 1 1
mass 8 321.094366754 200.270905522 0.000800975462541 -0.00055992862051 1 1
mass 9 321.096136245 225.27090546 0.000884034058626 -0.000559909774491 1 1
mass 10 321.097905712 250.270905394 0.000967216889185 -0.000559937710633 1 1
mass 11 321.099675179 275.270905327 0.00105040386178 -0.000559947104339 1 1
mass 12 321.101444672 300.270905269 0.00113343553189 -0.000559960773464 1 1
mass 13 346.095216053 212.26913599 0.000840785840468 -0.000642889141133 1 1
mass 14 346.096985528 237.269135932 0.000923978451653 -0.000642939010341 1 1
mass 15 346.098754998 262.269135863 0.00100714511261 -0.000642956710939 1 1
mass 16 346.100524464 287.269135789 0.00109029792081 -0.000642910518283 1 1
mass 17 371.096136111 225.267366497 0.000884072310267 -0.000726173863486 1 1
mass 18 371.097905595 250.267366434 0.000967237912538 -0.000726174349931 1 1
mass 19 371.099675065 275.267366371 0.00105033474591 -0.000726180128748 1 1
spng 1 1 2 200 1 25
spng 2 2 3 200 1 25
spng 3 4 5 200 1 25
spng 4 5 6 200 1 25
spng 5 6 7 200 1 25
spng 6 8 9 200 1 25
spng 7 9 10 200 1 25


spng 8 10 11 200 1 25
spng 9 11 12 200 1 25
spng 10 13 14 200 1 25

spng 11 14 15 200 1 25
spng 12 15 16 200 1 25
spng 13 17 18 200 1 25
spng 14 18 19 200 1 25
spng 15 1 5 200 1 27.7308492477
spng 16 2 6 200 1 27.7308492477
spng 17 3 7 200 1 27.7308492477
spng 18 4 9 200 1 28.1780056072
spng 19 5 10 200 1 28.1780056072
spng 20 6 11 200 1 28.1780056072
spng 21 7 12 200 1 28.1780056072
spng 22 8 13 200 1 27.7308492477
spng 23 9 14 200 1 27.7308492477
spng 24 10 15 200 1 27.7308492477
spng 25 11 16 200 1 27.7308492477
spng 26 13 17 200 1 28.1780056072
spng 27 14 18 200 1 28.1780056072
spng 28 15 19 200 1 28.1780056072
spng 29 1 4 200 1 28.1780056072
spng 30 2 5 200 1 28.1780056072
spng 31 3 6 200 1 28.1780056072
spng 32 4 8 200 1 27.7308492477
spng 33 5 9 200 1 27.7308492477
spng 34 6 10 200 1 27.7308492477
spng 35 7 11 200 1 27.7308492477
spng 36 9 13 200 1 28.1780056072
spng 37 10 14 200 1 28.1780056072
spng 38 11 15 200 1 28.1780056072
spng 39 12 16 200 1 28.1780056072
spng 40 14 17 200 1 27.7308492477
spng 41 15 18 200 1 27.7308492477
spng 42 16 19 200 1 27.7308492477
spng 43 3 1 200 1 50
spng 44 1 8 200 1 55.9016994375
spng 45 8 17 200 1 55.9016994375
spng 46 17 19 200 1 50
spng 47 19 12 200 1 55.9016994375
spng 48 12 3 200 1 55.9016994375
spng 49 12 10 200 1 50
spng 50 10 8 200 1 50
spng 51 8 12 200 1 100
spng 52 3 10 200 1 55.9016994375
spng 53 10 17 200 1 55.9016994375
spng 54 17 3 200 1 111.803398875
spng 55 1 10 200 1 55.9016994375
spng 56 10 19 200 1 55.9016994375
spng 57 19 1 200 1 111.803398875
\BARFOO\
else
echo "will not over write ./lib/hexball2.xsp"
fi
if `test ! -s ./lib/hexball3.xsp`
then
echo "writting ./lib/hexball3.xsp"
cat > ./lib/hexball3.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1
elas 1

kspr 40
kdmp 1


fixm 0
shws 1
cent -1

frce 0 0 30 0


frce 1 0 5 2
frce 2 0 10 0
frce 3 0 10000 1
visc 0
stck 0
step 0.025
prec 1
adpt 0
gsnp 20 0
wall 1 1 1 1

mass 1 246.077075968 212.2828505 -0.00066529432273 -0.000658983744618 1 1
mass 2 246.077066922 237.282848726 -0.000934723914273 -0.000578963161377 1 1
mass 3 246.077051018 262.282844169 -0.000894767225808 -0.000530371740994 1 1
mass 4 246.076986551 287.28284558 -0.000353901542639 -0.000633610548518 1 1
mass 5 271.077127357 200.282952843 -0.000796016090477 -0.000977273778106 1 1
mass 6 271.077089529 225.28293338 -0.000802012222542 -0.000706932391745 1 1
mass 7 271.077076922 250.282930024 -0.000915876295537 -0.000498840362675 1 1
mass 8 271.077035145 275.282922448 -0.00061239408137 -0.000564769709793 1 1
mass 9 271.076958355 300.282901747 -0.000427089918996 -0.000219432261252 1 1
mass 10 296.077149002 187.283008779 -0.000722900064447 -0.000740624593695 1 1
mass 11 296.077134273 212.283010082 -0.000861948951141 -0.000472284823752 1 1
mass 12 296.077104667 237.282999787 -0.000902111687776 -0.000291163465193 1 1
mass 13 296.077078287 262.282997965 -0.000669634856414 -0.000269499761738 1 1
mass 14 296.077023914 287.282997022 -0.000736368511639 -0.000299183510673 1 1
mass 15 296.076927512 312.282972831 -0.000342267550048 -0.000299044339689 1 1
mass 16 321.077136849 175.282996943 -0.00045627200264 -0.000176768780155 1 1
mass 17 321.07714109 200.2830239 -0.00089100047359 -0.000203898883033 1 1
mass 18 321.077129748 225.28304064 -0.000905748830553 -0.000110951954316 1 1
mass 19 321.077099112 250.283049129 -0.000933414833431 7.57270612168e-06 1 1
mass 20 321.077060169 275.283048109 -0.000756175238316 3.89656846898e-05 1 1
mass 21 321.076998679 300.283034225 -0.000727212881573 -0.000102132372927 1 1
mass 22 321.07691947 325.282996778 -0.000595052541736 4.17252568464e-05 1 1
mass 23 346.077118909 187.28303502 -0.000477745134789 0.00018435263416 1 1
mass 24 346.077128531 212.283060607 -0.000915974015022 7.97452749678e-05 1 1
mass 25 346.07710721 237.283075937 -0.00110718867804 6.83985343752e-05 1 1
mass 26 346.077074545 262.2830791 -0.00109333596853 -1.70166511212e-05 1 1
mass 27 346.077027039 287.2830962 -0.000970670963514 7.16216196268e-06 1 1
mass 28 346.076976452 312.283100286 -0.000757417881913 -0.000121485925665 1 1
mass 29 371.077102856 200.283069312 -0.000573761298201 0.000389626159643 1 1
mass 30 371.077099986 225.283087735 -0.000958828688734 0.000113385982894 1 1
mass 31 371.077084791 250.283095056 -0.00136554113072 9.8889228733e-05 1 1
mass 32 371.07702395 275.283096067 -0.00126921205884 0.000105083536158 1 1
mass 33 371.076989914 300.283108465 -0.000874840272116 -0.000281992099315 1 1
mass 34 396.077094926 212.283075395 -0.00060848057276 3.65639654625e-05 1 1
mass 35 396.077074647 237.283072396 -0.00124193877353 0.000119213869906 1 1
mass 36 396.077044847 262.283080178 -0.00149570361565 2.58964699682e-05 1 1
mass 37 396.076979276 287.283080639 -0.000962320853541 -7.17195540211e-06 1 1
spng 1 1 2 200 1 25
spng 2 2 3 200 1 25
spng 3 3 4 200 1 25
spng 4 5 6 200 1 25


spng 5 6 7 200 1 25
spng 6 7 8 200 1 25
spng 7 8 9 200 1 25

spng 8 10 11 200 1 25
spng 9 11 12 200 1 25
spng 10 12 13 200 1 25
spng 11 13 14 200 1 25
spng 12 14 15 200 1 25
spng 13 16 17 200 1 25
spng 14 17 18 200 1 25
spng 15 18 19 200 1 25
spng 16 19 20 200 1 25
spng 17 20 21 200 1 25
spng 18 21 22 200 1 25
spng 19 23 24 200 1 25
spng 20 24 25 200 1 25
spng 21 25 26 200 1 25
spng 22 26 27 200 1 25
spng 23 27 28 200 1 25
spng 24 29 30 200 1 25
spng 25 30 31 200 1 25
spng 26 31 32 200 1 25
spng 27 32 33 200 1 25
spng 28 34 35 200 1 25
spng 29 35 36 200 1 25
spng 30 36 37 200 1 25
spng 31 1 6 200 1 28.1780056072
spng 32 2 7 200 1 28.1780056072
spng 33 3 8 200 1 28.1780056072
spng 34 4 9 200 1 28.1780056072
spng 35 5 11 200 1 27.7308492477
spng 36 6 12 200 1 27.7308492477
spng 37 7 13 200 1 27.7308492477
spng 38 8 14 200 1 27.7308492477
spng 39 9 15 200 1 27.7308492477
spng 40 10 17 200 1 28.1780056072
spng 41 11 18 200 1 28.1780056072
spng 42 12 19 200 1 28.1780056072
spng 43 13 20 200 1 28.1780056072
spng 44 14 21 200 1 28.1780056072
spng 45 15 22 200 1 28.1780056072
spng 46 16 23 200 1 27.7308492477
spng 47 17 24 200 1 27.7308492477
spng 48 18 25 200 1 27.7308492477
spng 49 19 26 200 1 27.7308492477
spng 50 20 27 200 1 27.7308492477
spng 51 21 28 200 1 27.7308492477
spng 52 23 29 200 1 28.1780056072
spng 53 24 30 200 1 28.1780056072
spng 54 25 31 200 1 28.1780056072
spng 55 26 32 200 1 28.1780056072
spng 56 27 33 200 1 28.1780056072
spng 57 29 34 200 1 27.7308492477
spng 58 30 35 200 1 27.7308492477
spng 59 31 36 200 1 27.7308492477
spng 60 32 37 200 1 27.7308492477
spng 61 1 5 200 1 27.7308492477
spng 62 2 6 200 1 27.7308492477
spng 63 3 7 200 1 27.7308492477
spng 64 4 8 200 1 27.7308492477
spng 65 5 10 200 1 28.1780056072
spng 66 6 11 200 1 28.1780056072
spng 67 7 12 200 1 28.1780056072
spng 68 8 13 200 1 28.1780056072
spng 69 9 14 200 1 28.1780056072
spng 70 10 16 200 1 27.7308492477
spng 71 11 17 200 1 27.7308492477
spng 72 12 18 200 1 27.7308492477
spng 73 13 19 200 1 27.7308492477
spng 74 14 20 200 1 27.7308492477
spng 75 15 21 200 1 27.7308492477
spng 76 17 23 200 1 28.1780056072
spng 77 18 24 200 1 28.1780056072
spng 78 19 25 200 1 28.1780056072
spng 79 20 26 200 1 28.1780056072
spng 80 21 27 200 1 28.1780056072
spng 81 22 28 200 1 28.1780056072
spng 82 24 29 200 1 27.7308492477
spng 83 25 30 200 1 27.7308492477
spng 84 26 31 200 1 27.7308492477
spng 85 27 32 200 1 27.7308492477
spng 86 28 33 200 1 27.7308492477
spng 87 30 34 200 1 28.1780056072
spng 88 31 35 200 1 28.1780056072
spng 89 32 36 200 1 28.1780056072
spng 90 33 37 200 1 28.1780056072
spng 91 1 10 200 1 55.9016994375
spng 92 5 16 200 1 55.9016994375
spng 93 1 16 200 1 83.6301381082
spng 94 16 29 200 1 55.9016994375
spng 95 23 34 200 1 55.9016994375
spng 96 16 34 200 1 83.6301381082
spng 97 34 36 200 1 50
spng 98 35 37 200 1 50
spng 99 37 34 200 1 75
spng 100 37 28 200 1 55.9016994375
spng 101 22 33 200 1 55.9016994375
spng 102 22 37 200 1 84.0773453434
spng 103 22 9 200 1 55.9016994375
spng 104 4 15 200 1 55.9016994375
spng 105 4 22 200 1 84.0773453434
spng 106 4 2 200 1 50
spng 107 1 3 200 1 50
spng 108 4 1 200 1 75
spng 109 22 16 200 1 150
spng 110 1 37 200 1 167.705098312
spng 111 4 34 200 1 167.705098312
spng 112 22 19 200 1 75
spng 113 19 16 200 1 75
spng 114 1 19 200 1 84.0773453434
spng 115 19 37 200 1 83.6301381082
spng 116 4 19 200 1 83.6301381082
spng 117 19 34 200 1 84.0773453434
\BARFOO\
else
echo "will not over write ./lib/hexball3.xsp"
fi
echo "Finished archive 12 of 16"

Douglas DeCarlo

unread,
Mar 26, 1993, 11:14:05 AM3/26/93
to
Submitted-by: d...@gradient.cis.upenn.edu (Douglas DeCarlo)
Posting-number: Volume 19, Issue 65
Archive-name: xspringies/part13

Environment: X11
Supersedes: xspringies: Volume 14, Issue 25-30

#!/bin/sh


# to extract, remove the header and type "sh filename"

if `test ! -d ./lib`
then
mkdir ./lib
echo "mkdir ./lib"
fi

if `test ! -s ./lib/belt-tire.xsp`
then
echo "writting ./lib/belt-tire.xsp"
cat > ./lib/belt-tire.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1

elas 0.5
kspr 100


kdmp 1
fixm 0
shws 1
cent -1
frce 0 1 10 0
frce 1 0 5 2
frce 2 0 10 0
frce 3 0 10000 1
visc 0
stck 0
step 0.025
prec 1
adpt 0

gsnp 10 1


wall 1 1 1 1

mass 1 274.078806900597328 346.307117178664043 0 0 1 0.5
mass 2 284.142891110742823 329.83402842231834 0 0 1 0.5
mass 3 295.307158356938658 355.695013578746227 0 0 1 0.5
mass 4 300.698527801927128 337.003548930923216 0 0 1 0.5
mass 5 318.093036910029696 359.203044347904552 0 0 1 0.5
mass 6 318.542098798246286 339.592403450546044 0 0 1 0.5
mass 7 340.949296214486822 356.831259237330983 0 0 1 0.5
mass 8 336.494524828869885 337.754019325244656 0 0 1 0.5
mass 9 362.534986907234952 348.770558940029559 0 0 1 0.5
mass 10 353.491265306914897 331.642140359094469 0 0 1 0.5
mass 11 381.368850422101502 335.37878701564847 0 0 1 0.5
mass 12 368.085531061140216 321.055018811315335 0 0 1 0.5
mass 13 396.117634938806759 317.519287773537314 0 0 1 0.5
mass 14 379.675208211408915 307.277961968837246 0 0 1 0.5
mass 15 405.655157991023771 296.391903048606025 0 0 1 0.5
mass 16 387.124676448692242 290.862310093183567 0 0 1 0.5
mass 17 409.337178964708642 273.594658653786666 0 0 1 0.5
mass 18 389.76569804010461 273.012494879567555 0 0 1 0.5
mass 19 407.11203230551871 250.712646124396059 0 0 1 0.5
mass 20 387.966228461346304 255.061007930370067 0 0 1 0.5
mass 21 399.188308328902735 229.098161823607285 0 0 1 0.5
mass 22 381.896222954111181 238.073977723246998 0 0 1 0.5
mass 23 385.883224011375262 210.148208473511374 0 0 1 0.5
mass 24 371.614761646970464 223.279700317395225 0 0 1 0.5
mass 25 367.955378160003875 195.334436550727929 0 0 1 0.5
mass 26 357.817091674528911 211.717360072075536 0 0 1 0.5
mass 27 346.743525482831387 185.884698478394085 0 0 1 0.5
mass 28 341.291169697238729 204.55711005838188 0 0 1 0.5
mass 29 323.935265230381788 182.330460182137188 0 0 1 0.5
mass 30 323.466187791799882 201.937076877994031 0 0 1 0.5
mass 31 301.04141769400843 184.703602685435726 0 0 1 0.5
mass 32 305.532794735419941 203.763859300438838 0 0 1 0.5
mass 33 279.442362700896183 192.851996602076866 0 0 1 0.5
mass 34 288.551113492738239 209.893932668644339 0 0 1 0.5
mass 35 260.65997798024199 206.334196608396638 0 0 1 0.5
mass 36 273.960657978745814 220.516324161880476 0 0 1 0.5
mass 37 246.029909853431349 224.197583023911335 0 0 1 0.5
mass 38 262.719165304227545 234.58428660123181 0 0 1 0.5
mass 39 236.458142984593252 245.235572499606377 0 0 1 0.5
mass 40 254.870454491934908 250.81914136861181 0 0 1 0.5
mass 41 232.703447579492519 268.042376651164432 0 0 1 0.5
mass 42 252.226120754560156 268.679895159358864 0 0 1 0.5
mass 43 234.96767702938331 291.007702051922024 0 0 1 0.5
mass 44 254.040589506795527 286.621843971355872 0 0 1 0.5
mass 45 242.759412026738119 312.577114225657738 0 0 1 0.5
mass 46 260.111088599530603 303.593264087352964 0 0 1 0.5
mass 47 256.101782779606651 331.52509923420655 0 0 1 0.5
mass 48 270.373388641766439 318.366074596339615 0 0 1 0.5
mass 49 320.448537383965288 270.292364746678743 0 0 10 0.5
spng 1 1 4 200 2 28.284271247461902
spng 2 4 5 200 2 28.284271247461902
spng 3 5 8 200 2 28.284271247461902
spng 4 8 9 200 2 28.284271247461902
spng 5 9 12 200 2 28.284271247461902
spng 6 12 13 200 2 28.284271247461902
spng 7 13 16 200 2 28.284271247461902
spng 8 16 17 200 2 28.284271247461902
spng 9 17 20 200 2 28.284271247461902
spng 10 20 21 200 2 28.284271247461902
spng 11 21 24 200 2 28.284271247461902
spng 12 24 25 200 2 28.284271247461902
spng 13 25 28 200 2 28.284271247461902
spng 14 28 29 200 2 28.284271247461902
spng 15 29 32 200 2 28.284271247461902
spng 16 32 33 200 2 28.284271247461902
spng 17 33 36 200 2 28.284271247461902
spng 18 36 37 200 2 28.284271247461902
spng 19 37 40 200 2 28.284271247461902
spng 20 40 41 200 2 28.284271247461902
spng 21 41 44 200 2 28.284271247461902
spng 22 44 45 200 2 28.284271247461902
spng 23 45 48 200 2 28.284271247461902
spng 24 3 6 200 2 28.284271247461902
spng 25 7 10 200 2 28.284271247461902
spng 26 11 14 200 2 28.284271247461902
spng 27 15 18 200 2 28.284271247461902
spng 28 19 22 200 2 28.284271247461902
spng 29 23 26 200 2 28.284271247461902
spng 30 27 30 200 2 28.284271247461902
spng 31 31 34 200 2 28.284271247461902
spng 32 35 38 200 2 28.284271247461902
spng 33 39 44 200 2 44.7213595499957961
spng 34 39 42 200 2 28.284271247461902
spng 35 43 46 200 2 28.284271247461902
spng 36 47 46 200 2 28.284271247461902
spng 37 43 42 200 2 28.284271247461902
spng 38 39 38 200 2 28.284271247461902
spng 39 35 34 200 2 28.284271247461902
spng 40 2 3 200 2 28.284271247461902
spng 41 6 7 200 2 28.284271247461902
spng 42 10 11 200 2 28.284271247461902
spng 43 14 15 200 2 28.284271247461902
spng 44 18 19 200 2 28.284271247461902
spng 45 22 23 200 2 28.284271247461902
spng 46 26 27 200 2 28.284271247461902
spng 47 30 31 200 2 28.284271247461902
spng 48 1 6 200 2 44.7213595499957961
spng 49 3 8 200 2 44.7213595499957961
spng 50 5 10 200 2 44.7213595499957961
spng 51 7 12 200 2 44.7213595499957961
spng 52 9 14 200 2 44.7213595499957961
spng 53 11 16 200 2 44.7213595499957961
spng 54 13 18 200 2 44.7213595499957961
spng 55 15 20 200 2 44.7213595499957961
spng 56 17 22 200 2 44.7213595499957961
spng 57 19 24 200 2 44.7213595499957961
spng 58 21 26 200 2 44.7213595499957961
spng 59 23 28 200 2 44.7213595499957961
spng 60 25 30 200 2 44.7213595499957961
spng 61 27 32 200 2 44.7213595499957961
spng 62 29 34 200 2 44.7213595499957961
spng 63 31 36 200 2 44.7213595499957961
spng 64 33 38 200 2 44.7213595499957961
spng 65 35 40 200 2 44.7213595499957961
spng 66 37 42 200 2 44.7213595499957961
spng 67 41 46 200 2 44.7213595499957961
spng 68 43 48 200 2 44.7213595499957961
spng 69 2 5 200 2 44.7213595499957961
spng 70 4 7 200 2 44.7213595499957961
spng 71 6 9 200 2 44.7213595499957961
spng 72 8 11 200 2 44.7213595499957961
spng 73 10 13 200 2 44.7213595499957961
spng 74 12 15 200 2 44.7213595499957961
spng 75 14 17 200 2 44.7213595499957961
spng 76 16 19 200 2 44.7213595499957961
spng 77 18 21 200 2 44.7213595499957961
spng 78 20 23 200 2 44.7213595499957961
spng 79 22 25 200 2 44.7213595499957961
spng 80 24 27 200 2 44.7213595499957961
spng 81 26 29 200 2 44.7213595499957961
spng 82 28 31 200 2 44.7213595499957961
spng 83 30 33 200 2 44.7213595499957961
spng 84 32 35 200 2 44.7213595499957961
spng 85 34 37 200 2 44.7213595499957961
spng 86 36 39 200 2 44.7213595499957961
spng 87 38 41 200 2 44.7213595499957961
spng 88 40 43 200 2 44.7213595499957961
spng 89 42 45 200 2 44.7213595499957961
spng 90 44 47 200 2 44.7213595499957961
spng 91 1 8 200 2 63.2455532033675851
spng 92 3 10 200 2 63.2455532033675851
spng 93 5 12 200 2 63.2455532033675851
spng 94 7 14 200 2 63.2455532033675851
spng 95 9 16 200 2 63.2455532033675851
spng 96 11 18 200 2 63.2455532033675851
spng 97 13 20 200 2 63.2455532033675851
spng 98 15 22 200 2 63.2455532033675851
spng 99 17 24 200 2 63.2455532033675851
spng 100 19 26 200 2 63.2455532033675851
spng 101 21 28 200 2 63.2455532033675851
spng 102 23 30 200 2 63.2455532033675851
spng 103 25 32 200 2 63.2455532033675851
spng 104 27 34 200 2 63.2455532033675851
spng 105 29 36 200 2 63.2455532033675851
spng 106 31 38 200 2 63.2455532033675851
spng 107 33 40 200 2 63.2455532033675851
spng 108 35 42 200 2 63.2455532033675851
spng 109 37 44 200 2 63.2455532033675851
spng 110 39 46 200 2 63.2455532033675851
spng 111 48 41 200 2 63.2455532033675851
spng 112 2 7 200 2 63.2455532033675851
spng 113 4 9 200 2 63.2455532033675851
spng 114 6 11 200 2 63.2455532033675851
spng 115 8 13 200 2 63.2455532033675851
spng 116 10 15 200 2 63.2455532033675851
spng 117 12 17 200 2 63.2455532033675851
spng 118 14 19 200 2 63.2455532033675851
spng 119 16 21 200 2 63.2455532033675851
spng 120 18 23 200 2 63.2455532033675851
spng 121 20 25 200 2 63.2455532033675851
spng 122 22 27 200 2 63.2455532033675851
spng 123 24 29 200 2 63.2455532033675851
spng 124 26 31 200 2 63.2455532033675851
spng 125 28 33 200 2 63.2455532033675851
spng 126 30 35 200 2 63.2455532033675851
spng 127 32 37 200 2 63.2455532033675851
spng 128 34 39 200 2 63.2455532033675851
spng 129 36 41 200 2 63.2455532033675851
spng 130 38 43 200 2 63.2455532033675851
spng 131 40 45 200 2 63.2455532033675851
spng 132 42 47 200 2 63.2455532033675851
spng 133 1 3 200 2 20
spng 134 3 5 200 2 20
spng 135 5 7 200 2 20
spng 136 7 9 200 2 20
spng 137 9 11 200 2 20
spng 138 11 13 200 2 20
spng 139 13 15 200 2 20
spng 140 15 17 200 2 20
spng 141 17 19 200 2 20
spng 142 19 21 200 2 20
spng 143 21 23 200 2 20
spng 144 23 25 200 2 20
spng 145 25 27 200 2 20
spng 146 27 29 200 2 20
spng 147 29 31 200 2 20
spng 148 31 33 200 2 20
spng 149 33 35 200 2 20
spng 150 35 37 200 2 20
spng 151 37 39 200 2 20
spng 152 39 41 200 2 20
spng 153 41 43 200 2 20
spng 154 43 45 200 2 20
spng 155 45 47 200 2 20
spng 156 2 4 200 2 20
spng 157 4 6 200 2 20
spng 158 6 8 200 2 20
spng 159 8 10 200 2 20
spng 160 10 12 200 2 20
spng 161 12 14 200 2 20
spng 162 14 16 200 2 20
spng 163 16 18 200 2 20
spng 164 18 20 200 2 20
spng 165 20 22 200 2 20
spng 166 22 24 200 2 20
spng 167 24 26 200 2 20
spng 168 26 28 200 2 20
spng 169 28 30 200 2 20
spng 170 30 32 200 2 20
spng 171 32 34 200 2 20
spng 172 34 36 200 2 20
spng 173 36 38 200 2 20
spng 174 38 40 200 2 20
spng 175 40 42 200 2 20
spng 176 42 44 200 2 20
spng 177 44 46 200 2 20
spng 178 46 48 200 2 20
spng 179 1 2 200 2 20
spng 180 3 4 200 2 20
spng 181 5 6 200 2 20
spng 182 7 8 200 2 20
spng 183 9 10 200 2 20
spng 184 11 12 200 2 20
spng 185 13 14 200 2 20
spng 186 15 16 200 2 20
spng 187 17 18 200 2 20
spng 188 19 20 200 2 20
spng 189 21 22 200 2 20
spng 190 23 24 200 2 20
spng 191 25 26 200 2 20
spng 192 27 28 200 2 20
spng 193 29 30 200 2 20
spng 194 31 32 200 2 20
spng 195 33 34 200 2 20
spng 196 35 36 200 2 20
spng 197 37 38 200 2 20
spng 198 39 40 200 2 20
spng 199 41 42 200 2 20
spng 200 43 44 200 2 20
spng 201 45 46 200 2 20
spng 202 47 48 200 2 20
spng 203 47 2 200 2 28.284271247461902
spng 204 1 48 200 2 28.284271247461902
spng 205 1 46 200 2 44.7213595499957961
spng 206 1 44 200 2 63.2455532033675851
spng 207 47 4 200 2 44.7213595499957961
spng 208 48 3 200 2 44.7213595499957961
spng 209 47 6 200 2 63.2455532033675851
spng 210 48 5 200 2 63.2455532033675851
spng 211 46 3 200 2 63.2455532033675851
spng 212 45 4 200 2 63.2455532033675851
spng 213 47 1 200 2 20
spng 214 48 2 200 2 20
spng 215 18 49 300 3 69.2603782836911677
spng 216 49 20 300 3 69.050706006528273
spng 217 22 49 300 3 69.3541635375988079
spng 218 49 24 300 3 69.5269731830747872
spng 219 26 49 300 3 69.6347614342147381
spng 220 49 28 300 3 68.9492567037527948
spng 221 30 49 300 3 68.2641926635040477
spng 222 49 32 300 3 68.0661443009665419
spng 223 34 49 300 3 68.4470598345904051
spng 224 49 36 300 3 68.1175454637056106
spng 225 38 49 300 3 67.6756972627545252
spng 226 49 40 300 3 68.6221538571910514
spng 227 42 49 300 3 68.1835757349231386
spng 228 49 44 300 3 68.249542123006222
spng 229 46 49 300 3 68.8767014308902503
spng 230 49 48 300 3 69.4262198308391305
spng 231 2 49 300 3 69.8927750200262068
spng 232 49 4 300 3 69.5701085237043486
spng 233 6 49 300 3 69.1809222257119103
spng 234 8 49 300 3 69.2314957226839027
spng 235 49 10 300 3 69.7782200976780445
spng 236 12 49 300 3 69.5269731830747872
spng 237 49 14 300 3 69.8927750200262068
spng 238 16 49 300 3 69.8927750200262068
\BARFOO\
else
echo "will not over write ./lib/belt-tire.xsp"
fi
if `test ! -s ./lib/belt.xsp`
then
echo "writting ./lib/belt.xsp"
cat > ./lib/belt.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1

elas 0.5
kspr 100


kdmp 1
fixm 0
shws 1
cent -1
frce 0 0 10 0
frce 1 0 5 2
frce 2 0 10 0
frce 3 0 10000 1
visc 0
stck 0
step 0.025
prec 1
adpt 0

gsnp 10 1


wall 1 1 1 1

mass 1 80 310 0 0 1 0.5
mass 2 80 290 0 0 1 0.5
mass 3 100 310 0 0 1 0.5
mass 4 100 290 0 0 1 0.5
mass 5 120 310 0 0 1 0.5
mass 6 120 290 0 0 1 0.5
mass 7 140 310 0 0 1 0.5
mass 8 140 290 0 0 1 0.5
mass 9 160 310 0 0 1 0.5
mass 10 160 290 0 0 1 0.5
mass 11 180 310 0 0 1 0.5
mass 12 180 290 0 0 1 0.5
mass 13 200 310 0 0 1 0.5
mass 14 200 290 0 0 1 0.5
mass 15 220 310 0 0 1 0.5
mass 16 220 290 0 0 1 0.5
mass 17 240 310 0 0 1 0.5
mass 18 240 290 0 0 1 0.5
mass 19 260 310 0 0 1 0.5
mass 20 260 290 0 0 1 0.5
mass 21 280 310 0 0 1 0.5
mass 22 280 290 0 0 1 0.5
mass 23 300 310 0 0 1 0.5
mass 24 300 290 0 0 1 0.5
mass 25 320 310 0 0 1 0.5
mass 26 320 290 0 0 1 0.5
mass 27 340 310 0 0 1 0.5
mass 28 340 290 0 0 1 0.5
mass 29 360 310 0 0 1 0.5
mass 30 360 290 0 0 1 0.5
mass 31 380 310 0 0 1 0.5
mass 32 380 290 0 0 1 0.5
mass 33 400 310 0 0 1 0.5
mass 34 400 290 0 0 1 0.5
mass 35 420 310 0 0 1 0.5
mass 36 420 290 0 0 1 0.5
mass 37 440 310 0 0 1 0.5
mass 38 440 290 0 0 1 0.5
mass 39 460 310 0 0 1 0.5
mass 40 460 290 0 0 1 0.5
mass 41 480 310 0 0 1 0.5
mass 42 480 290 0 0 1 0.5
mass 43 500 310 0 0 1 0.5
mass 44 500 290 0 0 1 0.5
mass 45 520 310 0 0 1 0.5
mass 46 520 290 0 0 1 0.5
mass 47 540 310 0 0 1 0.5
mass 48 540 290 0 0 1 0.5
spng 1 1 4 200 2 28.284271247461902
spng 2 4 5 200 2 28.284271247461902
spng 3 5 8 200 2 28.284271247461902
spng 4 8 9 200 2 28.284271247461902
spng 5 9 12 200 2 28.284271247461902
spng 6 12 13 200 2 28.284271247461902
spng 7 13 16 200 2 28.284271247461902
spng 8 16 17 200 2 28.284271247461902
spng 9 17 20 200 2 28.284271247461902
spng 10 20 21 200 2 28.284271247461902
spng 11 21 24 200 2 28.284271247461902
spng 12 24 25 200 2 28.284271247461902
spng 13 25 28 200 2 28.284271247461902
spng 14 28 29 200 2 28.284271247461902
spng 15 29 32 200 2 28.284271247461902
spng 16 32 33 200 2 28.284271247461902
spng 17 33 36 200 2 28.284271247461902
spng 18 36 37 200 2 28.284271247461902
spng 19 37 40 200 2 28.284271247461902
spng 20 40 41 200 2 28.284271247461902
spng 21 41 44 200 2 28.284271247461902
spng 22 44 45 200 2 28.284271247461902
spng 23 45 48 200 2 28.284271247461902
spng 24 3 6 200 2 28.284271247461902
spng 25 7 10 200 2 28.284271247461902
spng 26 11 14 200 2 28.284271247461902
spng 27 15 18 200 2 28.284271247461902
spng 28 19 22 200 2 28.284271247461902
spng 29 23 26 200 2 28.284271247461902
spng 30 27 30 200 2 28.284271247461902
spng 31 31 34 200 2 28.284271247461902
spng 32 35 38 200 2 28.284271247461902
spng 33 39 44 200 2 44.7213595499957961
spng 34 39 42 200 2 28.284271247461902
spng 35 43 46 200 2 28.284271247461902
spng 36 47 46 200 2 28.284271247461902
spng 37 43 42 200 2 28.284271247461902
spng 38 39 38 200 2 28.284271247461902
spng 39 35 34 200 2 28.284271247461902
spng 40 2 3 200 2 28.284271247461902
spng 41 6 7 200 2 28.284271247461902
spng 42 10 11 200 2 28.284271247461902
spng 43 14 15 200 2 28.284271247461902
spng 44 18 19 200 2 28.284271247461902
spng 45 22 23 200 2 28.284271247461902
spng 46 26 27 200 2 28.284271247461902
spng 47 30 31 200 2 28.284271247461902
spng 48 1 6 200 2 44.7213595499957961
spng 49 3 8 200 2 44.7213595499957961
spng 50 5 10 200 2 44.7213595499957961
spng 51 7 12 200 2 44.7213595499957961
spng 52 9 14 200 2 44.7213595499957961
spng 53 11 16 200 2 44.7213595499957961
spng 54 13 18 200 2 44.7213595499957961
spng 55 15 20 200 2 44.7213595499957961
spng 56 17 22 200 2 44.7213595499957961
spng 57 19 24 200 2 44.7213595499957961
spng 58 21 26 200 2 44.7213595499957961
spng 59 23 28 200 2 44.7213595499957961
spng 60 25 30 200 2 44.7213595499957961
spng 61 27 32 200 2 44.7213595499957961
spng 62 29 34 200 2 44.7213595499957961
spng 63 31 36 200 2 44.7213595499957961
spng 64 33 38 200 2 44.7213595499957961
spng 65 35 40 200 2 44.7213595499957961
spng 66 37 42 200 2 44.7213595499957961
spng 67 41 46 200 2 44.7213595499957961
spng 68 43 48 200 2 44.7213595499957961
spng 69 2 5 200 2 44.7213595499957961
spng 70 4 7 200 2 44.7213595499957961
spng 71 6 9 200 2 44.7213595499957961
spng 72 8 11 200 2 44.7213595499957961
spng 73 10 13 200 2 44.7213595499957961
spng 74 12 15 200 2 44.7213595499957961
spng 75 14 17 200 2 44.7213595499957961
spng 76 16 19 200 2 44.7213595499957961
spng 77 18 21 200 2 44.7213595499957961
spng 78 20 23 200 2 44.7213595499957961
spng 79 22 25 200 2 44.7213595499957961
spng 80 24 27 200 2 44.7213595499957961
spng 81 26 29 200 2 44.7213595499957961
spng 82 28 31 200 2 44.7213595499957961
spng 83 30 33 200 2 44.7213595499957961
spng 84 32 35 200 2 44.7213595499957961
spng 85 34 37 200 2 44.7213595499957961
spng 86 36 39 200 2 44.7213595499957961
spng 87 38 41 200 2 44.7213595499957961
spng 88 40 43 200 2 44.7213595499957961
spng 89 42 45 200 2 44.7213595499957961
spng 90 44 47 200 2 44.7213595499957961
spng 91 1 8 200 2 63.2455532033675851
spng 92 3 10 200 2 63.2455532033675851
spng 93 5 12 200 2 63.2455532033675851
spng 94 7 14 200 2 63.2455532033675851
spng 95 9 16 200 2 63.2455532033675851
spng 96 11 18 200 2 63.2455532033675851
spng 97 13 20 200 2 63.2455532033675851
spng 98 15 22 200 2 63.2455532033675851
spng 99 17 24 200 2 63.2455532033675851
spng 100 19 26 200 2 63.2455532033675851
spng 101 21 28 200 2 63.2455532033675851
spng 102 23 30 200 2 63.2455532033675851
spng 103 25 32 200 2 63.2455532033675851
spng 104 27 34 200 2 63.2455532033675851
spng 105 29 36 200 2 63.2455532033675851
spng 106 31 38 200 2 63.2455532033675851
spng 107 33 40 200 2 63.2455532033675851
spng 108 35 42 200 2 63.2455532033675851
spng 109 37 44 200 2 63.2455532033675851
spng 110 39 46 200 2 63.2455532033675851
spng 111 48 41 200 2 63.2455532033675851
spng 112 2 7 200 2 63.2455532033675851
spng 113 4 9 200 2 63.2455532033675851
spng 114 6 11 200 2 63.2455532033675851
spng 115 8 13 200 2 63.2455532033675851
spng 116 10 15 200 2 63.2455532033675851
spng 117 12 17 200 2 63.2455532033675851
spng 118 14 19 200 2 63.2455532033675851
spng 119 16 21 200 2 63.2455532033675851
spng 120 18 23 200 2 63.2455532033675851
spng 121 20 25 200 2 63.2455532033675851
spng 122 22 27 200 2 63.2455532033675851
spng 123 24 29 200 2 63.2455532033675851
spng 124 26 31 200 2 63.2455532033675851
spng 125 28 33 200 2 63.2455532033675851
spng 126 30 35 200 2 63.2455532033675851
spng 127 32 37 200 2 63.2455532033675851
spng 128 34 39 200 2 63.2455532033675851
spng 129 36 41 200 2 63.2455532033675851
spng 130 38 43 200 2 63.2455532033675851
spng 131 40 45 200 2 63.2455532033675851
spng 132 42 47 200 2 63.2455532033675851
spng 133 1 3 200 2 20
spng 134 3 5 200 2 20
spng 135 5 7 200 2 20
spng 136 7 9 200 2 20
spng 137 9 11 200 2 20
spng 138 11 13 200 2 20
spng 139 13 15 200 2 20
spng 140 15 17 200 2 20
spng 141 17 19 200 2 20
spng 142 19 21 200 2 20
spng 143 21 23 200 2 20
spng 144 23 25 200 2 20
spng 145 25 27 200 2 20
spng 146 27 29 200 2 20
spng 147 29 31 200 2 20
spng 148 31 33 200 2 20
spng 149 33 35 200 2 20
spng 150 35 37 200 2 20
spng 151 37 39 200 2 20
spng 152 39 41 200 2 20
spng 153 41 43 200 2 20
spng 154 43 45 200 2 20
spng 155 45 47 200 2 20
spng 156 2 4 200 2 20
spng 157 4 6 200 2 20
spng 158 6 8 200 2 20
spng 159 8 10 200 2 20
spng 160 10 12 200 2 20
spng 161 12 14 200 2 20
spng 162 14 16 200 2 20
spng 163 16 18 200 2 20
spng 164 18 20 200 2 20
spng 165 20 22 200 2 20
spng 166 22 24 200 2 20
spng 167 24 26 200 2 20
spng 168 26 28 200 2 20
spng 169 28 30 200 2 20
spng 170 30 32 200 2 20
spng 171 32 34 200 2 20
spng 172 34 36 200 2 20
spng 173 36 38 200 2 20
spng 174 38 40 200 2 20
spng 175 40 42 200 2 20
spng 176 42 44 200 2 20
spng 177 44 46 200 2 20
spng 178 46 48 200 2 20
spng 179 1 2 200 2 20
spng 180 3 4 200 2 20
spng 181 5 6 200 2 20
spng 182 7 8 200 2 20
spng 183 9 10 200 2 20
spng 184 11 12 200 2 20
spng 185 13 14 200 2 20
spng 186 15 16 200 2 20
spng 187 17 18 200 2 20
spng 188 19 20 200 2 20
spng 189 21 22 200 2 20
spng 190 23 24 200 2 20
spng 191 25 26 200 2 20
spng 192 27 28 200 2 20
spng 193 29 30 200 2 20
spng 194 31 32 200 2 20
spng 195 33 34 200 2 20
spng 196 35 36 200 2 20
spng 197 37 38 200 2 20
spng 198 39 40 200 2 20
spng 199 41 42 200 2 20
spng 200 43 44 200 2 20
spng 201 45 46 200 2 20
spng 202 47 48 200 2 20
\BARFOO\
else
echo "will not over write ./lib/belt.xsp"
fi
if `test ! -s ./lib/bike.xsp`
then
echo "writting ./lib/bike.xsp"
cat > ./lib/bike.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1

elas 0
kspr 50
kdmp 2


fixm 0
shws 1
cent -1
frce 0 1 10 0
frce 1 0 5 2
frce 2 0 10 0
frce 3 0 10000 1
visc 0

stck 500


step 0.025
prec 1
adpt 0
gsnp 20 0
wall 1 1 1 1

mass 1 610.352744074759585 39.680423279276944 -17.0221835366 28.2184229813 1 0
mass 2 593.92383518169504 50.3705604398151507 -22.4569145922 21.1924874646 1 0
mass 3 594.921386060734221 21.8753815322705591 -8.99257825904 21.8954352846 1 0
mass 4 582.528488317137771 36.7980515194434403 -16.3630204137 16.3557613625 1 0
mass 5 575.411371250121874 9.26904154696134697 -3.85679342103 13.264160005 1 0
mass 6 567.49553009312956 26.8770540376477705 -11.664977491 10.3408869992 1 0
mass 7 553.716649725326192 3 -0 0 1 0
mass 8 550.097735318852756 20.9346565925023782 -8.22352496111 3.14221378999 1 0
mass 9 531.210265204327925 3 -0 0 1 0
mass 10 531.414151040117531 19.1875350010296266 -7.06386789731 -2.75184721138 1 0
mass 11 508.548282865102522 3.09928230379369607 -1.67356970736 -10.7653846946 1 0
mass 12 512.915197805530624 21.5102173338078728 -7.92693616207 -9.61861040606 1 0
mass 13 486.989631245552062 11.6781837264505288 -4.66451662924 -18.9759564676 1 0
mass 14 496.019332969242043 28.3453378174852872 -10.9797430896 -16.2068288146 1 0
mass 15 468.343254846410275 25.9983694023900895 -10.3427326151 -26.4387540349 1 0
mass 16 481.952939253667182 39.5325073467150503 -16.1730989296 -21.5444919606 1 0
mass 17 454.51365358265241 44.8593596552922449 -18.0512298885 -32.0900307259 1 0
mass 18 471.958674576257977 54.1680644853216151 -22.1706552112 -24.9942229108 1 0
mass 19 446.37070916140982 66.5033142483668485 -26.9879554412 -35.5421352534 1 0
mass 20 465.778850948841182 70.9271434286538351 -28.920754655 -27.3683202063 1 0
mass 21 444.157010061519486 89.4457053475700548 -36.4134337719 -36.1420854837 1 0
mass 22 463.872527332544848 88.7344150906654079 -36.2010491893 -28.2896476446 1 0
mass 23 448.028846384446922 112.231574957194269 -44.8706855326 -34.0149821904 1 0
mass 24 466.730615291632091 106.431211519443849 -43.0572947521 -27.493671044 1 0
mass 25 457.776954246339983 133.247762818600052 -51.7196541157 -30.3333582286 1 0
mass 26 474.136630681287556 122.785077364497837 -48.6788604929 -25.1584557456 1 0
mass 27 472.666231206765474 150.907567863860749 -57.6175915469 -25.6920668834 1 0
mass 28 485.85171919846664 136.442686392425372 -53.0523789864 -21.1661074763 1 0
mass 29 491.487664196475066 164.108654448286643 -62.8231655078 -19.3943629278 1 0
mass 30 500.664424834946772 146.672181256582462 -56.4619569477 -15.5062021453 1 0
mass 31 513.037210168509546 172.13305520265439 -66.262630655 -11.1398601028 1 0
mass 32 517.502966437970031 152.994409759429118 -58.6769395208 -8.68373420284 1 0
mass 33 536.044245168303746 174.386382692870257 -67.0070531212 -2.00289697848 1 0
mass 34 535.38116266270049 155.021461212551401 -59.3825020597 -1.67670540072 1 0
mass 35 558.861152724873932 170.548324620479576 -65.3776157418 6.78455664218 1 0
mass 36 553.11082184326267 151.92698314401207 -58.3145039536 4.69475939402 1 0
mass 37 579.814899878062533 160.991458674656656 -61.9103958878 14.9538594879 1 0
mass 38 569.394032831061281 144.261776587277268 -55.6566151066 10.5354709501 1 0
mass 39 597.659863193242927 146.522985784590048 -56.4673898952 22.1498434371 1 0
mass 40 583.655444708528762 133.199114217798694 -51.6014734812 16.1553160625 1 0
mass 41 611.269587827928945 128.047807034331186 -49.2980499206 27.2913374602 1 0
mass 42 594.07585241707045 118.44959516945265 -46.1146507966 20.678306051 1 0
mass 43 619.761503853456134 106.692776320004469 -41.6953613176 29.8971963106 1 0
mass 44 600.623477414666013 101.701572960919137 -40.3760836508 23.6220794133 1 0
mass 45 622.962344792375461 84.1456643618671336 -34.3499251586 31.0674304088 1 0
mass 46 603.024002485244296 83.9746040331357619 -34.6770867869 24.803003955 1 0
mass 47 619.919842910702073 61.1705027553493323 -25.9993096378 30.9703840338 1 0
mass 48 600.74485983051386 66.3942539632426474 -28.6163594751 24.0689344297 1 0
mass 49 533.620047586873966 86.6470810987871545 -35.1979413247 -1.69834692738 10 0
mass 50 352.875495031851756 24.1591869162610493 -10.6525345695 24.9983284224 1 0
mass 51 340.138126350956782 38.554678441594838 -18.192690772 17.9718864726 1 0
mass 52 333.703859380819779 11.0133564405075379 -3.71051013149 14.382202643 1 0
mass 53 325.131201618366504 28.3578870335923412 -13.0172035669 13.4666012893 1 0
mass 54 312.407723435663229 3 0 0 1 0
mass 55 308.026566910236795 22.3494114366733747 -8.20812147651 5.98699949649 1 0
mass 56 289.293173037076883 3 -0 0 1 0
mass 57 289.793363954712959 20.9612358112080912 -6.29593837711 1.04363696897 1 0
mass 58 266.32688549292817 5.25997416172283927 -1.94005870294 -6.65377507342 1 0
mass 59 271.652384425457967 23.5299754774544319 -6.20496272324 -4.39594534651 1 0
mass 60 245.134423871246582 14.6090019752411244 -3.7269812809 -13.8832232701 1 0
mass 61 255.122300403069488 31.1126241765265554 -9.00213316925 -9.8173782729 1 0
mass 62 227.029888882379225 29.2674034506921288 -8.78178240765 -21.6000588977 1 0
mass 63 240.947440655389812 42.4561630383933704 -14.2121354748 -15.4991508245 1 0
mass 64 213.509804426398119 48.3009704253392869 -16.7814326816 -27.6255940116 1 0
mass 65 230.598997997753145 57.171856645568738 -20.7956618262 -20.1332810173 1 0
mass 66 205.623336573593349 70.1256866059164139 -26.0580012354 -30.4745955553 1 0
mass 67 224.740386678258517 74.2425849292038862 -27.9157340851 -22.909643524 1 0
mass 68 203.625212408787149 93.0590796375189626 -35.0619315719 -30.9666310785 1 0
mass 69 223.260597996849384 92.2497330168001355 -34.8135967948 -23.7380291075 1 0
mass 70 207.439020276352608 115.724317738217863 -43.9958649073 -29.9822121622 1 0
mass 71 226.137588660435995 110.096538856107614 -41.5502354291 -22.6215751452 1 0
mass 72 216.965476218462385 136.80023165378509 -53.5335417402 -26.8271811406 1 0
mass 73 233.505207909165392 126.558783807952139 -48.4276715211 -19.2852849815 1 0
mass 74 231.831465478053786 154.72936016462495 -62.4238441558 -20.2705967512 1 0
mass 75 244.892517716728179 140.475499034110982 -55.0542638616 -13.8313102556 1 0
mass 76 251.006003114437846 167.962750400391741 -68.3389104422 -10.9761022119 1 0
mass 77 259.779825685874243 150.527936431048971 -60.1420254197 -6.93465248787 1 0
mass 78 272.841297139835433 175.58872330587235 -70.6608450011 -1.41814247504 1 0
mass 79 276.805113905342466 156.31622138584018 -63.0418689767 0.0841212218501 1 0
mass 80 295.748107849698783 177.385519129456839 -70.6473575572 7.05843491675 1 0
mass 81 294.780950262232636 157.75948888103548 -63.7837883467 6.83430130358 1 0
mass 82 318.380345112310579 173.407905715420156 -69.0909497553 14.9205330573 1 0
mass 83 312.639493670439094 154.868129910766186 -62.3904527848 13.4704355031 1 0
mass 84 339.319139587712527 163.837473230633066 -65.5841886169 22.5779234076 1 0
mass 85 329.013952648902489 147.228510442586213 -58.704590859 19.7207543191 1 0
mass 86 357.155576985670962 149.223057028842504 -59.782313326 29.0112605489 1 0
mass 87 342.758683050720833 135.639778636612419 -53.7092511778 24.7532209856 1 0
mass 88 370.685904974105824 130.441213229836876 -52.8445473404 32.7197201617 1 0
mass 89 353.556808155444742 121.300646695110558 -48.3115117776 28.3790426959 1 0
mass 90 378.75947363827953 108.731454445770723 -45.8436597087 34.3592501685 1 0
mass 91 359.503117421153263 104.371755264767074 -42.5358882454 29.7552594082 1 0
mass 92 380.811317777397107 85.7105111727313158 -38.7410877721 35.5856426447 1 0
mass 93 361.085606097326149 86.5115130338566729 -37.0020139052 29.0691377753 1 0
mass 94 377.219895470776862 63.1273615073600922 -28.1044214886 36.1914214349 1 0
mass 95 358.357935515074075 68.7596671069901362 -30.9056646218 26.7997155878 1 0
mass 96 367.843335690859988 42.0571458153101503 -18.039988676 32.1597717743 1 0
mass 97 351.167085266047138 52.3477829525574236 -24.2180752266 22.8244153248 1 0
mass 98 292.483367880006313 89.5136368929678241 -34.2619500109 5.80657048113 10 0
mass 99 314.358909327655851 197.91958682591715 -29.1881196608 11.3301567926 1 0
mass 100 323.938606530217214 217.121673252713009 -24.6833621663 15.4422512477 10 0
mass 101 493.340688451936842 215.236513282727856 -22.8226894625 3.20575901896 20 0
mass 102 422.477153171268412 94.6505611188048448 -35.1793162687 7.8637353331 20 0
spng 1 1 4 200 2 28.284271247461902
spng 2 4 5 200 2 28.284271247461902
spng 3 5 8 200 2 28.284271247461902
spng 4 8 9 200 2 28.284271247461902
spng 5 9 12 200 2 28.284271247461902
spng 6 12 13 200 2 28.284271247461902
spng 7 13 16 200 2 28.284271247461902
spng 8 16 17 200 2 28.284271247461902
spng 9 17 20 200 2 28.284271247461902
spng 10 20 21 200 2 28.284271247461902
spng 11 21 24 200 2 28.284271247461902
spng 12 24 25 200 2 28.284271247461902
spng 13 25 28 200 2 28.284271247461902
spng 14 28 29 200 2 28.284271247461902
spng 15 29 32 200 2 28.284271247461902
spng 16 32 33 200 2 28.284271247461902
spng 17 33 36 200 2 28.284271247461902
spng 18 36 37 200 2 28.284271247461902
spng 19 37 40 200 2 28.284271247461902
spng 20 40 41 200 2 28.284271247461902
spng 21 41 44 200 2 28.284271247461902
spng 22 44 45 200 2 28.284271247461902
spng 23 45 48 200 2 28.284271247461902
spng 24 3 6 200 2 28.284271247461902
spng 25 7 10 200 2 28.284271247461902
spng 26 11 14 200 2 28.284271247461902
spng 27 15 18 200 2 28.284271247461902
spng 28 19 22 200 2 28.284271247461902
spng 29 23 26 200 2 28.284271247461902
spng 30 27 30 200 2 28.284271247461902
spng 31 31 34 200 2 28.284271247461902
spng 32 35 38 200 2 28.284271247461902
spng 33 39 44 200 2 44.7213595499957961
spng 34 39 42 200 2 28.284271247461902
spng 35 43 46 200 2 28.284271247461902
spng 36 47 46 200 2 28.284271247461902
spng 37 43 42 200 2 28.284271247461902
spng 38 39 38 200 2 28.284271247461902
spng 39 35 34 200 2 28.284271247461902
spng 40 2 3 200 2 28.284271247461902
spng 41 6 7 200 2 28.284271247461902
spng 42 10 11 200 2 28.284271247461902
spng 43 14 15 200 2 28.284271247461902
spng 44 18 19 200 2 28.284271247461902
spng 45 22 23 200 2 28.284271247461902
spng 46 26 27 200 2 28.284271247461902
spng 47 30 31 200 2 28.284271247461902
spng 48 1 6 200 2 44.7213595499957961
spng 49 3 8 200 2 44.7213595499957961
spng 50 5 10 200 2 44.7213595499957961
spng 51 7 12 200 2 44.7213595499957961
spng 52 9 14 200 2 44.7213595499957961
spng 53 11 16 200 2 44.7213595499957961
spng 54 13 18 200 2 44.7213595499957961
spng 55 15 20 200 2 44.7213595499957961
spng 56 17 22 200 2 44.7213595499957961
spng 57 19 24 200 2 44.7213595499957961
spng 58 21 26 200 2 44.7213595499957961
spng 59 23 28 200 2 44.7213595499957961
spng 60 25 30 200 2 44.7213595499957961
spng 61 27 32 200 2 44.7213595499957961
spng 62 29 34 200 2 44.7213595499957961
spng 63 31 36 200 2 44.7213595499957961
spng 64 33 38 200 2 44.7213595499957961
spng 65 35 40 200 2 44.7213595499957961
spng 66 37 42 200 2 44.7213595499957961
spng 67 41 46 200 2 44.7213595499957961
spng 68 43 48 200 2 44.7213595499957961
spng 69 2 5 200 2 44.7213595499957961
spng 70 4 7 200 2 44.7213595499957961
spng 71 6 9 200 2 44.7213595499957961
spng 72 8 11 200 2 44.7213595499957961
spng 73 10 13 200 2 44.7213595499957961
spng 74 12 15 200 2 44.7213595499957961
spng 75 14 17 200 2 44.7213595499957961
spng 76 16 19 200 2 44.7213595499957961
spng 77 18 21 200 2 44.7213595499957961
spng 78 20 23 200 2 44.7213595499957961
spng 79 22 25 200 2 44.7213595499957961
spng 80 24 27 200 2 44.7213595499957961
spng 81 26 29 200 2 44.7213595499957961
spng 82 28 31 200 2 44.7213595499957961
spng 83 30 33 200 2 44.7213595499957961
spng 84 32 35 200 2 44.7213595499957961
spng 85 34 37 200 2 44.7213595499957961
spng 86 36 39 200 2 44.7213595499957961
spng 87 38 41 200 2 44.7213595499957961
spng 88 40 43 200 2 44.7213595499957961
spng 89 42 45 200 2 44.7213595499957961
spng 90 44 47 200 2 44.7213595499957961
spng 91 1 8 200 2 63.2455532033675851
spng 92 3 10 200 2 63.2455532033675851
spng 93 5 12 200 2 63.2455532033675851
spng 94 7 14 200 2 63.2455532033675851
spng 95 9 16 200 2 63.2455532033675851
spng 96 11 18 200 2 63.2455532033675851
spng 97 13 20 200 2 63.2455532033675851
spng 98 15 22 200 2 63.2455532033675851
spng 99 17 24 200 2 63.2455532033675851
spng 100 19 26 200 2 63.2455532033675851
spng 101 21 28 200 2 63.2455532033675851
spng 102 23 30 200 2 63.2455532033675851
spng 103 25 32 200 2 63.2455532033675851
spng 104 27 34 200 2 63.2455532033675851
spng 105 29 36 200 2 63.2455532033675851
spng 106 31 38 200 2 63.2455532033675851
spng 107 33 40 200 2 63.2455532033675851
spng 108 35 42 200 2 63.2455532033675851
spng 109 37 44 200 2 63.2455532033675851
spng 110 39 46 200 2 63.2455532033675851
spng 111 48 41 200 2 63.2455532033675851
spng 112 2 7 200 2 63.2455532033675851
spng 113 4 9 200 2 63.2455532033675851
spng 114 6 11 200 2 63.2455532033675851
spng 115 8 13 200 2 63.2455532033675851
spng 116 10 15 200 2 63.2455532033675851
spng 117 12 17 200 2 63.2455532033675851
spng 118 14 19 200 2 63.2455532033675851
spng 119 16 21 200 2 63.2455532033675851
spng 120 18 23 200 2 63.2455532033675851
spng 121 20 25 200 2 63.2455532033675851
spng 122 22 27 200 2 63.2455532033675851
spng 123 24 29 200 2 63.2455532033675851
spng 124 26 31 200 2 63.2455532033675851
spng 125 28 33 200 2 63.2455532033675851
spng 126 30 35 200 2 63.2455532033675851
spng 127 32 37 200 2 63.2455532033675851
spng 128 34 39 200 2 63.2455532033675851
spng 129 36 41 200 2 63.2455532033675851
spng 130 38 43 200 2 63.2455532033675851
spng 131 40 45 200 2 63.2455532033675851
spng 132 42 47 200 2 63.2455532033675851
spng 133 1 3 200 2 20
spng 134 3 5 200 2 20
spng 135 5 7 200 2 20
spng 136 7 9 200 2 20
spng 137 9 11 200 2 20
spng 138 11 13 200 2 20
spng 139 13 15 200 2 20
spng 140 15 17 200 2 20
spng 141 17 19 200 2 20
spng 142 19 21 200 2 20
spng 143 21 23 200 2 20
spng 144 23 25 200 2 20
spng 145 25 27 200 2 20
spng 146 27 29 200 2 20
spng 147 29 31 200 2 20
spng 148 31 33 200 2 20
spng 149 33 35 200 2 20
spng 150 35 37 200 2 20
spng 151 37 39 200 2 20
spng 152 39 41 200 2 20
spng 153 41 43 200 2 20
spng 154 43 45 200 2 20
spng 155 45 47 200 2 20
spng 156 2 4 200 2 20
spng 157 4 6 200 2 20
spng 158 6 8 200 2 20
spng 159 8 10 200 2 20
spng 160 10 12 200 2 20
spng 161 12 14 200 2 20
spng 162 14 16 200 2 20
spng 163 16 18 200 2 20
spng 164 18 20 200 2 20
spng 165 20 22 200 2 20
spng 166 22 24 200 2 20
spng 167 24 26 200 2 20
spng 168 26 28 200 2 20
spng 169 28 30 200 2 20
spng 170 30 32 200 2 20
spng 171 32 34 200 2 20
spng 172 34 36 200 2 20
spng 173 36 38 200 2 20
spng 174 38 40 200 2 20
spng 175 40 42 200 2 20
spng 176 42 44 200 2 20
spng 177 44 46 200 2 20
spng 178 46 48 200 2 20
spng 179 1 2 200 2 20
spng 180 3 4 200 2 20
spng 181 5 6 200 2 20
spng 182 7 8 200 2 20
spng 183 9 10 200 2 20
spng 184 11 12 200 2 20
spng 185 13 14 200 2 20
spng 186 15 16 200 2 20
spng 187 17 18 200 2 20
spng 188 19 20 200 2 20
spng 189 21 22 200 2 20
spng 190 23 24 200 2 20
spng 191 25 26 200 2 20
spng 192 27 28 200 2 20
spng 193 29 30 200 2 20
spng 194 31 32 200 2 20
spng 195 33 34 200 2 20
spng 196 35 36 200 2 20
spng 197 37 38 200 2 20
spng 198 39 40 200 2 20
spng 199 41 42 200 2 20
spng 200 43 44 200 2 20
spng 201 45 46 200 2 20
spng 202 47 48 200 2 20
spng 203 47 2 200 2 28.284271247461902
spng 204 1 48 200 2 28.284271247461902
spng 205 1 46 200 2 44.7213595499957961
spng 206 1 44 200 2 63.2455532033675851
spng 207 47 4 200 2 44.7213595499957961
spng 208 48 3 200 2 44.7213595499957961
spng 209 47 6 200 2 63.2455532033675851
spng 210 48 5 200 2 63.2455532033675851
spng 211 46 3 200 2 63.2455532033675851
spng 212 45 4 200 2 63.2455532033675851
spng 213 47 1 200 2 20
spng 214 48 2 200 2 20
spng 215 18 49 300 3 69.2603782836911677
spng 216 49 20 300 3 69.050706006528273
spng 217 22 49 300 3 69.3541635375988079
spng 218 49 24 300 3 69.5269731830747872
spng 219 26 49 300 3 69.6347614342147381
spng 220 49 28 300 3 68.9492567037527948
spng 221 30 49 300 3 68.2641926635040477
spng 222 49 32 300 3 68.0661443009665419
spng 223 34 49 300 3 68.4470598345904051
spng 224 49 36 300 3 68.1175454637056106
spng 225 38 49 300 3 67.6756972627545252
spng 226 49 40 300 3 68.6221538571910514
spng 227 42 49 300 3 68.1835757349231386
spng 228 49 44 300 3 68.249542123006222
spng 229 46 49 300 3 68.8767014308902503
spng 230 49 48 300 3 69.4262198308391305
spng 231 2 49 300 3 69.8927750200262068
spng 232 49 4 300 3 69.5701085237043486
spng 233 6 49 300 3 69.1809222257119103
spng 234 8 49 300 3 69.2314957226839027
spng 235 49 10 300 3 69.7782200976780445
spng 236 12 49 300 3 69.5269731830747872
spng 237 49 14 300 3 69.8927750200262068
spng 238 16 49 300 3 69.8927750200262068
spng 239 50 53 200 2 28.284271247461902
spng 240 53 54 200 2 28.284271247461902
spng 241 54 57 200 2 28.284271247461902
spng 242 57 58 200 2 28.284271247461902
spng 243 58 61 200 2 28.284271247461902
spng 244 61 62 200 2 28.284271247461902
spng 245 62 65 200 2 28.284271247461902
spng 246 65 66 200 2 28.284271247461902
spng 247 66 69 200 2 28.284271247461902
spng 248 69 70 200 2 28.284271247461902
spng 249 70 73 200 2 28.284271247461902
spng 250 73 74 200 2 28.284271247461902
spng 251 74 77 200 2 28.284271247461902
spng 252 77 78 200 2 28.284271247461902
spng 253 78 81 200 2 28.284271247461902
spng 254 81 82 200 2 28.284271247461902
spng 255 82 85 200 2 28.284271247461902
spng 256 85 86 200 2 28.284271247461902
spng 257 86 89 200 2 28.284271247461902
spng 258 89 90 200 2 28.284271247461902
spng 259 90 93 200 2 28.284271247461902
spng 260 93 94 200 2 28.284271247461902
spng 261 94 97 200 2 28.284271247461902
spng 262 52 55 200 2 28.284271247461902
spng 263 56 59 200 2 28.284271247461902
spng 264 60 63 200 2 28.284271247461902
spng 265 64 67 200 2 28.284271247461902
spng 266 68 71 200 2 28.284271247461902
spng 267 72 75 200 2 28.284271247461902
spng 268 76 79 200 2 28.284271247461902
spng 269 80 83 200 2 28.284271247461902
spng 270 84 87 200 2 28.284271247461902
spng 271 88 93 200 2 44.7213595499957961
spng 272 88 91 200 2 28.284271247461902
spng 273 92 95 200 2 28.284271247461902
spng 274 96 95 200 2 28.284271247461902
spng 275 92 91 200 2 28.284271247461902
spng 276 88 87 200 2 28.284271247461902
spng 277 84 83 200 2 28.284271247461902
spng 278 51 52 200 2 28.284271247461902
spng 279 55 56 200 2 28.284271247461902
spng 280 59 60 200 2 28.284271247461902
spng 281 63 64 200 2 28.284271247461902
spng 282 67 68 200 2 28.284271247461902
spng 283 71 72 200 2 28.284271247461902
spng 284 75 76 200 2 28.284271247461902
spng 285 79 80 200 2 28.284271247461902
spng 286 50 55 200 2 44.7213595499957961
spng 287 52 57 200 2 44.7213595499957961
spng 288 54 59 200 2 44.7213595499957961
spng 289 56 61 200 2 44.7213595499957961
spng 290 58 63 200 2 44.7213595499957961
spng 291 60 65 200 2 44.7213595499957961
spng 292 62 67 200 2 44.7213595499957961
spng 293 64 69 200 2 44.7213595499957961
spng 294 66 71 200 2 44.7213595499957961
spng 295 68 73 200 2 44.7213595499957961
spng 296 70 75 200 2 44.7213595499957961
spng 297 72 77 200 2 44.7213595499957961
spng 298 74 79 200 2 44.7213595499957961
spng 299 76 81 200 2 44.7213595499957961
spng 300 78 83 200 2 44.7213595499957961
spng 301 80 85 200 2 44.7213595499957961
spng 302 82 87 200 2 44.7213595499957961
spng 303 84 89 200 2 44.7213595499957961
spng 304 86 91 200 2 44.7213595499957961
spng 305 90 95 200 2 44.7213595499957961
spng 306 92 97 200 2 44.7213595499957961
spng 307 51 54 200 2 44.7213595499957961
spng 308 53 56 200 2 44.7213595499957961
spng 309 55 58 200 2 44.7213595499957961
spng 310 57 60 200 2 44.7213595499957961
spng 311 59 62 200 2 44.7213595499957961
spng 312 61 64 200 2 44.7213595499957961
spng 313 63 66 200 2 44.7213595499957961
spng 314 65 68 200 2 44.7213595499957961
spng 315 67 70 200 2 44.7213595499957961
spng 316 69 72 200 2 44.7213595499957961
spng 317 71 74 200 2 44.7213595499957961
spng 318 73 76 200 2 44.7213595499957961
spng 319 75 78 200 2 44.7213595499957961
spng 320 77 80 200 2 44.7213595499957961
spng 321 79 82 200 2 44.7213595499957961
spng 322 81 84 200 2 44.7213595499957961
spng 323 83 86 200 2 44.7213595499957961
spng 324 85 88 200 2 44.7213595499957961
spng 325 87 90 200 2 44.7213595499957961
spng 326 89 92 200 2 44.7213595499957961
spng 327 91 94 200 2 44.7213595499957961
spng 328 93 96 200 2 44.7213595499957961
spng 329 50 57 200 2 63.2455532033675851
spng 330 52 59 200 2 63.2455532033675851
spng 331 54 61 200 2 63.2455532033675851
spng 332 56 63 200 2 63.2455532033675851
spng 333 58 65 200 2 63.2455532033675851
spng 334 60 67 200 2 63.2455532033675851
spng 335 62 69 200 2 63.2455532033675851
spng 336 64 71 200 2 63.2455532033675851
spng 337 66 73 200 2 63.2455532033675851
spng 338 68 75 200 2 63.2455532033675851
spng 339 70 77 200 2 63.2455532033675851
spng 340 72 79 200 2 63.2455532033675851
spng 341 74 81 200 2 63.2455532033675851
spng 342 76 83 200 2 63.2455532033675851
spng 343 78 85 200 2 63.2455532033675851
spng 344 80 87 200 2 63.2455532033675851
spng 345 82 89 200 2 63.2455532033675851
spng 346 84 91 200 2 63.2455532033675851
spng 347 86 93 200 2 63.2455532033675851
spng 348 88 95 200 2 63.2455532033675851
spng 349 97 90 200 2 63.2455532033675851
spng 350 51 56 200 2 63.2455532033675851
spng 351 53 58 200 2 63.2455532033675851
spng 352 55 60 200 2 63.2455532033675851
spng 353 57 62 200 2 63.2455532033675851
spng 354 59 64 200 2 63.2455532033675851
spng 355 61 66 200 2 63.2455532033675851
spng 356 63 68 200 2 63.2455532033675851
spng 357 65 70 200 2 63.2455532033675851
spng 358 67 72 200 2 63.2455532033675851
spng 359 69 74 200 2 63.2455532033675851
spng 360 71 76 200 2 63.2455532033675851
spng 361 73 78 200 2 63.2455532033675851
spng 362 75 80 200 2 63.2455532033675851
spng 363 77 82 200 2 63.2455532033675851
spng 364 79 84 200 2 63.2455532033675851
spng 365 81 86 200 2 63.2455532033675851
spng 366 83 88 200 2 63.2455532033675851
spng 367 85 90 200 2 63.2455532033675851
spng 368 87 92 200 2 63.2455532033675851
spng 369 89 94 200 2 63.2455532033675851
spng 370 91 96 200 2 63.2455532033675851
spng 371 50 52 200 2 20
spng 372 52 54 200 2 20
spng 373 54 56 200 2 20
spng 374 56 58 200 2 20
spng 375 58 60 200 2 20
spng 376 60 62 200 2 20
spng 377 62 64 200 2 20
spng 378 64 66 200 2 20
spng 379 66 68 200 2 20
spng 380 68 70 200 2 20
spng 381 70 72 200 2 20
spng 382 72 74 200 2 20
spng 383 74 76 200 2 20
spng 384 76 78 200 2 20
spng 385 78 80 200 2 20
spng 386 80 82 200 2 20
spng 387 82 84 200 2 20
spng 388 84 86 200 2 20
spng 389 86 88 200 2 20
spng 390 88 90 200 2 20
spng 391 90 92 200 2 20
spng 392 92 94 200 2 20
spng 393 94 96 200 2 20
spng 394 51 53 200 2 20
spng 395 53 55 200 2 20
spng 396 55 57 200 2 20
spng 397 57 59 200 2 20
spng 398 59 61 200 2 20
spng 399 61 63 200 2 20
spng 400 63 65 200 2 20
spng 401 65 67 200 2 20
spng 402 67 69 200 2 20
spng 403 69 71 200 2 20
spng 404 71 73 200 2 20
spng 405 73 75 200 2 20
spng 406 75 77 200 2 20
spng 407 77 79 200 2 20
spng 408 79 81 200 2 20
spng 409 81 83 200 2 20
spng 410 83 85 200 2 20
spng 411 85 87 200 2 20
spng 412 87 89 200 2 20
spng 413 89 91 200 2 20
spng 414 91 93 200 2 20
spng 415 93 95 200 2 20
spng 416 95 97 200 2 20
spng 417 50 51 200 2 20
spng 418 52 53 200 2 20
spng 419 54 55 200 2 20
spng 420 56 57 200 2 20
spng 421 58 59 200 2 20
spng 422 60 61 200 2 20
spng 423 62 63 200 2 20
spng 424 64 65 200 2 20
spng 425 66 67 200 2 20
spng 426 68 69 200 2 20
spng 427 70 71 200 2 20
spng 428 72 73 200 2 20
spng 429 74 75 200 2 20
spng 430 76 77 200 2 20
spng 431 78 79 200 2 20
spng 432 80 81 200 2 20
spng 433 82 83 200 2 20
spng 434 84 85 200 2 20
spng 435 86 87 200 2 20
spng 436 88 89 200 2 20
spng 437 90 91 200 2 20
spng 438 92 93 200 2 20
spng 439 94 95 200 2 20
spng 440 96 97 200 2 20
spng 441 96 51 200 2 28.284271247461902
spng 442 50 97 200 2 28.284271247461902
spng 443 50 95 200 2 44.7213595499957961
spng 444 50 93 200 2 63.2455532033675851
spng 445 96 53 200 2 44.7213595499957961
spng 446 97 52 200 2 44.7213595499957961
spng 447 96 55 200 2 63.2455532033675851
spng 448 97 54 200 2 63.2455532033675851
spng 449 95 52 200 2 63.2455532033675851
spng 450 94 53 200 2 63.2455532033675851
spng 451 96 50 200 2 20
spng 452 97 51 200 2 20
spng 453 67 98 300 3 69.2603782836911677
spng 454 98 69 300 3 69.050706006528273
spng 455 71 98 300 3 69.3541635375988079
spng 456 98 73 300 3 69.5269731830747872
spng 457 75 98 300 3 69.6347614342147381
spng 458 98 77 300 3 68.9492567037527948
spng 459 79 98 300 3 68.2641926635040477
spng 460 98 81 300 3 68.0661443009665419
spng 461 83 98 300 3 68.4470598345904051
spng 462 98 85 300 3 68.1175454637056106
spng 463 87 98 300 3 67.6756972627545252
spng 464 98 89 300 3 68.6221538571910514
spng 465 91 98 300 3 68.1835757349231386
spng 466 98 93 300 3 68.249542123006222
spng 467 95 98 300 3 68.8767014308902503
spng 468 98 97 300 3 69.4262198308391305
spng 469 51 98 300 3 69.8927750200262068
spng 470 98 53 300 3 69.5701085237043486
spng 471 55 98 300 3 69.1809222257119103
spng 472 57 98 300 3 69.2314957226839027
spng 473 98 59 300 3 69.7782200976780445
spng 474 61 98 300 3 69.5269731830747872
spng 475 98 63 300 3 69.8927750200262068
spng 476 65 98 300 3 69.8927750200262068
spng 477 98 99 500 3 111.803398874989483
spng 478 99 100 500 3 22.3606797749978981
spng 479 100 101 500 3 170
spng 480 99 102 500 3 148.66068747318505
spng 481 102 100 500 3 156.20499351813308
spng 482 102 101 500 3 138.92443989449805
spng 483 101 49 500 3 136.970799807842269
spng 484 102 49 500 3 110.548631832329789
spng 485 98 102 500 3 130.384048104052965
spng 486 98 101 500 3 238.537208837531267
spng 487 100 49 500 3 247.509595773578042
spng 488 49 99 500 3 246.416314394968595
spng 489 98 49 500 3 240.002083324291164
\BARFOO\
else
echo "will not over write ./lib/bike.xsp"
fi
echo "Finished archive 13 of 16"

Douglas DeCarlo

unread,
Mar 26, 1993, 11:14:15 AM3/26/93
to
Submitted-by: d...@gradient.cis.upenn.edu (Douglas DeCarlo)
Posting-number: Volume 19, Issue 66
Archive-name: xspringies/part14

Environment: X11
Supersedes: xspringies: Volume 14, Issue 25-30

#!/bin/sh


# to extract, remove the header and type "sh filename"

if `test ! -d ./lib`
then
mkdir ./lib
echo "mkdir ./lib"
fi

if `test ! -s ./lib/3snake.xsp`
then
echo "writting ./lib/3snake.xsp"
cat > ./lib/3snake.xsp << '\BARFOO\'


#1.0 *** XSpringies data file

cmas 1.0
elas 1.0
kspr 200.0

kdmp 1.500000


fixm 0
shws 1
cent -1

frce 0 0 10.0 0.0
frce 1 0 5.0 2.0
frce 2 0 10.0 0.0
frce 3 0 10000.0 1.0
visc 0.0
stck 0.0
step 0.025000

prec 1.0
adpt 0
gsnp 18.0 0


wall 1 1 1 1

mass 1 19.0 328.0 0.0 0.0 1.0 1.0
mass 2 36.0 328.0 0.0 0.0 1.0 1.0
mass 3 54.0 328.0 0.0 0.0 1.0 1.0
mass 4 72.0 328.0 0.0 0.0 1.0 1.0
mass 5 90.0 328.0 0.0 0.0 1.0 1.0
mass 6 108.0 328.0 0.0 0.0 1.0 1.0
mass 7 126.0 328.0 0.0 0.0 1.0 1.0
mass 8 144.0 328.0 0.0 0.0 1.0 1.0
mass 9 162.0 328.0 0.0 0.0 1.0 1.0
mass 10 180.0 328.0 0.0 0.0 1.0 1.0
mass 11 198.0 328.0 0.0 0.0 1.0 1.0
mass 12 216.0 328.0 0.0 0.0 1.0 1.0
mass 13 234.0 328.0 0.0 0.0 1.0 1.0
mass 14 252.0 328.0 0.0 0.0 1.0 1.0
mass 15 270.0 328.0 0.0 0.0 1.0 1.0
mass 16 288.0 328.0 0.0 0.0 1.0 1.0
mass 17 306.0 328.0 0.0 0.0 1.0 1.0
mass 18 324.0 328.0 0.0 0.0 1.0 1.0
mass 19 342.0 328.0 0.0 0.0 1.0 1.0
mass 20 360.0 328.0 0.0 0.0 1.0 1.0
mass 21 378.0 328.0 0.0 0.0 1.0 1.0
mass 22 396.0 328.0 0.0 0.0 1.0 1.0
mass 23 414.0 328.0 0.0 0.0 1.0 1.0
mass 24 432.0 328.0 0.0 0.0 1.0 1.0
mass 25 450.0 328.0 0.0 0.0 1.0 1.0
mass 26 468.0 328.0 0.0 0.0 1.0 1.0
mass 27 504.0 328.0 0.0 0.0 1.0 1.0
mass 28 486.0 328.0 0.0 0.0 1.0 1.0
mass 29 522.0 328.0 0.0 0.0 1.0 1.0
mass 30 540.0 328.0 0.0 0.0 1.0 1.0
mass 31 558.0 328.0 0.0 0.0 1.0 1.0
mass 32 576.0 328.0 0.0 0.0 1.0 1.0
mass 33 594.0 328.0 0.0 0.0 1.0 1.0
mass 34 612.0 328.0 0.0 0.0 1.0 1.0
mass 35 626.0 328.0 0.0 0.0 1.0 1.0

spng 34 34 35 200.0 1.500000 18.0
spng 35 1 3 200.0 1.500000 36.0
spng 36 2 4 200.0 1.500000 36.0
spng 37 3 5 200.0 1.500000 36.0
spng 38 4 6 200.0 1.500000 36.0
spng 39 5 7 200.0 1.500000 36.0
spng 40 6 8 200.0 1.500000 36.0
spng 41 7 9 200.0 1.500000 36.0
spng 42 8 10 200.0 1.500000 36.0
spng 43 9 11 200.0 1.500000 36.0
spng 44 10 12 200.0 1.500000 36.0
spng 45 11 13 200.0 1.500000 36.0
spng 46 12 14 200.0 1.500000 36.0
spng 47 13 15 200.0 1.500000 36.0
spng 48 14 16 200.0 1.500000 36.0
spng 49 15 17 200.0 1.500000 36.0
spng 50 16 18 200.0 1.500000 36.0
spng 51 17 19 200.0 1.500000 36.0
spng 52 18 20 200.0 1.500000 36.0
spng 53 19 21 200.0 1.500000 36.0
spng 54 20 22 200.0 1.500000 36.0
spng 55 21 23 200.0 1.500000 36.0
spng 56 22 24 200.0 1.500000 36.0
spng 57 23 25 200.0 1.500000 36.0
spng 58 24 26 200.0 1.500000 36.0
spng 59 25 28 200.0 1.500000 36.0
spng 60 26 27 200.0 1.500000 36.0
spng 61 28 29 200.0 1.500000 36.0
spng 62 27 30 200.0 1.500000 36.0
spng 63 29 31 200.0 1.500000 36.0
spng 64 30 32 200.0 1.500000 36.0
spng 65 31 33 200.0 1.500000 36.0
spng 66 32 34 200.0 1.500000 36.0
spng 67 33 35 200.0 1.500000 36.0
spng 68 1 4 200.0 1.500000 53.0
spng 69 2 5 200.0 1.500000 54.0
spng 70 3 6 200.0 1.500000 54.0
spng 71 4 7 200.0 1.500000 54.0
spng 72 5 8 200.0 1.500000 54.0
spng 73 6 9 200.0 1.500000 54.0
spng 74 7 10 200.0 1.500000 54.0
spng 75 8 11 200.0 1.500000 54.0
spng 76 9 12 200.0 1.500000 54.0
spng 77 10 13 200.0 1.500000 54.0
spng 78 11 14 200.0 1.500000 54.0
spng 79 12 15 200.0 1.500000 54.0
spng 80 13 16 200.0 1.500000 54.0
spng 81 14 17 200.0 1.500000 54.0
spng 82 15 18 200.0 1.500000 54.0
spng 83 16 19 200.0 1.500000 54.0
spng 84 17 20 200.0 1.500000 54.0
spng 85 18 21 200.0 1.500000 54.0
spng 86 19 22 200.0 1.500000 54.0
spng 87 20 23 200.0 1.500000 54.0
spng 88 21 24 200.0 1.500000 54.0
spng 89 22 25 200.0 1.500000 54.0
spng 90 23 26 200.0 1.500000 54.0
spng 91 24 28 200.0 1.500000 54.0
spng 92 25 27 200.0 1.500000 54.0
spng 93 26 29 200.0 1.500000 54.0
spng 94 28 30 200.0 1.500000 54.0
spng 95 27 31 200.0 1.500000 54.0
spng 96 29 32 200.0 1.500000 54.0
spng 97 30 33 200.0 1.500000 54.0
spng 98 31 34 200.0 1.500000 54.0
spng 99 32 35 200.0 1.500000 50.0
\BARFOO\
else
echo "will not over write ./lib/3snake.xsp"
fi
if `test ! -s ./lib/4snake.xsp`
then
echo "writting ./lib/4snake.xsp"
cat > ./lib/4snake.xsp << '\BARFOO\'


#1.0 *** XSpringies data file

cmas 1.0
elas 1.0
kspr 200.0

kdmp 1.500000


fixm 0
shws 1
cent -1

frce 0 0 10.0 0.0
frce 1 0 5.0 2.0
frce 2 0 10.0 0.0
frce 3 0 10000.0 1.0
visc 0.0
stck 0.0
step 0.025000

prec 1.0
adpt 0
gsnp 18.0 0


wall 1 1 1 1

mass 1 18.0 328.0 0.0 0.0 1.0 1.0
mass 2 36.0 328.0 0.0 0.0 1.0 1.0
mass 3 54.0 328.0 0.0 0.0 1.0 1.0
mass 4 72.0 328.0 0.0 0.0 1.0 1.0
mass 5 90.0 328.0 0.0 0.0 1.0 1.0
mass 6 108.0 328.0 0.0 0.0 1.0 1.0
mass 7 126.0 328.0 0.0 0.0 1.0 1.0
mass 8 144.0 328.0 0.0 0.0 1.0 1.0
mass 9 162.0 328.0 0.0 0.0 1.0 1.0
mass 10 180.0 328.0 0.0 0.0 1.0 1.0
mass 11 198.0 328.0 0.0 0.0 1.0 1.0
mass 12 216.0 328.0 0.0 0.0 1.0 1.0
mass 13 234.0 328.0 0.0 0.0 1.0 1.0
mass 14 252.0 328.0 0.0 0.0 1.0 1.0
mass 15 270.0 328.0 0.0 0.0 1.0 1.0
mass 16 288.0 328.0 0.0 0.0 1.0 1.0
mass 17 306.0 328.0 0.0 0.0 1.0 1.0
mass 18 324.0 328.0 0.0 0.0 1.0 1.0
mass 19 342.0 328.0 0.0 0.0 1.0 1.0
mass 20 360.0 328.0 0.0 0.0 1.0 1.0
mass 21 378.0 328.0 0.0 0.0 1.0 1.0
mass 22 396.0 328.0 0.0 0.0 1.0 1.0
mass 23 414.0 328.0 0.0 0.0 1.0 1.0
mass 24 432.0 328.0 0.0 0.0 1.0 1.0
mass 25 450.0 328.0 0.0 0.0 1.0 1.0
mass 26 468.0 328.0 0.0 0.0 1.0 1.0
mass 27 504.0 328.0 0.0 0.0 1.0 1.0
mass 28 486.0 328.0 0.0 0.0 1.0 1.0
mass 29 522.0 328.0 0.0 0.0 1.0 1.0
mass 30 540.0 328.0 0.0 0.0 1.0 1.0
mass 31 558.0 328.0 0.0 0.0 1.0 1.0
mass 32 576.0 328.0 0.0 0.0 1.0 1.0
mass 33 594.0 328.0 0.0 0.0 1.0 1.0
mass 34 612.0 328.0 0.0 0.0 1.0 1.0
mass 35 626.0 328.0 0.0 0.0 1.0 1.0

spng 34 34 35 200.0 1.500000 18.0
spng 35 1 3 200.0 1.500000 36.0
spng 36 2 4 200.0 1.500000 36.0
spng 37 3 5 200.0 1.500000 36.0
spng 38 4 6 200.0 1.500000 36.0
spng 39 5 7 200.0 1.500000 36.0
spng 40 6 8 200.0 1.500000 36.0
spng 41 7 9 200.0 1.500000 36.0
spng 42 8 10 200.0 1.500000 36.0
spng 43 9 11 200.0 1.500000 36.0
spng 44 10 12 200.0 1.500000 36.0
spng 45 11 13 200.0 1.500000 36.0
spng 46 12 14 200.0 1.500000 36.0
spng 47 13 15 200.0 1.500000 36.0
spng 48 14 16 200.0 1.500000 36.0
spng 49 15 17 200.0 1.500000 36.0
spng 50 16 18 200.0 1.500000 36.0
spng 51 17 19 200.0 1.500000 36.0
spng 52 18 20 200.0 1.500000 36.0
spng 53 19 21 200.0 1.500000 36.0
spng 54 20 22 200.0 1.500000 36.0
spng 55 21 23 200.0 1.500000 36.0
spng 56 22 24 200.0 1.500000 36.0
spng 57 23 25 200.0 1.500000 36.0
spng 58 24 26 200.0 1.500000 36.0
spng 59 25 28 200.0 1.500000 36.0
spng 60 26 27 200.0 1.500000 36.0
spng 61 28 29 200.0 1.500000 36.0
spng 62 27 30 200.0 1.500000 36.0
spng 63 29 31 200.0 1.500000 36.0
spng 64 30 32 200.0 1.500000 36.0
spng 65 31 33 200.0 1.500000 36.0
spng 66 32 34 200.0 1.500000 36.0
spng 67 33 35 200.0 1.500000 36.0
spng 68 1 4 200.0 1.500000 53.0
spng 69 2 5 200.0 1.500000 54.0
spng 70 3 6 200.0 1.500000 54.0
spng 71 4 7 200.0 1.500000 54.0
spng 72 5 8 200.0 1.500000 54.0
spng 73 6 9 200.0 1.500000 54.0
spng 74 7 10 200.0 1.500000 54.0
spng 75 8 11 200.0 1.500000 54.0
spng 76 9 12 200.0 1.500000 54.0
spng 77 10 13 200.0 1.500000 54.0
spng 78 11 14 200.0 1.500000 54.0
spng 79 12 15 200.0 1.500000 54.0
spng 80 13 16 200.0 1.500000 54.0
spng 81 14 17 200.0 1.500000 54.0
spng 82 15 18 200.0 1.500000 54.0
spng 83 16 19 200.0 1.500000 54.0
spng 84 17 20 200.0 1.500000 54.0
spng 85 18 21 200.0 1.500000 54.0
spng 86 19 22 200.0 1.500000 54.0
spng 87 20 23 200.0 1.500000 54.0
spng 88 21 24 200.0 1.500000 54.0
spng 89 22 25 200.0 1.500000 54.0
spng 90 23 26 200.0 1.500000 54.0
spng 91 24 28 200.0 1.500000 54.0
spng 92 25 27 200.0 1.500000 54.0
spng 93 26 29 200.0 1.500000 54.0
spng 94 28 30 200.0 1.500000 54.0
spng 95 27 31 200.0 1.500000 54.0
spng 96 29 32 200.0 1.500000 54.0
spng 97 30 33 200.0 1.500000 54.0
spng 98 31 34 200.0 1.500000 54.0
spng 99 32 35 200.0 1.500000 50.0
spng 100 1 5 200.0 1.500000 72.0
spng 101 2 6 200.0 1.500000 72.0
spng 102 3 7 200.0 1.500000 72.0
spng 103 4 8 200.0 1.500000 72.0
spng 104 5 9 200.0 1.500000 72.0
spng 105 6 10 200.0 1.500000 72.0
spng 106 7 11 200.0 1.500000 72.0
spng 107 8 12 200.0 1.500000 72.0
spng 108 9 13 200.0 1.500000 72.0
spng 109 10 14 200.0 1.500000 72.0
spng 110 11 15 200.0 1.500000 72.0
spng 111 12 16 200.0 1.500000 72.0
spng 112 13 17 200.0 1.500000 72.0
spng 113 14 18 200.0 1.500000 72.0
spng 114 15 19 200.0 1.500000 72.0
spng 115 16 20 200.0 1.500000 72.0
spng 116 17 21 200.0 1.500000 72.0
spng 117 18 22 200.0 1.500000 72.0
spng 118 19 23 200.0 1.500000 72.0
spng 119 20 24 200.0 1.500000 72.0
spng 120 21 25 200.0 1.500000 72.0
spng 121 22 26 200.0 1.500000 72.0
spng 122 23 28 200.0 1.500000 72.0
spng 123 24 27 200.0 1.500000 72.0
spng 124 25 29 200.0 1.500000 72.0
spng 125 26 30 200.0 1.500000 72.0
spng 126 28 31 200.0 1.500000 72.0
spng 127 27 32 200.0 1.500000 72.0
spng 128 29 33 200.0 1.500000 72.0
spng 129 30 34 200.0 1.500000 72.0
spng 130 31 35 200.0 1.500000 68.0
\BARFOO\
else
echo "will not over write ./lib/4snake.xsp"
fi
if `test ! -s ./lib/9snake.xsp`
then
echo "writting ./lib/9snake.xsp"
cat > ./lib/9snake.xsp << '\BARFOO\'


#1.0 *** XSpringies data file

cmas 1.0
elas 1.0
kspr 200.0

kdmp 1.500000


fixm 0
shws 1
cent -1

frce 0 0 10.0 0.0
frce 1 0 5.0 2.0
frce 2 0 10.0 0.0
frce 3 0 10000.0 1.0
visc 0.0
stck 0.0
step 0.025000

prec 1.0
adpt 0
gsnp 18.0 0


wall 1 1 1 1

mass 1 18.0 328.0 0.0 0.0 1.0 1.0
mass 2 36.0 328.0 0.0 0.0 1.0 1.0
mass 3 54.0 328.0 0.0 0.0 1.0 1.0
mass 4 72.0 328.0 0.0 0.0 1.0 1.0
mass 5 90.0 328.0 0.0 0.0 1.0 1.0
mass 6 108.0 328.0 0.0 0.0 1.0 1.0
mass 7 126.0 328.0 0.0 0.0 1.0 1.0
mass 8 144.0 328.0 0.0 0.0 1.0 1.0
mass 9 162.0 328.0 0.0 0.0 1.0 1.0
mass 10 180.0 328.0 0.0 0.0 1.0 1.0
mass 11 198.0 328.0 0.0 0.0 1.0 1.0
mass 12 216.0 328.0 0.0 0.0 1.0 1.0
mass 13 234.0 328.0 0.0 0.0 1.0 1.0
mass 14 252.0 328.0 0.0 0.0 1.0 1.0
mass 15 270.0 328.0 0.0 0.0 1.0 1.0
mass 16 288.0 328.0 0.0 0.0 1.0 1.0
mass 17 306.0 328.0 0.0 0.0 1.0 1.0
mass 18 324.0 328.0 0.0 0.0 1.0 1.0
mass 19 342.0 328.0 0.0 0.0 1.0 1.0
mass 20 360.0 328.0 0.0 0.0 1.0 1.0
mass 21 378.0 328.0 0.0 0.0 1.0 1.0
mass 22 396.0 328.0 0.0 0.0 1.0 1.0
mass 23 414.0 328.0 0.0 0.0 1.0 1.0
mass 24 432.0 328.0 0.0 0.0 1.0 1.0
mass 25 450.0 328.0 0.0 0.0 1.0 1.0
mass 26 468.0 328.0 0.0 0.0 1.0 1.0
mass 27 504.0 328.0 0.0 0.0 1.0 1.0
mass 28 486.0 328.0 0.0 0.0 1.0 1.0
mass 29 522.0 328.0 0.0 0.0 1.0 1.0
mass 30 540.0 328.0 0.0 0.0 1.0 1.0
mass 31 558.0 328.0 0.0 0.0 1.0 1.0
mass 32 576.0 328.0 0.0 0.0 1.0 1.0
mass 33 594.0 328.0 0.0 0.0 1.0 1.0
mass 34 612.0 328.0 0.0 0.0 1.0 1.0
mass 35 626.0 328.0 0.0 0.0 1.0 1.0

spng 34 34 35 200.0 1.500000 18.0
spng 35 1 3 200.0 1.500000 36.0
spng 36 2 4 200.0 1.500000 36.0
spng 37 3 5 200.0 1.500000 36.0
spng 38 4 6 200.0 1.500000 36.0
spng 39 5 7 200.0 1.500000 36.0
spng 40 6 8 200.0 1.500000 36.0
spng 41 7 9 200.0 1.500000 36.0
spng 42 8 10 200.0 1.500000 36.0
spng 43 9 11 200.0 1.500000 36.0
spng 44 10 12 200.0 1.500000 36.0
spng 45 11 13 200.0 1.500000 36.0
spng 46 12 14 200.0 1.500000 36.0
spng 47 13 15 200.0 1.500000 36.0
spng 48 14 16 200.0 1.500000 36.0
spng 49 15 17 200.0 1.500000 36.0
spng 50 16 18 200.0 1.500000 36.0
spng 51 17 19 200.0 1.500000 36.0
spng 52 18 20 200.0 1.500000 36.0
spng 53 19 21 200.0 1.500000 36.0
spng 54 20 22 200.0 1.500000 36.0
spng 55 21 23 200.0 1.500000 36.0
spng 56 22 24 200.0 1.500000 36.0
spng 57 23 25 200.0 1.500000 36.0
spng 58 24 26 200.0 1.500000 36.0
spng 59 25 28 200.0 1.500000 36.0
spng 60 26 27 200.0 1.500000 36.0
spng 61 28 29 200.0 1.500000 36.0
spng 62 27 30 200.0 1.500000 36.0
spng 63 29 31 200.0 1.500000 36.0
spng 64 30 32 200.0 1.500000 36.0
spng 65 31 33 200.0 1.500000 36.0
spng 66 32 34 200.0 1.500000 36.0
spng 67 33 35 200.0 1.500000 36.0
spng 68 1 4 200.0 1.500000 53.0
spng 69 2 5 200.0 1.500000 54.0
spng 70 3 6 200.0 1.500000 54.0
spng 71 4 7 200.0 1.500000 54.0
spng 72 5 8 200.0 1.500000 54.0
spng 73 6 9 200.0 1.500000 54.0
spng 74 7 10 200.0 1.500000 54.0
spng 75 8 11 200.0 1.500000 54.0
spng 76 9 12 200.0 1.500000 54.0
spng 77 10 13 200.0 1.500000 54.0
spng 78 11 14 200.0 1.500000 54.0
spng 79 12 15 200.0 1.500000 54.0
spng 80 13 16 200.0 1.500000 54.0
spng 81 14 17 200.0 1.500000 54.0
spng 82 15 18 200.0 1.500000 54.0
spng 83 16 19 200.0 1.500000 54.0
spng 84 17 20 200.0 1.500000 54.0
spng 85 18 21 200.0 1.500000 54.0
spng 86 19 22 200.0 1.500000 54.0
spng 87 20 23 200.0 1.500000 54.0
spng 88 21 24 200.0 1.500000 54.0
spng 89 22 25 200.0 1.500000 54.0
spng 90 23 26 200.0 1.500000 54.0
spng 91 24 28 200.0 1.500000 54.0
spng 92 25 27 200.0 1.500000 54.0
spng 93 26 29 200.0 1.500000 54.0
spng 94 28 30 200.0 1.500000 54.0
spng 95 27 31 200.0 1.500000 54.0
spng 96 29 32 200.0 1.500000 54.0
spng 97 30 33 200.0 1.500000 54.0
spng 98 31 34 200.0 1.500000 54.0
spng 99 32 35 200.0 1.500000 50.0
spng 100 1 5 200.0 1.500000 72.0
spng 101 2 6 200.0 1.500000 72.0
spng 102 3 7 200.0 1.500000 72.0
spng 103 4 8 200.0 1.500000 72.0
spng 104 5 9 200.0 1.500000 72.0
spng 105 6 10 200.0 1.500000 72.0
spng 106 7 11 200.0 1.500000 72.0
spng 107 8 12 200.0 1.500000 72.0
spng 108 9 13 200.0 1.500000 72.0
spng 109 10 14 200.0 1.500000 72.0
spng 110 11 15 200.0 1.500000 72.0
spng 111 12 16 200.0 1.500000 72.0
spng 112 13 17 200.0 1.500000 72.0
spng 113 14 18 200.0 1.500000 72.0
spng 114 15 19 200.0 1.500000 72.0
spng 115 16 20 200.0 1.500000 72.0
spng 116 17 21 200.0 1.500000 72.0
spng 117 18 22 200.0 1.500000 72.0
spng 118 19 23 200.0 1.500000 72.0
spng 119 20 24 200.0 1.500000 72.0
spng 120 21 25 200.0 1.500000 72.0
spng 121 22 26 200.0 1.500000 72.0
spng 122 23 28 200.0 1.500000 72.0
spng 123 24 27 200.0 1.500000 72.0
spng 124 25 29 200.0 1.500000 72.0
spng 125 26 30 200.0 1.500000 72.0
spng 126 28 31 200.0 1.500000 72.0
spng 127 27 32 200.0 1.500000 72.0
spng 128 29 33 200.0 1.500000 72.0
spng 129 30 34 200.0 1.500000 72.0
spng 130 31 35 200.0 1.500000 68.0
spng 131 1 6 200.0 1.500000 90.0
spng 132 2 7 200.0 1.500000 90.0
spng 133 3 8 200.0 1.500000 90.0
spng 134 4 9 200.0 1.500000 90.0
spng 135 5 10 200.0 1.500000 90.0
spng 136 6 11 200.0 1.500000 90.0
spng 137 7 12 200.0 1.500000 90.0
spng 138 8 13 200.0 1.500000 90.0
spng 139 9 14 200.0 1.500000 90.0
spng 140 10 15 200.0 1.500000 90.0
spng 141 11 16 200.0 1.500000 90.0
spng 142 12 17 200.0 1.500000 90.0
spng 143 13 18 200.0 1.500000 90.0
spng 144 14 19 200.0 1.500000 90.0
spng 145 15 20 200.0 1.500000 90.0
spng 146 16 21 200.0 1.500000 90.0
spng 147 17 22 200.0 1.500000 90.0
spng 148 18 23 200.0 1.500000 90.0
spng 149 19 24 200.0 1.500000 90.0
spng 150 20 25 200.0 1.500000 90.0
spng 151 21 26 200.0 1.500000 90.0
spng 152 22 28 200.0 1.500000 90.0
spng 153 23 27 200.0 1.500000 90.0
spng 154 24 29 200.0 1.500000 90.0
spng 155 25 30 200.0 1.500000 90.0
spng 156 26 31 200.0 1.500000 90.0
spng 157 28 32 200.0 1.500000 90.0
spng 158 27 33 200.0 1.500000 90.0
spng 159 29 34 200.0 1.500000 90.0
spng 160 30 35 200.0 1.500000 86.0
spng 161 1 7 200.0 1.500000 108.0
spng 162 2 8 200.0 1.500000 108.0
spng 163 3 9 200.0 1.500000 108.0
spng 164 4 10 200.0 1.500000 108.0
spng 165 5 11 200.0 1.500000 108.0
spng 166 6 12 200.0 1.500000 108.0
spng 167 7 13 200.0 1.500000 108.0
spng 168 8 14 200.0 1.500000 108.0
spng 169 8 14 200.0 1.500000 108.0
spng 170 9 15 200.0 1.500000 108.0
spng 171 10 16 200.0 1.500000 108.0
spng 172 11 17 200.0 1.500000 108.0
spng 173 12 18 200.0 1.500000 108.0
spng 174 13 19 200.0 1.500000 108.0
spng 175 14 20 200.0 1.500000 108.0
spng 176 15 21 200.0 1.500000 108.0
spng 177 16 22 200.0 1.500000 108.0
spng 178 17 23 200.0 1.500000 108.0
spng 179 18 24 200.0 1.500000 108.0
spng 180 19 25 200.0 1.500000 108.0
spng 181 20 26 200.0 1.500000 108.0
spng 182 21 28 200.0 1.500000 108.0
spng 183 22 27 200.0 1.500000 108.0
spng 184 23 29 200.0 1.500000 108.0
spng 185 24 30 200.0 1.500000 108.0
spng 186 25 31 200.0 1.500000 108.0
spng 187 26 32 200.0 1.500000 108.0
spng 188 28 33 200.0 1.500000 108.0
spng 189 34 27 200.0 1.500000 108.0
spng 190 29 35 200.0 1.500000 104.0
spng 191 1 8 200.0 1.500000 126.0
spng 192 2 9 200.0 1.500000 126.0
spng 193 10 3 200.0 1.500000 126.0
spng 194 4 11 200.0 1.500000 126.0
spng 195 12 5 200.0 1.500000 126.0
spng 196 6 13 200.0 1.500000 126.0
spng 197 14 7 200.0 1.500000 126.0
spng 198 8 15 200.0 1.500000 126.0
spng 199 16 9 200.0 1.500000 126.0
spng 200 10 17 200.0 1.500000 126.0
spng 201 18 11 200.0 1.500000 126.0
spng 202 12 19 200.0 1.500000 126.0
spng 203 20 13 200.0 1.500000 126.0
spng 204 14 21 200.0 1.500000 126.0
spng 205 22 15 200.0 1.500000 126.0
spng 206 16 23 200.0 1.500000 126.0
spng 207 24 17 200.0 1.500000 126.0
spng 208 18 25 200.0 1.500000 126.0
spng 209 26 19 200.0 1.500000 126.0
spng 210 20 28 200.0 1.500000 126.0
spng 211 27 21 200.0 1.500000 126.0
spng 212 22 29 200.0 1.500000 126.0
spng 213 30 23 200.0 1.500000 126.0
spng 214 24 31 200.0 1.500000 126.0
spng 215 32 25 200.0 1.500000 126.0
spng 216 26 33 200.0 1.500000 126.0
spng 217 34 28 200.0 1.500000 126.0
spng 218 27 35 200.0 1.500000 122.0
spng 219 1 9 200.0 1.500000 144.0
spng 220 10 2 200.0 1.500000 144.0
spng 221 3 11 200.0 1.500000 144.0
spng 222 12 4 200.0 1.500000 144.0
spng 223 5 13 200.0 1.500000 144.0
spng 224 14 6 200.0 1.500000 144.0
spng 225 7 15 200.0 1.500000 144.0
spng 226 16 8 200.0 1.500000 144.0
spng 227 9 17 200.0 1.500000 144.0
spng 228 18 10 200.0 1.500000 144.0
spng 229 11 19 200.0 1.500000 144.0
spng 230 20 12 200.0 1.500000 144.0
spng 231 13 21 200.0 1.500000 144.0
spng 232 22 14 200.0 1.500000 144.0
spng 233 15 23 200.0 1.500000 144.0
spng 234 24 16 200.0 1.500000 144.0
spng 235 17 25 200.0 1.500000 144.0
spng 236 26 18 200.0 1.500000 144.0
spng 237 19 28 200.0 1.500000 144.0
spng 238 27 20 200.0 1.500000 144.0
spng 239 21 29 200.0 1.500000 144.0
spng 240 30 22 200.0 1.500000 144.0
spng 241 23 31 200.0 1.500000 144.0
spng 242 32 24 200.0 1.500000 144.0
spng 243 25 33 200.0 1.500000 144.0
spng 244 34 26 200.0 1.500000 144.0
spng 245 28 35 200.0 1.500000 140.0
spng 246 1 10 200.0 1.500000 162.0
spng 247 11 2 200.0 1.500000 162.0
spng 248 3 12 200.0 1.500000 162.0
spng 249 13 4 200.0 1.500000 162.0
spng 250 5 14 200.0 1.500000 162.0
spng 251 15 6 200.0 1.500000 162.0
spng 252 7 16 200.0 1.500000 162.0
spng 253 17 8 200.0 1.500000 162.0
spng 254 9 18 200.0 1.500000 162.0
spng 255 19 10 200.0 1.500000 162.0
spng 256 11 20 200.0 1.500000 162.0
spng 257 21 12 200.0 1.500000 162.0
spng 258 13 22 200.0 1.500000 162.0
spng 259 23 14 200.0 1.500000 162.0
spng 260 15 24 200.0 1.500000 162.0
spng 261 25 16 200.0 1.500000 162.0
spng 262 17 26 200.0 1.500000 162.0
spng 263 28 18 200.0 1.500000 162.0
spng 264 19 27 200.0 1.500000 162.0
spng 265 29 20 200.0 1.500000 162.0
spng 266 21 30 200.0 1.500000 162.0
spng 267 31 22 200.0 1.500000 162.0
spng 268 23 32 200.0 1.500000 162.0
spng 269 33 24 200.0 1.500000 162.0
spng 270 25 34 200.0 1.500000 162.0
spng 271 35 26 200.0 1.500000 158.0
\BARFOO\
else
echo "will not over write ./lib/9snake.xsp"
fi
if `test ! -s ./lib/ball.xsp`
then
echo "writting ./lib/ball.xsp"
cat > ./lib/ball.xsp << '\BARFOO\'


#1.0 *** XSpringies data file

cmas 1.0
elas 1.0
kspr 150.0
kdmp 2.0

fixm 0
shws 1
cent -1

frce 0 1 10.0 0.0


frce 1 0 5.0 2.0
frce 2 0 10.0 0.0
frce 3 0 10000.0 1.0
visc 0.0

stck 100.0
step 0.080000
prec 1.0
adpt 0
gsnp 20.0 0


wall 1 1 1 1

mass 1 325.191871 140.872641 40.832215 -5.301529 1.0 1.0
mass 2 313.933994 149.011616 55.240875 5.026852 1.0 1.0
mass 3 309.133386 162.523019 72.798059 5.594199 1.0 1.0
mass 4 312.887152 176.436760 83.754277 -1.370025 1.0 1.0
mass 5 321.660596 187.895952 91.634021 -8.308630 1.0 1.0
mass 6 335.256132 192.503856 94.772924 -18.985044 1.0 1.0
mass 7 348.254504 188.731936 92.657963 -29.982110 1.0 1.0
mass 8 359.050972 180.780059 86.668616 -39.817638 1.0 1.0
mass 9 363.685639 167.752177 76.554871 -47.987107 1.0 1.0
mass 10 360.449954 154.092353 57.992242 -48.045772 1.0 1.0
mass 11 352.201411 142.382665 41.200547 -39.924209 1.0 1.0
mass 12 338.754859 137.460615 32.306364 -22.707784 1.0 1.0
mass 13 312.911184 114.835962 8.342965 5.878311 1.0 1.0
mass 14 290.521818 132.872407 33.212103 28.391710 1.0 1.0
mass 15 281.048450 160.314206 66.319674 32.935324 1.0 1.0
mass 16 287.450075 188.730522 93.898071 21.966741 1.0 1.0
mass 17 305.987715 211.206959 112.571044 5.089593 1.0 1.0
mass 18 333.289699 220.830317 121.166705 -17.204713 1.0 1.0
mass 19 361.089678 214.901909 117.183695 -41.776506 1.0 1.0
mass 20 382.690515 197.005784 101.789802 -63.980298 1.0 1.0
mass 21 392.095364 170.108402 75.453780 -78.414351 1.0 1.0
mass 22 386.286391 142.033621 41.812216 -77.402424 1.0 1.0
mass 23 368.355658 119.326317 12.658676 -58.885262 1.0 1.0
mass 24 341.159901 109.253775 -0.645459 -27.346079 1.0 1.0
mass 25 300.792976 88.652764 -23.770230 17.788258 1.0 1.0
mass 26 266.917041 116.942125 11.387083 52.603190 1.0 1.0
mass 27 252.824303 157.992984 59.144863 62.163730 1.0 1.0
mass 28 261.812599 201.245775 103.542171 47.141708 1.0 1.0
mass 29 290.323965 234.792944 133.016945 18.136362 1.0 1.0
mass 30 330.805232 249.331769 145.899409 -16.478401 1.0 1.0
mass 31 373.715232 241.181453 141.068680 -55.103677 1.0 1.0
mass 32 406.314817 213.217096 116.087430 -90.844012 1.0 1.0
mass 33 420.647493 172.661774 73.304028 -110.880720 1.0 1.0
mass 34 412.375908 129.697207 24.072484 -106.129512 1.0 1.0
mass 35 384.555754 95.915740 -16.565355 -77.142380 1.0 1.0
mass 36 344.134757 80.886540 -34.250916 -30.871105 1.0 1.0
mass 37 288.774590 62.672780 -55.431084 28.821437 1.0 1.0
mass 38 244.055965 100.457489 -9.756397 76.701354 1.0 1.0
mass 39 224.574635 156.693148 53.845562 91.755892 1.0 1.0
mass 40 235.856891 213.935639 112.462316 73.437061 1.0 1.0
mass 41 273.697931 257.991035 152.320671 33.701056 1.0 1.0
mass 42 329.129445 277.782400 170.727571 -15.899371 1.0 1.0
mass 43 386.065290 267.474982 165.436658 -68.761273 1.0 1.0
mass 44 429.946314 229.605765 132.087682 -116.795195 1.0 1.0
mass 45 449.164590 174.189613 73.084826 -143.228528 1.0 1.0
mass 46 438.674101 117.351918 9.340834 -136.225613 1.0 1.0
mass 47 401.586435 72.955570 -42.523445 -98.317857 1.0 1.0
mass 48 346.207804 52.561279 -67.447974 -34.980297 1.0 1.0
spng 1 1 2 150.0 2.0 14.0
spng 2 2 3 150.0 2.0 14.0
spng 3 3 4 150.0 2.0 14.0
spng 4 4 5 150.0 2.0 14.0
spng 5 5 6 150.0 2.0 14.0
spng 6 6 7 150.0 2.0 14.0
spng 7 7 8 150.0 2.0 14.0
spng 8 8 9 150.0 2.0 14.0
spng 9 9 10 150.0 2.0 14.0
spng 10 10 11 150.0 2.0 14.0
spng 11 11 12 150.0 2.0 14.0
spng 12 12 1 150.0 2.0 14.0
spng 13 13 14 150.0 2.0 28.0
spng 14 14 15 150.0 2.0 28.0
spng 15 15 16 150.0 2.0 28.0
spng 16 16 17 150.0 2.0 28.0
spng 17 17 18 150.0 2.0 28.0
spng 18 18 19 150.0 2.0 28.0
spng 19 19 20 150.0 2.0 28.0
spng 20 20 21 150.0 2.0 28.0
spng 21 21 22 150.0 2.0 28.0
spng 22 22 23 150.0 2.0 28.0
spng 23 23 24 150.0 2.0 28.0
spng 24 24 13 150.0 2.0 28.0
spng 25 25 26 150.0 2.0 44.0
spng 26 26 27 150.0 2.0 43.0
spng 27 27 28 150.0 2.0 44.0
spng 28 28 29 150.0 2.0 44.0
spng 29 29 30 150.0 2.0 43.0
spng 30 30 31 150.0 2.0 44.0
spng 31 31 32 150.0 2.0 43.0
spng 32 32 33 150.0 2.0 43.0
spng 33 33 34 150.0 2.0 44.0
spng 34 34 35 150.0 2.0 44.0
spng 35 35 36 150.0 2.0 43.0
spng 36 36 25 150.0 2.0 44.0
spng 37 37 38 150.0 2.0 58.0
spng 38 38 39 150.0 2.0 59.0
spng 39 39 40 150.0 2.0 58.0
spng 40 40 41 150.0 2.0 58.0
spng 41 41 42 150.0 2.0 59.0
spng 42 42 43 150.0 2.0 58.0
spng 43 43 44 150.0 2.0 58.0
spng 44 44 45 150.0 2.0 59.0
spng 45 45 46 150.0 2.0 58.0
spng 46 46 47 150.0 2.0 58.0
spng 47 47 48 150.0 2.0 59.0
spng 48 48 37 150.0 2.0 58.0
spng 49 1 13 150.0 2.0 29.0
spng 50 2 14 150.0 2.0 28.0
spng 51 3 15 150.0 2.0 28.0
spng 52 4 16 150.0 2.0 29.0
spng 53 5 17 150.0 2.0 28.0
spng 54 6 18 150.0 2.0 28.0
spng 55 7 19 150.0 2.0 29.0
spng 56 8 20 150.0 2.0 28.0
spng 57 9 21 150.0 2.0 28.0
spng 58 10 22 150.0 2.0 29.0
spng 59 11 23 150.0 2.0 28.0
spng 60 12 24 150.0 2.0 28.0
spng 61 13 25 150.0 2.0 29.0
spng 62 14 26 150.0 2.0 28.0
spng 63 15 27 150.0 2.0 28.0
spng 64 16 28 150.0 2.0 29.0
spng 65 17 29 150.0 2.0 28.0
spng 66 18 30 150.0 2.0 28.0
spng 67 19 31 150.0 2.0 29.0
spng 68 20 32 150.0 2.0 28.0
spng 69 21 33 150.0 2.0 28.0
spng 70 22 34 150.0 2.0 29.0
spng 71 23 35 150.0 2.0 28.0
spng 72 24 36 150.0 2.0 28.0
spng 73 25 37 150.0 2.0 29.0
spng 74 26 38 150.0 2.0 28.0
spng 75 27 39 150.0 2.0 28.0
spng 76 28 40 150.0 2.0 29.0
spng 77 29 41 150.0 2.0 28.0
spng 78 30 42 150.0 2.0 28.0
spng 79 31 43 150.0 2.0 29.0
spng 80 32 44 150.0 2.0 28.0
spng 81 33 45 150.0 2.0 28.0
spng 82 34 46 150.0 2.0 29.0
spng 83 35 47 150.0 2.0 28.0
spng 84 36 48 150.0 2.0 28.0
spng 85 1 14 150.0 2.0 35.0
spng 86 2 15 150.0 2.0 35.0
spng 87 3 16 150.0 2.0 34.0
spng 88 4 17 150.0 2.0 35.0
spng 89 5 18 150.0 2.0 35.0
spng 90 6 19 150.0 2.0 34.0
spng 91 7 20 150.0 2.0 35.0
spng 92 8 21 150.0 2.0 35.0
spng 93 9 22 150.0 2.0 34.0
spng 94 10 23 150.0 2.0 35.0
spng 95 11 24 150.0 2.0 35.0
spng 96 12 13 150.0 2.0 34.0
spng 97 13 26 150.0 2.0 46.0
spng 98 14 27 150.0 2.0 45.0
spng 99 15 28 150.0 2.0 45.0
spng 100 16 29 150.0 2.0 46.0
spng 101 17 30 150.0 2.0 45.0
spng 102 18 31 150.0 2.0 45.0
spng 103 19 32 150.0 2.0 45.0
spng 104 20 33 150.0 2.0 45.0
spng 105 21 34 150.0 2.0 45.0
spng 106 22 35 150.0 2.0 46.0
spng 107 23 36 150.0 2.0 45.0
spng 108 24 25 150.0 2.0 45.0
spng 109 25 38 150.0 2.0 58.0
spng 110 26 39 150.0 2.0 58.0
spng 111 27 40 150.0 2.0 58.0
spng 112 28 41 150.0 2.0 58.0
spng 113 29 42 150.0 2.0 58.0
spng 114 30 43 150.0 2.0 58.0
spng 115 31 44 150.0 2.0 58.0
spng 116 32 45 150.0 2.0 58.0
spng 117 33 46 150.0 2.0 58.0
spng 118 34 47 150.0 2.0 58.0
spng 119 35 48 150.0 2.0 58.0
spng 120 36 37 150.0 2.0 58.0
spng 121 1 24 150.0 2.0 35.0
spng 122 2 13 150.0 2.0 34.0
spng 123 3 14 150.0 2.0 35.0
spng 124 4 15 150.0 2.0 35.0
spng 125 5 16 150.0 2.0 34.0
spng 126 6 17 150.0 2.0 35.0
spng 127 7 18 150.0 2.0 35.0
spng 128 8 19 150.0 2.0 34.0
spng 129 9 20 150.0 2.0 35.0
spng 130 10 21 150.0 2.0 35.0
spng 131 11 22 150.0 2.0 34.0
spng 132 12 23 150.0 2.0 35.0
spng 133 13 36 150.0 2.0 46.0
spng 134 14 25 150.0 2.0 45.0
spng 135 15 26 150.0 2.0 45.0
spng 136 16 27 150.0 2.0 46.0
spng 137 17 28 150.0 2.0 45.0
spng 138 18 29 150.0 2.0 45.0
spng 139 19 30 150.0 2.0 46.0
spng 140 20 31 150.0 2.0 45.0
spng 141 21 32 150.0 2.0 45.0
spng 142 22 33 150.0 2.0 46.0
spng 143 23 34 150.0 2.0 45.0
spng 144 24 35 150.0 2.0 45.0
spng 145 25 48 150.0 2.0 58.0
spng 146 26 37 150.0 2.0 58.0
spng 147 27 38 150.0 2.0 58.0
spng 148 28 39 150.0 2.0 58.0
spng 149 29 40 150.0 2.0 58.0
spng 150 30 41 150.0 2.0 58.0
spng 151 31 42 150.0 2.0 58.0
spng 152 32 43 150.0 2.0 58.0
spng 153 33 44 150.0 2.0 58.0
spng 154 34 45 150.0 2.0 58.0
spng 155 35 46 150.0 2.0 58.0
spng 156 36 47 150.0 2.0 58.0
spng 157 10 4 150.0 2.0 52.331631
spng 158 7 1 150.0 2.0 52.436772
spng 159 12 6 150.0 2.0 54.680698
spng 160 5 11 150.0 2.0 54.589379
spng 161 9 3 150.0 2.0 54.451569
spng 162 2 8 150.0 2.0 54.482231
spng 163 45 11 150.0 2.0 101.408150
spng 164 46 12 150.0 2.0 101.542452
spng 165 47 1 150.0 2.0 101.963064
spng 166 48 2 150.0 2.0 101.517329
spng 167 37 3 150.0 2.0 101.603694
spng 168 38 4 150.0 2.0 102.014031
spng 169 39 5 150.0 2.0 101.547660
spng 170 40 6 150.0 2.0 101.573762
spng 171 41 7 150.0 2.0 101.897300
spng 172 42 8 150.0 2.0 101.497982
spng 173 43 9 150.0 2.0 101.870594
spng 174 44 10 150.0 2.0 102.043753
spng 175 45 11 150.0 2.0 101.408150
spng 176 46 8 150.0 2.0 101.548938
spng 177 47 10 150.0 2.0 90.645939
spng 178 48 10 150.0 2.0 101.952119
spng 179 37 11 150.0 2.0 101.552352
spng 180 38 12 150.0 2.0 101.491447
spng 181 39 1 150.0 2.0 101.971524
spng 182 40 2 150.0 2.0 101.587400
spng 183 41 3 150.0 2.0 101.519279
spng 184 42 4 150.0 2.0 101.976181
spng 185 43 5 150.0 2.0 101.714570
spng 186 44 6 150.0 2.0 101.388747
spng 187 45 7 150.0 2.0 101.773286
\BARFOO\
else
echo "will not over write ./lib/ball.xsp"
fi
if `test ! -s ./lib/belt-loop.xsp`
then
echo "writting ./lib/belt-loop.xsp"
cat > ./lib/belt-loop.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1
elas 0.5

kspr 200


kdmp 2
fixm 0
shws 1
cent -1
frce 0 1 10 0
frce 1 0 5 2
frce 2 0 10 0
frce 3 0 10000 1
visc 0

stck 0
step 0.025
prec 1
adpt 0
gsnp 10 1
wall 1 1 1 1

mass 1 230.685259467268509 198.000639528098617 0 0 1 0.5
mass 2 246.819544665523125 208.93611319711701 0 0 1 0.5
mass 3 220.295022471946254 218.643335546825597 0 0 1 0.5
mass 4 238.67649482200423 225.035312749758617 0 0 1 0.5
mass 5 215.595778693643723 241.251344035414462 0 0 1 0.5
mass 6 235.007199692766477 242.702956610661317 0 0 1 0.5
mass 7 216.873206506383923 264.301798900737083 0 0 1 0.5
mass 8 236.00326614829666 260.719317253220595 0 0 1 0.5
mass 9 224.036588349043996 286.255900233850866 0 0 1 0.5
mass 10 241.597866653510607 277.871203241342641 0 0 1 0.5
mass 11 236.621309992861455 305.629402039533829 0 0 1 0.5
mass 12 251.421557890721402 292.99934724935099 0 0 1 0.5
mass 13 253.792424920309969 321.099508533034737 0 0 1 0.5
mass 14 264.818018864051623 305.072519561654417 0 0 1 0.5
mass 15 274.393308218050322 331.596584042190898 0 0 1 0.5
mass 16 280.882298656294779 313.260444774379948 0 0 1 0.5
mass 17 297.018824562792929 336.3866716714723 0 0 1 0.5
mass 18 298.519510029752325 316.99552816008304 0 0 1 0.5
mass 19 320.113473658408111 335.132025119252376 0 0 1 0.5
mass 20 316.520689300853235 316.017318628524606 0 0 1 0.5
mass 21 342.086238401437129 327.920037717851358 0 0 1 0.5
mass 22 333.649898542223468 310.393582102845471 0 0 1 0.5
mass 23 361.429078275910115 315.255323782620167 0 0 1 0.5
mass 24 348.733911823027881 300.514750957106287 0 0 1 0.5
mass 25 376.825245483728281 298.017134605336366 0 0 1 0.5
mass 26 360.745242034028081 287.062988145221652 0 0 1 0.5
mass 27 387.237153332912158 277.390079982361215 0 0 1 0.5
mass 28 368.871265260523728 270.960682974791155 0 0 1 0.5
mass 29 391.969347722186228 254.778348285652356 0 0 1 0.5
mass 30 372.565532277016473 253.304836464642221 0 0 1 0.5
mass 31 390.707229157181757 231.71202804319509 0 0 1 0.5
mass 32 371.58038634339573 235.293270747373811 0 0 1 0.5
mass 33 383.533921936729939 209.75019692139611 0 0 1 0.5
mass 34 365.981419649200006 218.146892228712574 0 0 1 0.5
mass 35 370.927020756895502 190.382928734352191 0 0 1 0.5
mass 36 356.143899035121365 203.030755307415632 0 0 1 0.5
mass 37 353.733134892180772 174.933540458552642 0 0 1 0.5
mass 38 342.732005771691206 190.976617720724789 0 0 1 0.5
mass 39 333.118343858162518 164.466124807890537 0 0 1 0.5
mass 40 326.65494009568539 182.812441251656026 0 0 1 0.5
mass 41 310.495217668172018 159.699212662553691 0 0 1 0.5
mass 42 309.011947039510972 179.097965076083653 0 0 1 0.5
mass 43 287.387540196698978 161.011914417824244 0 0 1 0.5
mass 44 291.008898201286854 180.102444996607034 0 0 1 0.5
mass 45 265.471139622250575 168.060149999656545 0 0 1 0.5
mass 46 273.856914426562696 185.663792528421055 0 0 1 0.5
mass 47 246.095781845390633 180.737875918748898 0 0 1 0.5
mass 48 258.755680730898803 195.486261755344117 0 0 1 0.5

spng 203 47 2 200 2 28.284271247461902
spng 204 1 48 200 2 28.284271247461902
spng 205 1 46 200 2 44.7213595499957961
spng 206 1 44 200 2 63.2455532033675851
spng 207 47 4 200 2 44.7213595499957961
spng 208 48 3 200 2 44.7213595499957961
spng 209 47 6 200 2 63.2455532033675851
spng 210 48 5 200 2 63.2455532033675851
spng 211 46 3 200 2 63.2455532033675851
spng 212 45 4 200 2 63.2455532033675851
spng 213 47 1 200 2 20
spng 214 48 2 200 2 20

\BARFOO\
else
echo "will not over write ./lib/belt-loop.xsp"
fi
echo "Finished archive 14 of 16"

Douglas DeCarlo

unread,
Mar 26, 1993, 11:14:29 AM3/26/93
to
Submitted-by: d...@gradient.cis.upenn.edu (Douglas DeCarlo)
Posting-number: Volume 19, Issue 67
Archive-name: xspringies/part15

Environment: X11
Supersedes: xspringies: Volume 14, Issue 25-30

#!/bin/sh


# to extract, remove the header and type "sh filename"

if `test ! -s ./Imakefile`
then
echo "writting ./Imakefile"
cat > ./Imakefile << '\BARFOO\'
# Imakefile for XSpringies

SRCS = xdisp.c misc.c keypress.c widget.c obj.c file.c phys.c
OBJS = xdisp.o misc.o keypress.o widget.o obj.o file.o phys.o

DEPLIBS =
LOCAL_LIBRARIES = $(XLIB)
SYS_LIBRARIES = -lm

# Because the X consortium people are dip-heads
MKDIRHIER = BourneShell `which mkdirhier`

# Destination directory for xspringies demo files, executable and manpage
# (Change this to where you want files installed)
DDIR = /usr/games/

XSPDIR = $(DDIR)lib/xspringies
BINDIR = $(DDIR)bin
MANDIR = $(DDIR)man/manx

DEFINES = -DDEF_PATH=\"$(XSPDIR)/\"

MakeDirectories(install, $(XSPDIR))
MakeDirectories(install, $(BINDIR))
MakeDirectories(install, $(MANDIR))

ComplexProgramTarget(xspringies)

install:: install.man install.lib

# I hate imake
XSPLIB = lib/

install.lib:
/bin/cp $(XSPLIB)* $(XSPDIR)
\BARFOO\
else
echo "will not over write ./Imakefile"
fi
if `test ! -s ./Makefile.std`
then
echo "writting ./Makefile.std"
cat > ./Makefile.std << '\BARFOO\'
# Default Makefile for XSpringies

OBJS = xdisp.o misc.o keypress.o widget.o obj.o file.o phys.o
SRCS = xdisp.c misc.c keypress.c widget.c obj.c file.c phys.c

DDIR = /usr/games/

XSPDIR = $(DDIR)lib/xspringies
BINDIR = $(DDIR)bin
MANDIR = $(DDIR)man/manx

LIBS = -lm -lX11
CFLAGS = -O -DDEF_PATH=\"$(XSPDIR)/\"

xspringies: $(OBJS)
$(CC) $(CFLAGS) -o xspringies $(OBJS) $(LIBS)

$(OBJS): defs.h
file.o xdisp.o obj.o phys.o: obj.h
xdisp.o: bitmap.h title.h bfbm.h

install:: xspringies
-@mkdirhier $(BINDIR)
install -c -s xspringies $(BINDIR)
-@mkdirhier $(MANDIR)
install -c xspringies.man $(MANDIR)

install::
-@mkdirhier $(XSPDIR)
/bin/cp lib/* $(XSPDIR)

clean:
rm -f $(OBJS) xspringies
\BARFOO\
else
echo "will not over write ./Makefile.std"
fi
if `test ! -s ./README`
then
echo "writting ./README"
cat > ./README << '\BARFOO\'

\BARFOO\
else
echo "will not over write ./README"
fi
if `test ! -s ./bfbm.h`
then
echo "writting ./bfbm.h"
cat > ./bfbm.h << '\BARFOO\'
#define BF_SIZ 24

static char b_bits[][BF_SIZ*BF_SIZ/8] = {
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x1f, 0x00,
0x00, 0x1f, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00,
0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00,
0x00, 0x04, 0x00, 0x00, 0x04, 0x1e, 0x00, 0x04, 0x11, 0x00, 0x04, 0x11,
0x00, 0x04, 0x11, 0x00, 0x04, 0x1e, 0x00, 0x04, 0x10, 0x80, 0x24, 0x10,
0x80, 0x35, 0x11, 0x00, 0x1f, 0x0e, 0x00, 0x0e, 0x00, 0x00, 0x04, 0x00
}, {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x01, 0x30, 0x00, 0x03,
0x98, 0x89, 0x06, 0x48, 0xda, 0x04, 0x48, 0xa8, 0x04, 0x48, 0x8a, 0x04,
0x98, 0x89, 0x06, 0x30, 0x00, 0x03, 0xe0, 0xff, 0x01, 0x00, 0x00, 0x00,
0x00, 0x10, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x00, 0x80, 0x04,
0x00, 0x00, 0x05, 0x00, 0x00, 0x06, 0x00, 0x80, 0x07, 0x00, 0x00, 0x30,
0x00, 0x00, 0x78, 0x00, 0x00, 0x78, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00
}, {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00,
0x00, 0x10, 0x00, 0x00, 0x54, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x38, 0x00,
0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x38, 0x0c, 0xc0, 0x7c, 0x06,
0xfc, 0x7d, 0xff, 0xc0, 0x7c, 0x06, 0x60, 0x38, 0x0c, 0x00, 0x00, 0x00,
0x00, 0x10, 0x00, 0x00, 0x38, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x54, 0x00,
0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00
}, {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x92,
0x00, 0x00, 0x26, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x92, 0x00, 0x00, 0x26,
0x1c, 0x22, 0x4a, 0x3e, 0x41, 0x92, 0xbe, 0xff, 0x26, 0x3e, 0x41, 0x4a,
0x1c, 0x22, 0x92, 0x00, 0x00, 0x26, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x92,
0x00, 0x00, 0x26, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x92, 0x00, 0x00, 0x26,
0x00, 0x00, 0x4a, 0x00, 0x00, 0x92, 0x00, 0x00, 0x26, 0x00, 0x00, 0x4a
}
};
\BARFOO\
else
echo "will not over write ./bfbm.h"
fi
if `test ! -s ./bitmap.h`
then
echo "writting ./bitmap.h"
cat > ./bitmap.h << '\BARFOO\'
#define edit_width 32
#define edit_height 32
static char edit_bits[] = {


0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00,
0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00,
0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x80, 0x7f, 0xff, 0x00,
0x80, 0x00, 0x80, 0x00, 0x80, 0x7f, 0xff, 0x00, 0x00, 0x40, 0x01, 0x00,
0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00,
0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00,


0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

#define mass_width 32
#define mass_height 32
static char mass_bits[] = {


0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0xf8, 0x3f, 0x00,
0x00, 0xfe, 0xff, 0x00, 0x00, 0xff, 0xff, 0x01, 0x80, 0xff, 0xff, 0x03,
0xc0, 0xff, 0xff, 0x07, 0xc0, 0xff, 0xff, 0x07, 0xe0, 0xff, 0xff, 0x0f,
0xe0, 0xff, 0xff, 0x0f, 0xf0, 0x17, 0xe1, 0x1f, 0xf0, 0xe7, 0xde, 0x1f,
0xf0, 0xf7, 0xde, 0x1f, 0xf0, 0xf7, 0xde, 0x1f, 0xf0, 0xf7, 0xde, 0x1f,
0xf0, 0xf7, 0xde, 0x1f, 0xf0, 0xf7, 0xde, 0x1f, 0xe0, 0xff, 0xff, 0x0f,
0xe0, 0xff, 0xff, 0x0f, 0xc0, 0xff, 0xff, 0x07, 0xc0, 0xff, 0xff, 0x07,
0x80, 0xff, 0xff, 0x03, 0x00, 0xff, 0xff, 0x01, 0x00, 0xfe, 0xff, 0x00,
0x00, 0xf8, 0x3f, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

#define spring_width 32
#define spring_height 32
static char spring_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18,
0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x42,
0x00, 0x00, 0x1c, 0x24, 0x00, 0x00, 0x22, 0x02, 0x00, 0x00, 0x47, 0x01,
0x00, 0x80, 0x8a, 0x00, 0x00, 0x40, 0x12, 0x00, 0x00, 0x40, 0x22, 0x00,
0x00, 0x70, 0x44, 0x00, 0x00, 0xa8, 0x88, 0x00, 0x00, 0x24, 0x91, 0x00,
0x00, 0x24, 0x62, 0x00, 0x00, 0x47, 0x04, 0x00, 0x80, 0x8a, 0x08, 0x00,
0x40, 0x12, 0x09, 0x00, 0x40, 0x22, 0x06, 0x00, 0x40, 0x44, 0x00, 0x00,
0x80, 0x88, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00,
0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00,
0x84, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00,
0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

#define go_width 58
#define go_height 24
static char go_bits[] = {


0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xfe, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x0f, 0x00,
0x00, 0x00, 0x18, 0x00, 0x80, 0x8f, 0x1f, 0x80, 0x0f, 0x00, 0x3c, 0x00,
0x80, 0x07, 0x1e, 0xe0, 0x3f, 0x00, 0x7e, 0x00, 0xc0, 0x03, 0x1c, 0xf0,
0x7f, 0x00, 0x7e, 0x00, 0xc0, 0x01, 0x00, 0xf8, 0xfc, 0x00, 0x7e, 0x00,
0xe0, 0x01, 0x00, 0x3c, 0xf0, 0x00, 0x3f, 0x00, 0xe0, 0x80, 0x03, 0x1c,
0xe0, 0x01, 0x3f, 0x00, 0xe0, 0x80, 0x0f, 0x1e, 0xe0, 0x01, 0x3f, 0x00,
0xe0, 0x81, 0x3f, 0x0e, 0xc0, 0x01, 0x1f, 0x00, 0xc0, 0x01, 0x7f, 0x0e,
0xc0, 0x81, 0x0f, 0x00, 0xc0, 0x03, 0x7c, 0x1e, 0xc0, 0x81, 0x07, 0x00,
0x80, 0x03, 0x0e, 0x1c, 0xe0, 0xc1, 0x03, 0x00, 0x80, 0x8f, 0x0f, 0x3c,
0xe0, 0x80, 0x03, 0x00, 0x00, 0xff, 0x07, 0x38, 0x70, 0x00, 0x01, 0x00,
0x00, 0xfe, 0x03, 0xf8, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0xf0,
0x3f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f, 0xf8, 0x00, 0x00,
0x00, 0x00, 0x00, 0x80, 0x03, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00};
\BARFOO\
else
echo "will not over write ./bitmap.h"
fi
if `test ! -s ./defs.h`
then
echo "writting ./defs.h"
cat > ./defs.h << '\BARFOO\'
#include <stdio.h>
#include <math.h>

typedef char boolean;

#define TRUE 1
#define FALSE 0

/* Window size info */
#define D_WID 640
#define D_HT 548
#define B_WID 200
#define T_WID D_WID
#define T_HT (F_HT + 4)
#define B_HT (D_HT + T_HT + 1)
#define M_WID (B_WID + D_WID + 1)
#define M_HT B_HT

#define COORD_X(x) (x)
#define COORD_Y(y) (draw_ht - (y))
#define COORD_DX(dx) (dx)
#define COORD_DY(dy) (-(dy))

/* Font size info */
#define F_NAME "6x10"
#define F_WID 6
#define F_HT 10

/* File operations */
#define F_NONE 0
#define F_LOAD 1
#define F_SAVE 2
#define F_INSERT 3

/* Longest filename */
#define MAXPATH 256

#define SQR(x) ((x) * (x))
#define SGN(x) ((x) < 0 ? (-1) : 1)
#ifndef ABS
#define ABS(x) ((x) < 0 ? (-(x)) : (x))
#endif
#ifndef MIN
#define MIN(x,y) ((x) < (y) ? (x) : (y))
#define MAX(x,y) ((x) < (y) ? (y) : (x))
#endif

/* Key codes used */
#define K_DELETE (-1)
#define K_RETURN (-2)
#define K_ESCAPE (-3)

/* Types of widgets */
#define O_NOTHING (-1)
#define O_ACTING 0
#define O_BUTTON 1
#define O_SLIDER 2
#define O_CHECKBOX 3
#define O_MBUTTON 4
#define O_LSLIDER 5
#define O_RSLIDER 6
#define O_TSLIDER 7

/* Types of mouse actions */
#define M_DOWN 0
#define M_UP 1
#define M_DRAG 2
#define M_HOLD 3
#define M_REDISPLAY 4

/* Forces */
#define FR_GRAV 0
#define FR_CMASS 1
#define FR_PTATTRACT 2
#define FR_WALL 3

#define BF_NUM 4

/* Defaults */
#define DEF_TSTEP 0.025

typedef struct {
double cur_mass, cur_rest;
double cur_ks, cur_kd;
boolean fix_mass, show_spring;
int center_id;
int bf_mode[BF_NUM];
double cur_grav_val[BF_NUM];
double cur_misc_val[BF_NUM];
double cur_visc, cur_stick;
double cur_dt, cur_prec;
boolean adaptive_step, grid_snap;
double cur_gsnap;
boolean w_top, w_left, w_right, w_bottom;
} t_state;

/* -------- Functions/variables defined --------- */

/* widget.c */
extern boolean scan_flag, key_widgets(), check_widgets();
extern void init_widgets(), add_button(), add_modebutton(), add_checkbox(), add_slider(), redraw_widgets();
extern void update_slider(), activate_mbutton();
extern int slider_valno();

/* xdisp.c */
extern int main_wid, main_ht, draw_wid, draw_ht;
extern char filename[];
extern int cursor_pos, spthick;
extern int file_op, mass_radius();
extern void fatal(), disp_filename(), redraw_system(), review_system();
extern t_state mst;

/* keypress.c */
extern void key_press();

/* misc.c */
extern char *xmalloc(), *xrealloc();

/* obj.c */
extern void init_objects(), delete_mass(), delete_spring(), delete_selected(), add_massparent(), del_massparent();
extern void select_object(), select_objects(), unselect_all(), select_all(), translate_selobj(), set_center();
extern boolean anything_selected();
extern int create_mass(), create_spring(), nearest_object();

/* phys.c */
extern boolean animate_obj();
\BARFOO\
else
echo "will not over write ./defs.h"
fi
if `test ! -s ./file.c`
then
echo "writting ./file.c"
cat > ./file.c << '\BARFOO\'
/* file.c -- file loading and saving for xspringies


* Copyright (C) 1991,1992 Douglas M. DeCarlo
*

* This file is part of XSpringies, a mass and spring simulation system for X
*
* XSpringies is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 1, or (at your option)
* any later version.
*
* XSpringies is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with XSpringies; see the file COPYING. If not, write to
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/

#include "defs.h"
#include "obj.h"
#include <pwd.h>

#define USERNAMELEN 8
#define MAGIC_CMD "#1.0"
#define FILE_EXT ".xsp"

/* tilde_expand: expand ~/.. and ~bar/.. in filenames and put
the result in filename
filename is assumed to be null terminated, and after the
expansion will not exceed MAXPATH in length

tilde_expand returns its argument, or NULL if the user
is unknown
*/
char *tilde_expand(fname)
char *fname;
{
register int prelen, len, restlen, i;
register char *prefix, *s, *u;
struct passwd *pw;
char user[USERNAMELEN+1];
extern char *getenv();

if (*fname == '~') {
if (*(fname + 1) == '/' || !*(fname + 1)) {
len = 1;
/* Do ~/ expansion */
if ((prefix = getenv("HOME")) == NULL) {
/* Use . as home directory if HOME not set */
prefix = ".";
}
} else {
/* Do ~user/ expansion */
for (len = 1, s = fname + 1, u = user; len <= USERNAMELEN && *s && *s != '/'; *u++ = *s++, len++);
*u = '\0';

/* Get name */
if ((pw = getpwnam(user)) == NULL)
return NULL;
prefix = pw->pw_dir;
}

prelen = strlen(prefix);
restlen = strlen(fname + len);

/* Move over pathname */
if (prelen < len) {
for (i = 0; i <= restlen; i++) {
fname[prelen+i] = fname[len+i];
}
} else {
for (i = restlen; i >= 0; i--) {
fname[prelen+i] = fname[len+i];
}
}
/* Copy in prefix */
(void)memcpy(fname, prefix, prelen);
}

return fname;
}

void skip_to_eol(f)
FILE *f;
{
int ch;

while ((ch = fgetc(f)) != EOF && ch != '\n');
}

char *extend_file(file)
char *file;
{
static char buf[MAXPATH];
int len, felen;

strcpy(buf, file);

felen = strlen(FILE_EXT);
len = strlen(buf);

if (len < felen || strcmp(buf + len - felen, FILE_EXT)) {
strcat(buf, FILE_EXT);
}

return buf;
}

#define IS_CMD(s) (!strncmp(cmd, s, 4))

boolean file_command(file, command)
char *file;
int command;
{
FILE *f;
char cmd[5];
int i, which, spring_start, temp;
int *mapfrom, *mapto, num_map, num_map_alloc;
boolean selectnew = FALSE;

if (strlen(file) == 0)
return FALSE;

tilde_expand(file);

switch (command) {
case F_INSERT:
case F_LOAD:
if ((f = fopen(extend_file(file), "r")) == NULL) {
return FALSE;
}

/* Check first line */
if (fgets(cmd, 5, f) != NULL && IS_CMD(MAGIC_CMD)) {
skip_to_eol(f);

if (command == F_LOAD) {
delete_all();
init_objects();
} else {
if (!anything_selected())
selectnew = TRUE;
}
spring_start = num_spring;

num_map = 0;
num_map_alloc = ALLOC_SIZE;
mapfrom = (int *)xmalloc(sizeof(int) * num_map_alloc);
mapto = (int *)xmalloc(sizeof(int) * num_map_alloc);

while (fgets(cmd, 5, f) != NULL) {
if (IS_CMD("mass")) {


if (num_map >= num_map_alloc) {
num_map_alloc += ALLOC_SIZE;
mapfrom = (int *)xrealloc(mapfrom, sizeof(int) * num_map_alloc);
mapto = (int *)xrealloc(mapto, sizeof(int) * num_map_alloc);
}

which = create_mass();
mapto[num_map] = which;

fscanf(f, "%d %lf %lf %lf %lf %lf %lf\n", &mapfrom[num_map], &masses[which].x, &masses[which].y,
&masses[which].vx, &masses[which].vy, &masses[which].mass, &masses[which].elastic);
num_map++;
if (masses[which].mass < 0) {
masses[which].mass = -masses[which].mass;
masses[which].status |= S_FIXED;
}
masses[which].radius = mass_radius(masses[which].mass);
if (selectnew) {
select_object(which, TRUE, FALSE);
}
} else if (IS_CMD("spng")) {
int bogus;

which = create_spring();
fscanf(f, "%d %d %d %lf %lf %lf\n", &bogus, &springs[which].m1, &springs[which].m2,
&springs[which].ks, &springs[which].kd, &springs[which].restlen);
if (selectnew) {
select_object(which, FALSE, FALSE);
}

} else if (command == F_INSERT) {
/* skip non mass/spring commands if in insert mode */
} else if (IS_CMD("cmas")) {
fscanf(f, "%lf\n", &(mst.cur_mass));
} else if (IS_CMD("elas")) {
fscanf(f, "%lf\n", &(mst.cur_rest));
} else if (IS_CMD("kspr")) {
fscanf(f, "%lf\n", &(mst.cur_ks));
} else if (IS_CMD("kdmp")) {
fscanf(f, "%lf\n", &(mst.cur_kd));
} else if (IS_CMD("fixm")) {
fscanf(f, "%d\n", &temp);
mst.fix_mass = temp ? TRUE : FALSE;
} else if (IS_CMD("shws")) {
fscanf(f, "%d\n", &temp);
mst.show_spring = temp ? TRUE : FALSE;
} else if (IS_CMD("cent")) {
fscanf(f, "%d\n", &(mst.center_id));

} else if (IS_CMD("frce")) {
int which, temp;

fscanf(f, "%d", &which);
if (which >= 0 && which < BF_NUM) {
fscanf(f, "%d %lf %lf\n", &temp, &(mst.cur_grav_val[which]), &(mst.cur_misc_val[which]));

activate_mbutton(&(mst.bf_mode[which]), temp);
}
} else if (IS_CMD("visc")) {
fscanf(f, "%lf\n", &(mst.cur_visc));
} else if (IS_CMD("stck")) {
fscanf(f, "%lf\n", &(mst.cur_stick));
} else if (IS_CMD("step")) {
fscanf(f, "%lf\n", &(mst.cur_dt));
} else if (IS_CMD("prec")) {
fscanf(f, "%lf\n", &(mst.cur_prec));
} else if (IS_CMD("adpt")) {
fscanf(f, "%d\n", &temp);
mst.adaptive_step = temp ? TRUE : FALSE;

} else if (IS_CMD("gsnp")) {
fscanf(f, "%lf %d\n", &(mst.cur_gsnap), &temp);
mst.grid_snap = temp ? TRUE : FALSE;
} else if (IS_CMD("wall")) {
int wt, wl, wr, wb;
fscanf(f, "%d %d %d %d\n", &wt, &wl, &wr, &wb);
mst.w_top = (boolean)wt;
mst.w_left = (boolean)wl;
mst.w_right = (boolean)wr;
mst.w_bottom = (boolean)wb;
} else {
/* unknown command */
fprintf(stderr, "Unknown command: %4.4s\n", cmd);
skip_to_eol(f);
}
}

/* Connect springs to masses */
for (i = spring_start; i < num_spring; i++) {
int j;
boolean m1done, m2done;

m1done = m2done = FALSE;

if (i == fake_spring)
continue;

for (j = 0; (!m1done || !m2done) && j < num_map; j++) {

if (!m1done && springs[i].m1 == mapfrom[j]) {
springs[i].m1 = mapto[j];
m1done = TRUE;
}
if (!m2done && springs[i].m2 == mapfrom[j]) {
springs[i].m2 = mapto[j];


m2done = TRUE;
}
}
if (!m1done && !m2done) {

/* delete spring */
delete_spring(i);
fprintf(stderr, "Spring %d not connected to existing mass\n", i);
}
}

free(mapfrom);
free(mapto);
reconnect_masses();
review_system(TRUE);
redisplay_widgets();
} else {
return FALSE;
}

(void)fclose(f);

break;
case F_SAVE:
if ((f = fopen(extend_file(file), "w")) == NULL) {
return FALSE;
}
fprintf(f, "%s *** XSpringies data file\n", MAGIC_CMD);
/* Settings */
fprintf(f, "cmas %.12lg\n", mst.cur_mass);
fprintf(f, "elas %.12lg\n", mst.cur_rest);
fprintf(f, "kspr %.12lg\n", mst.cur_ks);
fprintf(f, "kdmp %.12lg\n", mst.cur_kd);
fprintf(f, "fixm %d\n", mst.fix_mass);
fprintf(f, "shws %d\n", mst.show_spring);
fprintf(f, "cent %d\n", mst.center_id);

for (i = 0; i < BF_NUM; i++)
fprintf(f, "frce %d %d %.12lg %.12lg\n", i, (mst.bf_mode[i] >= 0) ? 1 : 0, mst.cur_grav_val[i], mst.cur_misc_val[i]);

fprintf(f, "visc %.12lg\n", mst.cur_visc);
fprintf(f, "stck %.12lg\n", mst.cur_stick);
fprintf(f, "step %.12lg\n", mst.cur_dt);
fprintf(f, "prec %.12lg\n", mst.cur_prec);
fprintf(f, "adpt %d\n", mst.adaptive_step);

fprintf(f, "gsnp %.12lg %d\n", mst.cur_gsnap, mst.grid_snap);
fprintf(f, "wall %d %d %d %d\n", (int)mst.w_top, (int)mst.w_left, (int)mst.w_right, (int)mst.w_bottom);

/* Masses and springs */


for (i = 0; i < num_mass; i++) {
if (masses[i].status & S_ALIVE) {

fprintf(f, "mass %d %.18lg %.18lg %.12lg %.12lg %.8lg %.8lg\n", i, masses[i].x, masses[i].y, masses[i].vx, masses[i].vy,
(masses[i].status & S_FIXED) ? -masses[i].mass : masses[i].mass, masses[i].elastic);


}
}
for (i = 0; i < num_spring; i++) {
if (springs[i].status & S_ALIVE) {

fprintf(f, "spng %d %d %d %.8lg %.8lg %.18lg\n", i, springs[i].m1, springs[i].m2,
springs[i].ks, springs[i].kd, springs[i].restlen);
}
}

if (fclose(f) == EOF)
return FALSE;
break;
}

return TRUE;
}
\BARFOO\
else
echo "will not over write ./file.c"
fi
if `test ! -s ./keypress.c`
then
echo "writting ./keypress.c"
cat > ./keypress.c << '\BARFOO\'
/* keypress.c -- keyboard input support for xspringies


* Copyright (C) 1991,1992 Douglas M. DeCarlo
*

* This file is part of XSpringies, a mass and spring simulation system for X
*
* XSpringies is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 1, or (at your option)
* any later version.
*
* XSpringies is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with XSpringies; see the file COPYING. If not, write to
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/

#include "defs.h"
#include <X11/Xlib.h>
#include <X11/keysym.h>

/* key_press: process a key press of key */
void key_press(key, ksym, win)
int key;
KeySym ksym;
Window win;
{
int i;
static char cutbuff[MAXPATH];

switch (ksym) {
case XK_BackSpace:
case XK_Delete:
key = K_DELETE;
break;
case XK_Return:
key = K_RETURN;
break;
case XK_Escape:
key = K_ESCAPE;
break;
}

/* Check for widget keyboard input */
if (key_widgets(key, win))
return;

if (file_op != F_NONE) {
int len;

len = strlen(filename);

if (ksym == XK_BackSpace || ksym == XK_Delete) {
if (len > 0 && cursor_pos > 0) {
for (i = cursor_pos-1; i < len; i++) {
filename[i] = filename[i+1];
}
cursor_pos--;
}
} else if (ksym == XK_Return) {
if (!file_command(filename, file_op))
file_error();
file_op = F_NONE;
} else if (ksym == XK_Escape) {
file_op = F_NONE;
} else if (ksym == XK_Left || key == '\002') {
/* control-b */
if (cursor_pos > 0)
cursor_pos--;
} else if (ksym == XK_Right || key == '\006') {
/* control-f */
if (cursor_pos < len)
cursor_pos++;
} else if (ksym == XK_Begin || ksym == XK_Home || key == '\001') {
/* control-a */
cursor_pos = 0;
} else if (ksym == XK_End || key == '\005') {
/* control-e */
cursor_pos = len;
} else if (ksym == XK_Clear || key == '\025') {
/* control-u */
filename[0] = '\0';
cursor_pos = 0;
} else if (ksym == XK_Tab) {
/* File complete ... */

} else if (key != '\0') {
switch (key) {
case '\004': /* control-d */
if (len > 0 && cursor_pos < len) {
for (i = cursor_pos; i < len; i++) {
filename[i] = filename[i+1];
}
}
break;

case '\013': /* control-k */
strcpy(cutbuff, filename + cursor_pos);
filename[cursor_pos] = '\0';
break;
case '\031': /* control-y */
{
int cblen = strlen(cutbuff);

if (len + cblen < MAXPATH) {
for (i = len; i >= cursor_pos; i--) {
filename[i + cblen] = filename[i];
}
for (i = 0; i < cblen; i++) {
filename[i + cursor_pos] = cutbuff[i];
}
cursor_pos += cblen;
}
}
break;

case '\024': /* control-t */
if (cursor_pos > 0 && len > 1) {
char tempc;
int cpos;

cpos = (cursor_pos == len) ? cursor_pos-1 : cursor_pos;

tempc = filename[cpos-1];
filename[cpos-1] = filename[cpos];
filename[cpos] = tempc;

if (cursor_pos < len)
cursor_pos++;
}
break;

default:
if (len < MAXPATH - 1 && key >= ' ') {
for (i = len+1; i > cursor_pos; i--) {
filename[i] = filename[i-1];
}
filename[cursor_pos] = key;
cursor_pos++;
}
}
}

disp_filename(FALSE);
return;
}

switch (key) {
case K_DELETE:
delete_selected();
review_system(TRUE);
break;
case 'Q':
fatal(NULL);
break;
case 0x0c:
/* ^L is redraw screen */
review_system(TRUE);
break;
default:
break;
}
}
\BARFOO\
else
echo "will not over write ./keypress.c"
fi


if `test ! -d ./lib`
then
mkdir ./lib
echo "mkdir ./lib"
fi

if `test ! -s ./lib/plane.xsp`
then
echo "writting ./lib/plane.xsp"
cat > ./lib/plane.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1

elas 1
kspr 1
kdmp 1

fixm 0
shws 1
cent -1

frce 0 0 10 0


frce 1 0 5 2
frce 2 0 10 0
frce 3 0 10000 1
visc 0
stck 0
step 0.025
prec 1
adpt 0
gsnp 10 1

wall 0 1 0 0
mass 1 786 219 -198 -6 1 1
mass 2 814 226 -198 -6 1 1
mass 3 954 226 -198 -6 0.8 1
mass 4 944 256 -198 -6 1 1
mass 5 964 256 -198 -6 1 1
mass 6 835 226 -198 -6 0.3 1
mass 7 835 234 -198 -6 1 1
mass 8 914 216 -198 -6 1 1
mass 9 819 213 -198 -6 1 1
mass 10 830 218 -198 -6 1 1
mass 11 884 218 -198 -6 1 1
mass 12 884 200 -198 -6 1 1
mass 13 902 200 -198 -6 1 1
mass 14 881 214 -198 -6 0.11 1
mass 15 890 205 -198 -6 0.11 1
mass 16 962 247 -198 -6 0.11 1
mass 17 957 233 -198 -6 0.11 1
mass 18 949 233 -198 -6 0.11 1
mass 19 955 247 -198 -6 0.11 1
mass 20 839 230 -198 -6 0.3 1
mass 21 842 235 -198 -6 0.3 1
mass 22 845 235 -198 -6 0.3 1
mass 23 843 232 -198 -6 0.3 1
mass 24 910 226 -198 -6 0.3 1
mass 25 948 255 -198 -6 0.3 1
mass 26 954 219 -198 -6 0.8 1
mass 27 957 225 -198 -6 0.2 1
mass 28 908 228 -198 -6 1 1
mass 30 0 328 0 0 1 1
mass 31 0 278 0 0 1 1
mass 32 0 228 0 0 1 1
mass 33 0 178 0 0 1 1
mass 34 0 128 0 0 1 1
mass 35 0 78 0 0 1 1
mass 36 10 78 0 0 1 1
mass 37 10 128 0 0 1 1
mass 38 10 178 0 0 1 1
mass 39 10 228 0 0 1 1
mass 40 10 278 0 0 1 1
mass 41 10 328 0 0 1 1
spng 1 1 2 1 1 28.8617393793236232
spng 2 5 3 1 1 31.6227766016837926
spng 3 4 5 1 1 20
spng 4 2 6 1 1 21
spng 5 6 7 1 1 8
spng 6 7 2 1 1 22.4722050542442311
spng 7 1 9 1 1 33.5410196624968435
spng 8 9 8 1 1 95.0473566176356144
spng 9 10 12 1 1 56.9209978830308287
spng 10 12 13 1 1 18
spng 11 13 11 1 1 25.4558441227157104
spng 12 11 10 1 1 54
spng 13 14 15 1 1 12.7279220613578552
spng 14 14 11 1 1 5
spng 15 15 13 1 1 13
spng 16 19 18 1 1 15.2315462117278173
spng 17 19 16 1 1 7
spng 18 18 17 1 1 8
spng 19 6 20 1 1 5.65685424949238058
spng 20 20 7 1 1 5.65685424949238058
spng 21 20 22 1 1 7.81024967590665398
spng 22 24 25 1 1 47.8016736108684768
spng 23 8 26 1 1 40.1123422402631604
spng 24 7 28 1 1 73.2461603089199542
spng 25 28 3 1 1 46.0434577328853507
spng 26 28 4 1 1 45.6070170039655167
spng 27 27 26 1 1 6.70820393249936942
spng 28 3 26 1 1 7
spng 29 30 31 1 1 50
spng 30 31 32 1 1 50
spng 31 32 33 1 1 50
spng 32 33 34 1 1 50
spng 33 34 35 1 1 50
spng 34 30 40 1 1 50.9901951359278485
spng 35 40 32 1 1 50.9901951359278485
spng 36 32 38 1 1 50.9901951359278485
spng 37 38 34 1 1 50.9901951359278485
spng 38 34 36 1 1 50.9901951359278485
spng 39 35 37 1 1 50.9901951359278485
spng 40 37 33 1 1 50.9901951359278485
spng 41 38 39 1 1 50
spng 42 33 39 1 1 50.9901951359278485
spng 43 39 31 1 1 50.9901951359278485
spng 44 31 41 1 1 50.9901951359278485
\BARFOO\
else
echo "will not over write ./lib/plane.xsp"
fi
if `test ! -s ./lib/2snake.xsp`
then
echo "writting ./lib/2snake.xsp"
cat > ./lib/2snake.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1.0
elas 1.0
kspr 200.0
kdmp 1.500000
fixm 0
shws 1
cent -1
frce 0 0 10.0 0.0
frce 1 0 5.0 2.0
frce 2 0 10.0 0.0
frce 3 0 10000.0 1.0
visc 0.0
stck 0.0
step 0.025000

prec 1.0
adpt 0

mass 35 630.0 328.0 0.0 0.0 1.0 1.0

\BARFOO\
else
echo "will not over write ./lib/2snake.xsp"
fi
if `test ! -s ./lib/2x2snake.xsp`
then
echo "writting ./lib/2x2snake.xsp"
cat > ./lib/2x2snake.xsp << '\BARFOO\'


#1.0 *** XSpringies data file
cmas 1.0
elas 1.0
kspr 200.0
kdmp 1.500000
fixm 0
shws 1
cent -1
frce 0 0 10.0 0.0
frce 1 0 5.0 2.0
frce 2 0 10.0 0.0
frce 3 0 10000.0 1.0
visc 0.0
stck 0.0
step 0.025000

prec 1.0
adpt 0


gsnp 18.0 0
wall 1 1 1 1

mass 1 147.0 324.0 0.0 0.0 1.0 1.0
mass 2 164.0 324.0 0.0 0.0 1.0 1.0
mass 3 182.0 324.0 0.0 0.0 1.0 1.0
mass 4 200.0 324.0 0.0 0.0 1.0 1.0
mass 5 218.0 324.0 0.0 0.0 1.0 1.0
mass 6 236.0 324.0 0.0 0.0 1.0 1.0
mass 7 254.0 324.0 0.0 0.0 1.0 1.0
mass 8 272.0 324.0 0.0 0.0 1.0 1.0
mass 9 290.0 324.0 0.0 0.0 1.0 1.0
mass 10 308.0 324.0 0.0 0.0 1.0 1.0
mass 11 326.0 324.0 0.0 0.0 1.0 1.0
mass 12 344.0 324.0 0.0 0.0 1.0 1.0
mass 13 362.0 324.0 0.0 0.0 1.0 1.0
mass 14 380.0 324.0 0.0 0.0 1.0 1.0
mass 15 398.0 324.0 0.0 0.0 1.0 1.0
mass 16 416.0 324.0 0.0 0.0 1.0 1.0
mass 17 434.0 324.0 0.0 0.0 1.0 1.0
mass 18 452.0 324.0 0.0 0.0 1.0 1.0
mass 19 470.0 324.0 0.0 0.0 1.0 1.0
mass 20 147.0 298.0 0.0 0.0 1.0 1.0
mass 21 164.0 298.0 0.0 0.0 1.0 1.0
mass 22 182.0 298.0 0.0 0.0 1.0 1.0
mass 23 200.0 298.0 0.0 0.0 1.0 1.0
mass 24 218.0 298.0 0.0 0.0 1.0 1.0
mass 25 236.0 298.0 0.0 0.0 1.0 1.0
mass 26 254.0 298.0 0.0 0.0 1.0 1.0
mass 27 272.0 298.0 0.0 0.0 1.0 1.0
mass 28 290.0 298.0 0.0 0.0 1.0 1.0
mass 29 308.0 298.0 0.0 0.0 1.0 1.0
mass 30 326.0 298.0 0.0 0.0 1.0 1.0
mass 31 344.0 298.0 0.0 0.0 1.0 1.0
mass 32 362.0 298.0 0.0 0.0 1.0 1.0
mass 33 380.0 298.0 0.0 0.0 1.0 1.0
mass 34 398.0 298.0 0.0 0.0 1.0 1.0
mass 35 416.0 298.0 0.0 0.0 1.0 1.0
mass 36 434.0 298.0 0.0 0.0 1.0 1.0
mass 37 452.0 298.0 0.0 0.0 1.0 1.0
mass 38 470.0 298.0 0.0 0.0 1.0 1.0


spng 1 1 2 200.0 1.500000 18.0
spng 2 3 2 200.0 1.500000 18.0
spng 3 3 4 200.0 1.500000 18.0
spng 4 4 5 200.0 1.500000 18.0
spng 5 5 6 200.0 1.500000 18.0
spng 6 6 7 200.0 1.500000 18.0
spng 7 7 8 200.0 1.500000 18.0
spng 8 8 9 200.0 1.500000 18.0
spng 9 9 10 200.0 1.500000 18.0
spng 10 10 11 200.0 1.500000 18.0
spng 11 11 12 200.0 1.500000 18.0
spng 12 12 13 200.0 1.500000 18.0
spng 13 13 14 200.0 1.500000 18.0
spng 14 14 15 200.0 1.500000 18.0
spng 15 15 16 200.0 1.500000 18.0
spng 16 16 17 200.0 1.500000 18.0
spng 17 17 18 200.0 1.500000 18.0
spng 18 18 19 200.0 1.500000 18.0

spng 19 1 3 200.0 1.500000 36.0
spng 20 2 4 200.0 1.500000 36.0
spng 21 3 5 200.0 1.500000 36.0
spng 22 4 6 200.0 1.500000 36.0
spng 23 5 7 200.0 1.500000 36.0
spng 24 6 8 200.0 1.500000 36.0
spng 25 7 9 200.0 1.500000 36.0
spng 26 8 10 200.0 1.500000 36.0
spng 27 9 11 200.0 1.500000 36.0
spng 28 10 12 200.0 1.500000 36.0
spng 29 11 13 200.0 1.500000 36.0
spng 30 12 14 200.0 1.500000 36.0
spng 31 13 15 200.0 1.500000 36.0
spng 32 14 16 200.0 1.500000 36.0
spng 33 15 17 200.0 1.500000 36.0
spng 34 16 18 200.0 1.500000 36.0
spng 35 17 19 200.0 1.500000 36.0
spng 36 20 21 200.0 1.500000 18.0
spng 37 22 21 200.0 1.500000 18.0
spng 38 22 23 200.0 1.500000 18.0
spng 39 23 24 200.0 1.500000 18.0
spng 40 24 25 200.0 1.500000 18.0
spng 41 25 26 200.0 1.500000 18.0
spng 42 26 27 200.0 1.500000 18.0


spng 43 27 28 200.0 1.500000 18.0

spng 44 28 29 200.0 1.500000 18.0
spng 45 29 30 200.0 1.500000 18.0
spng 46 30 31 200.0 1.500000 18.0
spng 47 31 32 200.0 1.500000 18.0
spng 48 32 33 200.0 1.500000 18.0
spng 49 33 34 200.0 1.500000 18.0
spng 50 34 35 200.0 1.500000 18.0
spng 51 35 36 200.0 1.500000 18.0
spng 52 36 37 200.0 1.500000 18.0
spng 53 37 38 200.0 1.500000 18.0


spng 54 20 22 200.0 1.500000 36.0
spng 55 21 23 200.0 1.500000 36.0
spng 56 22 24 200.0 1.500000 36.0
spng 57 23 25 200.0 1.500000 36.0
spng 58 24 26 200.0 1.500000 36.0

spng 59 25 27 200.0 1.500000 36.0
spng 60 26 28 200.0 1.500000 36.0
spng 61 27 29 200.0 1.500000 36.0
spng 62 28 30 200.0 1.500000 36.0


spng 63 29 31 200.0 1.500000 36.0
spng 64 30 32 200.0 1.500000 36.0
spng 65 31 33 200.0 1.500000 36.0
spng 66 32 34 200.0 1.500000 36.0
spng 67 33 35 200.0 1.500000 36.0

spng 68 34 36 200.0 1.500000 36.0
spng 69 35 37 200.0 1.500000 36.0
spng 70 36 38 200.0 1.500000 36.0
spng 71 1 20 200.0 1.500000 26.0
spng 72 2 21 200.0 1.500000 26.0
spng 73 3 22 200.0 1.500000 26.0
spng 74 4 23 200.0 1.500000 26.0
spng 75 5 24 200.0 1.500000 26.0
spng 76 25 6 200.0 1.500000 26.0
spng 77 7 26 200.0 1.500000 26.0
spng 78 27 8 200.0 1.500000 26.0
spng 79 9 28 200.0 1.500000 26.0
spng 80 29 10 200.0 1.500000 26.0
spng 81 11 30 200.0 1.500000 26.0
spng 82 31 12 200.0 1.500000 26.0
spng 83 13 32 200.0 1.500000 26.0
spng 84 33 14 200.0 1.500000 26.0
spng 85 15 34 200.0 1.500000 26.0
spng 86 35 16 200.0 1.500000 26.0
spng 87 17 36 200.0 1.500000 26.0
spng 88 37 18 200.0 1.500000 26.0
spng 89 19 38 200.0 1.500000 26.0
spng 90 1 21 200.0 1.500000 31.064449
spng 91 2 20 200.0 1.500000 31.064449
spng 92 2 22 200.0 1.500000 31.622777
spng 93 3 21 200.0 1.500000 31.622777
spng 94 3 23 200.0 1.500000 31.622777
spng 95 4 22 200.0 1.500000 31.622777
spng 96 4 24 200.0 1.500000 31.622777
spng 97 5 23 200.0 1.500000 31.622777
spng 98 5 25 200.0 1.500000 31.622777
spng 99 6 24 200.0 1.500000 31.622777
spng 100 6 26 200.0 1.500000 31.622777
spng 101 7 25 200.0 1.500000 31.622777
spng 102 7 27 200.0 1.500000 31.622777
spng 103 8 26 200.0 1.500000 31.622777
spng 104 8 28 200.0 1.500000 31.622777
spng 105 9 27 200.0 1.500000 31.622777
spng 106 9 29 200.0 1.500000 31.622777
spng 107 10 28 200.0 1.500000 31.622777
spng 108 10 30 200.0 1.500000 31.622777
spng 109 11 29 200.0 1.500000 31.622777
spng 110 11 31 200.0 1.500000 31.622777
spng 111 12 30 200.0 1.500000 31.622777
spng 112 12 32 200.0 1.500000 31.622777
spng 113 13 31 200.0 1.500000 31.622777
spng 114 13 33 200.0 1.500000 31.622777
spng 115 14 32 200.0 1.500000 31.622777
spng 116 14 34 200.0 1.500000 31.622777
spng 117 15 33 200.0 1.500000 31.622777
spng 118 15 35 200.0 1.500000 31.622777
spng 119 16 34 200.0 1.500000 31.622777
spng 120 16 36 200.0 1.500000 31.622777
spng 121 17 35 200.0 1.500000 31.622777
spng 122 17 37 200.0 1.500000 31.622777
spng 123 18 36 200.0 1.500000 31.622777
spng 124 18 38 200.0 1.500000 31.622777
spng 125 19 37 200.0 1.500000 31.622777
spng 126 1 22 200.0 1.500000 43.600459
spng 127 3 20 200.0 1.500000 43.600459
spng 128 2 23 200.0 1.500000 44.407207
spng 129 4 21 200.0 1.500000 44.407207
spng 130 3 24 200.0 1.500000 44.407207
spng 131 5 22 200.0 1.500000 44.407207
spng 132 4 25 200.0 1.500000 44.407207
spng 133 6 23 200.0 1.500000 44.407207
spng 134 5 26 200.0 1.500000 44.407207
spng 135 7 24 200.0 1.500000 44.407207
spng 136 6 27 200.0 1.500000 44.407207
spng 137 8 25 200.0 1.500000 44.407207
spng 138 7 28 200.0 1.500000 44.407207
spng 139 9 26 200.0 1.500000 44.407207
spng 140 8 29 200.0 1.500000 44.407207
spng 141 10 27 200.0 1.500000 44.407207
spng 142 9 30 200.0 1.500000 44.407207
spng 143 11 28 200.0 1.500000 44.407207
spng 144 10 31 200.0 1.500000 44.407207
spng 145 12 29 200.0 1.500000 44.407207
spng 146 11 32 200.0 1.500000 44.407207
spng 147 13 30 200.0 1.500000 44.407207
spng 148 12 33 200.0 1.500000 44.407207
spng 149 14 31 200.0 1.500000 44.407207
spng 150 13 34 200.0 1.500000 44.407207
spng 151 15 33 200.0 1.500000 31.622777
spng 152 32 15 200.0 1.500000 44.407207
spng 153 14 35 200.0 1.500000 44.407207
spng 154 16 33 200.0 1.500000 44.407207
spng 155 15 36 200.0 1.500000 44.407207
spng 156 34 17 200.0 1.500000 44.407207
spng 157 16 37 200.0 1.500000 44.407207
spng 158 18 35 200.0 1.500000 44.407207
spng 159 17 38 200.0 1.500000 44.407207
spng 160 19 36 200.0 1.500000 44.407207
\BARFOO\
else
echo "will not over write ./lib/2x2snake.xsp"
fi
echo "Finished archive 15 of 16"

Douglas DeCarlo

unread,
Mar 26, 1993, 11:15:14 AM3/26/93
to
Submitted-by: d...@gradient.cis.upenn.edu (Douglas DeCarlo)
Posting-number: Volume 19, Issue 68
Archive-name: xspringies/part16

Environment: X11
Supersedes: xspringies: Volume 14, Issue 25-30

#!/bin/sh


# to extract, remove the header and type "sh filename"

if `test ! -s ./COPYING`
then
echo "writting ./COPYING"
cat > ./COPYING << '\BARFOO\'

GNU GENERAL PUBLIC LICENSE
Version 1, February 1989

Copyright (C) 1989 Free Software Foundation, Inc.


675 Mass Ave, Cambridge, MA 02139, USA

Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

Preamble

The license agreements of most software companies try to keep users
at the mercy of those companies. By contrast, our General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. The
General Public License applies to the Free Software Foundation's
software and to any other program whose authors commit to using it.
You can use it for your programs, too.

When we speak of free software, we are referring to freedom, not
price. Specifically, the General Public License is designed to make
sure that you have the freedom to give away or sell copies of free
software, that you receive source code or can get it if you want it,
that you can change the software or use pieces of it in new free
programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.

For example, if you distribute copies of a such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must tell them their rights.

We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.

The precise terms and conditions for copying, distribution and
modification follow.

GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License Agreement applies to any program or other work which
contains a notice placed by the copyright holder saying it may be
distributed under the terms of this General Public License. The
"Program", below, refers to any such program or work, and a "work based
on the Program" means either the Program or any work containing the
Program or a portion of it, either verbatim or with modifications. Each
licensee is addressed as "you".

1. You may copy and distribute verbatim copies of the Program's source
code as you receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice and
disclaimer of warranty; keep intact all the notices that refer to this
General Public License and to the absence of any warranty; and give any
other recipients of the Program a copy of this General Public License
along with the Program. You may charge a fee for the physical act of
transferring a copy.

2. You may modify your copy or copies of the Program or any portion of
it, and copy and distribute such modifications under the terms of Paragraph
1 above, provided that you also do the following:

a) cause the modified files to carry prominent notices stating that
you changed the files and the date of any change; and

b) cause the whole of any work that you distribute or publish, that
in whole or in part contains the Program or any part thereof, either
with or without modifications, to be licensed at no charge to all
third parties under the terms of this General Public License (except
that you may choose to grant warranty protection to some or all
third parties, at your option).

c) If the modified program normally reads commands interactively when
run, you must cause it, when started running for such interactive use
in the simplest and most usual way, to print or display an
announcement including an appropriate copyright notice and a notice
that there is no warranty (or else, saying that you provide a
warranty) and that users may redistribute the program under these
conditions, and telling the user how to view a copy of this General
Public License.

d) You may charge a fee for the physical act of transferring a
copy, and you may at your option offer warranty protection in
exchange for a fee.

Mere aggregation of another independent work with the Program (or its
derivative) on a volume of a storage or distribution medium does not bring
the other work under the scope of these terms.

3. You may copy and distribute the Program (or a portion or derivative of
it, under Paragraph 2) in object code or executable form under the terms of
Paragraphs 1 and 2 above provided that you also do one of the following:

a) accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of
Paragraphs 1 and 2 above; or,

b) accompany it with a written offer, valid for at least three
years, to give any third party free (except for a nominal charge
for the cost of distribution) a complete machine-readable copy of the
corresponding source code, to be distributed under the terms of
Paragraphs 1 and 2 above; or,

c) accompany it with the information you received as to where the
corresponding source code may be obtained. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form alone.)

Source code for a work means the preferred form of the work for making
modifications to it. For an executable file, complete source code means
all the source code for all modules it contains; but, as a special
exception, it need not include source code for modules which are standard
libraries that accompany the operating system on which the executable
file runs, or for standard header files or definitions files that
accompany that operating system.

4. You may not copy, modify, sublicense, distribute or transfer the
Program except as expressly provided under this General Public License.
Any attempt otherwise to copy, modify, sublicense, distribute or transfer
the Program is void, and will automatically terminate your rights to use
the Program under this License. However, parties who have received
copies, or rights to use copies, from you under this General Public
License will not have their licenses terminated so long as such parties
remain in full compliance.

5. By copying, distributing or modifying the Program (or any work based
on the Program) you indicate your acceptance of this license to do so,
and all its terms and conditions.

6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the original
licensor to copy, distribute or modify the Program subject to these
terms and conditions. You may not impose any further restrictions on the
recipients' exercise of the rights granted herein.

7. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

Each version is given a distinguishing version number. If the Program
specifies a version number of the license which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
the license, you may choose any version ever published by the Free Software
Foundation.

8. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.

NO WARRANTY

9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.

10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS

Appendix: How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest
possible use to humanity, the best way to achieve this is to make it
free software which everyone can redistribute and change under these
terms.

To do so, attach the following notices to the program. It is safest to
attach them to the start of each source file to most effectively convey
the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.

<one line to give the program's name and a brief idea of what it does.>
Copyright (C) 19yy <name of author>

This program is free software; you can redistribute it and/or modify


it under the terms of the GNU General Public License as published by

the Free Software Foundation; either version 1, or (at your option)

any later version.

This program is distributed in the hope that it will be useful,


but WITHOUT ANY WARRANTY; without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:

Gnomovision version 69, Copyright (C) 19xx name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the
appropriate parts of the General Public License. Of course, the
commands you use may be called something other than `show w' and `show
c'; they could even be mouse-clicks or menu items--whatever suits your
program.

You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here a sample; alter the names:

Yoyodyne, Inc., hereby disclaims all copyright interest in the
program `Gnomovision' (a program to direct compilers to make passes
at assemblers) written by James Hacker.

<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice

That's all there is to it!
\BARFOO\
else
echo "will not over write ./COPYING"
fi
echo "Finished archive 16 of 16"

0 new messages