GHS Beta-Version Update History from Version 14.50 to 15.00


GHS Beta-Version Update History since Version 15.00

Version 15.00A

LS deflection computations were sometimes slightly imprecise or trapping
"No equilibrium found" with damaged or spilling tanks present (since 7.54 only).

TEMPLATE field EXPAND no longer traps undeclared variables in REM lines
(since 14.96A only).


Version 15.00B

HEIGHT system variable was not correctly adjusting for any DEFLECTion
when the selected tank was flooded, damaged, or deck type.

Sensor Interface (SI) module was sometimes trapping an undeclared variable
(requires updated SENSOR1.LIB).


Version 15.00C

CUSTOM (GHSERIAL) WRITE added TextFile support by writing indexed values to a
parallel output CSV text file specified by $PORT with "+" appended to the file
name before the extension (e.g. "FILENAME+.TXT"; requires updated GHSERIAL.DLL).

TEMPLATE field PARTS was not working with PART or TANK command lists
longer than 1024 characters.

Command-line editing by picking words from the screen by clicking or arrow
keys was sometimes getting confused with command history (since 9.66D only).


Version 15.02

Main and auxiliary programs now start with appropriate window and font size
for pixel-doubled retina displays and other custom display size settings
(requires updated GHSHELP.EXE, SE.EXE, CG.EXE, etc.).

CUSTOM (GHSERIAL) START parameter $MODPLUS offset was added to use
1-based Modbus register numbers as IDs instead of normal 0-based addresses.
So $MODPLUS 1 allows configuration of register IDs starting at 1 instead of 0;
$MODPLUS 40001 allows absolute holding register IDs starting at 40001.


Version 15.02A

DISPLAY STATUS was sometimes writing past the new report page bottom
when started from a partially-written page with not enough space remaining
for the full Condition Graphics output and multiple SUBTITLE lines present
(requires updated CG.EXE).


Version 15.02B

MVCGMARG system variable was added to return the margin between Effective VCG
and Maximum VCG for macros within Load Editor.

LOAD EDIT /WDF parameter was added to allow the selected tank to be changed
between Intact and Water-Displaced Fuel types by right-clicking the LEw "Load"
column and selecting "WDF" or "Intact" from the popup menu.

LEw right-clicking "Protect" or "Online" was unnecessarily beeping (since
14.80 only).

LEw right-clicking "Bulk", "API", or "Free surface moment" changes were
unnecessarily failing for GROUPed tanks.

DIR *.ext was working like DIR *.ext* for 3-character extensions, due to
the DOS-compatible short filename format matching longer extensions.


Version 15.02C

CRTPT /TANK:name now automatically sets the reference point for SPILLING
as well as DAMAGED and DECK tank types.


Version 15.04

CUSTOM (GHSERIAL) START supports multiple simultaneous communication
connections, with each connection configured by its own protocol $TYPE and
the parameter lines that follow it.  Data item lines are associated with the
previous protocol $TYPE but are consecutively indexed across connections;
for example, if the first $TYPE has 10 data item lines starting at index 1,
then the second $TYPE starts at index 11.  If the /LOG or /DUMP parameter is
present, then separate log files are written, appending "2" to log filename
for the second connection, "3" for third, etc. (requires updated GHSERIAL.DLL).

STATUS INERTIA now combines weight items beginning with "+" or "*+" into
the light ship (labeled as "LIGHT SHIP+" if any found) unless the ALL
subparameter is present.

DIVISIONS tank:Ii:Uj supports i=0 and j=0 as well as positive values.

DAMSTAB with MESSAGE TRACE ON was sometimes trapping an "expression out
of bounds" run-time error for DIVISIONS defined with the /NOCHECK parameter.

TEMPLATE dialog boxes were reappearing with tiny font size in rare cases
following SCREEN MIN restoration (since 9.52 only).

DISPLAY STATUS was writing incorrect report headers in rare cases (requires
updated CG.EXE).


Version 15.04A

CUSTOM (GHSERIAL) START added NMEA support for serial communication
with marine electronic devices using new $TYPE "NMEA 0183".  The record ID
field is the initial 5-character talker/type string, with comma-separated data
from field index 2 until the checksum (requires updated GHSERIAL.DLL).

MAXVCG /EXTERNAL:file was sometimes trapping "Bad filename or number"
with DISPLAY STATUS /SYNC active.

MAXVCG /EXTERNAL:file was aborting with "Input past end of file"
when external data was missing, but now reports "Incomplete external file"
error message.

Crane module with multiple cranes was sometimes failing to clear the "Jib Angle"
or "Knuckle Angle" value when switching to a non-jib non-knuckle crane.


Version 15.04B

MAXVCG /FIXDIR and /BOTHDIR were not always working correctly with HMMT
derived from wind or turning using /CO, /C1, etc. parameters.

DAMSTAB was sometimes not correctly assigning tanks according to user
specification when only Ii or Uj was present (since 14.82 only).


Version 15.06

TS report headers were not showing the correct total number of pages for
formats 3, 4, and 6 in rare cases where the final sounding added an extra
line on the last page beyond the number of lines allowed for earlier pages;
now this extra line is allowed on all pages, not just the last one.

SOLVE failure "SHE SANK" and some other error messages appeared as "Aborted"
(since 15.04B only).


Version 15.06A

SCREEN ROWS min was causing the Load Editor footer to disappear for high min.


Version 15.06B

SCREEN ROWS min was causing Load Editor graph views to disappear for high min.

LOAD EDIT /DISPLAY:OFF (or after operator view changes to exclude
Profile and Plan graphs) now permits restoration of graphic views by
right-clicking below the footer line where the graphs would normally be.


Version 15.08

VARIABLE name command no longer removes any :min:max range assigned to an
existing variable name (which was causing WRITE /NORANGE to fail).


Version 15.08A

TEMPLATE dialogs were trapping run-time errors in rare cases.


Version 15.08B

RA and MAXVCG treatment of short near-zero righting arm ranges was improved.

MB latched solving with fixed heel was allowing large opposite-directed forces
on multiple interaction points at the same longitudinal location in rare cases.


Version 15.08C

DISPLAY STATUS within GLM was sometimes distorted at the bottom of pages when
configured using report footers (since 9.20A only; requires updated CG.EXE).


Version 15.08D

OUTFLOW improved calculations, especially for hulls with curved decks.

HEEL *+n and *-n now set the PRE roll heel angle used in LIMITS
to the previous value (same as HEEL *-ROLL).


Version 15.08E

OUTFLOW further improved calculations around deck edges.


Version 15.10

RA evaluation of LIMIT ANGLE was consistently producing correct results
when FLD appeared as the second limit angle, but not always when the second
and third angles were reversed so FLD appeared last.

RA evaluation of LIMIT ANGLE with angle FLD involving TIGHT points with
no normal FLOOD points defined was not always consistently reported when
downflooded initially at equilibrium.

LIMIT was sometimes incorrectly trapping "Only one ... allowed" error when
replacing a three-angle limit with a two-angle limit (since 14.94 only).


Version 15.10A

TYPE BUBBLE tanks were incorrectly reporting zero FSM (since 11.16 only).

DISPLAY STATUS /PRINT:file was unnecessarily delaying (since 15.04B only).


Version 15.10B

RA /LIM was sometimes incorrectly taking the FLD limit angle at flood point
emergence instead of immersion when downflooded at equilibrium.


Version 15.10C

LOAD EDIT [/]BUTTON:template was not maintaining a consistent font size
in rare cases.


Version 15.12

RA /LIM /STOP:angle now returns angle-EQU instead of LARGE limit value
for LIMIT ANGLE FROM EQU TO FLD OR angle > min in cases where RA
was stopped by reaching angle before FLD and projected downflooding is at
least 10 degrees past the minimum limit value.

RA evaluation of LIMIT ANGLE restored earlier behavior for third angle FLD,
except it still returns the lowest tight point for LIM ANG FROM EQU when
no flood points are defined (since 15.10 only).

DISPLAY STATUS gap between graphics bottom and top of reports footers
no longer varies depending on footer height (requires updated CG.EXE).

DISPLAY STATUS was overwriting the final legend column instead of omitting
any excess tank names that fail to fit in the legend box (since 11.68 only;
requires updated PP.EXE).


Version 15.12A

BOOM /AZ2:azimuth [/CW | /CCW] defines an alternate Crane Data angle
convention such that the specified azimuth represents the current stern-relative
BOOMAZ variable value.  Alternate angles increase counterclockwise (same
as BOOMAZ) unless /CW is included.

BOOMAZ2 system variable was added to retrieve or set the boom azimuth angle
according to the alternate definition specified by the BOOM /AZ2 command.

WEIGHT command now traps errors when Light Ship centers of gravity
would have been set to out-of-range locations due to tiny Light Ship weight.

WEIGHT command no longer warns about insignificant weight changes, which
sometimes precluded warnings about significant center of gravity changes.

SET unary operations with undefined results (such as SQRT -1) were not always
producing an undefined result after being combined into a binary operation.

DISPLAY STATUS plan and profile view cuts were sometimes incorrectly drawing
parts having sides coplanar with the view cuts (requires updated CG.EXE).


Version 15.12B

MESSAGE PLOTSTYLE with "P" in the 6th or later column was leading to
"expression out of bounds" run-time errors (since 14.70 only).

SET string unary operations were returning undefined (since 15.12A only).


Version 15.12C

LS /NOSTRESS was sometimes trapping "Missing section moment of inertia at end"
unnecessarily when only section moduli but no moments of inertia were defined
(since 11.34A only).

SMOD was not showing correct minimum values on entry errors (since 14.70C only).


Version 15.14

GROUND point effective "waterplane area" coefficient was increased from
0.5 to 2.0 to reflect ground points' correct contribution to waterplane area,
center, and moments of inertia, which are used to derive weight-to-immerse,
center of flotation, and inertial GM values in a grounded condition.

DISPLAY STATUS PROFILE @cut [:BEyond] view now shows any critical points
at or beyond the specified cut plane, unlike default profile view which excludes
critical points.  Note DISPLAY STATUS PROFILE:BEYOND shows all points,
as if beyond an infinitely near cut plan (requires updated CG.EXE).

DISPLAY STATUS /SYNC using default tank list now refreshes any existing
synchronized Condition Graphics window if the current TANK selection changed.

GHSCOM module no longer throws a Command error with failure result 1 after
non-fatal conditions where ERROR system variable returned a negative value
or when the ERROR mode has been set for the program to continue past errors
(requires updated GHSCORE.DLL).


Version 15.14A

GHSCOM module no longer throws a Command error within RUN files or for
unknown commands when the ERROR system variable has been set for the program
to continue past errors (requires updated GHSCORE.DLL).


Version 15.14B

MESSAGE (REPORT) filespec /Verbatim:Variables subparameter was added
to skip variable replacement entirely during MESSAGE report output.

TEMPLATE /ENTER:TAB[:n] parameter was added for all non-button input fields
to tab focus to the nth button or input field following (or preceding if n<0;
default=1) the given input field if it has focus when the Enter key is pressed.

TEMPLATE /Apply[:macro] was not always processing the Enter key correctly,
especially for time-consuming apply macros that pop up dialogs.


Version 15.14C

LOAD EDIT /LS was sometimes unnecessarily flashing "Deflection removed".


Version 15.16

RA was sometimes running on endlessly trying to find equilibrium in rare cases
of excessive righting arm near EQU on barges with insufficient end stations.


Version 15.16A

FLDPT [(n)] ON|OFF|* /Color:c optional parameter was added to set the Critical
Point color number from 1 to 15 (as defined for the MESSAGE command) as used
in Condition Graphics (color number 0 restores default color).  An asterisk
can appear instead of ON or OFF to set colors without changing Flooding status.
Default color was yellow for all Critical Points, but now depends on status,
showing yellow (or red for report visibility) for downflooding, bright magenta
for weathertight, and white for nonflooding (so FLDPT * /C:14 matches colors
from earlier versions; requires updated CG.EXE).

FLDPT (Flood | Tight | Noflood) ON|OFF|* [/Tight] [/Color:c] is now
supported to change only Critical Points having the indicated Flooding status.

DISPLAY STATUS /SYNC was not reliably reflecting CRTPT changes.

DISPLAY STATUS no longer draws quite so large ground point triangles and
reference point circles for report file views with excess vertical space.

RA plots were sometimes omitting the GM line in cases of a large increment
between ANGLES, but now an extra angle is inserted if necessary to show the GM.

Load Editor in Weights mode was disabling loading function keys and right-click
options in the "Load%" column if the current Tanks item happened to be flooded.


Version 15.18

DISPLAY STATUS /NOCRIT[:Arrow][:Label][:Number][:Point] subparameters
were added to modify how Critical Points are shown in Condition Graphic.
The ARROW subparameter excludes the arrow connecting the point to its label,
instead showing a larger circle at the point location with any label above it.
The LABEL subparameter omits the label.  The NUMBER subparameter uses point
description instead of number for the label.  The POINT subparameter centers
the label over the point location.  Critical Points are listed in the legend
only when shown with number labels (requires updated CG.EXE).

DISPLAY STATUS /ORIGIN parameter was added to show inclined vessel origin axes
in Condition Graphics.

DISPLAY STATUS was sometimes truncating long Condition Graphics titles
(since 15.12 only; requires updated PP.EXE).


Version 15.18A

PROJECT command was not supporting master project directory specifications
longer than 80 characters.


Version 15.18B

SOLVE MAXVCG /FIXRATrim parameter was added to fix the trim angle during
intermediate RA computations while allowing it to vary during the overall
max VCG solving process (useful for vessels whose strong axis is not obvious).

SOLVE MAXVCG /REPORT now includes warnings about any intermediate capsizes
or other conditions that caused VCG to be reduced.

SOLVE MAXVCG under fixed trim was improved at VCGs that risked capsizing
when solving for equilibrium starting from upright.

DISPLAY STATUS within GLM during GLM_Maker testing was sometimes distorted
due to using printer configuration for GHS not GLM (requires updated CG.EXE).


Version 15.20

CUSTOM (GHSERIAL) START added support for master/slave serial communication
using new Kongsberg $TYPE "NCA DL 94" (requires updated GHSERIAL.DLL).

WAIT n was hanging when crossing past midnight (since 14.40 only).


Version 15.20A

RA was sometimes unnecessarily skipping the next listed heel angle after
detecting a solving discontinuity.  Note that the underlying cause for such
solving issues may be insufficient stations in flat deadrise areas near the
ends of the vessel geometry, so RA now warns "Discontinuity at 0.00 may be
due to too few stations near vessel ends" in cases of RA discontinuities at
upright equilibrium when the /NOWARN parameter is not present.

SET ITEM n "text" operation was failing for Unicode text and n greater than 1.

MESSAGE PLOTSTART custom plots are now shown larger using tighter scales
when there is only a small difference between minimum and maximum values.


Version 15.20B

DISPLAY STATUS supports coincident intact and frozen tanks by displaying both
content levels correctly in all views for tanks with matching component shapes,
sides, and vectors.  Condition Graphics uses the combined density of the two
tank contents to assign the default color for the lower tank (requires updated
CG.EXE).

SET ITEM n "text" operation was failing for initial quoted Unicode text.


Version 15.22

MESSAGE command now wraps around instead of truncating after 76 characters.

Main program supports pasting clipboard text of any length into the command
line using Ctrl-V or right-click paste, no longer constrained by screen width.

Main program startup by right-clicking a run file then choosing Open With
was not always running in the correct working directory.


Version 15.22A

LS /NOPRINT /NOFRAME now recognize the $DD suffix, so any user variables
whose names consist of a valid frame description followed by $DD receive the
Deflection Deviation at that frame location in the current units.

WRITE (LOads [Thrusts] [Pulls]) added optional parenthetical parameters
to include thrust and/or pull forces with the loading-related data commands
appended to a file.

RA and RA /LIM were not consistently considering TIGHT points when reporting
lowest Flood Pt Height on each table row between EQU0 and EQU with HMMT present
(since 13.60A only).

FIXUP and auxiliary programs no longer strip off any side designation from
displacer and sail part names (requires updated MC.EXE, PM.EXE, SE.EXE, etc.).

Main program startup by right-clicking a run file and choosing Open With using a
third-party file manager wasn't always running in the correct working directory.


Version 15.22B

GHSCOM module now supports the IF command (requires updated GHSCORE.DLL).

TEMPLATE command no longer traps unknown slash parameters, which would have
forced rewriting old run files that unnecessarily included /PERSIST parameter
on the initial definition line rather than correctly on execute button field
lines (since 15.20A only).


Version 15.24

REPORT filename /LPI:lpi parameter was added to set lines per inch for regular
text to the specified value between 6 and 9 (rounding to the nearest half line).
This increases available regular report lines per page above that set by the
/L:lines parameter based on default 6 LPI, but has no effect on lines per inch
used for headers, footers, plots, and output produced by auxiliary programs such
as Condition Graphics.  The resulting reduced font height looks best in fancy
/BOX:COLOR|BW proportional font reports and in proportional NOTE output with
MESSAGE REPFONT turned on (requires updated PP.EXE).

NOTE {%LPI(lpi)%} changes lines per inch for future text output in the current
report to the specified value between 6 and 9.

NOTE {%IMAGE(...)%} no longer advances the current print line.

ROLL traps "Roll requires positive draft" instead of reporting inconsistent
results when draft is negative or nearly zero.

ENTER PM keyboard input supports bringing back the most recent command to the
command line by pressing Ctrl-E or the Up-Arrow key (requires updated PM.EXE).


Version 15.24A

RA plots and LIMIT GM EQU[0] results were sometimes not showing GM
at true EQU in cases where righting arm was nearly zero earlier in the list
of heel angles, especially when /GM:MODU parameter was present.


Version 15.24B

RA notes for HMMT WIND /CONST and maximum heel angle exceeding 90 degrees
was incorrectly including the note "Stbd heeling mmt= 0 @ > 90 deg".

RA with TIGHT points and heeling moments present now always includes EQU0
in the heel angle list, the absence of which was sometimes extending the list
much further than necessary.

NOTE \{%IMAGE("FILE.BMP")%} printing now repairs VTK-produced bitmaps
instead of trapping "Invalid format in bitmap file" (requires updated PP.EXE).

Main program was no longer starting up with the master project directory
as the default working directory (since 15.22 only).


Version 15.26

SCREEN LOGO and NOTE \{%IMAGE("FILE.JPG")%} printing now supports
four-channel JPG files using CMYK, YCCK, and YCbCr color spaces (requires
updated PP.EXE).

ENTER PM command CREATE was sometimes trapping an "expression out of bounds"
run-time error (since 15.24 only; requires updated PM.EXE).


Version 15.26A

LOAD EDIT /WEight[:unit] subparameter was added to specify a weight unit
(either LT for long tons, ST for short tons, KP for kilopounds, or MT for
metric tons) to present when showing weights.  This weight unit will always
appear in the "Load" column header right-click dropdown list regardless of the
current English or metric units setting.

LEw right-click unit changes were not always reflected correctly by the weight
unit choices offered in the "Load" column header right-click dropdown list.

ENTER PM command FIT was sometimes trapping an "expression out of bounds"
run-time error (since 15.24 only; requires updated PM.EXE).


Version 15.26B

LS results taken at MB interaction equilibrium no long risk trapping PSI errors
due to deflection produced when SMOD moments of inertia are present.


Version 15.26C

ENTER PMX commands using part (list) parameter and setting default PARTS list
support the keywords $DISPLACERS for all displacers and $SAILS for all sails
(requires updated PMX.EXE).

ENTER GS and ENTER TSX were sometimes trapping "No such item" (since 15.00
only; requires updated GS.EXE and TSX.EXE).


Version 15.26D

SCREEN NORM /SIZE%:h,w was sometimes resizing too small by not disregarding
the window frame border when computing percentages.

SE command Image file|OFF was added to display a background BMP or JPG image
file in body view as a guide during calibration (requires updated SE.EXE).


Version 15.26E

TEMPLATE /SIZE:size parameter for LOAD EDIT /BUTTON templates allows negative
pixel height or positive multiplier times SMALL size just like normal templates.

RUN command errors with nonfatal negative ERROR system variable were forgetting
any previous active run file (since 12.32 only).


Version 15.28

TEMPLATE field /Apply:macro /Persist:Refresh parameters for changed variable
fields were preventing Tab keys from moving to non-variable fields and clicked
buttons from executing their own macros until clicked for a second time.

TEMPLATE field FILE /EXT:ext parameter was sometimes unnecessarily trapping
"Please enter a valid file type" when the user selects a filename containing
multiple periods.

ENTER PM statement ELBOW sometimes trapped "invalid index" run-time error
(requires updated PM.EXE and PMX.EXE).


Version 15.28A

DISPLAY STATUS to a network-based report file was trapping "Unable to open file"
in rare cases (requires updated CG.EXE).

TEMPLATE dialog boxes with an IDLE macro active were trapping "invalid index"
run-time error (since 15.28 only).


Version 15.28B

ME (REPORT) file /Append, WRITE (LINE), and WRITE /Append now append
correctly to existing Unicode UTF-8 and UTF-16 files.

ME (REPORT) file /Unicode parameter was added to cause output to be
Unicode UTF-8 (unless appending to an existing UTF-16 file).

MESSAGE (REPORT) no longer truncates very long lines after 10,000 characters.

ENTER PM statement SHELL was sometimes trapping "invalid index" at single
point stations (since 15.24 only; requires updated PM.EXE).


Version 15.28C

ENTER PM station FILLing was sometimes trapping "expression out of bounds"
run-time error for stations with more than 255 points (since 15.24 only;
requires updated PM.EXE and PMX.EXE).

Error reporting of long commands now stops after showing the first 3 lines.


Version 15.30

TEMPLATE variable edit field /Width:n parameter was added to set the field
width to fit n average-size characters, regardless of any minimum and maximum
values assigned to the variable.

MAXVCG reports now place any non-fatal "Trim limit exceeded" error after the
table and before the plot, rather than on a new page.

ENTER PM command FIT using insulation was sometimes trapping "invalid index"
run-time error (since 15.24 only; requires updated PM.EXE).


Version 15.30A

Error reporting precision was improved for HMMT WIND /BAND and other cases
of small fractional lower limits.

ENTER PM command SURFACE uses 1% vessel length as default minimum station
spacing, while being careful to preserve closer stations whose bounding boxes
or areas differ significantly from neighboring stations (requires updated PM.EXE
and PMX.EXE).


Version 15.30B

MESSAGE REPSTART fancy custom reports were showing {+b} and {+i} styles in
the wrong columns if preceded by blank cells.


Version 15.32

ADD /LPA:lpa[,lca[,vca]] parameter was added to assign a lateral plane area
and optional longitudinal and vertical centers (defaults are LCG and VCG)
for fixed weight contribution to heeling moment calculations.

HMMT REPORT shows any heeling moment arising from "Fixed weights" on its own
subtotal line.

STATUS LPLANE reports underwater and above-water lateral plane for each fixed
weight item that was assigned non-zero LPA, while STATUS LPLANE:BRIEF
combines any "Fixed weights" lateral plane info into a single subtotal line.

REPORT /BOX:COLOR fancy RA /LIMIT reports were sometimes misformatting
area limits having large attained values.

DISPLAY STATUS was showing near-empty tanks as full in rare cases
(requires updated CG.EXE).


Version 15.32A

ADD "description" /LPA:lpavar[,lcavar[,vcavar]] /ACcess was added to access
the described item's lateral plane area data into the named variables.

ADD and WEIGHT commands trap "Too many parameters" if any extra non-slash
parameters follow the VCG coordinate.
(*run-time error when printed. *)


Version 15.34

Part Maker commands SURFACE and RENDER were added to produce a rendered
geometry image either as an interactive visualization (entering RENDER alone)
or as a JPEG camera shot (e.g. RENDER /JPEG:"file.jpg"; CAM: 140, 10,0).
Customizable rendering engines are supported, but if none is provided by the
user in RENDER.BAT when RENDER is first done, then selected third-party
rendering software is automatically downloaded from the internet, as described
in RENDER.HTM (requires updated PM.EXE, PMX.EXE, RENDER.LIB, and RENINST.LIB).

SE and DISPLAY command Visualize [mingap] was added to produce interactive
visualization of the selected part.  Optional mingap patch size can be used to
increase or omit excessive surface model detail (requires updated SE.EXE).

ENTER PM command RENDER [datfiles] [;CAM:azimuth[,elevation[,zoom]]]
[;WPL:heel,trim,depth] [;JPEG:"file"] [;SIZE:nx,ny] displays the geometry
model, surfaced and rendered.  If one or more datfiles are listed (produced by
the SURFACE command with individual part colors), only surfaces from these
files are shown; otherwise all displacer and sail parts are shown.  Optional
CAM specifies azimuth (default=180 degrees for bow on the right) and elevation
(default=0) for the initial camera position relative to the vessel's base plane
at zero heel and trim, along with an optional zoom factor.  Optional WPL rotates
the vessel in heel and trim and positions it vertically relative to a displayed
waterplane.  Optional JPEG produces an image file.  Optional SIZE specifies
pixel dimensions of the render window.

ENTER PM command SURFACE [(list)] [mingap] [datfile] [;COLOR:r[,g,b]]
[;OPACITY:op] generates surface models for shapes used by the listed parts or
components.  Optional mingap specifies the smallest surface patch size in the
longitudinal and transverse directions (default=1% vessel length).  If datfile
is not provided, the shape-based surface data will be permanently included in
the Geometry File when written, so Condition Graphics shows these surface
patches as outlines.  When a datfile is specified, it receives surface
information in the form of function calls suitable for interpretation by an
external program (typically interfacing a graphics library to obtain rendered
geometry views); component shifts and side assignments are respected so file
data is directly usable without further manipulation.  Optional COLOR specifies
the basic rendered surface color, either as: 1) A single integer 0=black,
1=blue, 2=green, 3=cyan, 4=red, 5=magenta, 6=brown, 7=white, 8=gray,
9=brightblue, 10=brightgreen, 11=brightcyan, 12=brightred, 13=brightmagenta,
14=yellow, 15=brightwhite, 16=orange, 17=violet, 18=bronze, or 19=drab;
2) A single word from this list; or 3) Three real numbers from 0.0 to 2.0 for
red, green, and blue magnitudes (default color is any assigned to each part
unless black, otherwise colors are chosen automatically, depending on contents
specific gravity for tanks, and brightred for deductions not explicitly
referenced in the list).  Optional OPACITY provides for "transparent" surfaces
(0.0=invisible, 1.0=perfectly opaque).  For example:

  READ FVW.GF
  SURFACE (HULL) hull; COLOR:green
  SURFACE (MAST) mast; COLOR:orange
  RENDER hull, mast

ENTER PM supports TEMPLATE field parameter /Persist, which was the last
major piece missing from TEMPLATE dialogs compared to the main program.

ENTER PMX commands using part (list) parameter and setting default PARTS list
support the keyword $CONTAINERS for all containers.

BOOM command was incorrectly trapping "Too many parameters" (since 15.32A only).


Version 15.34A

ADD REPORT warns "No added weights defined" instead of trapping an ugly error
when there are no added weights to report.

ENTER PM command TEMPLATE was still not working correctly for dialogs
persistently executing other TEMPLATE dialogs (since 15.34 only; requires
updated PM.EXE).


Version 15.34B

RA /LIM was sometimes incorrectly reporting the equilibrium angle as UNDEF
when the downflooding angle is very close to equilbrium.

GROUP /CONT parameter now works for "unknown" and "cargo" contents.


Version 15.36

LANGUAGE n was added to enable translation of template dialog boxes using
the file GHSWORDSn.DAT in the library path or program directory.  LANGUAGE 0
switches back to native English using the default GHSWORDS.DAT (requires
updated GHSWORDS.LIB and GHSWORDS.DAT).

The user is free to create GHSWORDS1.DAT, GHSWORDS2.DAT etc. to represent
translations in any language.  To create this file for LANGUAGE 1:

1. Make a copy of GHSWORDS.DAT (found in the program directory), place it in
the library directory, and name it GHSWORDS1.DAT.

2. Edit GHSWORDS1.DAT by adding a third column of words or phrases in the
desired language (translating the second column).  Keep the second column
intact.  Note that the second and third columns may contain words or phrases;
therefore they must be enclosed in quotation marks.  Commas or spaces may
separate columns.  Note that GHSWORDS.DAT is a Unicode file with an extended
character set that supports any language for use in templates; these keywords
can appear in NOTE commands, but are limited to a smaller character set.

3. Add new keywords if desired.  It is best to keep the lines in
keyword-alphabetical order.  Keywords may consist only of the letters A-Z,
digits 0-9, and the underscore character, beginning with a letter (the same
rules that apply to variable names); keywords are not case sensitive.  The
English definitions in the second column of your file will be used in
LANGUAGE 0 for keywords not defined in GHSWORDS.DAT.

For example, here are the first few lines of a French language GHSWORDS1.DAT
file:

  English French
  LanguageFile "FRENCH"
  EraseThisWiz "Erase this wizard" "Effacer cet Assistant"

The first line specifies the names of the two languages appearing in this file
(used to populate the _._langlist variable).  The LanguageFile keyword calls
for the FRENCH.LNG file to be accessed for unit names and error message
translations, so that switching language by number automatically brings in
the appropriate .LNG file (likewise LANGUAGE=1 can appear in FRENCH.LNG so
LANGUAGE FRENCH also automatically does LANGUAGE 1).  Subsequent lines
commence the regular three-column keyword translation pattern.

When GHSWORDS.DAT is updated by Creative Systems, you do not lose any of the
keywords and translations in any GHSWORDSn.DAT files that you may have
developed (so you should only makes changes to GHSWORDSn.DAT files and not to
GHSWORDS.DAT). If there are new entries in the new GHSWORDS.DAT file, you get
those automatically in English without having to transfer them to your files.

GHSWORDS keywords can be accessed as variables inside the "_" module.  For
example, the keyword Displacement exists in GHSWORDS.DAT, so a reference to
{_.Displacement} will return the value from the second column (namely
"Displacement").  However, if LANGUAGE 1 is in effect, the value from the
third column for that keyword in GHSWORDS1.DAT will be returned instead.  If
there is nothing in the third column for a particular keyword, the contents
of the second column will be used.  If the keyword is not found either in
GHSWORDS.DAT or the current GHSWORDSn.DAT, then the keyword name itself will
be returned.  Thus any reference to a variable name starting with "_." will
never be undefined when used in a multilingual template.  For example,

  TEMPLATE LSW
  "{_.LightShip} {_.Displacement} = {DISPL}"
  /

Converting existing templates to be multilingual is a time-consuming but
straightforward procedure.  Typically it will require new entries in your
GHSWORDSn.DAT file sufficient to support all the words and phrases in your
templates.

Once any form of the LANGUAGE command (except OFF) has been issued, certain
features of the "_" language module are available, such as:

  _._langlist is a special string variable that returns the dropdown list
control for templates representing all available languages;

  _._lang is a special numeric variable that holds the current language number;

  _.dolang is a macro call that registers a change in language number.

Putting these together, a template line to implement a language-selection
dropdown field is:

  {_._langlist} _._lang /ENTER /APPLY:_.dolang /PERSIST:REFRESH

Another GHSWORDS feature allows a keyword to represent several lines.  For
example,

  INTRO1
  -1 "This wizard is for the purpose of astounding you."
  -2 "You will notice that whatever it does defies logic."
  -3
  -4 "For example, try the button called Panic."
  -5 "Have no fear, it does nothing."

To insert these lines of text (without the leading numbers) into a template,
use:

  EXPAND _.lines intro1


Version 15.36A

ROLL REPORT was trapping "Bad string format" using GHSCOM module (requires
updated GHSCORE.DLL).


Version 15.38

CUSTOM (GHSERIAL) START supports record ID format "readID>writeID" to
override any $WRITEPLUS and $WRITEDIV mapping when determining the write ID
transmitted by CUSTOM (GHSERIAL) WRITE (requires updated GHSERIAL.DLL).

HMMT REPORT was not showing the correct Total wind heeling moment when multiple
ADD /LPA items were combined into a single Fixed Weight line (since 15.32 only).

RA /LIM no longer risks omitting heel angles around the downflooding angle
when it occurs on the side opposite to the direction of the righting arm curve;
such a FLD angle is now considered for LIMITs when it occurs after EQU0.

RA /LIM no longer risks showing positive margin when initially downflooded
for LIMIT ANG FROM EQU TO FLD OR TFLD.

STATUS INERTIA now allows OWN or POINT subparameter to be combined with
ALL or TOTAL subparameter; for example, ST IN:OW:TO.


Version 15.38A

STATUS MOMENTS now supports ALL (to show separate light ship items) and
TOTAL subparameters, which can be combined with the ORIGIN subparameter.

DISPLAY was occasionally trapping an "invalid location" run-time error
on exit (requires updated SE.EXE).


Version 15.38B

RA /LIM was sometimes incorrectly evaluating LIMIT ANGLE FROM EQU TO FLD > min
as UNDEF instead of LARGE when no downflooding occurred within the angle list.


Version 15.38C

PRINT /PREVIEW right-click Print option was not printing all report pages
if any of them overflowed to the next page due to incorrect paper size
(requires updated PP.EXE).

LOAD EDIT /BUTTON images were not always correctly centered.


Version 15.38D

STATUS /ADDVOlume[:unit] parameter was added to insert a tank volume column
with specified units after the tank load column (making room by implicitly
removing the reference point height column, but deferring to any /FSM column).
Note that /VOLUME and /ADDVOLUME behave the same, except the latter adds the
tank volume column without deleting the tank load column.

LOAD EDIT /BUTTON:template field parameter /Minwidth was added to prevent
the default expansion of each button to fit the full tool row width.

TEMPLATE name "filespec" /FILE no longer includes extra space to fit the file
specification into the nonexistent title bar when writing dialog box contents.

GHSCOM module supports file management commands like COPY and CHDIR
(requires updated GHSCORE.DLL).


Version 15.38E

COPY file1.PF file2.JPG /CONVERT now traps "File conversion failure"
instead of silently doing nothing when a problem occurs (most often due
to excessive resolution for available resources, which can be corrected by
specifying a sensible resolution such as /DPI:75).


Version 15.40

MAXVCG improved recovery from VCG steps where equilibrium could not be found,
which were sometimes leading to erratic or unnecessarily low Max VCG values.

DISPLAY STATUS BODY :=ANGLES parameter was not showing multiple angle views
(since 14.86B only; requires updated CG.EXE).


Version 15.40A

TS /INC:soundinc now supports fractional increments as low as one-tenth inch
for formats 3-6 (e.g. TS /F:6 /SO:FI /INC:0.25 for 1/4" increment).

MAXVCG was unnecessarily trapping DELTA FAULT 1 in rare cases.

TEMPLATE field /TIPBalloon:"text" was added to show a word balloon instead of
a box around the tool tip text.  This balloon format is also used for /Tip text
in variable edit input fields on screens using DPI resolution set above 100%
to prevent blinking boxed tooltips caused by a Windows bug.


Version 15.42

RA /LIM was sometimes failing to consider FLD angles for area ratio limits
if downflooding occurred in the ROLL region before EQU0 (since 15.38 only).


Version 15.42A

BOOM /LEN:len parameter was incorrectly centering the weight around the hook
load instead of the crane base, so now traps an error requiring specification
of both end locations.

MAXVCG reports now include a warning line if any DAMAGED tanks are present.
If none are damaged but FLOODED tanks are present, then notice lines about
initial trim and transverse C.G. refer to flooding instead of damage.

IF comparisons now treat numbers close to -1.1E10 (which RA may assign to
LIMATTn variables for UNDEF limits) the same as the string "Undefined"
and the empty string "".  Note SET LIMSTR1={LIMATT1} PLUS 0 converts
-1.1E10 to the string "Undefined" if the first limit is UNDEF.


Version 15.42B

LS /PROFILE was not reflecting any TYPE SET or UNSET sail changes when
repeated multiple times in the same report.

ENTER PM command WRITE was not including SURFACE data in the output GF file
(since 15.42A only; requires updated PM.EXE and PMX.EXE).


Version 15.42C

NOTE \...\ was not correctly centering double-size text marked with {+d}
in report files.


Version 15.44

ENTER PM command DECKEdge l1, l2 was added to include deck edge line codes
between locations l1 and l2 on all components of displacer parts whose names
begin with HULL, removing any other line codes on these components (similar to
MC /DECKEDGE parameter).  DECKEDGE OFF removes deck edge lines (requires
updated PM.EXE).

PRINT file.QF was not correctly printing Conditions Graphics output generated
by the DISPLAY STATUS /SECONDARY command (since 12.36 only; requires
updated CG.EXE).

COPY /CONVERT from .QF output to .JPG or .BMP image files is now supported.


Version 15.44A

DISPLAY STATUS was sometimes writing double page headers (since 15.44 only;
requires updated CG.EXE).


Version 15.44B

RA /LIM was not always plotting the GM line correctly with GM UPRIGHT
limit present and zero heel missing from the angle list.

DISPLAY STATUS legends were sometimes getting compressed with footers present
(since 15.08C only; requires updated CG.EXE).

DISPLAY STATUS legends that combined Tanks with Critical Points sometimes
used too many rows while leaving excess whitespace on the right side.


Version 15.44C

HMMT TANK and HMMT hm1 @ ang1, ... hmn @ angn increased maximum number
of angles from 19 to 100.


Version 15.46

SET operator CHR n was added to return the character with ASCII value n.
Note that other operator keywords can be abbreviated to two letters, but all
three letters are required for CHR to distinguish it from CHars.

PRINT /PREView supports optional /LAND and /-LAND parameters to force
all pages to preview in either landscape or normal orientation.  The /-LAND
parameter can also be used with COPY /CONVERT to suppress auto-landscaping
of certain plot pages when converting print files to images.

STATUS LPLANE was not including a footer line showing distance units and
was interferring with subsequent output when combined with MOMENTS or INERTIA.

ENTER PM was sometimes trapping an "invalid index" run-time error
(since 15.44B only; requires updated PM.EXE).


Version 15.46A

RA /LIM with GM UPRIGHT limit present and EQU not at zero heel now labels
the GM plot line with "GM Upright" label.  The starting angle for this
plot line is now consistent to ensure tangency regardless of whether zero heel
is present in the angle list.

RA /LIM no longer inserts zero heel if missing before the start of the angle
list with GM UPRIGHT limit present (since 15.44B only).

GROUND "item" /PEN:name /ACCESS was trapping "Missing variable name"
(since 15.32A only).


Version 15.46B

Load Editor profile view in Weights mode was sometimes not fully showing
distributed weight items composed of multiple pieces having the same VCG
but differing TCG.


Version 15.48

Help menu added a "PDF manual" option to open the full printed manual as a PDF.

LPA1 system variable was added to the underwater lateral plane area,
matching the value from STATUS LPLANE.

Condition Graphics tolerance for displaying critical and ground points on
a slice was increased to 0.005', thereby permitting these points to appear
on both slightly forward and slightly aft slices featuring different tanks
that meet at a longitudinal bulkhead (requires updated CG.EXE).

ENTER TSX column headers did not have a consistent number of decimal places
(since 15.00 only; requires updated TSX.EXE).


Version 15.48A

NOTE command can change text color within report lines using the special
variable form {%COLOR(n)%}, where n is a color number from 0 to 15 (the same
as specified for screen colors using {n} inside NOTEs).


Version 15.50

ENTER PM keyboard input now only brings back the most recent command when
Ctrl-E or Up-Arrow is pressed while the command line is empty (since 15.24 only;
requires updated PM.EXE).

TEMPLATE field /TIP[Balloon]:"text" was not showing both box and balloon tool
tip styles for different fields in the same dialog box (since 15.40A only).

Copyright (C) 2016 Creative Systems, Inc.