Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

Page 1 of 5

Defining Surfaces with Polygons


MOSES provides a method for combining closed surfaces in space using simple closed surfaces
called blocks. These blocks can then be combined in a variety of ways, to produce more complex
shapes. This block combining is accomplished in a menu which one enters with the command:
&SURFACE

and exits using an


END_&SURFACE

command.
At this menu level, one can proceed to build blocks with the command
BLOCK, BLOCK_NAME, -OPTIONS

and the available options are:

-LOCATION, X, Y, Z, ROLL, PITCH, YAW

-STBD

-PORT

-BOTH

Here, BLOCK_NAME is the block name, and is optional. If this name is not supplied, MOSES will
provide one. Once at the BLOCK menu level, building blocks can be generated using any of the
command3 for describing planes, found in the section describing pieces. The BLOCK menu can be
exited with the END_BLOCK command.
If one has an existing mesh description, it can be entered into the program through the MESH menu,
by typing the command
MESH

In this menu, the valid commands are the same ones used to define panels, also found in the section
describing pieces. The sole purpose of this menu is to accept previously defined meshes. The mesh
generation commands from prior versions of the program are accepted here. For these earlier meshes,
the vertices must be defined before the panels. Commands are also available for defining a plate mesh.
In fact, the term mesh now refers to a structural plate mesh, a hydrostatic mesh, and a hydrodynamic

http://bentley.ultramarine.com/hdesk/ref_man/surface.htm

11/7/2014

Page 2 of 5

mesh. The differences between these types of mesh are discussed later. Remember to exit from the
MESH menu by typing END_MESH.
The BLOCK and MESH menus basically serve to describe the polygons that make up a surface.
When these have been described, one returns to the &SURFACE menu to complete the building
process.
Blocks can be manipulated using the following commands:
LIST_BLOCK
MOVE_BLOCK, BLOCK_NAME, ANSNAM, X, Y, Z, RX, RY, RZ
DELETE_BLOCK, BLOCK_NAME(1), .... BLOCK_NAME(n)
REFLECT_BLOCK, BLOCK_NAME, ANSNAM, AXIS

The LIST_BLOCK command will provide a list of all blocks currently defined. MOVE_BLOCK
will create a new block, ANSNAM, based on BLOCK_NAME, moved from its original location to
that specified by X, Y, Z, RX, RY, RZ. To delete an existing block, use the DELETE_BLOCK
command and specify the block name or names to delete. Remember that wild characters are valid
here. Finally, the REFLECT_BLOCK command will take an existing block, BLOCK_NAME, and
create a reflection of the specified AXIS, X, Y or Z. The new block created by the reflection will be
named ANSNAM.
Blocks can be combined in a variety of ways, using the commands:
UNION,

BLOCK_NAME(1), BLOCK_NAME(2), ANSNAM

INTERSECT, BLOCK_NAME(1), BLOCK_NAME(2), ANSNAM


DIFFERENCE, BLOCK_NAME(1), BLOCK_NAME(2), ANSNAM

Here, BLOCK_NAME(1) and BLOCK_NAME(2) are names of blocks to be combined, and


ANSNAM is the name of the resulting combination. The command names describe what happens
when two blocks are joined in the specified manner. For instance, a UNION simply joins two blocks
together. Since, however, we want a closed surface as a result, the volume inside will be removed.
Both the INTERSECTION and DIFFERENCE commands can be thought of a "throwing away"
part of a block. A DIFFERENCE of two blocks "subtracts" the part of BLOCK_NAME(2) inside
BLOCK_NAME(1) from the resulting block. An INTERSECTION keeps only the part of
BLOCK_NAME(1) inside BLOCK_NAME(2). In either case, the result is a closed surface. With
either of these commands, strange things may happen if BLOCK_NAME(2) does not contain any of
BLOCK_NAME(1). As a general rule, UNION is used to combine two blocks for creating the
exterior of a body, DIFFERENCE is used to make holes in a body, and INTERSECTION is used
for making compartments from the exterior.
The basic design here is that one defines a set of simple blocks and combines them to create the
exterior. Now, one uses the exterior, more special blocks and DIFFERENCES to define all of the
compartments for the body. After everything has been defined, one deletes the temporary blocks,
renames those he wishes to keep and emits the model. Any time during the process, one can make
pictures of the blocks with

http://bentley.ultramarine.com/hdesk/ref_man/surface.htm

11/7/2014

Page 3 of 5

PICTURE, BLOCK_NAME(1), ....., BLOCK_NAME(n)

One renames blocks with the command:


RENAME_BLOCK, :BLOCK_SEL,

-OPTIONS

where the options are:


-POINT, *PNAM,
-PANEL, PNL,
-SORT, ORDER, JUMP_NUM, JUMP_TOL
-EQUIVALENT, DIST

The RENAME_BLOCK command removes all blocks except those selected with :BLOCK_SEL,
and renames the point and panel names according to the options used. The -POINT option specifies a
point name prefix, and should begin with an *. The -PANEL option describes a panel name prefix,
while the -SORT option defines a criteria for sorting the resulting point and panel names. Here,
ORDER can be any combination of the letters XYZ. Using this option, points output to the file will be
sorted according to their coordinates, in the order specified. JUPNAM is the integer amount added to
a point name when there is a jump in the coordinates of a point of JUMP_TOL. The -EQUIVALENT
option defines a distance DIST (feet or meters) which is used for point equivalence. Two points
within this distance are declared to be the same and references to the deleted point are removed from
all panels. This option is quite useful in removing small pieces of trash which results from combining
blocks. Renaming is not necessary, but it provides a set of results which are much easier to read and
which have a smaller number of panels and points.
The final step in this process is to EMIT the results created. This is accomplished with the command:
EMIT, :BLOCK_SEL(1), ..... :BLOCK_SEL(n), -OPTIONS

where the options are:


-PART, PART_NAME, PAROPT
-BODY, BODY_NAME, BODOPT
-USE_NAME, YES/NO
-PERM, PERM
-NAME, NAME
-COMPARTMENT, CMPOPT
-PIECE, PIEOPT
-POINTS

http://bentley.ultramarine.com/hdesk/ref_man/surface.htm

11/7/2014

Page 4 of 5

Here, the -PART or -BODY option instructs MOSES to emit the points for the blocks matching
the :BLOCK_SEL(i) selectors and to specify that they all belong to either body BODY_NAME or
part PART_NAME. This should normally be the first thing emitted. After the points have been
emitted, one should then emit the panels for the exterior and any interior compartments. Each one of
these should have a single emit command. Panel names will be used if YES/NO is set to YES on the
-USE_NAME option. If YES/NO is NO, no panel names will be provided. The -PERM option is
used to specify the permeability of the piece being emitted. When emitting panels, both compartments
and pieces will be generated: one compartment is defined for each emit command and a piece for each
block emitted. Thus, if there is on only a single block emitted one gets a compartment and a piece.
The -NAME option specifies the name of the compartment. If it is omitted, then the compartment
name will be the same as the first block emitted.
The -BODY, -PART, -COMPARTMENT and -PIECE options allow one to specify options which
are emitted on the &DESCRIBE command. When using this capability, one needs to remember to
enclose the various data within " or ' marks.
For complicated models with multiple pieces, it can be useful to emit only the points for a piece
without the associated &DESCRIBE BODY or &DESCRIBE PART commands. This flexibility
allows the emitted points to be assigned to a previously defined body or part, which facilitates
automatic generation of a complete model into one post processing file. To emit only points, use the
-POINTS option.
The tools described here are quite powerful, but as with all powerful things, one must use them with
care. The way this operation works is that MOSES finds the part of one block "inside" the other and
then eliminates it. For this to work properly, however, MOSES must be able to unambiguously
distinguish what is "inside". This looks quite simple, but it is not numerically. Consider, for example
two blocks:
BLOCK BOX
PLANE -50 50 -RECT 0 10 100
END_BLOCK
BLOCK HOLE
PLANE -10 10 -RECT 0 10 20
END_BLOCK

and suppose one removes the hole from the box with
DIFFERENCE, BOX, HOLE, NEW

In all likelihood, this command will fail. The reason is simple, the top and bottom surfaces of the hole
lie in the same plane as those of the box. Numerics being what they are it is possible that MOSES
thinks that the hole is entirely inside the box, so nothing is subtracted. To make things work properly,
one should define the hole as:
BLOCK HOLE
PLANE -10 10 -RECT -1 11 20
END_BLOCK

Now, there is no confusion as to whether or not the box intersects the hole. The same rule applies to
the other two operations: Always make sure that the two blocks penetrate one another and two
lines do not intersect.

http://bentley.ultramarine.com/hdesk/ref_man/surface.htm

11/7/2014

Page 5 of 5

Continuing with this example, we can now create tanks in the box.
BLOCK AT
PLANE 40 51 -RECT -1 11 120
END_BLOCK
BLOCK PTW -LOC 0 -40 -port
PLANE -60 60 -RECT -1 11 11
END_BLOCK
INTERSECTION BOX AT ATT
INTERSECTION ATT PTW PAW

The blocks AT and PTW are temporary blocks, the first being a slice across the stern and the latter a
slice along the port side. Notice that in both cases, care was taken so that these slices "extended
beyond" the basic box. The first intersection uses the temporary block to clip a true slice from the
stern. Here, due to the simplicity, this is not necessary, but this produces a true piece of the ship from
40 feet aft. The last intersection produces a tank at the port aft of the box. If one defines more
longitudinal and transverse blocks, all of the tanks can be easily created.
To complete this example, we would emit the exterior of the box and the tank with:
RENAME_BLOCK BOX PAW -EQUIV .1 -POINT *P
EMIT @ -PART BOX
EMIT BOX -PIECE ' -DIFTYPE 3DDIF -PERM 1.00'
EMIT PAW -COMPART "-DESCRIPT 'Port Aft Fuel Tank' " \
-PIECE
'-PERM -0.98'

Notice here the use of " to delimit the options which are used when describing the compartment. This
is necessary because a ' is already in use to delimit the text for the -DESCRIPT option.

http://bentley.ultramarine.com/hdesk/ref_man/surface.htm

11/7/2014

You might also like