In applying 46 CFR 171.055 for sailing vessels

In applying 46 CFR 171.055 for sailing vessels, the following method of doing the relevant calculations may be useful. The user should check it carefully and verify that it is operating correctly. It is recommended that the "/NOPRINT" parameter on the RA commands in macros "getangle" and "getarea" be deleted during this checking.

Since GHS/BHS cannot slice off the top of an RA curve, if you have a condition with the maximum less than 35 degrees, you will have to make two runs; the first to get the excessive area (by inspection of the RA-area curve) which you can then subtract from the area in the next run by giving it as the parameter on the "case" macro.

disk off
proj sail
`erase sail.gf
mac makesv
enter pm
create hull
ends 0 100
top 20
bot 0
out 15
margin 0
//
create sail
class sail
ends 25 75
top 120
bot 20
out .1
//
di
write
qu pm
/
if not fexist {project}.gf then .makesv else read

macro getarea
`Sets the area veriable to the area under the RA curve.
`Assumes one LIMIT AREA in effect.
variable area
heel = 0
ra 0 5 /lim:att /noprint
set area = {limmarg} div 100 plus 1 minus {toparea}
/

macro getangle
`Sets the variable t to the angle of the given condition (RA0, DI, FLD).
variable t
limit(1) angle from 0 to %1 > 0
heel = 0
ra 0 10 /lim /noprint
set t = {limmarg}
/

macro gethz
`Computes HZ%1 according to CFR 171.055(g) usingf the given angle.
`The area variable is used for "I".
variable t1
set t1 = %1 times 2
set t1 = sin {t1} times 14.3
set t1 = %1 div 2 plus {t1}
set HZ%2 = {area} div {t1}
/

macro truncate
if {toparea} > 0 then exit
\ >>>> This is too small! The following does not apply.
\ You must determine the area to truncate from the following curve.
ra 0 2.5 ... 35 /area
set skip = 1
/

macro begin
`---- Check angle of maximum RA ----
variable skip, toparea
set skip = 0
set toparea = %1
.getangle MAX
\ Angle of maximum RA is {t}
if {t} < 35 then .truncate else set toparea = 0
if {toparea} > 0 then NOTE Trunced area = {toparea}
if {skip}<>0 then exit
\
`---- Get wind heeling arm ----
variable HZW
wind (pressure) = 0.001
hmmt wind /const
heel = 0
solve trim, tcg
hmmt report
set HZW = minus {FTCG}
tcg = 0
hmmt off
\ HZW = A x H / 1000 / W = {HZW}
\
/

macro hza
if {skip}<>0 then exit
variable ch,ch2,HZ,HZA,r
.getangle DI
\ Angle of deck immersion: {t}
heel = {t}
set ch = cos {heel}
set ch2 = {ch} times {ch}
tcg = 0
solve trim, tcg
set HZ = {FTCG} times {ch}
set HZA = {HZ} DIV {ch2}
tcg = 0
status
\ HZ = {HZ} HZA = {HZA}
set r = {HZA} div {HZW}
\ HZA / HZW = {r} (Should be greater than 1.0 protected, 1.5 exposed)
\
/

macro hzb
if {skip}<>0 then exit
variable HZB,r
fldpt on
limit(1) area from abs 0 to abs 60 or fld > 1
.getarea
.getangle fld
.gethz {t} B
\ Downflooding angle = {t}
\ Area = {area} HZB = {HZB}
set r = {HZB} div {HZW}
\ HZB / HZW = {r} (Should be greater than 1.1 protected, 1.7 exposed)
\
/

macro hzc
if {skip}<>0 then exit
variable HZC,r
fldpt off
.getangle ra0
limit(1) area from abs 0 to abs 90 > 1
if {t} > 90 then limit(1) area from abs 0 to ra0 or abs 120 > 1
.getarea
.gethz {t} C
\ Angle of vanishing righting arm = {t}
if {t} < 90 then NOTE This is not sufficient for exposed waters.
if {t} < 70 then NOTE This is not sufficient even for protected waters!
\ Area = {area} HZC = {HZC}
set r = {HZC} div {HZW}
\ HZC / HZW = {r} (Should be greater than 1.25 protected, 1.9 exposed)
\
/

`---- Set up condition ----
draft 13
vcg 12.5
solve weight, lcg
crtpt(1) "downflooding point", 50,10,30

macro case
.begin %1
.hza
.hzb
.hzc
/

.case 1.4 `<-- put area to truncate here if max is < 35 deg.

vcg = 11
.case 0


 Previous document Back