GHS Version 18.00 Update
New features, changes, and bug fixes since version 17.50
=========== MAJOR NEW FEATURES =========
New Dramatic Speedup for Shape ROTATE
ENTER PM statement ROTATE for CREATE command runs about 5 times faster than
earlier versions. Note that ROTATE can be time-consuming because it requires
generating a rotated surface from the stations to use for cutting new sections.
New Block Comments Spanning Multiple Lines
Block comments were added to ignore everything between unquoted "{*" and "*}"
combinations, which can span multiple lines. When block comments are nested,
inner "{* ... *}" blocks do not terminate the outermost block comment.
New Righting Arm (RA) Features
RA limit evaluation was improved for several difficult situations involving
tight point immersion near equilibrium.
RA /GIVENangles parameter was added to use the given angle list verbatim
instead of extending or interpolating any additional angles.
New Maximum VCG (MAXVCG) Features
MAXVCG solving was improved, especially with the /TOL parameter present,
to prevent maximum VCG results reporting large negative limit margins, to keep
from getting stuck at tiny VCG ranges showing both positive and negative limit
margins but nothing close to zero, and to speed up processing by recognizing
early successful solutions not needing further improvement.
MAXVCG /NOWARN parameter was added to omit placing an asterisk next to any
Max VCG value that could not go higher without capsizing despite positive limit
margin values along with the report footer explanation "Capsized at Max".
New ADD Access to Weight Inertia
ADD (n)|"description" /ACCESS added access to /GYRadius and /BOX information,
setting variables to empty if not assigned, "OFF" if no inertia, "*" to include
inertia from any longitudinal distribution, or else the numeric value.
New COPY /PASSWORD Capability for Coded Files
COPY file /PASSWORD:"pw" uncodes a /CODEd file if it contains "`PASSWORD pw"
among initial comment lines starting with the accent (`) character, checking
until the first "*" line for ".GF*" extension files.
COPY file /PASSWORD without a subparameter uncodes a /CODEd file if it contains
"`CUSTOMER code" among initial accented (`) comment lines, where code must match
the licensed customer code.
New Fast Access to READ and RUN menus
READ or RUN entered alone from the keyboard with no PROJECT open now brings up
the File->Read geometry or File->Run menu dialog instead of trapping an error.
New Advanced Features (AF)
DAMSTAB command (and DAMSTAB2 wizard) now considers only the portion of
each tank that lies within the longitudinal extents of the current division list
when testing whether a reduced damage height could produce a worse case.
DAMSTAB now creates damage cases of a lesser vertical extent using a box-shaped
damage extent with an increased bottom height instead of simply eliminating
tanks whose bounding dimensions fall below the increased bottom height being
considered.
EXTEND HOPPER reference points snap to their lowest linked critical point
per CRTPT /TANK and /INSIDE parameters.
New Condition Graphics (CG) Features
DISPLAY STATUS no longer shows critical points using highlight colors when
they have been disabled according to CRTPT /TANK and /INSIDE parameter rules.
DISPLAY STATUS increased maximum number of list items from 1000 to 2000.
New Dynamic Stability (DS) Features
DYNSTAB SB /LEVEL:2 improved accuracy and solution time in most cases.
DYNSTAB PL /LEVEL:2 now checks both port and starboard sides for range of
stability if required.
New Load Editor (LE, LEw) Features
Load Editor supports pressing the Delete key to quickly clear numeric fields,
which is especially handy before entering negative numbers that otherwise
would be subtracted from current field values.
LOAD EDIT /BUTTON template multiple .macro fields sharing the same button
via right-click selection have needed to be separated by slash parameters
since version 15.94, which now can be done using no-op slash parameter "/".
New Model Converter (MC) Features
MC infile.GF FIXUP|outfile.GF now supports /SCALE and /SHIFT parameters.
MC infile.GF outfile.HUL PRECAL conversions can now get FP and AP from
the /LOCrange:fp,ap parameter.
New Multi-Body (MB) Features
SOLVE REDO was added to force mutual resolving in cases of small changes
within tolerance that escape MB's usual automatic detection after any vessel
or waterplane changes.
RA /GIVENangles parameter specifying verbatim angle list can provide
smoother and speedier RA reports with MB active.
New Part Maker (PM) SHELL Statement Improvements
ENTER PM statement SHELL s was sometimes inconsistently applying uniform shell
thickness at the first point of non-centerline shapes.
ENTER PM statement SHELL was occasionally producing slightly different results
for identical stations.
ENTER PM statement SHELL was sometimes creating jagged hooks between the
bottom, side, and top when applying non-uniform negative shell thickness, but
now keeps a smooth shape around shell transitions.
New PRINT and REPORT Features
PRINT PREVIEW reorganized right-click menu options.
HELP PP added online help for the Print/Plot utility and its input file format.
PP command TEXT uses /FONT:name (default Arial) instead of Courier New fixed
font if wsize parameter is negative (with -wsize used for character width in
inches). TEXT command added parameters for justification (0=default left
from center of first character, 1=left, 2=center, 3=right) and font style
(0=normal, +1=bold, +2=italic, +3=underline; required updated PP.EXE).
PAGE /PREFIX:code increased maximum code size from 2 to 3 characters; note
the maximum page number for 3 character codes is reduced from 99999 to 9999.
New Dialog Box (TEMPLATE) Featuress
TEMPLATE "label" /REFRESH:n resets a new label (space permitting) into the
top dialog's nth field if it is a text, box, button, check, or radio field.
TEMPLATE /Color:c /Backcolor:b /REFRESH:n resets foreground and
background color of the top dialog's nth field if it is a text, box, input, or
already-colored button field.
TEMPLATE /REFRESH now disables or enables any /Gray:varname dialog fields
to reflect the current values of their variables.
TEMPLATE /REFRESH:CANCEL subparameter was added to cancel the top dialog
box as if its "Cancel" button or the Esc key were pressed. This can be useful
for popping up temporary warning messages or clearing out dialog boxes from
another GHS session using MESSAGE SEND control.
SPECIAL DLGSTYLE 1 enables flat button style for TEMPLATE dialogs in place
of default 3-dimensional button style.
New System Variables and Other VARIABLE Features
VARIABLE braced expression evaluation now gives precedence to unary Minus "-"
over the Exponent "^" operator, otherwise {SQRT(X^2+Y^2)} would trap or give
unintended results when variables are negative.
======= Bug Fixes =======
ADD, CRTPT, REFPT, PROP, and WEIGHT syntax *+n or *-n was trapping
an error when offsetting the current center coordinate by zero.
AXIS MINE:energy was giving inconsistent results unless trim is fixed
(since 16.12A only).
DISPLAY STATUS for coincident tanks was showing the lower tank color above the
higher tank in plan view and failing to show showing the higher tank using any
color override assigned to it by the CHANGE or CONTENTS /COLOR commands.
DISPLAY STATUS printing was turning the page after Condition Graphics output
instead of allowing subsequent NOTE or report output on the same page when its
CG output could not fit on the previous page, so had to skip to the next one;
now subsequent output to any remainining space on the current page should be
consistently allowed, regardless of whether the PAGE command was issued first.
DISPLAY STATUS was sometimes showing incorrect deck edge markings after
being resized or repeated).
DYNSTAB /RES was incorrectly converting resistance force coefficient units.
DYNSTAB PL /LEVEL:2 was incorrectly computing the C2 indices, not showing
the interpolated LPLi value in the Long Term Vulnerability Index table, and
sometimes yielding large angles of vanishing stability in waves.
DYNSTAB PL /LEVEL:2 was sometimes yielding zero angle of vanishing stability
when the range of stability was greater than 90 degrees.
DYNSTAB SB /LEVEL:2 was omitting the first wave steepness increment leading to
rare reductions in C index and sometimes computing an incorrect critical RPM.
DYNSTAB SB /LEVEL:2 was sometimes trapping "Critical speed not found" in
certain trivial cases.
END command inside a macro was not working reliably, but now terminates the
active run file along with any macros it executed; if no run file was active
(or if it started a live Load Editor session), then nothing is terminated.
ENTER PM command DISPLAY and SE no longer risk throwing away changes by
sometimes restoring any original line code markings from the Geometry File.
ENTER PM command FILL and CREATE filling from SPACING sometimes caused
distortion when a station had a point added between the last and first points
of an adjoining station.
ENTER PM command FILL and CREATE filling from SPACING was sometimes making
non-optimal intermediate stations when adding points (since 16.42 only).
ENTER PM command MARK SHOW failed to cause marks to be included in the
Geometry File, but now this happens if KNUCKLE and SHOW parameters appears
together (which is also the default if no parameters appear after MARK).
ENTER PM command RENDER was sometimes failing when many SURFACE components
(since 16.26A only).
ENTER PM statement FIT component b,s,t was sometimes trapping a run-time error
when the bottom, side, and top insulation was larger than the target component.
ENTER PM statement MARGIN was not preserving any existing deck edge, instead
always recreating the deck edge contrary to documentation (since 16.46 only).
ENTER PM statement ROTATE trim,heel,azimuth was incorrectly rotating azimuth
for solitary TOP, BOTTOM, ENDS, etc. boxes counter-clockwise, but now goes
clockwise to match rotation of SHAPEs taken from another component. When acting
as bounding boxes for other items such as CYLINDERs, reused SHAPEs, etc., the
bounding box is no longer rotated along with the other items.
ENTER PM statement SHAPE shapename risked trapping a run-time error when
accompanied in a CREATE command by statements like ENDS, INBOARD, SPONSON,
etc. that need to be merged with the reused shape, creating a new shape
as needed.
ENTER PM statement SHAPE shapename risked trapping a run-time error when
accompanied in a CREATE command by statements like LOCUS, CYLINDER, SPHERE,
etc. that need to be merged with the reused shape.
ENTER PMX now traps "Missing operator" instead of a stack overflow error
when something other than an operator follows {variable} replacement.
ENTER, HELP, SHELL, etc. commands were sometimes trapping "File not found"
when the GHS program directory path contained a space and was located on a
non-system drive that does not support short file naming.
FIXUP failed for file paths longer than 81 characters.
GROUND REPORT risked trapping a run-time when fixed weight is negative.
HMMT REPORT for band-method wind risked trapping a run-time error in rare cases.
Load Editor button Weights right-click triangle mark (appearing when ADD PREFIX
categories have been defined) was sometimes invisible after pressing the button
on certain operating systems.
Load Editor risked a rare run-time error when right-clicking a spilling or
bubble tank for load details.
LS and TORQUE fixed rare table and plot irregularities in cases of extremely
close-spaced locations around curve discontinuities.
LS omits duplicate table lines having the same location, weight, and buoyancy.
MACRO /FUNCTION evaluation involving strings containing quote marks risked
trapping a run-time error.
MACRO name /FUNction value assignment using name:=value no longer fails
if a VARIABLE having the same name already exists; now the function name
takes precedence over the variable name during a function's definition when
assigning name:=value, the same as was already happening for SET name=value.
MAXVCG risked looping endlessly in rare capsize cases (since 17.14 only).
MAXVCG was sometimes internally filling extra angles into the ANGLE list to
help maximum VCG solving for a particular trim and displacement line, but then
these extra angles were incorrectly being kept for all future lines during the
command's execution, occasionally leading to bad results particularly for
maximum righting arm limits.
MB interactions within the RAH command were improved, no longer sometimes
showing incorrect displacement on its second table line with MB active.
MC infile.GF outfile.HUL was not correctly targeting output station range
from 0 (AP) to 20 (FP) relative to Length Between Perpendiculars (since 17.18
only).
PRINT ^[^]file was failing to find the print file in the library path or
program directory.
RA /LIM for LIMIT ANGLE FROM EQU TO FLD > 0 was sometimes showing LARGE
for tight points immersing shortly after EQU (since 16.78B only).
RA /LIM for LIMIT ANGLE FROM EQU TO FLD OR TFLD > 0 was sometimes showing
the FLD not the TFLD location for tight points immersing shortly after EQU.
RA /LIM was sometimes using the wrong limit area for the downflooding angle
(and skipping the table line for that FLD angle) when the freeboard immersion
angle is reached first and both occur between the same two listed heel angles.
RA limit evaluation for ANG FROM EQU TO FLD > value with non-zero limit value
was not always ignoring tight points just barely submerged as EQU.
RA limit evaluation for ANG FROM EQU TO FLD with a tight point just barely
submerged at EQU now fails showing -0.00 attained value instead of sometimes
passing with 0.00 or LARGE attained value.
RA limit evaluation for AREA and other non-ANGLE limits involving FLD angle
normally attain zero for any flooding at EQU, but were inconsistently giving
non-zero results for a tiny range of near-zero tight point submersion depths.
RA table "Flood Pt Height" column was sometimes not considering tight points
precisely at EQU0 with heeling moment present.
READ (DATA) file /REPLACE:"{","" and similar uses of quoted "{" were not
behaving as intended. Note that manipulation of strings containing "{" is
inherently dicey due to {...} usage for variable retrieval and expression
evaluation, so READ (DATA) /REPLACE supports specification by ASCII value as
a safer way to refer to problematic characters (since 17.36 only).
READ (DATA) supports any size data lines instead of truncating after 10,000
characters.
READ snaps to zero instead of trapping centerline components having tiny
transverse offsets less than 0.01' negative.
SEA /BILGEKEEL was returning undefined values for appendages which connect to
hull sections which do not pierce the free-surface (since 17.44B only).
SEA /POLAR was including empty polar plots for derived responses (SHW, SLAM,
MSI, EMG) when the corresponding slash parameter was missing.
SEA /POLAR was mislabeling the penultimate series of polar plots with the final
speed case when analyzing multiple forward speeds.
SEA was trapping a "Failed to create file" error on runs preceded by SEA DATA
calls without the /HYFO parameter or by SEA DATA /HYFO:forcingfile calls with
incomplete forcing data.
SEAkeep /BILGEKEEL was truncating very long appendage subparameter strings.
SEAkeep /BOX was trapping an invalid location error in rare instances.
SEAkeep /SPREAD was sometimes reporting zero RAO values (despite returning
correct response statistics) for certain subheading values when using a
spreading data file (since 16.62 only).
SEAkeep was incorrectly labeling the final yaw RAO/Phase plot in a case with
the next case heading if not including subsequent tables in a multi-case
report (since 17.48 only).
SET operator POWER and braced expression operator "^" were giving inconsistent
results for negative base values, but now return the same correct result (which
is Undefined or an error for non-integral exponents).
SOLVE MAXVCG was not always selecting port righting arm angles when intially
listing to port if a starboard side equilibrium also existed.
SOLVE TRIM and SOLVE HEEL solving was improved to prevent imprecise solutions
in rare cases.
STATUS GHS appearing together with WEIGHT, DISPL, or WPL parameter no longer
ignores any subparameters provided with the latter parameters.
TEMPLATE dialog /APPLY fields risked trapping a run-time error when popping
up an "Entry error" message for an invalid value in a different field.
TEMPLATE field @"filespec" parameters support "^" prefix for library path
and "^^" for program directory in the same way as other commands.
TEMPLATE field CHECK and RADIO were sometimes truncating /BOLD text
on systems scaled to show larger text size for retina screens.
TEMPLATE field DIR risked trapping a run-time error in rare cases.
TEMPLATE field VARIABLE @"filespec" for relative filespecs outside the
current directory failed to look in the library, program, and path directories
as done for static image @"filespec".
TEMPLATE static text fields alone on a line or at the end of a template were
sometimes misformatted when used with /RRight or /RCenter parameters.
VARIABLE replacement {name:} using default 2 decimal places risked trapping
a run-time error in rare cases.
WIND (PRESSURE) p was interpolating linearly from p@1 down to 0@0. This could
cause slightly reduced wind heeling moments, magnified with metric units. The
effect should generally be zero using the lateral plane method and less than 5%
using the HMMT /BAND method for wind area calculation (since 17.46 only).
WIND (PRessure) p1 @ h1, ..., pn @ hn risked run-time errors or wrong answers
when height h1=0 but pressure p1 significantly exceeds 0 (since 17.46 only).
Previous Version Update Features
Copyright (C) 2021
Creative Systems, Inc.