In CM Creator's terminology, a "partition" refers to the decks and bulkheads of a ship, or the floors and walls of a building or other habitat.
CM Creator models a partition as a location coordinate; two rotation angles; and four bounds, each of which may be the external surface or another partition. After this data is specified for a partition
CM Creator defines a "compartment" as a 6-sided volume, where each side may be either the exterior surface or a partition.
After partitions are defined to subdivide an exterior surface (such as a ship hull or building shell), a single button click triggers automatic creation of all associated compartment definitions. No manual effort of any kind is required beyond clicking the button.
Roughly speaking, CM Creator defines a "partition removal" as a cutout in a partition "A" that spans a specified region between other partitions that intersect partition "A".
CM Creator models a partition removal by a pointer to the parent partition; and four bounds, each of which may be the external surface or another partition. As in the case of partitions, the shape of a partition removal is automatically computed, and recomputed as necessary.
CM Creator defines a "space" as a collection of volumetrically contiguous compartments. Partition removals are the mechanism by which compartments become volumetrically contiguous.
Because any or all partitions can contain multiple removals, and each removal makes at least two compartments volumetrically contiguous, the shape of a space can become quite complex. For example, a single space can, in principle, model intricate volumes such as a winding passageway on a deck of a ship, or a winding multi-deck turbolift tube on a Federation starship. (Note: modeling a complete Federation starship would require a mix of rectangular and cylindrical coordinate systems, but CM Creator does not currently support cylindrical coordinates. More volunteer developers needed!)
After partitions and partition removals are defined for an exterior surface, the same button click that triggers automatic compartment creation also automatically creates all space definitions. No manual effort of any kind is required beyond clicking the button. The visible result is a message similar to this actual message:
The following image highlights the most intricate of the 48 spaces created in this example.
After the definition data for Compartments and Spaces have been automatically created, detailed shape coordinates for any, or all, Compartments can also be automatically generated. Compartment shapes can be useful for export to other tools, such as third-party damaged stability programs. Compartment shapes for single-compartment Spaces can also be used for Resubdivision.
Tiered levels of subdivision can be defined by selecting Spaces for resubdivision after their shape coordinates have been created, A resubdivided Space is automatically converted to an Assembly, and its shape coordinates used to create the Exterior Surface of the Assembly. The Assembly can then be subdivided with its own partitions and removals, and some of the resulting Spaces further resubdivided, if desired.
Resubdivision is useful for advancing the level of detail of the interior arrangement as a design progresses. It can also be used to modularize the CModel for analysis or prototyping, with the first level of subdivision defining the individual modules and resubdivided levels defining the details of each module.
Standard ship design practice for centuries has been to draw ship blueprints with the primary, or X, axis parallel to the keel, and to draw the hull form as a series of section cuts, or "stations", perpendicular to the axis. Hull volume can then be computed by integrating sectional areas at each station, then integrating the sectional areas along the primary (X) axis to obtain hull volume. Thus, CM Creator refers to the primary axis as the "integration axis."
A Compartmentalized Model typically consists of many more surfaces than just a hull form. For some of these, an integration axis other than the X axis is more natural. For example, a surface defining a mast would more naturally use the vertical, or Y, axis as its integration axis. Similarly, a surface defining a wing would more naturally use the transverse, or Z, axis as its integration axis. As a result, CM Creator allows any one of the three major axes to serve as the integration axis when creating a surface.
Support for selectable integration axis comes at the cost of increased code complexity, and possible culture shock for traditional ship designers. The benefit is a significant easing of the cognitive burden on users when creating surfaces for comprehensive Compartmentalized Models.
The term "Classification Lists" refers to a powerful technology for classifying and organizing data.
Classification Lists allow data to be tagged once with a classification ID, after which it can be organized and displayed multiple ways. This is achieved by segregating data identification from data organization. Data is identified using an unorganized list of classification categories called a "classification list." The classification list categories are then organized using one or more hierarchical "organizational systems" associated with the classification list.
Traditional data classification systems, such as the Dewey Decimal System, combine the two functions in a single organizational system. Assigning a classification tag to a datum allows the datum to be organized only one way.
Classification List technology was independently invented at least twice:
Needless to say, in both domains the technology has yet to achieve traction. CM Creator seeks to remedy this shortcoming in the CAD domain, as follows.
A classification list called the CModel Classification List (CModelCList) is used to classify CM Creator's basic geometric entities, of which there are 24 distinct types. This permits the list of geometric entities to be organized and presented to the user in different ways depending on the operation being performed.
Multiple Classification Lists can be used to classify, organize, summarize, and display areas, volumes, centers, and gyradius values.
CModelCList is also used to organize and display property data at least three different ways based on a single CModel classification tag. CModelCList tags are assigned to geometric entities automatically.
SMCL allows properties to be organized using SWBS or BSCI and, potentially, custom systems such as a company-specific classification system or even the Account System that pre-dated BSCI (which might be appropriate when modeling and analyzing historic ships). SMCL tags must be assigned to geometric entities manually.
SSCL allows space properties to be organized using the MIL Ship Space Classification System and, potentially, custom space classification systems. SSCL tags need be applied only to spaces. Each Compartment then inherits the SSCL tag of the space to which it belongs. SSCL tags must be assigned manually.
Another feature of the Classification List technology is the ability to correlate, or map, different classification lists. Thus, geometric entities classified with SMCL tags can be correlated with spaces tagged by SSCL identifiers. Such mappings can be leveraged for purposes such as rationally distributing weights when estimating center of gravity and total vehicle gyradius.
The Java packages that implement Classification List technology exist. The technology is being introduced into CM Creator in stages, starting with the CModelCList.
One of the first things CM Creator does on startup is set the current units for the execution session. Any geometric data created is assumed to be in the current units. Any data written to file is saved in the current units, and the file data is units-tagged accordingly. Any geometric data read from file is automatically converted to the current units if they differ from the file data units.
CM Creator accomplishes the above units conversion using a sophisticated general-purpose units conversion package. One of the features of this package is that it is file-driven. New units can be defined by simply adding one or more lines to a text file; no coding changes are necessary.
CM Creator uses a different approach to on-line help than most other application programs. This new on-line help technique is implemented by enhancing Java's standard tool tip capability to include arbitrary-length html help pages in addition to one-line tips. One shortcoming of the help package is that it currently lacks support for html hyperlinks. (More volunteer developers needed!)