For your typical house layout, we often think of a hallway as means to an end. Bedrooms get named for who sleeps there. The Kitchen is the Kitchen. The Living Room is the Living Room. Whatever rooms are in the basement (if one even has a basement) are named something functional. But hallways usually get ignored. Or if there is some confusion, we'll call one the "Upstairs Hallway" or "The Bedroom Hallway."
The problem is that, at least when building a navigation plan, hallways are actually more important than the rooms they connect. For that reason, and because they often take up a lot of room, hallways on ships are numbered just like the compartments. I forgot that little gem, and it bit me in the butt today.
Another item that was I was going to have to deal with later is that treating my decks as a integer sequence of unbroken levels was... stupid. In real ship construction, we have to deal with things like "half decks". And it's a mess if you constrain yourself to the idea that a deck is a plane that passes through the entire length of the ship. I was also running into cases where I may have wanted a deck to actually occupy the vertical space of 2 or more levels. There may also be cases where a deck is added or removed, and going with an absolute measurement means I don't need to renumber everything. (Or at least renumber it... again.)
So instead of treating the sphere like an giant office building with floors, I am switching to a Cylindrical Coordinate System.
Numbers in a compartment ID will correspond to real physical distances. The floor number is going to be replaced with the axial distance, the height from the bottom-most point of the sphere of the boundary that is closest to be bottom of the sphere. The track number is going to be replaced with the radial distance (in meters). The "sector" number is the same number it was before, we will simply call it the Azimuth.
I also need to address parts of the ship that are not contained in a sphere. There are two major areas to consider outside of the spheres: The spine and the ring. And it turns out the a cylindrical coordinate system is helpful in both of those areas too.
Spine compartments also use cylindrical coordinates. Compartments in the spine get a prefix S.
S-axial-radial-azimuth
The axial component is a distance measured, in meteres, from the nadir of the vessel. For
compartment designators, axial is the lowest boundary rounded to the nearest whole number
with the floor()
The radial component is a distance, in meters, from the center of the axis.
For compartment designators, radial is the lowest boundary rounded to the nearest whole number
using the floor()
function to make it conform to the nearest meter.
The azimuth component is the compass heading from the center (in degrees) from 0-359.
For compartment designators, the azimuth is the clockwise-most boundary, using the
floor() function to make it conform to the nearest degree. Azimuth will always be three
digits with leading zeros
R-axial-radial-azimuth
The axial component is a distance in meters measured from the nadir-most boundary of the
disc.
For compartment designators, axial is the lowest boundary rounded to the nearest whole number
with the floor().
The radial component is a distance, in meters, from the center of the axis.
For compartment designators, radial is the lowest boundary rounded to the nearest whole number
using the floor()
function to make it conform to the nearest meter.
The azimuth component is the compass heading from the center (in degrees) from 0-359.
For compartment designators, the azimuth is the clockwise-most boundary, using the
floor() function to make it conform to the nearest degree. Azimuth will always be three
digits with leading zeros
A|B|C|D|E|F-axial-radial-azimuth
The axial component is a distance in meters measured from the designated bottom of the sphere. For compartment designators, axial is the lowest boundary rounded to the nearest whole number with the floor()
The radial component is a distance, in meters, from the center of the axis.
For compartment designators, radial is the lowest boundary rounded to the nearest whole number
using the floor()
function to make it conform to the nearest meter.
The azimuth component is the compass heading from the center (in degrees) from 0-359.
For compartment designators, the azimuth is the clockwise-most boundary, using the
floor() function to make it conform to the nearest degree. Azimuth will always be three
digits with leading zeros
The dividing line between whether to break a compartment up into separate compartments or break it up as sub-compartments is largely a matter of taste and the nature of the division.
Examples:
A large agricultural field with no physical walls: Break into individual compartments if larger than 1 parcel unit in size (314m^2.) If smaller than 1 parcel, use letter codes:
A-40-31-145-A.A (Lettuce), A-40-31-145-A.B (Carrots)
A gymnasium with room dividers. Mark the gymnasium as a whole with the the standard compartment code. Letter each discrete floor area with a letter. If an event require the entire undivided gymnasium, the event refers to the compartment code for the entire space. If an event requires one partition, it can address the letter code for the individual space.
B-50-45-000-R (Gym as a whole). B-50-45-000-R.A (Front section of the three room divider).
Single Bedroom Housing. The layout of an Single Bedroom Housing Unit could have a floor plan that makes maintaining a the global compartment numbering scheme a challenge. Rather that try to force the standard on individual units or rooms, we stop the compartment numbering scheme at the parcel. Each unit with it's own entrance is marked individually. Rooms beyond that entrance are not designated:
E-45-90-252-H.1 (Unit 1 in building E-45-90-252-H) E-45-90-252-H.2 (Unit 2 in building E-45-90-252-H)
To assist with emergency response, any building that is sub-divided must have a map on the inside door or the door with the internal room layout.
The Housing Department must also ensure that each exit from a housing unit contains an up-to-date evacuation guide, and sufficient emergency breathing devices at each exit to for twice the number or expected inhabitants. Emergency breathing devices should be located in a drawer that can be opened from both inside and outside of the housing unit, yet maintain a hermetic seal to a full vacuum. Each housing unit must have two exits to two different passageways. Each exit must resist fire, smoke, and vacuum.
Robots operating in W spaces are not required to be monitor for human presence! Every W and X space has yellow lines marking the safe zone for humans to not interfere with equipment. Keep in mind that "interfering" with most industrial machines largely involves being shredded to a pulp, crushed, electrocuted, or otherwise sprayed across the deck in a fine mist. Be courteous to your shipmates, don't be a mess.