GHS Version 15.50 Update

New features, changes, and bug fixes since version 15.00

=========== MAJOR NEW FEATURES =========

New Surface Rendering Features

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.

SE and DISPLAY command Visualize [mingap] was added to produce interactive visualization of the selected part.

New PDF Manual

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

New ADDed Weight Lateral Plane Area Features

ADD /LPA parameter was added to assign a lateral plane area and optional longitudinal and vertical centers 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.

New LIMIT and Righting Arm (RA) Features

LATITUDE and LONGTUDE system variables were added to return the current latitude and longitude reported by any GPS location sensors enabled in the Location and Other Sensors Control Panel under Windows 7 and 8.

New Internet Download Feature

COPY "url" file was added to download a file from the specified Internet URL (which must begin with "http[s]:" or "ftp:"). If the file cannot be retrieved, the error "Download failed" is trapped.

New ADDed Weight REPORT Feature

ADD REPort command reports the added Fixed Weight distribution to the current output device (or to the screen if none).

New LIMIT and Righting Arm (RA) Features

RA and MAXVCG treatment of many difficult cases (such as short near-zero righting arm ranges) was greatly improved.

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.

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

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

IF comparisons now treat numbers close to -1.1E10 the same as the string "Undefined" and the empty string "". For example, IF {LIMATT1}="" tests whether the first limit was UNDEF.

New Maximum VCG (MAXVCG) Features

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

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.

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

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.

New STATUS Features

STATUS /ADDVOlume[:unit] parameter was added to insert a tank volume column with specified units after the tank load column. /VOLUME and /ADDVOLUME behave the same, except the latter adds the tank volume column without deleting the tank load column.

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

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.

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

New FLDPT Features

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

FLDPT /Color:c optional parameter was added to set the Critical Point color number.

New Oil Outflow and Advanced Features (AF)

OUTFLOW improved calculations, especially for hulls with curved decks.

DAMSTAB2 wizard added an option for side damage according to polar rules (MSC.385(94)), included new wind heeling moment options, increased maximum special flood points, provided a 0% stage for intermediate stages using the option to flood only in progressive flooding tanks, added support for the Experimental RoRo Reg. type of run (using the alternate formula for SFinal as described in SDC 2/3/2), and made numerous label and tool tip improvements.

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

New Condition Graphics (CG) Features

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.

DISPLAY STATUS /NOCRIT[:Arrow][:Label][:Number][:Point] subparameters were added to modify how Critical Points are shown in Condition Graphic.

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

DISPLAY STATUS PROFILE @cut [:BEyond] view now shows any critical points at or beyond the specified cut plane. DISPLAY STATUS PROFILE:BEYOND shows all points as if beyond an infinitely near cut plan.

Condition Graphics tolerance for displaying critical and ground points on a slice was increased, thereby permitting these points to appear on both slightly forward and slightly aft slices.

New GHS Integration Via COM (GHSCOM) Features

GHSCOM module now supports the IF command and file management commands like COPY and CHDIR.

New Load Editor with Windows (LEw) Features

LOAD EDIT /WEight[:unit] subparameter was added to specify a weight unit to present when showing weights.

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.

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

Load Editor now permits restoration of graphic views by right-clicking below the footer line where the graphs would normally be.

New Longitudinal Strength (LS) Features

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.

New Part Maker (PM) and Geometry File Features

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.

ENTER PM includes support for TEMPLATE field parameter /Persist.

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

New Sensor Interface (SI) and Tank Gauging Features

CUSTOM (GHSERIAL) START supports multiple simultaneous communication connections, with each connection configured by its own protocol $TYPE and the parameter lines that follow it.

CUSTOM (GHSERIAL) START added NMEA support for serial communication with marine electronic devices using new $TYPE "NMEA 0183".

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

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.

CUSTOM (GHSERIAL) WRITE added TextFile support.

CUSTOM (GHSERIAL) START parameter $MODPLUS offset was added to use 1-based Modbus register numbers as IDs i.

New Tank Soundings (TS) Features

TS /INC:soundinc now supports fractional increments as low as one-tenth inch for formats 3-6.

New International Language Translation Support

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.

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

New PRINT and REPORT Features

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.

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).

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

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.

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

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

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

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

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

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

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

New Dialog Box (TEMPLATE) Features

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.

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.

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 /SIZE:size parameter for LOAD EDIT /BUTTON templates allows negative pixel height or positive multiplier times SMALL size just like normal templates.

New System Variables and Other VARIABLE Features

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.

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

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

======= Miscellaneous New Features =======

ADD and WEIGHT commands trap "Too many parameters" if any extra non-slash parameters follow the VCG coordinate.

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

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).

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

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

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

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.

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

SET operator CHR n was added to return the character with ASCII value n.

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

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.

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.

======= Bug Fixes =======

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

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.

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).

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.

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

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

DAMSTAB2 wizard fixed issues with manually adding, changing, and deleting divisions and related to the load effect for immersed special tight points.

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

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

DISPLAY STATUS /SYNC was not reliably reflecting CRTPT changes.

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

DISPLAY STATUS gap between graphics bottom and top of reports footers no longer varies depending on footer height.

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

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

DISPLAY STATUS plan and profile view cuts were sometimes incorrectly drawing parts having sides coplanar with the view cuts.

DISPLAY STATUS to a network-based report file was trapping "Unable to open file" in rare cases.

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).

DISPLAY STATUS was showing near-empty tanks as full in rare cases.

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.

DISPLAY STATUS was writing incorrect report headers in rare cases.

DISPLAY STATUS within GLM during GLM_Maker testing was sometimes distorted due to using printer configuration for GHS not GLM.

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

DISPLAY was occasionally trapping an "invalid location" run-time error on exit.

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

ENTER PM statement ELBOW sometimes trapped "invalid index" run-time error.

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

FIXUP and auxiliary programs no longer strip off any side designation from displacer and sail part names.

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.

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.

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.

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

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.

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

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

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

LOAD EDIT /BUTTON images were not always correctly centered.

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

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

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).

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

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

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

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.

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.

Main and auxiliary programs now start with appropriate window and font size for pixel-doubled retina displays and other custom display size settings.

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

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

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

MAXVCG was unnecessarily trapping DELTA FAULT 1 in rare cases.

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

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

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

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

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

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

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

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.

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

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

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.

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.

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

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

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 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).

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.

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 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.

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.

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.

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.

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.

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

ROLL REPORT was trapping "Bad string format" using GHSCOM module.

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

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

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

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

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

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

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

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

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

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

Sensor Interface (SI) module was sometimes trapping an undeclared variable.

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

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

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

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 EXPAND no longer traps undeclared variables in REM lines (since 14.96A only).

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.

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

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

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.

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

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

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

Previous Version Update Features

Copyright (C) 2016 Creative Systems, Inc.