Chemical Crystallography

+ Frequently Asked Questions

+ Crystals Primer

+ Crystals User Guide

+ Crystals Manual

- Cameron Manual

1. Introduction

2. How To Get Started

3. Data Input

4. Outputting Data

5. Editing The Atom List

6. Obeying Files

7. Graphical Output Devices

8. View Direction Control

9. Include And Exclude

10. Drawing Style Control

11. Connectivity Control

12. Control Of Colour

13. Atom Labelling

14. Other Picture Controlling Commands

15. Symmetry Input

16. Crystal Packing Commands

17. Add And Move - Further Symmetry Related Commands

18. Distance And Angle Calculations

19. Information On Data Held Within The Program

20. Group Definitions

21. Miscellaneous Commands

22. How To Stop The Program

23. Menu Definition File

24. Some Useful Ideas

+ Index

Fri Jun 2 2000

Cameron Manual

Chapter 1: Introduction


1.2: Command Groups


1.4: The HELP facility

1.5: Mouse Activation

1.6: General Input Syntax

CAMERON was designed and built in the Chemical Crystallography Laboratory, Oxford, by Lisa Pearce, Keith Prout and David Watkin. Many people have contributed ides for improvements, and Louis Ferrugia pioneerd a completely WINDOWS based version.


The program is controlled by typing commands at the keyboard, by use of a mouse to pick items from a menu, or by using the mouse to manipulate the diagram.

1.2: Command Groups

The commands have been collected into groups (twenty-three at present). Each group contains commands and sub-commands which perform related functions or which will act as qualifiers to each other. The command processor will spot invalid combinations of commands and sub commands and enter error mode. Once in this mode the error can be corrected.

Command groups are used to decide when the user has finished entering all the qualifiers for a particular operation. The qualifiers are assumed to be finished when a command of another group is entered. For example :-



XROT, YROT and VIEW are all in the same group but LINE (a command that sets the drawing style) is not. When the command processor reaches the LINE command it will then execute the previous commands ie XROT to VIEW. This is useful because it means that the user does not need to input all the qualifiers on one line, and also because the user does not need to tell the computer when it has finished with an operation - the computer is able to work this out for itself. The input lines :-



will produce exactly the same results.

If the user wishes to execute a group of commands without entering a command of another group this can be done by sending a blank line to the command processor (ie press the RETURN key twice).


will execute the three commands without the need for LINE.


The command processor is able to check for some errors in the commands input by the user. The computer checks for two types of error:-
Firstly, whether a command / sub-command combination is valid. Secondly, if the arguments supplied after a command are valid and also if there is the correct number of arguments.

The action taken after an error depends upon the setting of the EDIT flag. If EDIT is OFF, only an error message is displayed. If EDIT is ON, the faulty input can be edited. Once an error has been detected the user can take action and modify the input line so that as many commands as possible can be processed. (If error checking is not carried out at this level, the detection of an error while executing a command will cause that command - and possibly its sub commands - to be lost.)

The user is given three options once an error has been detected.
Do not execute any more commands not yet executed.
The action taken by choosing the second option will depend on the nature of the error. If a word has been input that the computer has not recognised the user will be asked to enter an alternative word. If <return> is used then the word is replaced by a blank space - it is effectively deleted from the input line. If too many arguments are supplied the user is given the opportunity to delete the excess arguments. Alternatively if arguments are missing the user will be asked to input them.

Help information is supplied if the user requests it. This will say what arguments, if any, are required by the current command. Also, if any sub commands are valid in the context of the error these are listed.

For example, the input line


contains an error - an argument is missing after YROT. The program will give the user three options :-
Abandon      Don't execute any of the commands
Edit         The user can supply the needed argument
             and the new line is then processed.
Help         This will display the help information

     This command requires one numeric argument -
     the angle of rotation in degrees.


1.4: The HELP facility

The CAMERON HELP facility can be entered in one of two ways. Either once an error has occurred (as described above) or by requesting it directly. This second way of accessing HELP is achieved by entering HELP or ? at any point in the input line. If a command follows HELP/? then information is given on this command - otherwise information is given on the previous command (if any). If no HELP is available (because the command is not recognised) then the user is supplied with general HELP information. The only difference between HELP and ? is in the detail of the information supplied. Each command comes with a help information line. Entering ? will provide the user with the information line for the command on which you have requested HELP and a list of the sub-commands that are valid at this point. Entering HELP gives the same information except that the help line for each of the sub-commands shown is also listed. HELP will therefore provide the user with more detailed information than ? will.

Once the HELP information has been read the user may Continue or Abort. The later two options are the same as for Error Handling and are described above. Continue simply removes the word HELP or ? (and any following words) from the input line and the user can carry on as before.

1.5: Mouse Activation

The Mouse can be used to pick out atoms (and elements if a KEY is present). In some cases this is much quicker than typing on the keyboard - especially if the user does not know the names of the atoms concerned. The mouse cursor (an arrow) is present once an appropriate output device has been chosen.

For some commands the mouse is used for functions other than atom/element picking. In such cases - eg text positioning and labelling - the mouse is activated by typing MOUSE as a separate command.

1.6: General Input Syntax

When the atoms are in their initial state (ie no symmetry operators have been applied) they are referred to by their normal atom or element names. With commands that allow elements to be affected eg COLOUR, BALL you may use a * to refer to ALL atoms. For example CONNECT O * 0.0 3.0 will find all bonds between oxygen and any other atom within 3 angstroms. A * can also be used to refer to GROUP names (see DEFGROUP later).

Once pack operations have been carried out the atoms are identified differently. During PACK and ENCLOSURE the user is provided with information similar to :-

2 additional symmetry generated units.

The atoms generated will be referred to by suffixing their packnumber eg O1_2. These numbers can be shown by using LABEL GENERATED. Therefore, consider an asymmetric unit which contains N1 and O2. The following will be available after packing:-
N1_1      the single atom
N1        all N1 atoms in the packed structure
N         all the nitrogen atoms
N_2       all the nitrogen atoms with pack number 2
*_1       all the atoms with pack number 2

These pack numbered atom identifiers are produced by mouse clicking on the atoms concerned. The symmetry operation used to generate the atoms can be found from INFO PACKNUMBER.

When CAMERON is parsing the commands input it checks to see whether the next work on the line is a command or not. Only the first 4 characters of each word are significant. Therefore, the processor will not know the difference between the command COLOUR and the file COLOUR.PST. If you require the later then it must be enclosed in quotes - eg COPY "COLOUR.PST".