General HydroStatics
Ship Stability Software
Command of the Week
(New or interesting aspects of GHS that you may not know about)


From the Part Maker documentation:
FRAME "description" @ location
Stores the given description (maximum 12 characters) along with its longitudinal location. Up to 255 frame locations can be assigned.

Example: FRAME "FR1" @ 1.23F

If frames are a convenient reference for longitudinal locations, you can make use of the FRAME command in Part Maker to build frame locations into the Geometry File. Doing so does not restrict you to using frame locations in your longitudinal coordinates, but it gives you the option.

Though not required by the FRAME command, it is best to avoid spaces in the frame description. Short frame names make it easier to process them with string functions (in case you get into that).

Typically Longitudinal Strength reports make reference to frames. You can have them show frames and their locations, as in the brief example below, or frame names only.

The Load Editor optionally displays weight locations relative to the nearest frame:

And likewise the LOAD STATUS report:

If the Geometry File lacks frame definitions, GHS will look for a file having the same name as the Geometry File with a .FRA extension. Here is an example that writes a frame file:

 `Writing frame file for SV.GF
 variable (len) x
 macro frames
  unit m
  set x= minus %1 times 1.25
  unit f
  me ""FR%1" {x}
 me (report) "SV.FRA"
 .frames (41,-1) 40
 me (report) off

(The code above would be more extensive if the intervals between frames varied or if the frame names were more varied.)

Beginning with GHS version 15.80, two new frame functions are available. One of them converts a frame reference to a simple number so that it can be used in commands where numbers, not frame names, are expected. Below is an example where the frame references are used when inputting weight items:

 .add "Pipe"           17.0 "FR6 + 0.1F"     0 7.5 "/max:30"
 .add "Anchors"         7.0 "FR4 + 0.2F"     0 6.3
 .add "Buoys"           1.0 "FR7 + 0.25F"    0 8.4
 .add "Ice allow"      12.0 "FR8"            0 6.8
 .add "Wire"            3.0  30.5F           0 7.0

You will notice that a macro is doing something between the input data and the actual ADD command. Evidently the macro is able to recognize the plus sign or simply the frame name or just a number.

 variable (str) s1, s2, s3
 variable L
 macro add
  set s1 = item 1, "%3"
  set s2 = item 2, "%3"
  set s3 = item 3, "%3"
  if "{s2}"="+" then set s1="{s1} plus {s3}"
  set L=FRLOC {s1}
  if {L}="" then set L=%3
  add "%1", %2, {L}, %4 %5 %6 %7 %8

Questions, comments, or requests?
Contact Creative Systems, Inc.

USA phone: 360-385-6212 Fax: 360-385-6213
Office hours: 7:00 am - 4:00 pm Pacific Time, Monday - Friday

Mailing address:
PO Box 1910
Port Townsend, WA 98368 USA

Click here for an index to this and previous COWs