Announcement:: Downloads
Announcement:: Downloads
Announcement:
TankCalc is now available for the Android platform (and is still free) | Android market link | Local link
Introduction
https://arachnoid.com/TankCalc/#Downloads 1/11
02/11/2019 * TankCalc
TankCalc is the most recent in a series of programs and mathematical methods I have written to compute partial
volumes in storage tanks. TankCalc's present embodiment is as a Java application because this maximizes the number
of places the program can successfully run. And this is the only reason it's written in Java — if it were possible to write
a fast, native-language version of TankCalc that would run on a lot of different systems and would not become
hopelessly outdated in five years, I would write it in a faster language. But the advantage of Java is that it isn't going
away, older Java programs like my own Arachnophilia (fourteen years and counting) still function as intended and are
still widely used, and there are Java runtime engines for a lot of different environments, many more than for other
languages.
One drawback to Java is that it isn't blazingly fast, and TankCalc, essentially a numerical integrator, requires speed. But
this is a secondary consideration to being able to write an application that will run virtually anywhere, now and in the
future.
NOTE: For detailed information about tank measuring issues, and to compute tank shapes not explicitly covered by
TankCalc, visit Volumes in Depth . Also, if you cannot acquire accurate dimensions for your tank, this geometric
modeling method may not work for you — I recommend that you visit my tank profiling page instead.
I will have more to say, and in greater detail, about TankCalc's past and present, but first let's deal with access and
downloading issues.
Downloads
TankCalc is a comprehensive Java-based storage tank analyzer that can accurately compute partial and full volumes for
many kinds of storage tanks — cylinders, spheres, complex tanks with different kinds of end caps, vertical, horizontal,
even tilted. It may be that TankCalc is the first widely available program that can handle so many storage tank types in
so many different positions. TankCalc is also free.
Applet Because of security changes in Java, the option of running TankCalc in a Web page no longer exists.
Please download TankCalc and install it as a local application using one of the options below.
Java Executable (715KB) For non-Windows systems the TankCalc Java JAR file can be downloaded and run
locally.
Source Archive (658KB) The GPL-licensed TankCalc source TAR archive can be downloaded, inspected, and
compiled locally. This option is particularly important for governmental agencies and others who would like to use
TankCalc but who must meet strict security guidelines.
For all these options you need to have a current Java runtime engine, available for free from http://java.com . If you
think you have a suitable Java runtime engine but aren't sure, chances are you don't.
NOTE: for those with very large storage tanks with radii that differ from the bottom of the tank to the top, visit the
TankStepped or TankProfiler pages.
History/Methods
Closed-form solutions
L, cylinder length
R, cylinder radius and major ellipse radius
r, minor ellipse radius
y, content height
v, partial volume (the result)
(1)
(2)
Figure 2
Equations (1) and (2) are combined to acquire a volume for a content height measurement represented by y. This
relatively simple solution works well for a range of tank types — cylinders, (set r to zero), spheres (set L to zero),
through a range of common tank types with varying end-cap radii.
As this horizontal solution became widely known, I received some requests for variations, starting with an obvious one
— a tank as in Figure 2, but mounted vertically. For that case, the following equations must be applied by zones (using
the same variable names as above):
For the bottom and top of a vertical tank, for provided values for R and r as described above, and content
bisector y, with numerical ranges of 0 <= y <= r, and L+r <= y <= L+2r (with some technical
adjustments of the range of y and of the resulting volume for the top ellipse):
(3)
And for the cylinder in the middle, for a provided value of R (cylinder radius) and with the numerical range
of r <= y <= L+r
(4)
The vertical solution must be applied to the tank in increments — bottom, middle, top — and the result is the sum of
all three, so this solution enters the region between equations and algorithms. This is not a problem, most modern
technologists are comfortable writing algorithms as well as equations, even though most of us prefer one over the
other.
Variations on a theme
But along with those who asked for a solution for a vertical tank, or a tank with some property like a cylinder with an
elliptical cross-section (easily handled), I began to receive a number of requests for a partial-volume solution for tanks
mounted at an angle. When I first heard this I thought, "At an angle? Surely this was an accident." But that only
reveals my ignorance of the storage business, because as it turns out, there are excellent reasons to mount a tank at
an angle. One, it's easier to clean a tank that is tilted because the crap ... uh, detritus, descends by gravity to a small
region where it is easily scooped up. Two, in an aviation fuel tank it is important to have a zone where water can
benignly collect and not easily mix with fuel being delivered to aircraft (water is denser than aviation fuel and tends to
collect at the bottom of a storage tank).
So there was a legitimate place for a mathematical treatment of an arbitrary tank with an arbitrary amount of tilt. But
after some preliminary work I realized the solution wouldn't be closed-form (meaning it wouldn't be expressible in a
simple equation like those above). Instead, I saw that some kind of numerical integration would be required — a
messy, algorithmic, approximate solution, not unlike the messy world whose problems it addressed.
I ask that my readers not be disheartened by my use of the term "approximate" — this is, after all, applied
mathematics, not pure, and the problem to be solved is a practical one, where the point is to acquire reliable numerical
results with known accuracy. And TankCalc has a fine-tuning dialog where you can choose accuracy and computing
time options — in general meaning more accuracy, more time. TankCalc's math engine has no practical constraint on a
solution's accuracy, and in exchange, no practical constraint on how much time such a solution might require.
In practical tests, and for the majority of everyday problems, TankCalc provides very accurate results very quickly. In
the worst imaginable cases, for example by generating a table of intermediate values for every millimeter of a large
tank, and while simultaneously using the time-consuming volume-to-height root finder mode, solutions can be very
slow.
Numerical Solutions
In its present form, TankCalc represents a departure from all my past efforts to analyze storage tanks — it is purely
numerical. It doesn't rely on closed-form solutions for any but the preliminaries, and as a result, it can handle a large
number of tank types and configurations:
The Details
All the above results are provided in TankCalc's output data table for each liquid level of interest.
Summary
To summarize, the mathematical methods used in TankCalc are perfectly reliable, the user can get any degree of
accuracy he is willing to wait for (and results of good accuracy are available very quickly), and TankCalc accepts a
detailed tank description that meets most field requirements — any degree of tilt, many options, even a way to check
its own work.
In the next section we will show a typical path from a list of tank dimensions to a table of partial volume results.
Usage
The main TankCalc display has five option tabs across the bottom:
https://arachnoid.com/TankCalc/#Downloads 4/11
02/11/2019 * TankCalc
Input
Compute
Model in 3D
Graphic Help
Text Help
Normally the user enters a tank description at the Input tab, then segues over to the Compute tab to acquire
some practical results.
Input Units
NOTE: TankCalc remembers a user's
It's always a good first step, before making any other choices and entries — all of them. This is a
entries, to choose appropriate input and output units (toward convenience for those who may have to
the bottom of the input panel). TankCalc supports a wide interrupt work on a particular problem and
variety of entry and display units, and the user is not obliged come back to it later. TankCalc saves the
to be consistent about the choice of units, e.g. one may user's choices in a file located at (user
choose inputs in millimeters and outputs in gallons. directory)/.TankCalc/TankCalc.ini.
Most TankCalc input fields respond to the mouse wheel and arrow keys. In most cases the user can hover
the mouse cursor over an input field, then spin the mouse wheel to change its value — or click the field,
then use the arrow keys to change value. The following actions apply to most numeric input fields:
Action Result
Mouse wheel Value increased/decreased by 1
up/down arrow keys Value increased/decreased by 1
Page Up/Page Down keys Value increased/decreased by 10
Home/End keys Value increased/decreased by 100
Action Result
Mouse wheel Zoom in/out
Mouse drag Rotate image vertically or horizontally
Shift key + Mouse drag Translate image vertically or horizontally
Right/left arrow keys
Translate right/left (X axis)
(may have to click the panel first)
Up/down arrow keys Translate up/down (Y axis)
Home/End keys Translate in/out (Z axis)
Many of the above mouse and keyboard actions can be changed with the following modifier keystrokes:
Action Result
Above actions accompanied by Shift key Amount of change divided by 10
Above actions accompanied by Alt key Amount of change divided by 100
Above actions accompanied by both Shift and Alt keys Amount of change divided by 1000
Variable Names
It's a good idea to become familiar with TankCalc's variable names (see figure 5) and which spatial
dimensions they occupy. TankCalc evaluates a tank in three independent zones — a left end cap, a central
cylindrical section, and a right end cap. Any of these sections are optional and may be eliminated by
entering a zero for one of its dimensions, but all of them are available for the description of a complex tank
type. Here is a description breakdown:
The single variable that is shared by all the sections is R, the tank's overall radius. R increases the
tank's size in the Y (vertical) and Z (depth) dimensions. A tank with a zero R entry will not have a
volume, regardless of the other entries.
The left and right end caps are fully (and separately) described:
with a dimensional variable r that describes the reach of the end cap along the X (horizontal)
dimension. To eliminate an end cap, to make that end of the tank flat, enter zero for r.
with a specifier for whether the end cap is elliptical, conical or spherical (see below).
The central cylindrical section is identified solely by its length L, which extends along the X
(horizontal) dimension). To eliminate the cylindrical section, to describe a tank entirely in terms of its
end caps, enter zero for L.
Each of these options has an associated, immediately available, full-volume equation that TankCalc
computes and displays upon receiving a user entry (the user presses keyboard "Enter" to commit a
dimensional entry and see the result):
https://arachnoid.com/TankCalc/#Downloads 5/11
02/11/2019 * TankCalc
Figure 5
(12)
But if the user enters a large value for r, TankCalc assumes it is actually meant to represent mr, and
constructs r like this:
(13)
For simplicity's sake, TankCalc has a single entry for the radius of a spherical end cap, but the user is free to
enter either r or mr, and TankCalc will work out the user's meaning. The computed r and mr values are
included as part of the table listing to be descibed below, so the user can determine what decision TankCalc
made.
A special entry mode is available for the r field while defining conical end caps. In this case, instead of
entering the height of the cone, one may enter the angle in degrees of the cone's side with respect to its
base, and TankCalc will convert this to a height for you. To signal this special entry mode, add a "d" to your
angle entry to the r field. Or the user may prefer to enter a slope percentage rather than an angle, in which
case the entry should end with "%". There are circumstances where a conical end cap's angle or slope are
known but its height is not — these features answer that need.
https://arachnoid.com/TankCalc/#Downloads 6/11
02/11/2019 * TankCalc
Tank Orientation
The user also specifies the tank's orientation — horizontal, vertical or tilted at an angle between 0 and 90
degrees. Obviously few real-world tanks will have extreme deviations from horizontal or vertical, but the
option of setting arbitrary angles proved useful during testing, and based on my past experience, someone,
somewhere will have a tank requiring every available TankCalc option.
The "Tank Angle Degrees" entry field has a special option — to enter a slope percentage instead of an angle,
add the character "%" to your entry, and TankCalc will perform the conversion from slope to angle, which by
the way is:
(14)
Scaling Factor
The scaling factor entry allows computation of a common tank type with an oval cross-section. Let's say we
need to compute accurate partial volumes for such a tank -- for example, a tank that is 40 units in height
but 60 units in width. For this tank, we would enter the tank's vertical radius (i.e. 20) for R and a scaling
factor of 60/40 = 1.5. This feature only works well for tanks whose maximum (or minimum) width extends
in the same plane as its contents.
Residual Volume
An entry for residual tank volume takes into account the fact that some tanks have unmeasured contents
that may need to ba accounted for in a volume result. This entry can be positive or negative and can be
used to accommodate circumstances where a sensor's data doesn't correlate very well with an abstract tank
model.
Sensor Position
The next entries on the input panel specify a sensor bottom position in three dimensions. This option is
present to produce agreement between TankCalc's table displays and data collected in the real world. The
sensor X and Z entries specify a position along the bottom surface of the tank. The X entry is right-to-left
(positive right), Z is forward-to-back (positive forward). Z entries follow the tank's cylindrical curvature,
consequently Z axis entries create a corresponding Y increment. The Y entry ascends from the tank's
bottom surface, to account for the case of a bottom plate below the sensor's lowest position.
There is one additional sensor specifier, available only for a tilted tank, and that is the orientation of the
sensor path. The path can be specified as perpendicular to the tank's long axis ("X axis"), perpendicular to
the tank's short axis ("Y Axis") or perpendicular to the surface of the contents, or the local vertical outside
the tank itself. If these terms seem confusing, just look at the graphic display — the magenta line is the
current sensor axis. This setting may represent a small distinction for a tank with an inclination of a few
degrees at most, but it's important in applications demanding the highest accuracy.
The optional wall thickness and density entries can be used to fully characterize the modeled tank. Wall
thickness should be entered in the selected length units, and wall material density should be expressed in
the standard density scheme in which water has a density of 1. Here is a table of common materials and
their densities:
The "Cylinder Integration Steps" and "End Cap Integration Steps" entries change the behavior of the
TankCalc numerical integrator. The default settings should be satisfactory in nearly all cases, but if a greater
degree of accuracy is required, these values may be increased as the expense of program running speed.
The "Root Finder Epsilon" entry changes the error bound of a numerical root finder used while calculating a
sensor height for a given volume argument, the inverse of the normal table generation mode described
below. Again, the default value should be satisfactory in nearly all cases. Decreasing this value increases
the accuracy of the root finder but requires more running time.
Clipboard Operations
There are a number of ways to import and export tank descriptions and table data described below, but
these methods require that TankCalc be run as a desktop application, not an applet in a Web page. There
was a time when Java applets could access the system clipboard, but for security reasons this is no longer
true.
https://arachnoid.com/TankCalc/#Downloads 7/11
02/11/2019 * TankCalc
Saving and Sharing Tank Descriptions
TankCalc has some simple ways to preserve what might be a laboriously created tank description. After
entering and testing a description, the user can click the "Copy" button at the lower right of the data
input panel and a description of the tank will be placed on the clipboard. The clipboard contents might look
like this:
The text on the clipboard represents a complete tank description, and it can be saved in a plain-text
document, shared with colleagues in e-mails, and archived for future use. Later, the description can be
copied onto the clipboard again, and upon pressing the "Paste" button at the lower right of the input
panel, the full description will be reëstablished in TankCalc.
TankCalc will also accept a tank description, or a path to a file containing a tank description, as a program
launch argument. This opens up additional possibilities. Users can:
The third option opens up the possiblity of creating tank description data files and opening TankCalc
automatically with them, as is true for spreadhseets and word processing programs. Here are working
examples of TankCalc launch scripts for Linux and Windows that can be used to associate TankCalc with any
file type the user cares to use:
Windows example (name this script "TankCalc.bat" and put it anywhere convenient):
@echo off
start javaw -jar "c:\Program Files\TankCalc\TankCalcApp.jar" "%1"
Linux example (name this script "TankCalc," give it executable permissons, and put it in
/usr/local/bin):
#!/bin/sh
java -jar /path-to-jarfile/TankCalcApp.jar "$1"
Having created one of these shell scripts, the user can create data files that contain tank descriptions, put
them anywhere convenient, and associate the data files with TankCalc. Here is how this is done in Windows:
1. Create a script named "TankCalc.bat" with the above Windows example content and place it anywhere
convenient.
2. Create some tank data files by copying tank descriptions (as explained above) and pasting them into
plain-text files, one description per file.
3. Give the data files a distinctive suffix that isn't already in use. I suggest ".tkc", which at the time of
writing appears not to be in use, but any unused suffix will do.
4. Put the data files anywhere convenient to the user.
5. Open a file explorer and right-click one of the data files.
6. Choose "Open With..." then "Browse."
7. Browse to the location of the script you created in step (1) and select it.
8. If all the steps were carried out correctly, TankCalc wil launch and show the tank description from the
data file, and Windows will subsequently remember the data file's association with TankCalc.
A similar procedure creates the same outcome on Linux and Macintosh systems.
https://arachnoid.com/TankCalc/#Downloads 8/11
02/11/2019 * TankCalc
Properties Table Generation
This option creates a table of tank properties — the tank's dimensions, full and empty weight,
and other useful data. This table fully describes the tank based on the entries made at the
input tab.
Step Size
Before generating data tables, be sure to set an appropriate table step size on the
Input tab. Smaller step sizes create longer, more detailed tables but such tables
require more time to generate.
Decimal Places
Also on the input tab is a selector for the number of decimal places to be displayed.
The default is suitable for most uses, but the option exists to choose more — possibly
more than is meaningful in a mathematical sense.
To create a normal data table, press the "Height -> Volume" button. This creates a
table that correlates fixed sensor heights with partial volumes.
The user may choose to generate a table that lists sensor heights for volume
arguments, the reverse of the default generation mode. This mode is much slower
than the default, due to a requirement to seek numerical values using a root finder
approach. To select this mode, click the "Volume -> Height" button. If this table
generation mode proves too slow, simply press the "Cancel" button, then increase
the table step size.
Output Options
The tables described above may be copied to the system clipboard in these three formats:
These table format choices are selected using the appropriate copy button — choose the button
that shows the desired table format.
Single Result
The single entry window accepts entries expressed in the currently selected input units and
produces results in the currently selected output units. The table generator follows the same
rules — a table's left-hand column is expressed in the chosen input units, and the right-hand
column in the chosen output units. The single result option is normally used after table
generation, so the desired data mode (i.e. Height -> Volume or the reverse) has been selected.
The truth is, if I hadn't added the 3D modeler to TankCalc, I would never have resolved the sensor
placement geometry, and the modeler clarified several issues that had been difficult to visualize without a
graphic guide. I think the user will find this tool very useful.
https://arachnoid.com/TankCalc/#Downloads 9/11
02/11/2019 * TankCalc
Graphic Help — tutorial images
This panel contains a graphic viewer for some bundled images that may help orient a new TankCalc user.
The content of the images is similar to what is presented here, but in greatly abbreviated form.
This panel contains a searchable copy of the help page. Users are advised to always go to the online help
page for the most recent content.
User Inquiries
If you have a question about TankCalc that might prove useful to others, post it here and I will add it to the user
inquiry archive.
Bug Reports
TankCalc users are invited to submit bug reports to my message page. Please be sure what you are reporting is a bug,
not a misunderstanding of the program.
Disclaimer
I apologize for the strict legalese below, but this program's calculations may be used to design and maintain fuel tanks
and the possibilities for litigation have not escaped my attention. Sorry.
Disclaimer of Warranty
The computations provided by TankCalc are provided on an "as-is" basis, without warranty of any kind,
including without limitation the warranties of merchantability, fitness for a particular purpose and non-
infringement. The entire risk as to the quality and performance of the computations is borne by you. Should
the results prove to be in error, you assume the entire cost of any required service and repair, and any
consequential damage.
Limitation of Liability
As customary in the computer business, you are solely responsible for any loss of profit or any other
commercial damage, including but not limited to special, incidental, consequential or other damages. This
disclaimer specifically disclaims all other warranties, expressed or implied, including but not limited to the
implied warranties of merchantability and fitness for a particular purpose, related to defects in the
computed results or the documentation.
Revision History
11.18.2016 Version 7.4. Changed the Windows startup procedure after discovering that Microsoft has abandoned
support for Java.
10.01.2015 Version 7.3. After many user requests, added a scaling factor entry to accommodate oval cross-
section tanks. The help file explains how to use this feature.
09.20.2015 Version 7.2. Made some minor edits to the help file.
07.29.2015 Version 7.1. Fixed a numeric formatting error in the properties table.
04.28.2015 Version 7.0. Improved user interface, added a precaution against showing out-of-date results.
Replaced Windows installation executable creation method.
11.14.2014 Version 6.9. Solved a problem with slow response and occasional user-interface lockup in the table
display, recoded the table generator user interface for ease of use and to correspond better with the Android
version, updated the help file.
11.13.2014 Version 6.8. Added a safeguard against trying to display very large HTML tables. The clipboard copy
contains the entire table, but for speed and stability reasons the displayed table is limited to a size of 100
kilobytes (not a problem for any practical table).
09.18.2014 Version 6.7. Improved accuracy of method for computing wall volume. Originally multiplied wall
surface area by wall thickness, now subtract tank total volume with wall thickness from tank total volume
without. In most cases the difference between the two methods will be small.
09.17.2014 Version 6.6. Updated the TankCalc documentation, improved the explanation of its numerical
methods.
09.17.2014 Version 6.5. Fixed a bug that prevented selected weight units from updating promptly after a user
change.
08.06.2014 Version 6.4. Recoded graphic rendering for better speed and efficiency, rearranged control setup,
increased the number of common classes shared by TankCalc and TankCalcAndroid.
07.29.2014 Version 6.3. Changed to a polygon-based tank graphic display, much better appearance.
07.25.2014 Version 6.2. Added tank internal height to summary table.
07.22.2014 Version 6.1. Fixed some small bugs, refactored and restructured to increase shared code between
TankCalc and TankCalcAndroid.
07.21.2014 Version 6.0. Corrected the end cap full wetted area computed value.
07.11.2014 Version 5.9. Rewrote the wetted and surface area algorithms for greater consistency and accuracy.
07.08.2014 Version 5.8. Based on a great user suggestion, created additional results and reworked output data
table, added wetted area (liquid/tank) and surface area (liquid/gas).
02.14.2014 Version 5.7. Improved formatting of plain-text data table.
02.05.2014 Version 5.6. Recoded user interface so the desktop/applet version and feature set more closely
resembles the Android version.
02.16.2013 Version 5.5. Fixed small formatting bug in table output, refactored to accommodate changes in Java.
01.11.2013 Version 5.4. Updated help file to clarify that clipboard operations require running TankCalc as a
desktop application, recoded to avoid some compiler warnings.
07.06.2012 Version 5.3. Fixed a bug that prevented correct volume computation when sensor axis wasn't
perpendicular to liquid level.
06.24.2012 Version 5.2. Fixed a bug that prevented entry of a table title.
02.21.2012 Version 5.1. Fixed a small bug related to the display of exponents.
https://arachnoid.com/TankCalc/#Downloads 10/11
02/11/2019 * TankCalc
02.20.2012 Version 5.1. Upgraded appearance and functioning, enabled HTML rendering of data table display,
changed table data presentation of tilted tanks for more consistency, corrected a few bugs.
11.03.2011 Version 5.0. At users' request, added a percentage column to all data tables.
09.25.2011 Version 4.9. Revised code to use antialiased font display — much better appearance.
09.17.2011 Version 4.8. Update help file to correct an error and include some new information.
03.29.2011 Version 4.7. Fixed a library issue caused by combining the application/applet versions of this program
into one JAR file.
02.26.2011 Version 4.6. Refactored a number of code areas, eliminated troublesome Web Start feature.
12.02.2009 Version 4.5. Corrected a typographical error in the graphic rendering of equation (4) on this page and
in the TankCalc documentation.
10.23.2009 Version 4.4. Replaced string-based keyboard identifiers with keycodes for the benefit of non-English
users.
08.11.2009 Version 4.3. Optimized height-for-volume root finder method.
06.04.2009 Version 4.2. Optimized vertical-tank cylindrical volume computation.
05.19.2009 Version 4.1. Fixed an error in the elliptical end cap surface area computation code.
03.31.2009 Version 4.0. Fixed a bug created by the new locale processing code.
03.29.2009 Version 3.9. Recoded this application to make it locale-immune.
03.28.2009 Version 3.8. Repackaged this project for the sake of internal consistency and greater download
efficiency.
03.20.2009 Version 3.7. Added more scaling options to the mouse and keyboard gesture recognizer.
03.18.2009 Version 3.6. Changed the keyboard accelerator keys to avoid a conflict while editing text fields.
03.16.2009 Version 3.5. Refactored and optimized some code sections.
03.10.2009 Version 3.4. Added more ways to load and save tank descriptions, fixed some minor bugs, added
doocumentation that describes a way to create a file association with TankCalc.
03.09.2009 Version 3.3. Added the ability to read a file containing a tank description. The file path can be placed
on the clipboard, or either a description or a file path can be made a program launch argument.
03.08.2009 Version 3.2. Created a way to copy and paste complete tank descriptions to/from the system
clipboard (trying to avoid creating yet another dumb data file format).
03.08.2009 Version 3.1. Fixed some inconsistencies in the weight calculator's results table, updated the
documentation.
03.08.2009 Version 3.0. Made a number of changes to improve the program's management of boundary
conditions, added a copy button to the weight calculator.
03.08.2009 Version 2.9. Corrected a bug that imposed the spherical-end-cap sizing rule to all end cap types,
fixed a few annoying bugs, updated the documentation.
03.07.2009 Version 2.8. Added a feature to compute a given tank's weight for an entered wall thickness and
material density.
03.07.2009 Version 2.7. Made a number of small improvements and bug fixes.
03.07.2009 Version 2.6. Redesigned the user interface so the tank specification and an interactive graphic image
are visible at once. Added mouse and keyboard gestures to the numeric input fields (mouse wheel and arrow
keys increment and decrement values).
03.07.2009 Version 2.5. Updated the documentation, increased the size of the application's documentation page,
cleaned up a few more code issues.
03.06.2009 Version 2.4. Cleaned up some coding issues in the new 3D modeler.
03.06.2009 Version 2.3. Added a 3D anaglyphic modeler.
03.03.2009 Version 2.2. Added slope percentage input mode for conical cap definition, updated documentation.
03.01.2009 Version 2.1. Initial Public Release.
https://arachnoid.com/TankCalc/#Downloads 11/11