An mmp file consists of a molecular machine part (MMP) with a sequence of molecules. The simulator will check for van der Waals interactions between atoms of different molecules, but not within a given molecule. If such interactions are expected within the same molecule, the "waals" record can be used.
The file is a nested tree structure where each node begins with a group record and ends with an egroup record.
Each molecule is a mol record followed by atom and bond records. The bonds must be back-references, i.e. if atom1 and atom2 are bonded, atom1 will have no bond record, while atom2 will have a record pointing back to atom1.
MMP files begin with a group containing a csys record, followed by standard datum plane objects (XY, YZ and XZ). Then is a group containing the rest of the part. This is followed by an end1 record. The final section of the MMP file is a group that can include cut/paste objects. The intent of this section of the file is to support cut/paste when the user cuts a selection, then immediately saves the file. The final record in the MMP file is the end record.
Note parentheses and commas are required. Braces are metacomments.
mol (name) mode
Begins a new molecule. Applies to all atoms until the next mol record, where:
name - name of the molecule that appears in the model tree
mode - the default display mode for this molecule equals one of:
vdw" - van der Waals
"cpk" - ball and stick
"tub" - tube
"lin" - lines
"inv"- invisible
"def" - default (this display mode is determined by the software)
atom n (e) (x, y, z) mode
Creates a new atom, where:
mode – the display mode for the atom, same list as above
n - atom number, a unique atom ID
e - element number, e.g. carbon = 6
x, y, z - the position in 1e-13m
bond1 atom1 atom2 ... atom25 {up to 25}
Bonds the last-definted atom to the indicated atoms.
Note: The intent in calling this bond record bond1 is that we intend to support bond2, bond3, and bond4 for double, triple, and aromatic bonds.
waals atom1 atom2 ... atom25 {up to 25}
Indicates van der Waals interaction to be simulated between indicated and last-defined atoms (NB vdW interactions are automatically simulated between atoms of different molecules)
ground (name) (r, g, b) atom1 atom2 ... atom25 {up to 25}
Creates a ground object in which atoms are anchored in space, where:
name - name of the ground
r, g, b - red, green, and blue color components, between 0-255 (int)
atoms - atoms of mol that are anchored in space
lmotor (name) (r, g, b) force stiffness (cx, cy, cz) (ax, ay, az)
Creates a linear motor, where:
name - name of the linear motor
r, g, b - red, green, and blue color components, between 0-255 (int)
force - force of motor in nN*nm (float)
stiffness - stiffness of motor in N/m (float)
cx, cy, cz - center of rotation (same format as atom positions)
ax, xy, az - axis of rotation (same format as atom positions)
shaft atom1 atom2 ... atom25 {up to 25}
Atoms to which the linear motor is connected (shaft must follow lmotor immediately)
rmotor (name) (r, g, b) torque speed (cx, cy, cz) (ax, ay, az)
Creates a rotary motor, where:
name - name of the linear motor
r, g, b - red, green, and blue color components, between 0-255 (int)
torque - torque of motor in nN*nm (float)
speed - speed of motor in gHz (float)
cx, cy, cz - center of rotation (same format as atom positions)
ax, xy, az - axis of rotation (same format as atom positions)
shaft atom1 atom2 ... atom25 {up to 25}
Atoms to which the rotary motor is connected (shaft must follow rmotor immediately)
kelvin n
The temperature of the part, where:
n - the temperature in kelvins (int)
csys (name) (w, x, y, z) (zoom)
The coordsystem record, which contains default property settings for the part, where:
name - the name of the csys object that appears in the model tree
w, x, y, z - quaternion for the default orientation for home view (float). (No rotation = 1.0, 0.0, 0.0, 0.0)
zoom - default zoom for home view (float).
There can only be one csys record per part (file).
datum (name) (r, g, b) type (x1, y1, z1) (x2, y2, z2) (x3, y3, z3)
Creates a datum (point, line or plane) object, where:
name - the name of the datum object that appears in the model tree
type - one of "point", "line" or "plane"
x1, y1, z1 – center point for object
x2, y2, z2 – direction vector for line and normal for plane
x3, y3, z3 – orientation vector for lines and planes
All three points are given for each datum type.
group (name)
egroup (name)
Creates/begins (group) and ends (egroup) a group object, where:
name - the group name that appears in the model tree
These records enclose a list of other objects or groups. The names should match for checking purposes but do not have to be unique.
stat (name) (r, g, b) temp atom1 atom2 ... atom25 {up to 25}
Creates a thermostat jig that specifies the temperature of the listed atoms, where:
name - name of the thermostat
r, g, b - red, green, and blue color components, between 0-255 (int)
temp – temperature the thermostat maintains, integer, in kelvins
atoms - atoms of mol that are associated with this thermostat
end1
Logical end of file for simulator; objects that follow are for cut/paste
end
Logical end of file
Planned for Beta
bearing (name) (r, g, b) (cx, cy, cz) (ax, ay, az)
shaft ...
shaft ... or ground
dyno (name) (r, g, b) ???
???
handle (name) (r, g, b) torque, speed, (cx, cy, cz) (ax, ay, az)
shaft ...
shaft ... or ground
heatsink (name) (r, g, b) ???
???
spring (name) (r, g, b) force, stiffness, (cx, cy, cz) (ax, ay, az)
shaft ...
shaft ... or ground
Planned for Gamma or Future releases
ball (name) (r, g, b) (cx, cy, cz)
shaft ...
shaft ... or ground
hooke (name) (r, g, b) (cx, cy, cz) (a1x, a1y, a1z) (a2x, a2y, a2z)
shaft ...
shaft ... or ground
link (name) (r, g, b) (x1, y1, z1) (x2, y2, z2)
shaft ...
shaft ... or ground
planar (name) (r, g, b) (nx, ny, nz)
shaft ...
shaft ... or ground
prism (name) (r, g, b) (ax, ay, az)
shaft ...
shaft ... or ground