Design versus drafting
The User Interface
Design versus drafting

The single commandment

The most expensive component of a CAD system is the employment costs of its operator. This suggests that the fastest way to recoup the investment made in a CAD system is to increase operatorsí productivity.

There are two primary aspects of a CAD system that affect productivity: system functionality and the way it is applied to everyday draughting tasks. Functionality is undoubtedly important - and it always receives a lot of attention. The user interface is often regarded as less important in spite of its major bearing upon both efficiency and productivity.

DIAMOND's whole user interface is based on a single principle: that a system is merely a design or draughting tool. DIAMOND offers a fast, powerful and flexible tool, but regards itself as only a tool. A tool designed to assist users in discharging essential tasks, adapt itself to their habits and working practices, recognise short-hand and implicit requests in addition to long-winded and explicit ones, perceive what it's being used for, help whenever help is essential and put the computer's power at the user's disposal. DIAMOND is a tool that can be used swiftly and efficiently without spending too much time thinking about how it should be manipulated.

Free flowing syntax

DIAMOND's user interface allows all operators to work in a way they are familiar with. DIAMOND is a more intuitive system than most others. It doesn't require many pre-operation commands, nor call for required information in an arranged order. DIAMOND does not impose rigid command structures, new working habits, alien design techniques or any unfamiliar draughting methods on its users.

Instead, DIAMNOD allows users to input system commands and other relevant information based upon the way they tend to "think".

DIAMNOD tries, whenever possible, to determine what is asked for from the data each user chooses to specify, performing these tasks once sufficient information has been provided or informing the user why the specified instructions could not be executed.

This freedom of expression, provided throughout the system, allows users to concentrate on the work they do, not on how to drive the system or the best way to produce a presentable plot, and therefore contributes to enhanced productivity.

Textual displays

In order to reduce the total number of user commands and prevent unnecessary and wasteful repetitions, DIAMOND optionally and continuously displays a lot of relevant data regarding the working environment or operating parameters or the currently used entity attributes on the graphics screen.

This highly informative data display alters for available operation modes in order to accurately reflect current circumstances. It ensures that the user is constantly aware of the exact properties that will be allocated to newly created items or the circumstances in which existing ones will be amended. The specification of new parameters becomes necessary only if they differ from the displayed existing ones.

In addition, DIAMOND's textual displays can be used for command and parameter specification, as if they were standard menus. The selection of a displayed line of information indicates a wish to modify the displayed attribute. In some cases, DIAMOND offers the selected attribute alternative values, for example ON..OFF..ON for orthogonality, OPEN..CLOSED..OPEN for curve or polyline creation, or LEFT..CENTRE..RIGHT..LEFT for text justification. In others, it will activate a menu with a wider range of choices.

Command manipulation

Operating commands can be issued from the keyboard, menus, mouse, textual displays, macros, or any necessary combination of the various alternatives. The final choice always lies with the users, no attempt is made to sway them one way or the other.

Commands issued from the keyboard or within macros can be truncated at will. In the case of ambiguities caused by a truncated command, all relevant options are instantly relayed to the user in the form of friendly help messages. If such errors are corrected, there is no need to re-specify the valid parts of a command string. The same principle applies to specification of names.

Every command can be altered to suit individual habits. Similarly, every string of commands can be assigned to concise user specified synonyms.

All of DIAMOND's commands, prompts, messages and screen displays, as well as all of its tutorial and help information can be easily altered. They can be modified from one language to another, or alternatively within the same language, to facilitate the use of more familiar terms.


DIAMOND's simple yet clear menu structure provides for unambiguous communication between the user and the system. The current set of revealed
menus reflects the current operation mode, users are continuously offered only commands relevant to the task being performed. This means that menus act as a further help facility.

If required, diverse menu schemes can be operated by different users, or by a single user for different applications. Users can change the menu size or position or the colours used for its display.

Quite often, the commands offered by a menu are fixed. For example, options available in a creation mode such as create-line or create-arc tend to remain unchanged (unless a brand new version is released). However, manipulating text files used to store menu descriptions can modify fixed menus,
while new fixed menus can be interactively defined whenever required. Fixed menus can present their options by means of text strings, icons (pictures), or a mixture of both, and may include help messages to be displayed during command selection.

In addition to fixed menus, dynamic menus offer options depending on the circumstances surrounding their use. For example, menus for the selection of a new drawing according to the current project, specification of a new style or symbol part according to currently set libraries, referencing to a layer according to currently specified layer names, or the activation of a user utility according to the currently available macros. DIAMOND offers use of dynamic menus automatically generated on-the-fly just before being displayed, giving instant choices and ensuring that all available options are covered, valid and up-to-date. They will therefore include all relevant changes made by all the users who are working on the same network.

In general, DIAMOND does not expect operators to be familiar with the structure of their computerís disk or the exact location of the files they may require. Instead, any change to the current working environment, made by any user on a networked system, is brought to the attention of all users with the use of these dynamic menus. This makes certain that all available options are covered, valid and up to date.

Access to existing data

DIAMOND allows very fast access to the properties of existing geometry required for the execution of new operations.

For example, when it expects the input of a scalar magnitude, just pointing to a line instructs DIAMOND to use its length as the required input. When it expects the input of an angular magnitude, pointing to the same line instructs DIAMOND to use its slope, from the selection end towards the other one, as the required input. There is no need to spend any time obtaining information about properties of existing entities prior to submitting relevant parts as required input.

Default Data

DIAMOND offers sensible default parameters, objects and needed magnitudes instead of asking the user to repeatedly specify them in detail.

For example, if a curve needs copying, transferring, scaling or rotating, then DIAMOND offers its point of selection as the default origin for the required operation, expecting the user to specify their own origin only if different from the default one. Similarly, if offsets to existing items are created or arc fillets, hatches or symbols generated, DIAMOND will always use the last specified magnitudes (offset gap, fillet radius, hatch angles or symbol sizes), unless new ones are specified. New magnitudes need be specified only if different from their last specified value.

Help facilities

A brief on-line help facility is available at every stage of operation, showing all available options together with a brief description for each of them.

A similar explanation for all the accessible menu options is dynamically displayed while the cursor is located over a menu box.

Whenever the cursor is placed over the drawing area, its exact drawing location, taking into account the current datum point, grid system and scaling factors, is displayed.

Extensive on-line help is provided in the form of a full reference manual, providing a detailed description of the system's concepts, commands and facilities.

With the full range of cross-referencing and tutorials supplied, DIAMOND users have a wealth of very useful, friendly information available at the touch of a button.

The intuitive system

DIAMOND allows users a much greater degree of freedom of expression. A typical example is the differing methods adopted by CAD systems for the creation of new arcs. Most systems initially ask the user to specify an exact type for the created arc, for example an arc between three positions, two positions and a radius etc. After the type specification, they expect relevant data to be given in a predefined order. In contrast, DIAMOND does not need a type specification and allows the user to specify data in any required order. It then determines which arc is required from the data specified, which may include any combination of drawing positions as end points, centre point, radius, diameter, bulge factor, tangent, bounding angles, layer number, line style, arc segments etc. It will even detect commands that are not part of the arc specification but imply a wish perform minor tasks without an interruption to the arc creation, or permanently switch to another operation mode.

In addition, Diamondís rubber banding facility adapts itself to the specified data, showing an image of newly created entities once enough information is available. The definition of a new elliptical segment requires the specification of a centre point, major and minor axes, orientation angle, and two out of the three start, span and end angles. These parameters can be specified in any order, which means 2160 different combinations. Regardless of the chosen combination, DIAMOND will display a full or partial elliptical image once the data supplied, plus the assumption that the current cursor position will be used to specify the next input, allows it.

Adaptable & flexible

DIAMOND's graphical user interface enables users to customise their working environment to suit personal, project or organisational requirements. As a result, users of differing experience can use the system in the way that suits them best. Menu systems, screen colours and displays can be initiated and manipulated within DIAMOND's command structure. The logical language syntax allows any sequence of issued commands to be as elaborate or concise as each user requires. The amount of system prompting is directly related to user experience and preferred working habits.

DIAMOND powerful command language interpreter allows users to modify existing environment defaults and viewing parameters and to perform minor tasks in the middle of complex command sequences, then continue with the main task without any interruption.

The command syntax also allows free transfers from one mode of operation to another, without any need for a series of quit, exit and finish commands.

Dynamic displays

DIAMOND's dynamic display facility ("rubber banding") further assists users by showing the results of almost every operation before entities are created or modified.

When the most likely input is a position, the dynamic displays are continuously refreshed according to the cursor location, on the assumption that it will be used to indicate a drawing position. They combine detailed graphical display of geometry with textual display of its parameters.

If the display is part of numerical input (specification of length or angular values), then DIAMOND will show the magnitude currently indicated by the cursor location. This magnitude can then be entered by use of a mouse button, instead of being typed in full on the keyboard.

If no display is possible, as is the case at the beginning of an operation, a hint with regard to the most obvious command is shown instead. The amount of displayed data is always under full user control.

Advanced detection

DIAMOND rubber band facility incorporates an automatic entity detection system, based upon implicit cursor positions instead of explicit entity selections.

During the specification of new drawing positions such as snaps, moving the cursor above the drawing area will detect entities suitable for selection as part of the snap specification. Once an

entity has been detected, DIAMOND constructs a position dependent on its selection and incorporates it into the current rubber band display. In other cases, DAIMOND shows alternative effects of specified operations prior to any item selection or command execution. The final display of complex operations can therefore be accepted by a single mouse click. For example, during the creation of an arc fillet, moving the cursor above the drawing area will show fillet solutions determined by entities located under the cursor at any time. A displayed solution can be accepted without the need to select any items.

This very powerful tool helps to boost performance and removes the "trial and error" sequences traditionally associated with CAD systems.

Special keys

Common commands or full command sequences can be mapped to unused buttons on the computer's keyboard. The default mapping for all the available keys can be pre-recorded and, whenever beneficial, interactively modified during the working session.

In addition, users may select three favourite commands for each available mode of operation, and map them to the three mouse buttons available. The result is that many actions become just a matter of clicking mouse buttons, without a need to move the mouse or to leave the current drawing viewport. This facility dramatically reduces the number of menu selections required.

Mouse buttons

One of the most tedious tasks associated with using a CAD system is the constant need to shift the cursor from the drawing display area to various menus, in order to select commands or needed parameters. Work would be very much faster if operators could have all available commands at their fingertips.

DIAMOND is always conscious of unnecessary cursor movements and keyboard, mouse or menu hits. It was designed to be operated as effortlessly and quickly as possible. Usually, mouse buttons tend to have fixed meanings for all modes of operation. In DIAMOND, the default use of the mouse buttons is for specification of new drawing positions, latching on to existing ones, and selecting existing entities.

However, not all three functions are required in every available mode of operation. DIAMOND allows each user to map frequently used commands to the "free" mouse buttons, applying different sets of commands for different modes. In order to prevent confusion, the three preferences currently in use are constantly displayed on the screen at a user-specified position. This reduces the number of times the cursor needs shifting to a menu for the activation of a required operation.

DIAMOND pays attention to the exact cursor position when a mouse button is pressed. For example, if an offset to an existing entity is required, and the entity is selected with the cursor located to its right, then the offset will be generated on the right hand side of this entity. If an entity is selected for a move operation, and the new position immediately specified, the selected co-ordinate will be shifted accordingly.


DIAMOND's macros, which are previously recorded sets of commands, ease and simplify the execution of repetitive actions. They can also assist with operations entailing a significant number of numerical calculations. Decision making, based upon user input or previously stored information, can easily be accommodated.

DIAMOND's macro language executes the same commands and functions as those used during regular drawing operations. This means that all users can construct their own macros with minimal training.

Additional macro control statements, such as "case", "while", "for", "goto" and "if/else", and the ability to respond to the various macro prompts by selecting geometric entities, specifying features of existing geometry, supplying relevant measurements derived from a drawing, or using DIAMOND's full range of co-ordinate definitions mean that more and more powerful macros can be written just as easily.

Macros can be nested to any required depth and may be called with variable parameters, ensuring a powerful programming language.

The echo command can be used for recording commands and operations into a file, which can later be called from within DIAMOND to repeat those same tasks elsewhere. With the use of echo files, macro writing becomes a simple case of "start a recording", "perform all operations", and finally "stop the recording".

Macros can be, and indeed have been, written by many users, ranging from simple command repetitions to the automatic construction of whole drawing elements from variable user input.

Design versus drafting Design versus drafting Design versus drafting