GHS Beta-Version Update History from Version 15.00 to 15.50


GHS Beta-Version Update History since Version 15.50

Version 15.50A

TANK selection using /ENDS, /IN, /OUT, /BOTTOM, and /TOP parameters
was sometimes failing to include portside tanks whose points all straddle the
selected volume without any being inside of it.

DISPLAY STATUS /SYNC was delaying up to 5 seconds when immediately followed
by DISPLAY STATUS to a report file (requires updated CG.EXE).

DISPLAY STATUS body view with /YESEMPTY parameter was sometimes failing
to show loaded tanks that were obscured by empty tanks occupying the same space.

GHSCOM function GetVariableString increased its maximum string length from
256 to 10,000 characters (requires updated GHSCOM.DLL).


Version 15.52

SUBSLIST system variable was added to return a space-separated list of all
available substance descriptions defined by the CONTENTS command (excluding
special names like "OIL", "cargo", and "unknown").  Each description is safely
surrounded by quotes, so {SUBSLIST} can be used directly for a TEMPLATE
drop-down variable list field or sent through the SET command ITEM operator
to pick out each substance description by item index.

TEMPLATE variable edit input field /Height:rows parameter was added to show
a multiline edit control with space for the specified rows of wordwrapped
variable text.

TEMPLATE variable edit input fields now supports editing text files by
specifying @"filespec" in place of a variable name.  The VARIable keyword is
required to distinguish this from static image fields.  When used with the
/Height:rows parameter, text is horizontally and vertically scrolled within
the edit field window, allowing new line insertion by pressing the Enter key;
otherwise only the first line of the file is read and written.

COPY /FROMAnsi, /FROMUnicode, /TOAnsi, and /TOUnicode parameters improved
conversions when original source was Unicode, now supporting combinations
(for example, /FROMA /TOU assumes ANSI source and converts to UTF-8).

HEEL -{variable} and similar commands no longer trap an error if the variable
has a negative value.

DISPLAY STATUS BODY @ loc :=ANGLES no longer traps an "invalid location"
run-time error if the number of angles exceeded 30 total view boxes, instead
truncating the angle list (requires updated CG.EXE).

DISPLAY STATUS profile views were sometimes incorrectly coloring above
discontinous internal waterlines.


Version 15.52A

Load Editor in Weights mode was trapping an "integer overflow" run-time error
in rare cases with distributed weight items composed of multiple pieces having
the same VCG but differing TCG (since 15.46B only).

Load Editor was not allowing repeated F11 hotkey presses to toggle back and
forth between intact and flooded without moving the cursor field.

ERASE command is no longer restricted to 80-character file specifications.


Version 15.52B

DISPLAY STATUS profile views were sometimes incorrectly coloring above
extremely short internal waterlines (requires updated CG.EXE).


Version 15.52C

ADD command can now make incremental adjustments to the weight or CG of
a distributed weight item (using an asterisk for the old value of the weight
or any of the lcg, tcg, or vcg coordinates along with optional + or - values)
without converting the distribution to a point weight.


Version 15.52D

ADD REPORT was failing when ADD PREFIX had turned on automatic weight
description prefixing (requires updated ADDEXTENSION.LIB).

COPY /CODE was truncating lines longer than 10,000 chars (since 15.52 only).


Version 15.54


RA /LIM was incorrectly including EQU0 with the angles prior to EQU0
that get ignored for downflooding (since 15.42 only).

READ variable /CHAR[:n] parameter was added in READ DATA mode to read
the next n characters (default n=1) into the specified variable.

READ [/SKIP | /LINE | /CHAR[:n]] without any variable name is now supported
in READ DATA mode to move the file pointer as if a variable were present
without saving any data.

MESSAGE PLOTSTART data rows beginning with a quote mark (") were causing
the report to trap "Unknown keyword" when printed (since 15.28B only).


Version 15.54A

RA /LIM was not consistently reporting negative angle limit margins when
weathertight downflooding occurs initially at equilibrium followed by later
immersion of normal downflooding points.

MESSAGE PLOTSTART custom plots were sometimes clipping off the top or bottom
of curves that reach their maximum or minimum between plot data points.

READ variable /LINE safely excludes any portably-encoded image put into a
report file using the NOTE {%IMAGE("file:")%} command, instead saving the
encoded BMP or JPG file to the current directory.


Version 15.54B

Load Editor current row and field were unnecessarily disrupted by macro
execution containing READ /APPEND or DELETE commands.


Version 15.54C

COMP /EFF and /PERM parameters were not always correctly updating the maximum
capacity of the containing part.


Version 15.56

TFSMMTL system variable was differing from true longitudinal free surface
moment shown by the TC command at high trims.


Version 15.56A

LS /COLumn: [Weight] [Buoyancy] [Shear] [Moment] [Section] parameter was added
to show only the selected middle table columns (not with /PER or /LIM present).
Note options for left location columns can be selected by the /FRAME parameter
and right columns by the /NODEFLECT and /NOSTRESS parameters.

WRITE command in Part Maker and Section Editor no longer permits overwriting
read-only Geometry Files.  Note the main program likewise prevents overwriting
read-only files without first deleting them using the ERASE command (requires
updated PM.EXE and SE.EXE).


Version 15.58

RA /LIM was sometimes failing with undefined Deck Immersion limit angle
when the first two listed heel angles straddle upright and the deck immerses
between upright and the second heel angle.

LS /COL:SECTION /NODEFLECT /NOSTRESS was showing incorrect Section Modulus
values (since 15.56A only).

Load Editor was incorrectly setting LB/GAL density units when pressing F6
(or right-clicking LB/CF) with the cursor in the Contents column for a
general cargo tank when not in /BULK mode (since 7.42E only).


Version 15.58A

RA /LIM was including superfluous final angles when EQU0 occurred before the
start of the angle list with flood points defined (since 15.38 only).

MAXVCG /SIZE:max[,min] parameter was added to scale the maximum VCG
plot so the top is at least max and optionally the bottom is at most min.
Assuming this range is large enough to include any expected max VCG value,
this provides uniform scaling for easy comparison of a series of MAXVCG plots.
If /SIZE:* is given, then sizes from the last MAXVCG plot are reused.

MESSAGE PLOTSTART /SIZE:max[,min] parameter was added to scale the plot
so the top is at least max and optionally the bottom is at most min,
providing uniform scaling for easy comparison of a series of custom plots.
If /SIZE:* is given, then sizes from the last custom plot are reused.

MESSAGE PLOTSTART skips points for non-numeric data values like * or ""
instead of inserting curve gaps, thereby allowing points to be added for
selected curves at given X values without affecting the remaining curves.

MESSAGE PLOTSTYLE P doubles the area of isolated plot points for better
visibility (requires updated PP.EXE).

COPY dir1 dir2 no longer risks getting into a recursive loop if the second
directory is a subdirectory of the first directory, instead trapping an error.


Version 15.60

MAXVCG and SOLVE MAXVCG commands added /MXMACRO:name parameter to execute
the named macro after every intermediate RA computation.  This hook can be used
for diagnostics, harvesting attained limit values, changing limits, etc.

LS summary now includes Largest Deflection location.

HMMT WIND and HMMT TURN added /ARMdraft:fraction parameter to calculate
vertical lever arms around a draft-based height instead of the centroid of the
underwater lateral plane.  The specified fraction between 0 and 1 multiplies
the draft line height used for the lever arm (so /ARM:1 uses the full draft
height down to the keel for hydrofoil criteria).  The draft is located at
any mid perpendicular MP defined by the LBP command, else at any midpoint
MS defined by the LBP or LWL commands, otherwise at the LCF.  Note that
/ARM:0.5 can be used for regulations that specify Draft/2 be used for heeling
arms (which is more conservative but less realistic than the program's default
lateral plane centroid method).

DISPLAY STATUS PROFILE:WITHSAILS was sometimes reducing the vessel size
to make space for unset sails (requires updated CG.EXE).


Version 15.60A

Solving was trapping spurious negative waterplane errors for long skinny tanks
such as pipes in rare cases.


Version 15.60B

Solving was trapping spurious bad slope errors for long skinny tanks such as
pipes in rare cases.


Version 15.60C

LOAD EDIT /LS no longer risks aborting to the command line after a rapid
series of function key load changes (since 15.54B only).

LS tolerance was increased for avoiding weight-center discrepancy errors
while MB module interactions are active.


Version 15.60D

RA with flood points defined no longer traps "EQU0 is out of range" in cases
of undefined equilibrium disregarding external heeling, ignoring angles for
downflooding prior to upright instead of undefined EQU0 (since 15.38 only).

Solving was still trapping spurious bad slope errors for long skinny tanks
such as pipes with tiny load in rare cases (since 15.60B only).


Version 15.60E

TEMPLATE fields FILE and DIR using the /SHORT parameter now provide
horizontal scrolling for filenames exceeding the dialog box width.

COPY /CODE avoids trapping errors for WEIGHT lines longer than 65,535 chars
by inserting line breaks as needed after commas and semicolons.


Version 15.60G

MB module suppresses waterplane information from the STATUS GHS report
and traps an error for STATUS WPL, in order to avoid showing misleading GMT
and related values that assume constant displacement, which does not hold under
multi-body conditions.



Version 15.62

READ variable /CHAR :Keep [:n] subparameter was added in READ DATA mode
to keep the next n characters (default n=1) available for future reading.

COMP /SKIN plot printing was sometimes trapping an error for components
containing stations split across the centerline into separate lobes.

SE command Name no longer traps "Illegal name" for existing part names if
given without a trailing backslash; note however that the final backslash
would be needed to avoid selecting any shape having the same name as the part.
DISPLAY command Name was not warning when given non-existent names, but now
traps "Illegal name" (requires updated SE.EXE).


Version 15.62A

RA /LIM was sometimes stopping before RA0 and reporting spurious UNDEF limit
results in cases with negative heeling arm at high angles.


Version 15.64

RA /LIM detection of initial equilibrium was improved, preventing unnecessary
errors and allowing higher SOLVE MAXVCG results in certain unusual cases.

RA /LIM /FREEBD was sometimes unnecessarily trapping "ANGLES given do not
include equilibrium" (since 15.58 only).

GROUND command can now make incremental CG adjustments using an asterisk
for any of the lcg, tcg, or vcg coordinates along with optional + or - values,
preserving the old ground point depth and reaction formula.

GROUP name=tanklist /CONT:"contents" no longer creates an empty group
if no tanks in the list have the indicated contents name; this empty group
was invisible except when written to a SAVE file.

GROUP reports for multiple groups were clearing all but the last group off the
Display area of SCREEN COMMAND split-screens in default SCROLL ON mode.

LINENUM system variable was sometimes exceeding the maximum lines per page
after returning from an external program like Condition Graphics.  The sum
of LINENUM plus LINELEFT can now be used reliably to calculate page length.


Version 15.64A

OUTFLOW was incorrectly dividing Breadth by an extra metric conversion factor
when calculating Reg 12A.6 minimum bottom shell plating distance.


Version 15.66

Print File Exporter wizard exports PF and PPF files to Word and HTML format
(requires PFEXPORT.WIZ from Wizards support downloads).

READ variable /LINE safely excludes any portably-encoded footer files put
into a PPF file using COPY name.PF name.PPF /CONVERT, instead saving the
encoded footer text or logo file to the current directory (first renaming the
saved file if necessary to avoid overwriting existing files).  Note READ /LINE
ends embedded filenames with ":" to distinguish them from external files.

READ variable /CHAR:Keep:n supports n<0 to read the rightmost -n characters
from the end of the current line, keeping data available for future reading.

SHELL OPEN document.ext was not working for document names containing spaces.


Version 15.66A

PERM /VOlume:unit parameter was added to report capacities in GA (gallons),
IM (imperial gallons), CY (cubic yards), LI (liters), and BB (barrels) units,
along with default CF (cubic feet) and CM (cubic meters).

TS /CAPacity:f1[,f2] parameter was added to report Capacity in the table header
using the specified load fractions (default 100%,95% to show full capacity
followed by secondary 95% capacity for contents lighter than Fresh Water).


Version 15.66B

LOAD FLOWC was sometimes ineffective following RA /NOPRINT or RA /NOTAB.

FIXUP and MC FIXUP were not preserving any GF variables set by Part Maker
(requires updated MC.EXE).


Version 15.68

RA /LIM using LIM ANG FROM EQU TO FLD OR TFLD was sometimes missing
lowest Tight Point submersion if its location coincided with an existing heel
angle in the table, so did not need to be interpolated and inserted.

LS no longer omits any plot curve lines when more than 6 total.


Version 15.68A

LIMIT ABSolute AREA was added to limit absolute area below the righting arm
curve regardless of any heeling moment.  Otherwise this limit behaves the same
as LIMIT AREA, which pertains to residual area above any heeling arm curve.


Version 15.70

LS /PLAN parameter was added as an optional replacement for /PROfile
to show the vessel plan instead of the profile on plots.  This /PLAN option
was also added for COMP /SECTION, COMP /SKIN, FL, TORQUE,
and WEIGHT commands.

READ (DATA) file /REPLace:[old,new],... paraneter was added to replace a
series of old text with new text (specified either as a quoted string or ASCII
value character) whenever found in read data.  This can be done to change or
delete problematic characters (like braces used for variable replacement), or
to identify meaningful control characters that otherwise would be filtered out.

RA column header for "Area" now appears in the report as "Res. Area" when
moments are present.

LIMIT report description for Area limit is prefixed with "Residual" or "Res."
when moments are present.

PMX statement ROTATE trim, heel, azimuth was greatly improved to fix various
trim and azimuth problems and use the correct heel direction.  Note ROTATE
no longer allows non-zero heel or azimuth rotation of centerline components
to avoid "butterfly" effects with port and starboard sides rotated in opposite
directions (requires updated PMX.EXE).


Version 15.70A

PMX statement ROTATE was incorrectly trapping "Side conflict" for non-zero
heel or azimuth rotation of portside components (since 15.70 only; requires
updated PMX.EXE).

PRINT was improved to smooth kinks from plot curves (requires updated PP.EXE).


Version 15.70B

PMX statement ROTATE trim, heel, azimuth now rotates edges around any part
reference point assigned by the REFERENCE statement, or the origin if none
(requires updated PMX.EXE).

PM statement ROTATE is now effective for CYLINDER, ELBOW, and SPHERE
shapes as well as edges (either explicitly defined by EDGE statements or
implicitly derived from TOP, BOTTOM, etc. boxes).

TEMPLATE field VARIABLE @file or "@files" was working to edit text file
contents, but @"file" was trapping an error (since 15.52 only).


Version 15.72

RA /LIM was failing with UNDEF for limits where angle RA0 or RA00 was
not found within 180 degrees of EQU after reaching the end of the angle list;
now such cases treat RA0 as LARGE so long as any angle limits involving RA0
are sure to pass their minimum values.

LS /LIM now supports /COLumn: [Shear] [Moment] parameter to show table
columns for just Shear, just Moment, or both by default.

LS /LIM was sometimes plotting bending moment limit curves too close to upper
and lower grid lines.

LS was trapping "PSI ERROR - WEIGHT DISCREPANCY" in rare cases when a
flooded tank had been assigned forward and aft points of attachment.

MESSAGE REPFONT RIGHT was mispositioning boxes in fancy boxed reports.

COMMENT now centers text in fancy boxed reports using ME REPFONT CENTER.

DISPLAY STATUS views added optional :"title" subparameter to override the
view's default title.  For example, BODY @0:"Origin" shows "Origin" on top of
this view instead of "Body @ 0" (requires updated CG.EXE).


Version 15.72A

LS /LIM now excludes all shear information from table columns, summary, and
plot columns by default when no LSLIMIT SHEAR limits have been defined
(similar to how LS /PER behaves without shear limits).  Note that including
the /COL: Shear Moment parameter restores the old shear-showing behavior.

READ file.FRA loads frame descriptions and locations from the given frame file,
replacing any previous vessel frame information.

ENTER PM commands READ file.FRA and WRITE file.FRA import and export
frame files composed of comma-separated description and location lines
(requires updated PM.EXE).


Version 15.72B

LS plot legends abbreviate "Bending" to "Bend" when necessary to avoid
collision with adjoining columns.

Copyright (C) 2017 Creative Systems, Inc.