Converting Models Converting Models

Often, one is given a model in a format which is not suitable for use in MOSES. In certain cases, this model may be converted into a useful one by a special purpose menu. This menu may be entered via the command:


Here MODEL_TYPE defines the type of model to be converted and must be either: SACS, STRUCAD, DAMS, STRUDL, HULL, OSCAR or PLY. The available options are:








When the &CONVERT command is issued, MOSES will read data from the current channel and write a MOSES model to the file MOD00001.TXT file in the answers (.ans) directory. This process will continue until the command END is encountered. The conversion for SACS and STRUCAD models are relatively complete, but only a subset of all of the dialects of STRUDL are honored. A MODEL_TYPE of HULL will convert a hull description using the outdated STAT and OSET commands to the current description using the PLANE command. One can also convert OSCAR "miscellaneous additions" such as LJNT, LMEMT, LMEMD, LMEMS, and JPLATE commands into the proper format by using the type OSCAR. When an input is found which MOSES does not convert, it is emitted as a comment. Thus, the file resulting from a conversion may contain quite a few comments before the converted data. A MODEL_TYPE of PLY will convert a PLY polygon file into a MOSES mesh. The name of the piece generated will be the value of the variable "PIECE" if it exists. If this variable has not been defined, then the name will be "PLY". Finally, a MODEL_TYPE of GHS will convert a GHS model into MOSES PGEN pieces.

During the conversion process, MOSES "adds" something to each node and class name. It will always add a * to a node name and a ~ to the class name; but, if instructed, it will add more. What is added is controlled by the options. The -JPREFIX option defines a set of characters, JP, which will be added to the beginning of each node name, and the -CPREFIX options defines characters which will be added to the beginning of each class name. The default for JP is J and the default for CP is to add nothing. If one wants to add only a "*", he should use "*" for JP.

Normally, the beginning character (either a * or ~), the prefix, and the original name are simply concatenated without blanks to form the new name. If one wishes, he can "overlay" the new name on a template. This is accomplished by the -CRIGHT and -JRIGHT options. As an example, suppose that one issued the command:


and that one has a joint name 1. Then MOSES will first construct the template *J0000 and the right justified name " 1". The right justified name will then be overlaid on the template to produce the new name *J0001.

Care should be used with the name altering options, since it is possible for two original names to be mapped into the same new name. This can occur when the original names have more characters than 7 minus the number of characters in the prefix when appending, or more than the number of characters in the template plus the number of characters in the prefix when overlaying.

Normally, MOSES will convert all "load" data in the existing model into weights. In the process, the weight is assumed to be the weight of something "in air". The converted load will use a macro that has an option -SGRAV which specifies the specific gravity of the material (used as steel). If, the loads were coded on a different basis, the conversion can be changed via the -LOADS option. If "FLAG" is WATER, then a variable will be set so that the weight input will be appropriate for air, and again the specific gravity will be used to compute a buoyancy. If "FLAG" is SIGN, then it is assumed that the sign of the Z component of the load defines a weight if it is negative and a buoyancy if it is positive. Here, no specific gravity is used. This option works only for a SACS or STRUCAD model. If "FLAG" is LOAD, then the loads are really converted as loads.

In general, the "load" data is divided into load cases and often commented as to the origin of the load. In MOSES, one can use either of these two schemes to create Categories of load. A &DEFAULT command is inserted before each load case to set the default Category to be the load case name. Also, if the loads are commented, the comment is available to further separate the loads. The use of the comment is governed by the variable USE_COMMENTS which is set to TRUE by default. If you want to ignore the comments, change the setting to FALSE. Also, the load macros allow for a factor to be used, and the factor is set to a variable with the load case name. In this way, one can reproduce the weight of a structure with several load cases combined with different factors. The values of the factors are defined before the load data itself.

The option -CNS_DIA instructs MOSES to include the redesign option, based on a constant diameter, in the class definition.

The final option -IG_DOFS allows one to pass the information on deleted degrees freedom to the MOSES model. Normally this information is not transmitted since it almost certainly will be incorrect. If you use this option, you must be quite careful that the model is properly restrained.

In general, the conversion process works quite well. With a STRUDL model, however, one must be careful. STRUDL is not only a modeling language, but also a command language. The "action" commands are ignored when a model is converted and hence, the conversion may not be what occurs in the original file. In particular, if the file "ignores" members, then generates dead loads, the MOSES model will have loads on the ignored members. Another difficulty occurs with units. Some versions of STRUDL will actually allow the abbreviation of "T" for TONNES. The MOSES converter requires at least "TONN". Also, in STRUDL, it is possible to continue a line by ending it with a "-". MOSES will not accept this, and all line ending "-" should be changed to either a "+" or a "\". One thing to notice is that in STRUDL, the strong axis of a beam is the Z axis while in MOSES, it is the Y axis. In the conversion process, Y will be changed with Z. The only problem we know about with local axis conversions is with a vertical member which "points down" where local properties will perhaps be incorrect. STRUDL finite elements are handled by placing the element name, class and nodes in the converted file. This allows the user to build a macro to represent the element. The simplest macro is shown below:

     &macro SBCT class nodes
     plate %class% %nodes%