SCHAKAL 99 - Tutorial Manual

Note Visualization of this text has been tested with Netscape 7.1 and MS Internet Explorer 6.0 . Any browser used for the reading of this text should be able to handle HTML 4.x including style sheets. Reading is optimal if the width of the browser window is adjusted to be about the width of the following bar.

Note: A beginner is recommended to first read the independent Primer Manual !
Note: For the 25 figures (plus explanations), see the files figures.pdf or tutorial.pdf .

Main table of contents

Introduction
Session 1: Basic Operations
Session 2: Distributed Command Files (DCFs)
Session 3: Some advanced options
Session 4: Printer drawings
Session 5: Crystallo-Graphics

Detailed table of contents

Introduction

0.1. Installation Hints
0.2. Command Language
0.3. Preface to Tutorial Sessions

Session 1: Basic Operations

1.1. Starting
1.2. Help / the On-line Manual
1.2.1. Help on control fields (CFs)
1.2.2. Access to the on-line manual
1.2.3. From tables to detailed information
1.2.4. Information associated to tables
1.2.5. Jumping to another page
1.2.6. Direct help on a certain command
1.3. Erasing Graphics & Text /
Typing commands
1.3.1. Clearing the screen
1.3.2. Typing a command
1.3.3. Removing the text window
1.3.4. Making the text window transparent
1.4. Handling files
1.4.1. File types
1.4.2. Canceling file selection
1.4.3. Typing the file name directly
1.4.4. Filtered file selection box
1.4.5. "Empty" file names
1.4.6. The plain 'Use' command
1.5. Drawing by commands
1.5.1. Fast drawings
1.5.2. Shaded drawings / cup models
1.5.3. How to cancel drawing
1.5.4. Setting the light source once more
1.5.5. A latently active command
1.5.6. Checking parameter settings
1.5.7. Checking for atom types
1.6. Atom codes and bond codes
1.6.1. Atom codes
1.6.2. Negative selection
1.6.3. Bond codes
1.6.4. Picking atoms with the cursor /
"graphics cursor mode"
1.6.5. Measuring distances and angles
1.6.6. Changing colours of atoms/bonds
1.6.7. Selecting atoms by a drawn polygon
1.7. Rotations and on-screen rotations
1.7.1. Aligning a "best" plane
1.7.2. Rotation by a specified angle
1.7.3. on-screen rotations
1.7.4. OSR via the keyboard
 

Session 2: Distributed Command Files (DCFs)

2.1. Using Distributed Command Files
2.1.1. Defined Modification of the EX1 model
2.1.2. DCF directories
2.1.3. DCF pseudonyms
2.1.4. The "group $"
2.1.5. Inspecting a DCF / Labeled partitions
2.2. Distance-dependent effects
2.2.1. Variable pellucidity
2.2.2. Variable darkness
2.2.3. Changing the model type
2.3. More atom/bond specific parameters
2.3.1. Modifying atom radii
2.3.2. Changing darkening functions
2.4. Colour
2.4.1. "Main Colours" and "Colour steps"
2.4.2. Changing the background colour
2.4.3. Hue, Saturation, Lightness
2.4.4. Modifying a main colour
2.5. Perspective and stereo
2.5.1. Switching to parallel projection
2.5.2. Bond stick tapering
2.5.3. Setting the view distance
2.5.4. Stereo drawings
2.6. Scale factor and position of drawing
2.6.1. Fixing the scale factor
2.6.2. Shifting the model relative to the CCS
2.6.3. Shifting the origin of the CCS

Session 3: Some advanced options

3.1. More about labeling
3.1.1. Modifying character and label style
3.1.2. Correction of label positions
(screen device)
3.2. Erasing a part of a screen drawing
3.2.1. Removing results of last action
3.2.2. Removing a polygon area
3.3. Making Command files of your own
3.3.1. Set up by means of the editor
3.3.2. Recording an "Echo file"
3.4. "Fourier" backgrounds
3.5. Saving & Restoring screen images
3.5.1. Saving an image (normal resolution)
3.5.2. Restoring an image
3.5.3. Saving an image (enhanced resolution)
3.5.4. Improving the quality of a SCHAKAL TIFF file
3.6. Generating non-coloured screen drawings

Session 4: Printer drawings

4.1. Printer devices
4.2. Printing
4.2.1. Writing a text file
4.3. Erasing a part of a printer drawing
4.4. Portrait format
4.4.1. Predefined patterns
4.5. Correcting label positions on a printer device
4.6. Going back to the screen device

Session 5: Crystallo-Graphics

5.1. Crystallographic data sets
5.2. Box sections and spherical sections
5.3. The EXpand region
5.4. Customizing bond pattern /
Surface models
5.5. Complete building blocks (molecules)
5.5.1. Addition of Hydrogen bonds
5.6. Packing diagrams
5.6.1. Addition of Hydrogen bonds
5.7. Summary

Introduction

SCHAKAL 99 is a computer program for the graphic representation of molecular and crystallographic models. A first version of this program has been developed in 1979 on a Sperry - UNIVAC computer. The program is written in FORTRAN 77 (exception: the interface to X-Windows which is written in C). To check for differences between SCHAKAL 99 and earlier versions, see on-line manual (cf. chapter 1.2.), table --> 98.

Table of Contents

0.1. Installation Hints
0.2. Command Language
0.3. Preface to Tutorial Sessions

0.1. Installation Hints

a) MS-Win version

The MS-Win version has been compiled/linked with the FTN95 compiler system of Salford software. After unpacking of the downloaded files the installation program setup.exe installs the program.

Use the Windows file explorer to link the icon sch99.ico to the file sch99.exe. At a later date you might check/modify the file sch99win.ini.


For more information, see the file readme.pc.

b) UNIX/X-Windows version:

Unpack the downloaded files into a directory called "s99maindir", here. Inspect the files readme.xw and makefile.x to learn for possibly necessary modifications. Then type ...

chmod +x [./]mschak
[./]mschak (or: sh [./]mschak )

mschak sets up the different directories, moves the corresponding files and tries to compile/link the program. The program can be started by typing

s

Note that the program will only react to user action, if the graphics window is completely visible on the screen.

In a multi-user environment, any user should install his/her own SCHAKAL 99 user directory. From his/her home directory he/she should give the following command and then specify (on request) a hitherto non-existing directory as his/her SCHAKAL 99 user directory):

s99maindir/uschak

Any user should check (and possibly modify) the files editt.sh and cppy#.sh in his/her SCHAKAL99 user directory. After installation, or at a later date, also default path names for the different file types might be modified in the file sch99.ini . For more information, see the file readme.xw.


0.2. Command Language

With respect to user interaction SCHAKAL differs from most other contemporary software: SCHAKAL is mainly controlled by input of "commands" each of which causes a specific action of the program or a setting of a certain switch or parameter. There are three alternative ways to input a command into the program:

Almost all SCHAKAL commands obey the following general syntax (note: most of the items given in the next line are optional!):

LL1 LL2 sep p1 p2 p3 AC1 .. ACn BC1 ... BCn

Table 1: Meaning of the components
String Meaning Example
LL1 1st label word (usually a verbum), may generally be abbreviated to 1 letter CHANGE
LL2 2nd label word (usually a substantive), may generally be abbreviated to 1 letter Size
sep a separator character which gives the command a special meaning, e.g. "!" or "*" /
p a parameter value 2.2
AC an atom code representing one or more atoms of the model C23
BC a bond code which is two atom codes connected by the character "=" : AC1=AC2 C=O11

An atom/bond code may be preceded by the "negative selection" operator "(" if it is not the first atom/bond code in a command.

All items except the first label word LL1 are optional. In general, a certain LL1 is specific for a certain class of commands. Table 1 contains most of the different 1st label words and the names of the control fields (CF) in the 1st row of the GUI by which the corresponding commands can be mainly accessed .

(Note: there is another type of "commands", which may be used to control the on-line menu. These commands consist of a number or of a special single character (see section 1.2.))

Table 2: 1st row CFs, 1st label words and their meaning
No. CF name 1st label word(s) general meaning
1 USE USE use (read or write) a file
2 EDT EDIT
WRITE
edit (modify) a file write graphical text
3 WRT WRITE label atoms by names, coordinates, etc.
4 XQT XQT draw something (except text)
5 ROT ROT
ALIGN
ORIENT
rotate the model or a part of it
align the model or a part of it
rotate the model on-screen
6 LST LIST give (list) some information
7 GEN GENERATE operate a "main switch"
8 G/S GENERATE / SET more main switches / more general drawing parameters
9 SET SET set general drawing parameters
10 MGN MAGNIFY
MODIFY
BROADEN
set size parameters
set darkness, contrast, shadow intensity
set line widths
11 CHG CHANGE modify atom/bond specific parameters or flags
12 DEF DEFINE define things by atoms
13 FLT FILTER Filter atom/bond codes by certain criteria
14 ADD ADD
KILL
TRANSFORM
add an atom or bonds
remove atoms/bonds
modify connection scheme
15 TRL TRANSLATE
INVERT
shift the model or a part of it
invert the model or a part of it
16 MSC KILL
PUSH
ZET
erase the screen or parts of a drawing
erase text window or make it transparent
operating system and GUI commands
none none Y
HELP
special command file commands
get help

Examples
GENR Cups switch for space-filling [="cup"] models
SET Light  35 45 position the light source
CHGE Colour  3  Cl H=C use colour no. 3 [=green] for Cl atoms and bonds betw. H and C
LIST Atoms  ? give information on atoms to be picked by mouse
DEFN Group  7  Pb1 S3 define the numerical group 7 by the specified atoms
DEFN $  gg7 #14 define the special group named "$" by the atoms of the numerical group 7 and atom no. 14 in the atom list
XQT Xqt  tt ($ $=C draw all atoms and bonds except the atoms which have been assigned to group "$".

Note
  • All label words can be abbreviated to their 1st letters if the commands are typed at the keyboard.
  • Letters in any part of a command can be upper as well as lower case.


0.3. Preface to tutorial sessions

Chapters 1. to 5. of this manual describe five tutorial program sessions. Performing these sessions is supposed to lead to a basic knowledge of how to work with SCHAKAL 99. Users who are interested in more details are encouraged to read SCHAKAL's hierarchical on-line manual (see 1.2.). Numbers given after an arrow (-->) generally refer to the corresponding items within this on-line manual.

Throughout this tutorial, it is assumed, that SCHAKAL 99 has been installed correctly (see section 0.1. and files readme.xxx ) and that the original system files sch99.ini and sch99.mn0 and the original distributed command files *.scf are accessible by the program under their original names. The distributed data sets ex*.dat will be used as demonstration examples. Below, input which should be given by the user, is usually typed left-justified and enclosed within two blank lines. There are two cases:

a) Input generated via the mouse ...

... is printed as follows: the name of the control fields (CFs) which have to be clicked to produce a certain action are given sequentially. Each CF name is enclosed in {curly brackets}, one of two or three (differently coloured) parts of the CF may be specified as L (= left), C (center), or R (= right); two indices specify the position of the CF within the GUI. An explanation may follow in parentheses. Example:

{ otherL }2,9

means to click the left (= green) part of the CF labeled "other" which is in row 2 and "main" column 9 of the graphical user interface (GUI). In most cases a code of this type is accompanied by an image which additionally helps to locate the CF within the GUI.

If a part of text output produced by the program should be clicked by the mouse (instead of a CF), the index is "Text":

{ 2 Draw Someth }Text

b) Input typed at the keyboard ...

... is printed left-justified without curly brackets:

ex2

or within the text enclosed in 'single quotation marks'. A typed line has to be terminated by a <RETURN> [or by clicking { [OK] }3,3]. Such a <RETURN>, however, will only be accounted for in the following text, if it is the only input of a certain line (i.e., for "plain" <RETURN>s). As has already been done here, special keys of the keyboard are generally specified by their names, given in capital letters and surrounded by two brackets, e.g. <ESC>, <LEFT ARROW>, etc. If two keys appear side-by-side, they will have to be pressed concurrently (e.g. <SHIFT> <UP ARROW>).

User's input should be carefully given as specified, because there is a certain probability, that a faulty input will unpredictably influence parts of the residual session (however, a faulty command can n o t cause any "damage"). Mistakes in typed input may be corrected using the <BACKSPACE> key or the CF { <-- }4,16, before the line in question is sent to the program by a <RETURN>.

Back to Top


Session 1: Basic Operations

Main TOC

Table of Contents

1.1. Starting
1.2. Help / the On-line Manual
1.2.1. Help on control fields (CFs)
1.2.2. Access to the on-line manual
1.2.3. From tables to detailed information
1.2.4. Information associated to tables
1.2.5. Jumping to another page
1.2.6. Direct help on a certain command
1.3. Erasing Graphics & Text /
Typing commands
1.3.1. Clearing the screen
1.3.2. Typing a command
1.3.3. Removing the text window
1.3.4. Making the text window transparent
1.4. Handling files
1.4.1. File types
1.4.2. Canceling file selection
1.4.3. Typing the file name directly
1.4.4. Filtered file selection box
1.4.5. "Empty" file names
1.4.6. The plain 'Use' command
1.5. Drawing by commands
1.5.1. Fast drawings
1.5.2. Shaded drawings / cup models
1.5.3. How to cancel drawing
1.5.4. Setting the light source once more
1.5.5. A latently active command
1.5.6. Checking parameter settings
1.5.7. Checking for atom types
1.6. Atom codes and bond codes
1.6.1. Atom codes
1.6.2. Negative selection
1.6.3. Bond codes
1.6.4. Picking atoms with the cursor /
"graphics cursor mode"
1.6.5. Measuring distances and angles
1.6.6. Changing colours of atoms/bonds
1.6.7. Selecting atoms by a drawn polygon
1.7. Rotations and on-screen rotations
1.7.1. Aligning a "best" plane
1.7.2. Rotation by a specified angle
1.7.3. on-screen rotations
1.7.4. OSR via the keyboard

1.1. Starting

Start the program the same way you already did at the beginning of the primer session:

UNIX: from a UNIX shell (with the path including the SCHAKAL 99 main directory) type ...
s
.
MS-Win:
either ... (double-)click the icon sch99.ico on the desktop (if it is there)
or ... (double-)click one of the two files s.bat or sch99.exe in the SCHAKAL 99 main directory (MS-Explorer)
or ... in an MS-DOS box (with the path including the SCHAKAL 99 main directory) type ...
s

Then type

<RETURN>

The SCHAKAL window is opened, its contents consisting of the GUI (top and left parts) and the "drawing area".

1.2. Help Functions and the On-line Manual

1.2.1. Help on control fields (CFs)

As already mentioned in P.3. you can get a brief information on most of the control fields (CFs) of the GUI by clicking (an individually coloured part of) the CF with the right mouse button. Try this once more by clicking with the right mouse button ...

{ XQTL }2/3,3  (1)
1
2

(As was the case in the primer session, "L" means "left part" of the CF.)
A short description of the function of the "red star" in the CF { XQT } is printed.

1.2.2. Access to the on-line manual

More detailed information is generally available from SCHAKAL's hierarchical on-line manual which consists of "Tables" and "Infos". If you type '0' or if you click

{ 0 }4,4 (2)

"Table 0" of the manual is displayed on the screen; again, the 4th row of the GUI now contains some additional CFs with single characters which may be used to control the manual (see below). "Table 0" is something like a "table of contents" of this manual. The figures and terms displayed in the first two columns of the table refer to the 9 chapters of the manual.

1.2.3. From tables to detailed information

Now, type '2' or click any character of the following Text:

{ 2 Draw Someth }Text

to get a display of "Table 2" which is a "table of contents" of chapter 2. The number 5 in the first column refers to the section "Draw Lines". Type '5' or click any character of

{ 5 Draw Lines }Text

to get a display of Table 25, which lists a group of commands controlling the drawings of lines, arrows, etc. One of the commands is 'X F' (no. 6). Type '6' or click any character of

{ 6 Frame I }Text

to receive information on this command (which you don't have to read by now). Note, that this information is assigned to the number 256 (which means "6th item of table 25"). A 3-digit number means (in this context) that we have reached the "leaves of the tree", i.e., from such a position we can only go inwards in the hierarchical tree, not outwards.

1.2.4. Information associated to tables

To go one level inwards, type '+' or click

{ + }4,6 (1)
1
2

to move to the "next-upper-level" table; i.e., "Table 25" is re-displayed. Now, type '-' or click

{ - }4,5 (2)

["table/info toggle switch"] to have "Info -25" (information associated to "Table 25") displayed.

1.2.5. Jumping to another page

The last line of Info -25 contains the string "(--> 545)" which is a hint to another item of the manual. Click

{ --> 545 )Text

to have the corresponding information displayed. The last line of the page contains the string "(--> 471)". Type '471' or click

{ --> 471 )Text

to have the corresponding information displayed. The last line says " continue ? >>>", which means that the information consists of more than one sub-pages. The next sub-page is accessed by typing <RETURN> or by clicking

{ [OK] } (1)
1
2

There is again a " continue ? >>> " at the bottom; the next (and last) page can be accessed as described before:

<RETURN>

To have information no. 471 re-displayed from the beginning, type '=' or click

{ = }4,6 (2)

With "<" and ">" you could go backwards and forwards within the series of pages which already have been displayed. "99" leads to the index of the manual. The item numbers given there may also be clicked with the mouse.

1.2.6. Direct help on a certain command

Finally, let's try to get information on a certain command directly, for example, the 'Xqt Test' command. To this end, first click (with "C" meaning "central part") ...

{ XQTC }1,4 (1)
1

2+3

then click, with the right mouse button the right part ("R") of the following CF in the "command column":

{ TestR }16,2 (2)

As expected, a brief explanation is given. Now click the CF a second time at the same position as before, again with the right mouse button:

{ TestR }16,2 (2)

This generates the command 'H X T' which is an abbreviation for 'Help Xqt Test' (note that 'Help..' commands are the only commands with three label words !). First, the upper-level table with respect to the 'X T' command is displayed (containing a brief explanation of 'X T'); by typing <RETURN> or by clicking

{ [OK] }2/3,3

you continue to detailed information on the command. - Once you have read the information, click the right part of the CF labeled 'Test', this time with the left mouse button.

{ TestR }16,2 (3)

The screen is erased and SCHAKAL generates a display of its current [= default] screen colour map consisting of 19 "colour steps" per 13 "main colours" plus white and black (the latter presently not visible due to the black background colour).


1.3. Erasing Graphics & Text / Typing Commands

1.3.1. Clearing the screen

We now want to repeat the input of the 'Xqt Test' command, this time, however, by using the keyboard instead of the mouse. To be able to see the effect of the repeated command, we first clear the screen with a 'Kill Screen' command:

{ K }2,2.5
X

Note: the program will in most cases clear the screen automatically before starting a new drawing.

1.3.2. Typing a command

The test drawing (colour map) will now be reproduced by launching the 'Xqt Test' command via the keyboard. Simply type

x t

followed as usual by <RETURN> or by { [OK] }.

Note With respect to typing, all label words of SCHAKAL commands can generally be abbreviated to their first letter. Furthermore, SCHAKAL is not case-sensitive with respect to typed input(exceptions are strings --> 913).

1.3.3. Removing the text window

Now, click another zero:

{ 0 }4,4 (1)
1
2

The text "window" will now cover a part of the test drawing. In section P.4. you already learned how to remove the text window by means of a 'Push' command:

{ P }2,2 (2)

1.3.4. Making the text window transparent

Per default, the text window is opaque. With 'Push Pellucid', it can be set to become pellucid (= transparent). This command is generated by clicking:

{ t }3,2 (1)
1
2

Now activate Table 0 for another time:

{ 0 }4,4 (2)

The text window is now transparent. Visibility of graphics is improved, but readability of text is clearly worse than before (on backgrounds other than the 'Xqt Test' drawing it's usually better). With another

{ t }3,2 (1)

you switch back to the opaque form of the text window. Check this by clicking another

{ 0 }4,4 (2)

1.4. Handling files

1.4.1. File types

In the SCHAKAL context files are classified into different file types: "Input files", "Save files", etc.,see table 1.1.

Table 1.1.: File types
File type Commands action
Input file 'Use I','Edit I'
'Add I'
load or edit a structure data file
Xtaldata file 'Use X','Edit X' load or edit a crystallographic data file to be translated into an Input file
Output file 'Use O' write a structure data file
Command file 'Use C','Edit C' execute or edit a file containing SCHAKAL commands
Echo file 'Use E' open a file to record SCHAKAL commands
Printer file 'Use P' open a file to store graphics to be printed
Writing file 'Use W','Edit W' write or edit a file with text
Save file 'Use S' save the screen image to a file
Restore file 'Use R' restore a screen image from a file

.

As in the primer session we will now use the "Input file" ex1.dat to load the geometry of this organometallic molecule via the 'Use Inputfile' command. Click:

{ USEC }1,1

(1)

{ InputfR }6,2 (2)

1
2

As was the case in the primer section P.5., SCHAKAL requests for the name of the Input file containing the data set. Whilst there we used the CF { * }4,4 to open a "file selection box" we will now try some other possible options. These allow in many cases to manage things faster than would be possible via the "file selection box".

1.4.2. Canceling file selection

You may generally cancel input of a file name by typing "n", or by clicking

{ n }4,3 (1)

1
2

Note Users who generally prefer to use the file selection box to open files (and therefore are not interested in shortcuts) may continue with section 1.5. .

1.4.3. Typing the file name directly

Let's try it once more:

{ InputfR }6,2 (2)

This time, type the file name:

ex1

The data file somepath|ex1.dat is loaded. Some information on the data set is output by the program. Note, that the appropriate path (called somepath , here) and extension ( .dat ) have been added automatically to your file name ( ex1 ) by the program. somepath and .dat are specified in a 'Use Inputf -1' command in the file sch99.ini. "ex1" is called the file's name core.

To draw the model we don't use one of the DCFs this time, but the single command 'Xqt Quick' instead by clicking

{ XQTL }1,4 (1)

More about drawing is given in the next section.

1
2
3

1.4.4. Filtered file selection box

Let's execute the 'Use Inputfile' command to load the data file once more, this time using the "file selection box" (as in the primer session) in a slightly modified manner.

{ InputfR }6,2 (2)

Now type (without <RETURN>, this time !!)

ex

and then click

{ * }4,4 (3)

The list of file names in the "file selection box" is restricted to those, the name cores of which start with "ex" (it will be identical to the list obtained in the primer session, if all file names in the Input file directory start with "ex"). Load the file once more by selecting it from the displayed list.

Note Once a "wildcard" expression like "ex*" has been input as a file name it can in the following be substituted by the file name "#" (look for the extra CF in the 4th row of the GUI, below).

1.4.5. "Empty" file names

We now execute the 'Use Inputfile' command another time, this time using an "empty" filename (we first clear the text window):

{ P }2,2 (1)
{ InputfR }6,2 (2)

We now input an "empty filename" by simply clicking

{ [OK] }2/3,3 (3)
1
2
3

The text output (identical to the one before) shows that the same file ( ex1.dat ) has been loaded again.

Note An "empty" file name generally means: re-use the file of the desired type which has been specified the last time by the user.

Note: The rules described In sections 1.4.1. to 1.4.5. apply to all file types used by SCHAKAL.

1.4.6. The plain 'Use' command

As has already been teached in the primer section P.8., there is an even faster way to re-load ex1.dat: remove the text window and click the un-labeled yellow CF on top of the command column:

{ P }2,2 (1)
{ }5,1/2 (2)

As you already know, this generates a plain 'Use' command

1
2
3

Note A plain 'Use' command causes the last file of type Input file, Command file, or Writing file (whichever has been specified last explicitely by the user) to be re-used.

In this case it's the Input file ex1.dat which has been specified last and which is therefore now re-used, i.e., re-loaded.

Please keep in mind, that the plain 'Use' command can anytime be executed by clicking the red star in { USE }1,1 (3), as can be seen from the fact that this red star also appears in the unlabeled line { }5,1/2.

Note: The use of "=" as a file name is described in sections P.15., 3.5., and 5.1..


1.5. Drawing by commands

1.5.1. Fast drawings

While in the primer session, we produced drawings via distributed Command files (DCFs) exclusively (e.g. P.6.), we will now draw with the help of single commands. E.g., to obtain another coarse, but fast, drawing of the EX1 molecule, we use the 'Xqt Quick' command, explicitely (note: "Xqt" is an abbreviation for "Execute"):

{ XQTC }1,4 (1)
1
3

2

{ QuickR }7,2 (2)
The CPU time needed to calculate the drawing is printed; such information will often be output when an action has been completed . The CF labeled "Quick" contains the red star; this shows that it was this 'Xqt Quick' command which was performed when you clicked { XQTL }1,4 (red star) further above.

Now, we want to make two drawings of some higher quality. With a plain 'Xqt', you may generate an outline drawing of the molecule ("outlines" is the default display style for plain 'X' drawings). As the green star in the command column shows, the plain 'Xqt' command is anytime available from the 1st row of the GUI:

{ XqtR }1,4 (3, above)

1.5.2. Shaded drawings / cup models

To generate a shaded drawing by means of a plain 'Xqt' command, you first have to use the 'Gen Shading' command (which operates a so-called "main switch", namely a switch from "outline drawing" to "shaded drawing").

{ GENL }1,7

(1)
{ XQTR }1,4 (2)
1
2

We now want to replace the ball-and-stick model by a "cup model" (space-filling model). This is done by the 'Genr Cups' command. To use this command (which is part of the { GEN } group), we'll simply type it on the keyboard:

g c

{ XQTR }1,4 (2)

1.5.3. How to cancel drawing

As happened before, at the beginning of drawing a red control field labeled "<Esc>" (2, below) appears which should not be confused with the control field labeled "Esc" (see below).

Note Whenever { <Esc> } appears, you may cancel the action which is performed presently by pressing the <Esc> key of the keyboard (but not by clicking this CF !!).

Let's try it:

{ XQTR }1,4

(1)
<Esc>
1
2

Drawing stops immediately or after a little while. Now let's switch back to the ball-and-stick model with a 'Genr Ballstick' command:

g b

{ XQTR }1,4

(1)

1.5.4. Setting the light source once more

In the primer session you already learned how to position the light source for shaded drawings. Let's do it again by clicking

{ SETC }1,9 (1)
1
3

2

{ LightL }11,2 (2)

As before, two parameter boxes appeared in the 2nd and 3rd rows of the GUI. Instead of using the mouse, we will input the two desired parameters (say, 55 degrees and 25 degrees) via the keyboard this time. Simply type

55 25

(thus producing the command 'Set Light 55 25' in the text window) and finish, as usual, by '<RETURN> or { [OK] }. Then click

{ XQTR }1,4 (3, above)

to see the effect. You can update the values in the parameter boxes in the 2nd and 3rd rows with another

{ LightL }11,2 (2, above)

1.5.5. A latently active command

Now, modify the values in the two parameter boxes via the mouse until you have the new values 36 and 50. Then click

{ [OK] }2/3,3

(1)
{ XQTR }1,4 (2)
1
2

The two parameter boxes are still open. Increase the 2nd value to 95 and execute the corresponding 'Set Light ..' command by again clicking

{ [OK] }2/3,3

(1)
{ XQTR }1,4 (2)
1
2
3

Note that the 'S L' command remains "latently activated" on the GUI as long as its parameter boxes are displayed in the 2nd and 3rd row. Any modification of the parameters followed by { [OK] } will execute another 'S L ..'. As you already know, you may desactivate the command by clicking

{ }2/3,2

(3)

Note The two unlabeled grey CFs will generally clear the GUI (i.e. reset its default state) and desactivate a latently active command (if any).

1.5.6. Checking parameter settings

The current settings of most "switches" and general drawing parameters may anytime be checked by means of the 'List Params' command:

{ LSTL }1,6
X

The output consists of two sub-pages. With

{ [OK] }2/3,3 (or <RETURN>)

you may continue to the next sub-page.

Switches and parameters are given in the context of the commands which control them. You will see, that the parameter values 36 and 95 appear within the 'Set LIGHT' command. A more compressed (1-sub-page) output can be obtained with the 'List Quick' command.

1.5.7. Checking for atom types

The EX1 molecule is an organo-iron cluster molecule. There are several ways to verify, that the molecule actually contains iron atoms as well as C, H, N, and O atoms:

a) you might have a look at the data set ex1.dat itself. This is possible by means of an 'Edit...' command which makes a local or built-in editor open a file. A plain 'Edit' opens of all Input-, Command-, or Writing files the one which has been specified last by the user (cf. plain 'Use' command, section 1.4.6.). In this case, the Input file ex1.dat is the one and only. Click

{ EDTL }1,2
X

to generate a plain 'Edit' command which lets the editor open ex1.dat (note: you also might have used an 'Edit Inputfile' command and specify an "empty" file name, cf. 1.4.5.).

You will see, that ex1.dat contains a number of labeled lines. These are called by the old-fashioned term "cards" (to help distinguish this type of program input from the other type ("commands")). Each card starts with one label word which generally could have been abbreviated to the first two letters.

The file contains a title (TItl card), information on the cell parameters to which atom coordinates refer (CEll card; no parameter means: cubic cell with a = 1 A), the names and coordinates of the molecule's atoms (ATom cards), and an ENd card. If you have inspected the file, cancel the editor session with the appropriate button, command, or key(s).

b) you may use the 'List Model' command to get information on the number of atoms of the different chemical types (lower half of the text window):

{ LSTR }1,6 (1)
1
2
3

c) you may label the atoms on the screen by their "names". In the primer session we did this by means of the CF { w } in a DCF directory. Here we will use the 'Write Label' command:

{ XQTL }1,4 (2)
{ WRTL }1,3 (3)

The message "LPS was cleared" appears in the 4th row of the GUI. An optimization procedure is performed which determines more or less reasonable positions for the different labels; the relatively fast default optimization level 12 is used. The procedure is finished with the message: " 41 optim., 0 from LPS". We will come back to labeling in session 2.

d) The molecule has been displayed with default colours: white (colour no. 0) for H, grey (1) for C, red (2) for O, green (3) for N, blue (4) for Fe, and brown (6) for the bond sticks. With the 'List Atoms' command you can check for most of these assignments:

{ LSTC }1,6 (1)
1

2
3
.

{ AtomsR }12,2 (2)

Information on the molecule's atoms is listed. The second last column (labeled "C") contains the colour numbers. Other columns except atom names are not of interest, presently.


1.6. Atom codes and bond codes

Many SCHAKAL commands allow so-called atom codes (AC) or bond codes (BC) to be specified. To get an idea about the different possibilities to specify atoms/bonds, you should have a look at table 92 of the on-line manual, first. Type '92' into the line displaying ">>>" or "continue ? >>>" :

92

You don't have to read every detail by now, just get an impression.

1.6.1. Atom codes

The 'List Atoms' command may be used to practice the use of ACs/BCs a little. Click

{ AtomsL }12,2 (3, above)

Note If you accidentally clicked { Atoms ? }14,2, the GUI now contains the CF { Esc }4,3. Click the latter and then click the correct CF { AtomsL }12,2. .

The CFs in the right part of rows 2 and 3 of the GUI turn light blue and display some (parts of) atom codes now. You may inspect the meaning of the different fields by clicking them with the right mouse button. Then click (with the left mouse button)

{ Fe }2,14

(1)
{ [OK] }3,16 (2)
1
2

Information on the four Fe atoms of the structure is given. The message "4A" appears in the 4th row of the GUI (at the right) to state that 4 atoms of the model matched the atom code "Fe". In the following exercise we will list the atom Fe4 only:

{ Fe }2,14

(1)
{ 4 }4,12 (2)
{ [OK] } (3)
1
2
3

1.6.2. Negative selection

Next we list all atoms of the model except the C and H atoms which is accomplished by means of a 'List Atoms # (C H' command (with "#" meaning "all atoms"):

{ # }2,12

(1)
{ ( }2,12 (2)
1
2
3
4
5
6

{ C } (3) { H } (4) { [OK] } (5)

If you accidentally click a wrong CF you can erase the corresponding item from the command line by using the <BACKSPACE> key or by clicking { <-- }4,16 (6).

1
2
.

Again the 'L A' command remains "latently activated" as long as the atom codes are displayed in the 2nd and 3rd rows of the GUI.

1.6.3. Bond codes

Now let's do a similar thing with the 'List Bonds' command. This command requires the use of bond codes. A bond code simply consists of two atom codes connected by a "=".

{ BondsL }13,1 (1, on the left)

Groups of atom/bond codes to be input are from now on given here within only one single pair of curly brackets. They can be generated via the mouse (as above) or typed character by character (with curly brackets omitted, of course). If you are using the mouse, you don't have to care for blank spaces (they are generated automatically)

E.g., list all Fe-Fe bonds and all bonds to H:

{ Fe=Fe H=# } { [OK] }

List all bonds to Fe1 except any Fe-Fe bonds:

{ Fe1=# ( Fe=Fe } { [OK] }

The number of bonds which matched the specified bond codes is given each time as "nB" in the 4th row of the GUI.

1.6.4. Picking atoms with the cursor / "graphics cursor mode"

Now let's redraw the molecule and go back to the 'List Atoms' command:

{ XQTL }1,4 (red star)

{ AtomsL }12,1 (2, above)

{ ? }2,11 (1)
{ [OK] }2,11 (2)
1
2

Actually, we executed a 'List Atoms ?' command. "?" used as an atom code means that atoms are to be picked by means of the mouse. While the mouse cursor was serving the GUI up to now, it is now temporarily serving the program's "working routines". This mode is called "graphics cursor mode", here.

Note Whenever "graphics cursor mode" is on, a CF labeled "Esc" (without <brackets> !!) appears in the 4th row of the GUI. Clicking this CF (or typing <Esc>) will terminate this mode (all other CFs will not respond to clicking as long as graphics cursor mode is on).

UNIX: Additonally, the mouse cursor turns into a crosshair cursor.

Now, click any atom with the left mouse button. The selected atom's name and a number indicating its position in the program's atom list ("atom list number") will be printed. Go to some other atoms and repeat the procedure. If you click an atom for the second time, the selection of this atom will be cancelled (indicated by a negative atom list number).

Note Whenever "graphics cursor mode" is on (and only then), the cursor may also be moved vertically/horizontally by the keyboard's arrow keys. You may use <SHIFT> <UP ARROW> etc. to move the cursor for only one pixel.
Clicking the left mouse button may be replaced by typing <SPACE BAR>
Clicking the right mouse button may be replaced by typing <m>

UNIX: This may not work correctly under certain UNIX systems, see file readme.xw

To terminate "graphics cursor mode" now, type <Esc> or click

{ Esc }4,3
X

The atoms you have picked will be listed. Note that generally, when atoms or bonds are picked via the atom code "?" (or the bond code "?=?"), the desired action is performed to all the picked atoms (bonds) only at the end of the picking procedure (i.e., when graphics cursor mode is left via "Esc".

1.6.5. Measuring distances and angles

B
A
.

An exception to this is the 'List Geometry ?' command. This command could be launched from the { LST }1,6 group (A). It has also been placed as a "command-line control field" (by a 'Zet Menu ...' command in sch99.ini) onto the narrow dark green bar to the left of the drawing area (where it is available anytime):

{ LG }8,3 (B)

When you now pick a number of atoms with the cursor, additionally distances (to the last atom), angles (with the last two atoms), and dihedral angles (with the last three atoms) are printed instantly. Click an atom with the right mouse button to start a new series. When you leave cursor mode, no additional action will take place, afterwards. Click:

{ Esc }4,3

1.6.6. Changing colours of atoms/bonds

To make the structure of the iron complex more comprehensible, we will now change the display colour for some of the bonds by means of some ('Change Colour' commands 'Change..' commands are generally used to modify atom/bond specific parameters). SCHAKAL's 13 "main colours" are addressed by their "colour numbers" (for more information, see session 2). With ...

1
2
3
{ CHGC }1,11 (1)
{ ColourL }5,1 (2)

a colour box (instead of a parameter box) and again the field of atom codes appear in the 2nd and 3rd row of the GUI. In the case of 'Change...' commands, the order with which things are clicked is of significance: Let's first click "Fe" first:

{ Fe }2,14 (3, above)

you will see that the number 4 is displayed in the colour box to indicate that colour no. 4 [blue] is presently assigned to the Fe atoms (note that the colour no. of white is 0). Now click ...

1
2
3

{ = Fe }2,14 (1, 2)

the number is changed into 6, as colour no. 6 [brown] is assigned to Fe-Fe bonds presently. By clicking one of the colour buttons we could change the colour of the Fe-Fe bonds. We don't do this right now, but try the other order of clicking things. To do this, we first should re-generate the 'C C' command:

{ ColourL }5,1 (3, above)

Now we first click a coloured button within the colour box. In this case the colour number doesn't change dynamically with the clicking of atom/bond codes. In detail, we want to assign colour no. 5 (yellow) for the Fe-Fe bonds, colour no. 7 (violet) for the C-C bonds except C1-C, and colour no. 9 (cyan) for the C-O bonds:

{ yellow } { Fe=Fe } { [OK] }
{ violet } { C=C ( C1=C } { [OK] }
{ cyan } { C=O } { [OK] }

Let's now clear the GUI and check the results:

{ }2/3,2 (1)
{ XQTL }1,4 (2)
1
2

The different parts of the molecule can now easier be distinguished from each other.

1.6.7. Selecting atoms by a drawn polygon

Finally, we should try another mode of addressing atoms/bonds. First we select a group of atoms/bonds by drawing a polygon around them. This is done with the 'Xqt Line' command (note: the next two clicks could [probably] be replaced by { XL }10,3 (A)):

{ XQTC }1,4

(1)
{ LineR }18,2 (2)

"Graphics cursor mode" is switched on (see above). By clicking the left mouse button at different positions you may now draw a grey polygon around, say, the phenyl ring or some other group of atoms. The polygon doesn't have to be a closed one. Then click

{ Esc }4,3

(3)
1
2
3
4
A

Atoms within the polygon may now be addressed via the atom code "rg" (for "region"); if the polygon is not closed, the program will close it virtually by connecting its first and last corners.

We now will use an 'Xqt Xqt ACs BCs' command (AC/BC = atom/bond codes), which allows to draw only a part of all atoms and bonds. To this end click

{ XQT }6,2 (4, above)
As an 'X L' polygon is on the screen, the atom/bond codes CF array (2nd ad 3rd rows of GUI) now contains the atom code 'rg' (X).
X

We now will complete the 'Xqt Xqt rg rg=rg' command:

{ rg rg=rg } { [OK] }

The atoms/bonds within the polygon are now shaded exclusively (shaded, as the 'Genr Shading' command given at the beginning of section 1.5. is still in effect).

Note The atom code 'rg' is only valid as long as the corresponding polygon is drawn on the screen. It should not be mixed with other atom/bond codes within one command; it is therefore often reasonable to save the selected atoms by means of a 'Define $ rg' command (see section 2.1.4.).

Atom/bond codes may be filtered by several filters (--> 68).


1.7. Rotations and on-screen rotations

As already mentioned in the primer session, the default orientation of the EX1 molecule is not a very attractive one. You may change it by means of 'Rotate..', 'Align..' or 'Orient' commands.

1.7.1. Aligning a "best plane"

For example, you may align the molecule in a way, that the best plane defined by the four iron atoms is oriented parallel to the drawing plane. This is done by means of a 'Define Plane Fe' and an 'Align Plane' command:

{ DEFC }1,12 (1)
1
3
4

2

{ PlaneL }21,1 (2, below, on the left)
{ Fe } (3)
{ [OK] } (4)
{ ROTR }1,5 (1, below; executes 'Align Plane')
{ XQTL}1,4 (2, below)

1.7.2. Rotation by a specified angle

To make better use of the drawing area, you finally may rotate the molecule 90 degrees about the Z axis (see fig.1) and then 90 degrees about the X axis by means of 'Rot Z' and 'Rot X' commands. The fastest way is to type the two commands at the keyboard instead of clicking around on the GUI:

r z 90
r x -90

{ XQTL}1,4 (2)
1
2
3

1.7.3. On-screen rotations

As you will have already noticed, rotations caused by 'Rotate..' and 'Align..' commands are not performed on-screen. However, as you know from the primer session, this is different for the "on-screen rotations mode (OSR mode), which may be turned on with the 'Orient' command:

{ ROTL}1,5 (3, above)

The "On-screen rotations box" appears on the GUI. Again, position indices of CFs printed italic refer to the position within the box (see image below for the meaning of the 2nd [= "column"] indices).

The meaning of some of the control fields has already been explained in the primer session. Some others will be described in the following. As some of them are inactive for the wire model, let's first switch to the 'Xqt Quick' type of drawing:


{ Q }4,2 
X
1
2
3
4
5
6
7
8
9
10

Some brief explanations follow:

{ w }1,5  will label all non-Hydrogen atoms
{ $ }2,5  will label all "group $" atoms
{ n }3,5  will set a line width of 1 for outline drawings and labels
{ U }3,1  will restore the orientation at the time the OSR box was activated
{ L }4,3  will switch to a rotatable outline drawing.
{ S }4,4  will switch to a rotatable shaded drawing.
{ C }4,5  will cause the last Command file explicitely specified (or clicked) by the user to be re-executed; if it generates a drawing of the model, this drawing can be rotated as well. If no Command file has been specified, { Q }4,2  will be activated instead.

The speed of producing a single drawing decreases severely in the series { D } to { C }. Thus, depending on the speed of your computer the CFs on the right side may lead to very slow, un-smooth rotations.

Note The default angle increment (= default "speed") of the rotation can be set with the 'Orient Defaults p q r' command (which you may insert into the file sch99.ini to make it permanent):

p sets the increment for { D } drawings
q sets the increment for { Q } and { L } drawings
r sets the increment for { S } and { C } drawings

1.7.4. On-screen rotations via the keyboard

{ M }2,1  is a toggle between modes M(ouse), A(rrowkeys) and S(ave)
(note: the latter causes automatic saving of all images and requires a previously given 'Orient Save' command; it should be tried only by an experienced user !!).

While in mode A, the CFs for rotation behave differently, namely like the arrow keys of the keyboard's numerical keypad (NUMLOCK off !!), which also may be used to control on-screen rotations. The following exercise may therefore be done

UNIX: The keypad keys may not work correctly under certain UNIX systems, see file readme.xw]

Press the <RIGHT ARROW> key once. The molecule begins to rotate about the Y-Axis (pointing upwards) and continues to rotate once you release the key. Pressing the <LEFT ARROW> key once (or the <5> key) will stop the rotation. Try it again, but press the <RIGHT ARROW> key several times: rotation becomes increasingly faster. You can slow it down by pressing the <LEFT ARROW> key several times. The rotation stops finally; then the molecule starts to rotate the other way around, again becoming increasingly faster. When the rotation is rather fast, stop it once more by the <5> key or by <UP ARROW>, immediatley followed by <DOWN ARROW>.

<SHIFT> < LEFT ARROW> and <SHIFT> <RIGHT ARROW> cause rotations about the Z-Axis and <SHIFT> <UP ARROW> and <SHIFT> <DOWN ARROW> increase or decrease the default rotation speed.

Some more information on the functions of the "on-screen rotations box" is given in chapters 2.2.2., 2.5.3., and 2.6.. For now, we leave OSR mode by typing <Esc> or by clicking

{ Esc }4,3

Please remember that any orientation of interest can be stored by means of the 'Use Outputfile' command (see P.12.).

This is the end of session 1. You may now continue with session 2 (below) or terminate the program by typing 'q' or by clicking one of the two buttons { - }2,1 or { Q Quit }21,2.

Back to Top of Session 1


Session 2: Distributed Command Files (DCFs)

Main TOC

Table of Contents

2.1. Using Distributed Command Files
2.1.1. Defined Modification of the EX1 model
2.1.2. DCF directories
2.1.3. DCF pseudonyms
2.1.4. The "group $"
2.1.5. Inspecting a DCF / Labeled partitions
2.2. Distance-dependent effects
2.2.1. Variable pellucidity
2.2.2. Variable darkness
2.2.3. Changing the model type
2.3. More atom/bond specific parameters
2.3.1. Modifying atom radii
2.3.2. Changing darkening functions
2.4. Colour
2.4.1. "Main Colours" and "Colour steps"
2.4.2. Changing the background colour
2.4.3. Hue, Saturation, Lightness
2.4.4. Modifying a main colour
2.5. Perspective and stereo
2.5.1. Switching to parallel projection
2.5.2. Bond stick tapering
2.5.3. Setting the view distance
2.5.4. Stereo drawings
2.6. Scale factor and position of drawing
2.6.1. Fixing the scale factor
2.6.2. Shifting the model relative to the CCS
2.6.3. Shifting the origin of the CCS

2.1. Using Distributed Command Files

If you terminated the program at the end of session 1, restart it now as described in section 1.1. In any case, we will now (re-) load the ex1.dat Input file. If you just re-started the program you may skip the first click:

{ USEC }1,1 (1)
{ InputfR }6,2 (2)
{ * }4,4 (3)
1
2
3
4

Select the file ex1.dat, close the file-selection box as usual and draw the model by an 'XQT Quick' command.

{ XQTL }1,4 (4)

2.1.1. Defined Modification of the EX1 model

To make some defined orientation modifications additional to some parameter settings, you may use the "distributed Command file" (DCF) ex1.scf . As already mentioned in the primer session, a Command file contains a number of regular SCHAKAL commands. It could be executed via the 'Use Commandfile' command. An easier way of access to a DCF is via the control field (CF) representing the appropriate DCF directory, in this case other.scf .

{ otherL }2,9 (1)
1
3
2

Now click

{ ex1 }14,2 (2)
The Command file ex1.scf is now loaded, i.e., the commands it contains are executed one after the other. To draw the model we will use another DCF (as in the primer session). In this case, we click the yellow part of the corresponding DCF directory, which means that the default DCF of this directory is executed immediately:

{ quickR }3,4
X

The default DCF ( qs.scf ) of the { quick } DCF directory is loaded. The drawing it generates is an 'Xqt Quick' drawing using "distance-dependent darkness" (depth cueing).

As you see, the molecule has been reoriented, perspective has been switched on (via 'Set View..'), the bond stick thicknesses have been modified (via 'Chge Thick..') bond colours have been modified (the same way as you did in session 1), and one bond stick has been broken into four fragments (via 'Chge Fragmentation').

2.1.2. DCF directories

Table 2.1. gives an overview of the different DCF directories (which, by the way, are DCFs themselves). As already has been mentioned in the primer session, most of the DCFs are designed to draw the model in one of a number of different styles.

Table 2.1. DCF directories
lines line drawings quick coarse but fast; some demos
pattn different shadings for diff. chem. elements shade shaded drawings
imptt "important" part of model ($) enhanced varyZ depth-dependent effects
cupBS space-filling + ball-and-stick model fourr "Fourier" backgrounds
cryst crystallographic procedures resxn resolution enhancement
other miscellaneous user1 user's command files

DCFs which make shaded drawings (without any extras) are available from the DCF directory shade.scf . Before you use one of these DCFs, you generally should position the program's imaginary light source via 'Set Light ..' (see P.7. and 1.5.4.). This is not necessary right now, however, as ex1.scf contains a 'S L 45 45' command) which has been executed when this file was loaded.

Furthermore, the background colour might be changed (see section 2.4.1.)

2.1.3. DCF pseudonyms

Now click

{ shadeL}3,5 (3, above)

X

i.e., the left (light green) part of the { shade } CF. As expected, you will get the list of DCFs belonging to the DCF directory shade.scf. Note that the names given in the box are, in most cases, not the names of the DCFs directly but their "pseudonyms". Before, when you clicked the yellow part of { quick }, the "default DCF" of this directory (its pseudonym flagged by "*") had been executed immediately.

If you click onto a pseudonym with the right mouse button you get a brief explanation of what the DCF does and its "real" name in [square brackets]. Click with the right mouse button.

{ dots }15,1 (on the left)

Generally you don't have to care for the "real" names of DCFs; if you ever want to load sd.scf explicitely via a 'Use Commfile' command, you may either use 'U C "sd" ' or 'U C "shade dots" ').

2.1.4. The "group $"

On top of the box with the DCF pseudonyms there are two CFs labeled "w" and "$". In the primer session (P.10.) we used CF { w } to label all non-Hydrogen atoms with their "names". The "$" (besides "w") refers to the so-called "group $". This special group of atoms can be defined by the user via the command 'Define $':

{ DEFC }1,12 (1)
{ $L}5,2 (2)
2
1
3
4

5
6

{ Fe N C1 }    { [OK] } (3, 4)

The specified atoms may from now on be addressed by the atom codes '$' and 'dd' (the latter being a substitute for '$ $=$'). Exclusive labeling of the $ atoms can, e.g., be achieved by the following:

{ shadeL}3,5 (see further above)
{ $ }7,2 (5)
{ metal }10,2 (6)

The DCFs in the DCF directory imptt.scf (and a few others) assume that you have defined the "$ group" prior to calling them. They make drawings with a selected "important" group of atoms (and the bonds between them) enhanced.

{ impttL }2,6 (1)
1
3

2
{ size }11,2 (2, on the left)

2.1.5. Inspecting a DCF / Labeled partitions

Now let's have a look at the DCF ia.scf which just has been executed. Click

{ EDTL }1,2

(3, above)

This generates a plain 'EDIT' command which makes the editor open the most recently specified Input-, Command-, or Writing file, in this case ia.scf .

The DCF consists of a relatively large number of regular SCHAKAL commands and some comments (starting with #). Furthermore, It contains two "labeled partitions" at the end (look at the end of the file). Labeled partitions are headed by a 'Y Label "strg"' command (where strg stands for a string of length 1 to 6 characters). The commands in a labeled partition are executed only, if strg has been added to the Command file name. The labeled partition in Command file ia.scf are headed by a 'Y Label "w"' command and a 'Y Label "$"' command. One of these labeled partitions is executed, when you click "w" or "$" in the DCF pseudo names box. (i.e., the program adds "w" or "$" to the command file name, separated by a blank space.

1
2

Let's leave the editor and try this once, explicitely, this time using the DCF i.scf:

{ USEC }1,1

(1)

{ Commandf }13,2

(2)

We don't use the file selection box, this time, but input the name and partition label by typing at the keyboard:

i $

It should be emphasized, that $, in this case, is not an atom code but a label of a DCF's labeled partition.

Besides the commands mentioned already, there are a number of other commands by which the appearance of (most) Command file drawings may be controlled. Some of them are briefly discussed in the following sections.


2.2. Distance-dependent effects

With SCHAKAL, three different graphical effects can be made "distance-dependent" (i.e., dependent on the depth resp. on the Cartesian Z coordinate of an atom/bond): line width, darkness and pellucidity (= transparency). DCFs which make use of these effects are collected in the DCF directory varyZ.scf.

2.2.1. Variable pellucidity

The default partition of { varyZ } (v.scf) uses variable pellucidity to the background:

{ varyZR }3,6 (1)
1
2
3

Note On a white background, you should generally use { varyZL } and { light }10,2, instead.

You can add constant or distance-dependent pellucidity also to (some of) the DCFs collected in shade.scf and to some others. This is done with the command 'Modify Pellucidity i j' (which belongs to the { MGN } group). In this command, i [j] specifies the pellucidity for the atom with the highest [lowest] Z coordinate (i.e., the atom nearest [mostly distant] to the viewer). i,j=0 means opaque while i,j=16 means completely transparent.

2.2.2. Variable darkness

In a similar way, constant or variable darkness may be set via a 'Modify Darkness p q' command. For variable darkness, p is usually set to 1 while q is set to somewhere in the range 0 to 10.

While the 'Modify Darkness' command is also available from the { MGN } group it may additionally be set more conveniently from the "on-screen rotations box" (see 1.7.3.). To try it we first execute once more the Command file s.scf:

{ shadeR }3,5 (2, above)

Then we invoke the "on-screens rotation box" by clicking

{ ROTL }5,1 (3, above)

Now, click

{ Q }4,2 

(1)
1
2
1
2
3
4
5
6
7
8
9
10

As usual, italic indices refer to the relative CF position in the box.

Now click a position within the horizontal bar labeled "depth" (near (2)) to get a drawing with increasing darkness when going from the foreground to the black background. The number at the right side of the bar gives the parameter q of the 'Modify Darkness 1 q' command which would produce just the same effect. If you click into the left half of the bar the parameter becomes <1.0, the background turns white, and the darkness decreases now into the background. We could use the two CFs { < }3,6  and { > }3,8  to the left and the right of the blue bar to decrease/increase the effect stepwise and/or as an animation (the latter by keeping the mouse button pressed). Instead click

{ C }4,5 

(1)
1
2

to see that the effect also affects the drawing generated by the last active Command file s.scf (see above) as well.

Note Command files which set a background by themselves will switch on this latter background, once the drawing is rotated by the corresponding "arrow" CFs. This background may then not "fit" to the selected darkness parameter, thus producing an unrealistic effect.

To reset the default darkness parameters (uniform darkness of 1.0) click

{ }3,9 

(2, above)

which launches a plain 'Modify Darkness' command. This CF now displays a star to indicate that the "special value" of this parameter (namely q=1.0 in this case) is active now.

2.2.3. Changing the model type

The on-screen rotations box also allows to conveniently switch between ball-and-stick and space filling model. Click

{ B }1,10 

(1)
1
2

which executes the command 'Generate Cups'. It will take some time until the space-filling model will have been drawn by s.scf. Finally, let's switch back to the ball-and-stick model and leave on-screen rotations mode:

{ B }1,10 

(1)

{ C }4,10 

(2)

Note Some distributed Command files in the directories { cupBS } and { shade } will act independently of the model type you selected previously.


2.3. More atom/bond specific parameters

Commands to modify atom/bond specific parameters ('Change ..' commands) are described (besides others) in chapter 6 of the interactive manual. You already tried the 'Change Colour' command in section 1.6.6..

2.3.1. Modifying atom radii

To modify atom radii we can use either the 'Change Radii ..' or the 'Change Size ..' command. Click ..

{ CHGC}1,11 (1)
1
3
4

2
5
7
8
{ Size * L }13,1 (2)

Set the parameter to 0.5, then click
{ Fe } { [OK] } (3 - 4)
{ XQTL }1,4 (1st row, red star)

The radii of the Fe atoms have been multiplied by 0.5. A plain 'Chge Radii' without a parameter specified resets all radii to their default values:

{ RadiiR }12,2 (5)
{ XQTL }1,4 (1st row, red star)

In a similar way, the 'Change Thickness' command may also be used to modify the thickness of selected bond sticks (just specify bond codes instead of atom codes within the command).

Note Some DCFs (mainly some in the { cupBS } directory) will use small radii for H (or other) atoms independently of the radii you seleceted prior to executing the Command file.

2.3.2. Changing darkening functions

Another important atom/bond specific parameter is the "darkening function number" (DFN). This controls the maximal and minimal darkness of an atom/bond's surface in shaded drawings (additionally, darkness is controlled by the commands of table --> 52 of the interactive manual).

The 30 basic DFNs are illustrated in fig. 5. Click
{ DarkfL }6,1 (7, above)

Set the first parameter to 6 and click
{ Fe1 Fe2 } { [OK] } (1 - 2)
1
2

{ }2,2

(1)
{ shadeR }3,5 (2)
1
2

You will see, that the appearance of two of the four iron atoms has changed significantly. With a plain 'Change Darkf' you re-assign default DFNs to all iron atoms.

{ DarkfR }6,2 (8, further above)


2.4. Colour

Some general aspects of colour are best explained with reference to the 'Xqt Test' colour matrix. Type ...

x t

to have it displayed on the screen.

2.4.1. "Main Colours" and "Colour steps"

With SCHAKAL, colour is usually specified by the index of the desired "main colour" (i.e. the index of the corresponding row of the colour matrix). In session 1, you already learned how to change individual colours of selected bonds by specifiying the main colour index in 'Chge Colour' commands and to set the background colour to main colour no. 12 . Additionally, some colour commands allow specification of a "colour step" index (i.e., the index of the corresponding column of the colour matrix; note that the first and the last columns do not correspond to colour steps but to pure white and pure black).

2.4.2. Changing the background colour

You may try this with the 'Set Background' command (Note: the image below should display the colour matrix in the drawing area):

{ SETC }1,9

(1)
{ BackgrL }8,1 (2)
{ blue } (3)
{ [OK] } (4)
1
2
3
4
5

This sets the background colour to a medium colour step of main colour no. 4 (blue). Concurrently the screen image is erased.

MS-Win: Erasing of the image can be avoided by using 'Set Backgr ! ..', e.g. by clicking { ! }2,3 before clicking { [OK] }
UNIX: Under an 8 bit colours X server the image will not be erased, i.e., the background can be changed "behind" the drawing.

When you clicked { blue }, a second row of colours appeared in the colour box which displays the different colour steps of blue. Click the 5th colour step (from the left)

{ 5th blue colour step } { [OK] }

The command 'Set Backgr 4 5' is executed and the background displays the selected colour step, now. To have an image "in front of" this new background repeat execution of the most recently specified Command file by clicking

{ USEL }1,1

2.4.3. Hue, Saturation, Lightness

The second form of the 'Set Background' command uses so-called HSL coordinates. HSL means Hue, Saturation, Lightness. The HSL coordinates system has been used by the Tektronix company for their colour graphics terminals. The meaning of the three coordinates is explained in the following.

Hue is defined in a cyclic range with values between 0 and 360;
Saturation is defined in the range 0 to 100 with
0 = pure grey, 100 = maximal saturation (brightness) of the colour
Lightness is defined in the range 0 to 100 with
0 = black, 100 = white.
360 / 0
60
120
180
240
300

The colour map above visualizes the whole range of hue values. It has been set up with a constant lightness of 50. The saturation is growing from 20 to 100 when going from the center to the rim. SCHAKAL's pre-defined colours have saturation values of 80 or less.

To try it click

{ Backhsl }9,1 (5, further above)

We now have a HSL selection box in the right side of the first three rows of the GUI. First, click a hue value in the first row (1), then a saturation value in the 2nd row (2), then a lightness value in the 3rd row (3), and finally

{ [OK] } (4)
1
2
3
4

If the colour matrix of the test drawing was still on the screen, you would see, that some colours of the colour palette are modified in order to generate the colours of the HSL box. Original colours will be reset at the time when the HSL box is erased (see below).

You may now modify the HSL values by clicking into any of the three rows and realize the result with

{ [OK] }

Finally let's have a black background, again, and clear the GUI:

{ SETL }1,9

(1)
{ }2,2 (2)
1
2

2.4.4. Modifying a main colour

HSL coordinates are also used to change the characteristics of a certain main colour. This is done via the 'Set Hue' command.

{ HueL }10,1 (1)

Within the colour box (which looks slightly different as compared to the one shown here) you may now select the main colour which you want to modify, e.g.

{ red } (2)
1
2
3
4

A HS box is opened and you may specify new hue and saturation values for main colour no. 2. Execute the command with

{ [OK] } (3)
{ XQTL }1,4 (4)

Oxygen atoms (to which - by default - main colour no 2 is assigned) should now display the new HS values, as well as some parts of the GUI (which uses colours 1 to 5). A list of the 13 main colours with their default and current HS values can be obtained with the 'List Hues' command. We could invoke this by { LSTC }1,6 and { Hues }7,2. Instead, however, we simply type

l h
In the list, current HS values differing from default values are flagged by "*".

With the following, you re-assign default HS values to all main colours:

{ HueR }10,2
X


2.5. Perspective and stereo

2.5.1. Switching to parallel projection

The ex1.scf Command file contains a 'Set View 27' command which sets a view distance of 27 Angstrom to generate a corresponding perspective distortion in all drawings. A plain 'Set View' command switches perspective off. Click

1
2
{ ViewR }14,2 (1)
{ XQTL}1,4

To get a drawing with perspective switched off (i.e. with parallel projection mode).

2.5.2. Bond stick tapering

You will note that some bond sticks still show a perspective tapering. This tapering is "artificial". You can get rid of it with a plain 'Set Tapering' command.

{ TaperR }18,2 (2)
{ XQTL }1,4

For the stereo drawing to be generated below we now set the tapering parameter to -1, temporarily. For this, you may use { TaperL }18,1 or just type

s t -1

2.5.3. Setting the view distance

The view distance for a perspective projection is set with a 'Set View d' command. It can most conveniently be launched within the on-screen rotations box. Click

{ ROTL }1,5
X

Remember, that italic indices refer to the relative CF position within the on-screen rotations box.
1
2
3
1
2
3
4
5
6
7
8
9
10

Click several times onto different positions within the green bar labeled "viewd" (1) until the number displayed to its right is about 10, which corresponds to a rather severe perspective distortion (you also may use { < }2,6  and { > }2,8  to vary the view distance stepwise). If the message "view distance is too small!!" appears, just increase the parameter until the image re-appears. Finally, to regenerate the old conditions, set the parameter to about 27.

Note For space-filling models, perspective may lead to erroneous shadows in some cases.

2.5.4. Stereo drawings

The 'Generate View 1' command switches from normal to stereo drawings. It can be launched by clicking

{ V }3,10  (2)

A stereo pair has been generated. It may be viewed with a "mirror stereoscope" or (after reduction in size) by a "lense stereoscope". The stereo effect will also affect a drawing generated by s.scf as can be seen by the clicking of

{ C }4,5  (3)

Most distributed Command files would have acted this way.

Note The DCFs ls.scf ({ linesL } / { lstreo }) and las.scf ({ shadeL } / { lstreo } ; --> fig. 14) have stereo mode already "built in".


2.6. Scale factor and position of drawing

Up to now, all drawings habe been generated using a "variable" or "optimized" scale factor. I.e., the program calculated in each case the scale factor and position of the drawing within the drawing area to make optimal use of the latter. The scale factor p can be fixed by a 'Mgn Model p' command where p is in cm/A. When the scale factor has been fixed this way, the position of the drawing within the drawing area is controlled by 2 parameters x0 and y0 which may be set by the 'Set Origin' command. To be more precise, x0 and y0 determine the position of the origin of the internal Cartesian coordinate system to which internal atom coordinates refer. The default position is the center of the drawing area.

2.6.1. Fixing the scale factor

The scale factor p (but not x0 and y0) can also be modified directly within the on-screen rotations box. To try this, we first go back to the fast 'Xqt Quick' style of drawing by clicking

{ Q }4,2  (1)
1
2

Click into the grey bar (2) until the number displayed to the right side shows about 1.5 . This will have three effects:

a) The scale of the drawing is varying with the position of your clicking.

b) Scale factor and origin are fixed now. If you therefore now rotate the model with the corresponding CFs or with the arrow keys the position of the rotation axes will be fixed as well instead of being shifted continuously (which made the rotations look wobbly somehow up to now).

c) The stereo drawing has been turned into a mono drawing although the stereo effect is still switched on (actually, we have now the left-eye drawing of the stereo pair only).

Note When stereo mode is switched on, an "automatic stereo pair" will be generated only if the scale factor is variable, i.e., non-fixed.
.

To avoid confusion, we now switch the stereo effect off by clicking

{ }1,9  (1)
{ V }3,10  (2)
1
2
3

The latter measure is equivalent to the launching of a plain 'Gener View' command. Now click
{ > }1,8  (3)

until the scale factor is 1.5, again.

2.6.2. Shifting the model relative to the CCS

Once the scale factor has been fixed, the arrow CFs or arrow keys can be used to shift the model relative to the origin of the internal Cartesian coordinate system (CCS). Shifts of this kind will leave the position of the CCS origin (i.e., the parameters x0 and y0, above) fixed. See next section for how to modify x0 and y0.

Let's first undo all rotations by clicking

{ U }3,1 (1)
1
2
3

Now click

{ R }1,1 (2)

twice, until the CF displays a "T" and the arrow CFs show a dark red colour. You are now in "Translation mode" , i.e., you now can use the arrow keys or arrow CFs to shift the model relative to the origin of the CCS. As this origin is fixed now (see above) to a certain position within the drawing area (it's center, per default) the image of the model will also be moved relative to the drawing area.

Note "Translation mode" is only available in the on-screen rotations box when the scale factor is fixed. The corresponding shifts can also be accomplished anytime via 'Trnsl X' etc. commands.

Use "translation mode" with caution, as the three axes of rotation (about X, Y, and Z) remain fixed to this origin. Thus, after relatively large shifts and a subsequent rotation the model may have disappeared !. Furthermore, if perspective is switched on, the shape of the model will be influenced by the shifts, as the view axis remains fixed to the origin as well.

For now, let's therefore undo any shifts you made by again clicking

{ U }3,1
X

Note In "Translation Mode" the { U } button will always shift the model center to the origin of the Cartesian coordinate system. In "Rotation mode" the { U } button will re-establish the orientation the model had at the time the on-screen rotations box was activated.

2.6.3. Shifting the origin of the CCS

During the last actions the origin of the internal Cartesian coordinate system remained fixed within the drawing area (while the model was shifted relative to this origin). If you want to move the origin instead (and leave the model stuck to it) this can be done by means of the 'Set Origin' command. Such shifts of the origin neither affect rotations nor the appearance of perspective drawings.

To try this, we first have to close the on-screen rotations box by clicking, e.g. the red { ESC } button to the left of it:

{ ESC }4,4

Now click ...

1
2
{ OriginR }21,2 (1)

By this plain 'Set Origin' command "graphics cursor mode" is switched on. Select a position in the upper left quadrant of the drawing area by clicking. Graphics cursor mode is switched off and ...

{ XQTL }1,4

The center of the drawing (i.e., the origin of the internal Cartesian coordinate system, --> 673) is now at the selected position. With another
{ OriginR }21,2 (1)

you may position - by means of the graphics cursor - the drawing at another location. Now click
{ OriginL }21,1 (2)

Ignore the parameter boxes and type

1000

to generate a 'Set Origin 1000' command which resets the origin position to the center of the drawing area (for drawings [with fixed scale factor] to come). The variable, calculated scale factor is re-established with a plain 'Mgn Model' command. We could use the corresponding CFs or the corresponding button in the on-screen rotations box or simply type

m m

Again, you may continue with session 3, now, or terminate the program either with { - }1,2 or by closing the window ( as required for the operating system of your computer) or by typing

q

Back to Top of Session 2


Session 3: Some advanced options

Main TOC

Table of Contents

3.1. More about labeling
3.1.1. Modifying character and label style
3.1.2. Correction of label positions
(screen device)
3.2. Erasing a part of a screen drawing
3.2.1. Removing results of last action
3.2.2. Removing a polygon area
3.3. Making Command files of your own
3.3.1. Set up by means of the editor

1
2

If you re-started the program right before Session 3, perform the following action:

{ InputfR }6,2 (1)

ex1

{ CommandfR }13,2 (2)

ex1


3.1. More about Labeling

Labeling of atoms has already been dealt with in the primer section P.10. and in sections 1.5.7. and 2.1.4.. From the latter, you now that you may add the partition labels "w" or "$" to a distributed Command file (DCF) name to invoke labeling of all non-Hydrogen or all group $ atoms. To (re-)define now group $ by all Fe and O atoms, you will generate a corresponding 'Def $ ..' command by means of the GUI or by typing:

d $ fe o

Then click
{ shadeL }3,5 (1)
1
4

2
3
{ $ }7,2 (2)
{ simple }13,2 (3)

3.1.1. Modifying character and label style

The results of the labeling procedure may be influenced by some commands which have been added to the { WRT } group:

{ WRTC }1,3 (4, above)

1
2
3

First we increase the character size to 1.3 times the default size (this requires a negative size parameter):

{ MGN InscL }23,1 (1)

Set the first parameter to -1.3 and click { [OK] }. Then, we make the characters slanted:

{ SET InscL }25,1 (2)

Set the 2nd parameter to 4 and click { [OK] }. Finally we restrict the arrangement of letters and numbers in atom names to horizontal and enclose numbers in parentheses:

{ SET WrtL }26,1 (3, above)

Set the 2nd as well as the 3rd parameter to 1 and click { [OK] }. Then click

{ USEL }1,1
X

As you already know, the latter generates a plain 'Use' command which means that the Input-, Command-, or Writing file which has been specified last by the user is now re-used. In this case it is the file si.scf (including the option to label group $ atoms) which is re-used. However, labeling results are different from before due to the three commands given above.

Normally, with the 'Broaden Inscription' or 'Broaden All' command, you may set the boldness of labeling characters. Most distributed Command files, however, set the boldness of characters themselves by calling the Command file broad.scf.

Thus, your only chance to adjust boldness in this case is to edit broad.scf or to use the Command file without "w" / "$" and label the drawing explicitely via 'Wrte Label ..' (see above).

X

3.1.2. Correction of label positions

If the line width of characters (and, therefore, line width of outlines or hatching lines) has been set by a DCF, it will not be reset to the old value at the end of the Command file (in contrast to all other parameters). This measure allows correction of label positions by means of the 'Translate Inscription' command (which is also of use when labeling has been performed explicitely via a 'Write ..' command).

{ TRL Insc }22,1

{ Fe3 Fe1 Fe4 }

(1)
{ [OK] } (2)
1
3

"Graphics cursor mode" is turned on. The graphics cursor moves to the position of the "Fe1" label. Move the cursor a little and click the left mouse button or type . The "Fe1" label is moved to the new position. Repeat this procedure until you obtain a position you like. Then click the right mouse button or type <m>. The cursor appears at the "Fe3" label. You can move this label in the same way as before (don't mind if the drawing is ruined a little by these operations). With

{ ESC }4,4

you leave cursor mode, i.e., the "Fe4" label remains untouched. You may wonder why the Fe1 label has been processed before the Fe3 label despite the fact that, in the command, the order of the two corresponding atom codes was opposite. Now, this actually corresponds to the general behaviour of SCHAKAL in processing atom codes (ACs) in commands:

Note When ACs/BCs are specified, the program first flags all atoms/bonds matching the ACs/ BCs, internally. Then the atoms/bonds are processed in the order given by the program's internal atoms/bonds list (an exception are the commands 'Define Plane' and 'Define Line' where the first three (two) atoms which are specified have a special meaning).

Note Note: correction of labeling via 'Transl Insc' is not possible with DCFs given in the following list. With those ones flagged with "(-)", even a following explicite labeling (via 'Wrt ..' ) will not work (i.e., lead to strange results).

control fields DCF name control fields DCF name
{ shadeL / lablCp } la.scf { linesL / relief } r.scf (-)
{ shadeL / lstreo } las.scf { cupBSL / ...... } c*.scf (-)

Note Some DCFs label using a variable darkness; correcting label positions will in this case require to set the corresponding 'Modify Darkness' command again "by hand".

Note correction of label positions is slightly different for printer devices (see section 4.5. ).

Note Read also text describing fig.s 11 and 12 .

Finally, let's reset some parameter values, now:

1
2
3

{ MGN InscrR }23,2 (1)
{ SET InscrR }25,2 (2)
{ SET WrtL }26,1 (3)

Set all parameters to 0 and click

{ [OK] }.

Then clear the GUI with

{ }2,2/3


3.2. Erasing a part of a screen drawing

3.2.1. Removing results of last action

While the whole drawing area has been erased a lot of times during sessions 1 and 2 due to automatic or manual screen erasing (see 1.3.), you will now learn how to erase only a part of a drawing. First, make another drawing of the iron complex with the help of the DCF s.scf .

{ shadeR }3,5 (1)
1
2

Then label the iron atoms by an extra 'Wrt Label ..' command:

{ LabelL }6,1 (2)
{ Fe } { [OK] }

The last action (invoked by 'W L..') may now be cancelled by means of the 'Kill Last' command:

{ l }2,1
X

labeling is repeated, this time using the background colour to write the labels, which lets the latter disappear. On the screen, 'K L' should mainly be used to cancel out line-drawing operations (not shading). For printer devices (see session 4), things are different.

Note

'Kill Last' will not work correctly for screen drawings on a non-empty background (not valid for printer drawings [see session 4]).

3.2.2. Removing a polygon area

The 'Kill Region' command works differently:

{ r }3,1
X

The program is now in "graphics cursor mode". Click four positions which define approximately a rectangle containing the four iron atoms. After clicking { ESC }, the contents of this rectangle will be filled (irreversibly) with background colour, i.e., erased.

Note
After a switch from the "screen device" to a "printer device" (see session 4), the command 'Kill Region' will be disabled. However, another command to erase parts of the drawing ('Kill Xqt') will be enabled in this case.


3.3. Making Command files of your own

1
2
3

In many cases it is advantageous to generate a drawing via a Command file of your own. You may set up your own Command files in two alternative ways:

3.3.1. Set up by means of the editor

The first facility is to simply write the Command file with the editor.

Click (and type) ...
{ EDTC }1,2 (1)
{ CommandfR }7,2 (2)
myfile
g o
x
g s -1
x x  fe fe=fe
w l  fe
g o

The editor comes up to edit the file. If the file myfile.scf was already existing, erase its contents. Write the commands in the above box into it. 'Genr Outlines' ('g o') switches to the drawing of outlines while 'Genr Shading -1' ('g s -1') switches to a flat type of shading. Exit/save from the editor and generate a plain 'Use' command by clicking

{ USEL }1,1 (3, above)

The commands you typed are now executed one after the other. You could now modify the file with the editor (by clicking { EDTL }) and execute it again (by clicking { USEL }), etc.

3.3.2. Recording an "Echo file"

1
2
3
4
The second way is to open an "Echo file", record a series of commands, close the Echo file, and - possibly - edit the Echo file with the editor. Click

{ USEC }1,1 (1)
{ EchofR }14,2 (2)
myecho

If the file somepath|myecho.scf already exists, override it. The file is opened to record user action to come. When an Echo file is opened, most parameters and switches of the program are reset to their default values. It's always wise to (re-) load an Input file (structure data) just after opening an Echo file:

{ InputfR }6,2 (3)
ex1
{ CommandfR }13,2 (4)
ex1

Now let's do some drawing including labeling and correction of labeling:

{ varyZR }3,6 (1)
{ WRTC }1,3 (2)
1
2

4
{ LabelL }6,1 (3)
{ Fe } { [OK] }

Now move the Fe1 label with the mouse by 'T I Fe1' as described in section 3.1.2.:

{ TRL Insc }22,1 (4)
{ Fe1 } { [OK] }

1
2
3

After you have moved the Fe1 label terminate with

{ ESC }4,3

Let's then add an arrow which points to some part of the molecule ('Xqt Arrow'):

x a

With two mouse clicks you specify a straight line to which an arrow tip is added when you click

{ ESC }4,3

Now let's close the Echo file somepath|myecho.scf with the 'Use Echofile 1' command:

{ USEC }1,1 (1)
{ Echof 1 }15,2 (2)

To see what we have stored on this Echo file we execute it now as a Command file:

{ CommandfR }13,2 (3, above)
{ =R }4,5
The actions which have been recorded are "re-played" now. You could then edit the file with { EDTL } and use it again with { USEL }, etc.
X


3.4. "Fourier" backgrounds

Up to now, we had plain black, white, or other uniformly coloured backgrounds. However, SCHAKAL offers facilities to generate less trivial backgrounds. Click

{ fourrR }3,7 (1)
1

The drawing area is now slowly filled with grey colours of varying darkness. Actually, the image is a "Fourier image" composed of "Fourier waves". Let's have a look at fourr.scf :

{ EDTL }1,2 (2)

The default partition of this file (headed by 'Y Label "deflt*"') generated the image. The FOurr cards in this partition contain the parameters h, k, F(hk), and φ(hk); each card defines one of max. 100 Fourier components. If you are crystallographically trained, you may consider the drawing area as a 2D unit cell; h and k then have their usual crystallographic meaning, F(hk) is the analogon to the structure amplitude (except for F(00) all F(hk) should have values < 0.1) , and φ(hk) is the Fourier wave's phase (in degrees).

Note Some partitions of fourr.scf contain only one or two FOurr cards with some code letters. In these cases, the background is not generated by Fourier syntheses but by some simple functions; i.e., the label 'FOurr' is somewhat misleading in these cases.

Of course, you may add more partitions to the file fourr.scf . For now, however, we will leave the file as it is and close the aditor.

In any case, you may modify the Fourier images in fourr.scf to some degree by commands: You may change the main colour with 'Set ColOth', and modify darkness and contrast with 'Modify Fourier' (in the { MGNC }1,14 group):

{ SETC }1,9 (1)
1
2
{ ColOth }6,1

{ blue } { [OK] }

{ MGNC }1,14 (2)

{ FourierL }19,1

Set the two parameters to 1 and -2 and click { [OK] }; then re-use fourr.scf by clicking

{ USEL }1,1

The bottom of fourr.scf contains the command 'Kill Screen 3' which switches automatic screen erasing off (as a consequence, the red CF { K }3,1.5 has appeared on the GUI). This is to take care that the background ist not erased by the next drawing:

{ }2,2/3 (1)
1
2
3

{ varyZR }3,6 (2)
{ K }3,1.5 (3)

The latter re-activates automatic screen erasing: the red { K }3,1.5 is replaced by the green { K }2,1.5.

Note

On a Fourier background (as on any non-empty background), shifting of atom labels ('Translate Insc') or of graphical text ('Write Text') will lead to unreasonable results (valid only for screen drawings, not for printer drawings, see section 4.).


3.5. Saving & Restoring screen images

Images drawn up to now could not have been sent to any printer directly (see session 4 for printer output). However, they could have been stored ("saved") in a raster image file. There are three possible file formats: TIFF, .PCX, and .SIF (the latter being the non-standard SCHAKAL 92 format). If possible you should use the TIFF format to save SCHAKAL 99 screen images.

3.5.1. Saving an image (normal resolution)

Click:

{ shadeR }3,5 (1)
1
2

to generate a shaded drawing of the iron complex. Saving of the image is done by means of the 'Use Savefile' command which is anytime available from the 4th row of the GUI:

{ save }4,10 ) (2)

You are asked to specify the name of the file which you may do by typing:

test

The screen image is now stored onto file somepath|test.tif.

3.5.2. Restoring an image

You can restore it by means of the 'Use Restorefile' command as follows (note: the first action is only necessary here to see more clearly what happens):

{ K }2,1.5

(1)
{ USEC }1,1 (2)
{ RestorefR }19,2
{ =R }4,5 (3)
1
2
3

By specifying "=" as the file name, the name core ("test") of the Savefile is used as the name core of the Restorefile. The image is restored.

3.5.3. Saving an image (enhanced resolution)

SCHAKAL 99 offers a procedure which allows the generation of TIFF (or .PCX) images with a resolution of up to 5 times the (linear) resolution of the drawing area (use 'List Size' to check for the resolution of your drawing area). This procedure requires that a Command file exists which draws the image. This command file may be a DCF or a user-defined Command file. Click

{ resxnL }3,8 (1)
1
3

2

{ resx2* }8,2 (2)

This starts a procedure to generate an image with 2 times the linear resolution of the drawing area. E.g., if the drawing area has a resolution of 1000 * 800, the image will have a resolution of 2000 * 1600. resx3 would generate an image of 3000 * 2400, etc.

The program asks to specify the Command file which draws the image. Click

{ shadeR }3,5 (3, above)

The image is now generated in four parts. Each part is stored (automatically) as a TIFF file. After generation and storing of all four parts you are asked to specify the name of a Save file onto which the "sum" of all four files can be stored:

test2

If you restore the image with 'Use Restorefile', it will be compressed into the drawing area and look as if there was no resolution enhancement:

u r
{ =R }4,5 (2)
X

However, if you print the files test.tif and test2.tif by means of an appropriate software, the latter will probably produce better results. Let's repeat the procedure now using myecho.scf (see 3.3.) as the Command file which draws the image:

{ resxnR }3,8
X

myecho

Store the complete image on

test3

and restore it as shown above. You will see that some atoms/bonds drawn pellucidly (by { varyZ }, when myecho.scf was recorded, see 3.3.2.) appear either more pellucid or less pellucid as compared to the original image. This is due to compression of the large TIFF file into the drawing area. This effect should not occur if the file was printed. On the screen, it could have been avoided by using { resx3 } instead of { resx2 }, above.

It is therefore recommended to rather use { resx3 } [or { resx5 }] for the generation of large TIFF files. However, the larger the resolution ....

a) ... the longer the time to generate the whole drawing and the larger the file and therefore ...
b) ... the lower the probability that your (printing or text processing) software can handle the file.

3.5.4. Improving the quality of a SCHAKAL TIFF file

SCHAKAL TIFF files, when printed or handled by other software may produce images which look worse than expected. This is especially valid for line-style pictures or for pictures using regular dithering or pellucidity effects. In such a case it may be helpful to improve the TIFF image by means of an image processor. I use Micrografx' "Picture Publisher" for this purpose.

These are the steps I usually take:


3.6. Generating non-coloured screen drawings

For some purposes you might want to have rather a black-and-white or a grey image instead of a coloured one. SCHAKAL offers a facility to generate drawings in black-and-white or in grey.

This leads us to the term "device". With SCHAKAL, drawings can be "sent" alternatively to a number of different devices (see session 4). Per default, the "screen device" (device no. 1) is active. Other devices can be accessed with the 'Genr Device' command (GUI group G/S).

Most devices can be set up in a "colour mode" or in a "non-colour mode". This is also valid for the screen device which, per default, has been set up in "colour mode". To set it up in "non-colour mode", we use the 'Genr Device * 1' command. A "*" in a 'Genr Device' command generally sets the device up in "non-colour" mode.

{ G/SC }1,8 (1)
{ DeviceL }5,1 (2)
1
2

The "*" appears in the upper right corner of the { [OK] } button. If it is clicked, its CF turns light blue.

{ * }2,3 (1)
{ [OK] }3,3 (2)
1
2
3
4

The screen device is now in non-colour mode. Click

{ shadeR 3,5 (3)

In shaded drawings, while in non-colour mode, the program tries to translate differences in colour into differences in darkness, to make atoms of different types easier distinguishable. E.g, the green N atom is shaded lighter than the red O atoms, although the same darkening function is assigned to N and O per default.

Let's return now to the screen's colour mode by a plain 'Genr Device' command:

{ DeviceR }5,2 (4, above)

Back to Top of Session 3


Session 4: Printer drawings

Main TOC

Table of Contents


In case you have re-started the program right before, you should again employ the 'Use Inputfile' and 'Use Commandfile' commands as follows

{ InputfR }6,2

ex1

{ CommandfR }13,2

ex1


4.1. Printer Devices

As you already learned in the primer session (P.14.), drawings which have been made for the screen ("device" no. 1; see 3.6.) cannot be printed directly on any printer. If you want to print a drawing, you first have to switch to the appropriate "device". Then you can make a drawing and print it. Table 4.1. gives an overview on SCHAKAL 99's different graphics devices:

Table 4.1.: SCHAKAL 99's graphics devices

# Name type colours direct printer output compatible to other software
1 Screen (default) screen 256 no as TIFF file (via 'U S')
3 HP-GL printer/file 6 or 8 HP plotter1) probably no
4 LaserJet 3-6 printer/file b/w HP LaserJet 3-61) no
5 HP-GL/2 printer/file 256 HP DeskJet 12001) probably no
6 EPS/Postscript printer/file 256 Postscript printer yes (EPS)
7 WMF (printer)/file 256 no yes (files may be very large!)
8 Windows Printer2) wprinter/file 256 Windows printer3) maybe, if directed to file

1) or a fully compatible printer
2) MS-Win version only (but not suitable for Adobe PDF printer)
3) not suitable for shaded HP LaserJet drawings

Generally, a printer device is selected by means of the 'Genr Device' command which is in the { G/S } group. Click

{ G/SC }1,8

(1)
{ DeviceL }5,1 (2)
1
2

UNIX Set the first parameter to 6 (EPS/Postscript)1)
MS-Win Set the first parameter to 8 (Windows printer)1)
1)US users should probably set the 2nd parameter to 3 to activate US A format.

Then click

{ [OK] }

MS-Win If you chose device no. 8, the usual printer selection box appears; just select the printer and (possibly) adjust some of its properties (see --> 968 !), then click OK. No printing is performed right now !

The screen is erased, background colour changes to white, and a grey stripe appears at the top or at the right side of the former drawing area. The residual white area simulates that part of the A4 (or A) paper sheet onto which something can be drawn. Actually, the new device is a file, onto which graphics commands (to drive the printer) will be stored. Per default, the file's name is schakal.xxx [Difference to SCHAKAL 92 !! ] with xxx differing for the different printer devices . Now let's draw something:

{ shadeR }3,5
X

A shaded drawing of (possibly) poor quality is generated on the screen (invoked by Command file s.scf). However, the screen drawing is only an imperfect visualization of what is written onto the Printer file schakal.xxx, here. If you ever send this file to the printer, the final drawing should be of better quality. About printing, see chapter 4.2. .

If you want to make another drawing, you have two choices: erase the old drawing by clicking { K } (generating a 'Kill Screen' command), which also erases the contents of the Printer file, or open a new Printer file via the 'Use Printerfile' command:

X

{ PrinterfR }9,2

plot2

The old Printer file, schakal.xxx, has been closed and resides still within its directory. It now (and only from now on) could be used by another software. It might be sent to a printer after the program has been terminated. However, it will be overriden by the next SCHAKAL run which experiences a 'Genr Device p' command (where p is the same as used for the file in question).

The newly opened Printer file, plot2.xxx, now waits for printer commands to be sent to it.

Note that, in contrast to the screen device, no automatic erasing of a drawing will occur for a printer device (except when using distributed command files which contain a 'Kill Screen' at the beginning of the corresponding device partition (--> 766)).

Let's store another drawing, now, on the new file plot2.xxx :

{ linesL }2,4 (1)
1

2

{ pluto }10,2 (2)


4.2. Printing

If a corresponding printer (compatible with the device you selected in 4.1.) is connected to your computer and if ...

UNIX ... the script file cppy#.sh [# = device number] has been set up accordingly
MS-Win ... you have selected the Windows printer (device 8) or - if not - the printer is connected to 'lpt1' or - if not - an appropriate 'U P -10# ..' [# = device number] command has been given previously (--> 155.2)

... you may send the Printer file directly to the printer by a 'Use Printerfile 2' command, i.e. by:

{ Print }4,10
X

The Printer file is now copied to the printer (which will probably require some time). After this, the drawing will be erased and then re-visualized on the screen [MS-Win: the latter is not true for the Windows printer (device 8)] . You may stop re-visualization by pressing '<ESC>'. In this case, you should erase the incomplete drawing with { K }2,1.5 !

When the copy or print operation has been performed, the command prompt ( >>> ) appears and the file is ready to store additional printer commands (you could also erase a part of the Printer file with 'K X', see 4.3.).

4.2.1. Writing a text file

Let's now add some piece of text. We could use 'Use Text' and/or 'Write Text' (in the { EDT } group) for a single line of text or 'Use Writingfile' for more than one line. In the latter case we first have to set up a Writing file:

1
2

{ EDTC}1,2 (1)
{ Writingf }8,2 (2)

(don't click { Writingf }15,2; if you already did, click { n }4,3 !)

mytext

When the editor has opened the new Writing file mytext.txt , write the following two lines into it:

to be or
not to be

Then save/exit from the editor. Before we write the text, we may alter size, boldness, slantedness, and colour of the characters using the four commands on bottom of the { EDT } group or typing

m t 1.5 ('Magnify Text': character size)
b t 4 2 ('Broaden Text': boldness)
s i 0 3 ('Set Inscription': slantedness)
s c 7 0 1 ('Set Colour': violet colour)

Now let's write the text with 'Use Writingfile' or with a plain 'Use' into a free space:

{ USEL }1,1 (1)
1
2

click at some positions (only the first line of the Writing file is displayed) until you have found a good one and then leave "graphics cursor mode" with { ESC } to see the whole text. Then you can print the current drawing with another

{ Print }4,10 (2)


4.3. Erasing a part of a printer drawing

Now, let's construct another drawing from several parts. To erase the screen (and re-initialize the printer file) click

{ K }2,1.5 (1)
1
2
3
4

Then let's draw the outlines of our molecule ("outlines" is the default drawing mode), switch to shading mode and shade some (but not all) of the atoms:

{ XQTR }1,7 (2) (draw outlines)
{ GENL }1,4 (3) (switch to shading)
{ XQTC }1,4 (4)

X

{ XQT }6,1 (activate 'Xqt Xqt ..' command)

We now will execute several 'X X AC' commands ("AC" = atom code) by clicking into the appropriate light blue control fields in the upper right part of the GUI:

{ O } { [OK] }
{ C } { [OK] }
{ Fe } { [OK] }

Note: We could have accomplished the shading of the O, C, and Fe atoms by one single 'Xqt Xqt O C Fe' command, but for the following we have split the command into three individual 'X X AC' commands. Now we will label the Fe atoms only:

{ WRTC }1,3 (1)
1
3

2

{ LabelL }6,1 (2)

We will now again use the atom code control fields, this time to generate a 'Wrt Label Fe' command:

{ Fe } { [OK] }

As already has been teached in section 3.2.1., the product of the last drawing action can be erased by means of the 'Kill Last' command. For printer devices this should work more generally than for the screen device.

{ l }2,1 (3, above)

The four labels disappear (on the screen as well as on the printer file). If a part of an atom/bond looks slightly damaged afterwards: this atom/bond will be o.k. on the printed drawing !

In contrast to the screen device, 'Kill Region' will not work for printer devices. However, any action invoked previously by 'X..' or 'W..' can be cancelled (more reliably than via 'Kill Last') with the 'Kill Xqt n' command. Type

k x 2

The screen is erased and the Printer file is re-visualized. However, the parts of the drawing generated by 'X X Fe' and 'X X C' are omitted. As the results of the 'W L..' command have already been removed from the Printer file by 'Kill Last', the 'Kill Xqt 2' command refers to these two commands.

A plain 'KILL Xqt' (n = 1) can be generated by clicking

{ x }3,1 (1)
1
2

The shading of the O atoms will now also be removed from the drawing. If you like, you can now add more graphics to the file:

{ Fe N C1 }     { [OK] }

As the 'Write Label' command is still latently active, this will cause the specified atoms to be labeled. We will not make a printout of this drawing. Therefore, let's erase it:

{ K }2,1.5 (2)


4.4. Portrait format

Now let's make a drawing using a "predefined pattern" :

{ GENC }1,7 (1)
1
3

2

{ Outlines }13,2 (2) ('Generate Outlines': switch to outlines)
{ XQTR }1,4 (3)

4.4.1. Predefined patterns

We now will shade atoms and bonds with one of the pre-defined patterns shown in fig.s 9 and 10. This is done by means of the 'Xqt Pattern ..' command. The following command may be typed or generated with the GUI as usual (when you type it, you may omit the "0" after "P"):

X P 0 11

Next we will switch to "shading mode" (by 'Genr Shading') to have atom labels exclusively outside the atom circles):

{ GENL }1,7
X

Now, let's label the Fe atoms using a 'Write Labels' command:

w l Fe

The printer paper, as simulated by the white area on the screen is in "landscape" format. However, you might prefer to have the printer drawing in "portrait" format.

Portrait format is selected by a 'Set Inscr ! 1 0' or 'Set Inscr ! 3 0' command (this command was originally only used to rotate the writing direction for labels and text)

{ G/SC }1,9 (1)
1
3

2

{ InscrL }17,1 (2)
{ ! }2,3 (3)

Set the first parameter to 1 and click { [OK] }to launch the 'Set Inscr ! 1 0' command. Then let's repeat the last drawing:

{ K }2,1.5 (1)
1
2
3
4

g o (switch to outlines)
{ XQTR}1,4 (2) (draw outlines)
x p 11
{ GENL }1,7 (3) ('Generate Shading': switch to shading)
w l Fe

Model, writing direction, light source, and shading pattern have been rotated 90 degrees about the Z axis. You can now switch back to landscape format with a plain 'S I !' :

{ InscrL }17,1 (2, further above)
{ ! }2,3 (3, further above)

Set all parameters to 0, click { [OK] }, and clear the GUI with

{ }2,2 (4, further above)


4.5. Correcting label positions on printer devices

Let's now make a drawing with some labels added. To this end we first (re-) define the "Group $" by all Fe N and O atoms using a 'Define $' command, e.g.,by typing

d $ Fe N O

Then we employ the Command file p3d.scf which uses some predefined "patterns" (stored in file patt.scf) to make a partially labeled drawing of the molecule:

{ pattnL2,5 (1)
1

1
2

{ $ }7,2 (1)
{ 3Dim* }9,2 (2)

Correction of labeling is different for "screen drawings" and printer drawings. While for a screen drawing, several 'T I' commands could be used in arbitrary order for several labels to be corrected, all labels of interest will have to be specifed within one 'T I' command for a printer drawing:

{ WRTC }1,3 (1)
1
3

2

{ TRL Insc }22,1 (2)

{ N Fe1 O32 }     { [OK ] }

All labels disappear, then all labels except those ones of N, Fe1 and O32 are re-written (if an atom/bond looks damaged afterwards: this will not affect the Printer file). The cursor appears at the center of Fe1. Move it and click a new position; use the right mouse button or the <m> key to jump to the next atom's center, etc. Or cancel with { ESC }4,3.

You might now print the drawing with the corrected label positions (using { Print4,10 }), but you, of course, don't have to. In any case reset the GUI now with:

{ }2,2 (3)


4.6. Going back to the screen device

You're going to leave the currently active printer device now and return to the screen device (by a plain 'Genr Device'):

{ G/SL }1,8 (1)
1
2

{ DeviceR }5,2 (2)
The screen is erased and the background colour changes to black: You are back at "device no. 1", the screen. Note that you could return to the last active printer device and find the currently active Printer file re-visualized on the screen and ready for additional printer commands sent to it.

Note While a printer device is active you can generally switch temporarily to the screen device (by a plain 'Genr Device'), do something (but you shouldn't do things like change the orientation of the model, of course), and then switch back to the same printer device without losing the current Printer file.

Such an intermediate switch (from a printer device to another device and back) with keeping the Printer file open, is only possible, if the other device is the screen device (no. 1)and if the switch back is to the same printer device (same format, same resolution) as you started from.

Let's now reset once more most drawing parameters to their default values:

{ otherL }2,9 (1)
1

2

{ reset }13,2 (2)

This is the end of session 4. You might terminate the program or continue with session 5.

Back to Top of Session 4


Session 5: Crystallo-Graphics

Main TOC

Table of Contents

This session (especially sections 5.1. , 5.5., and 5.7.) may also be of interest for users who only want to draw single molecules as it teaches how to obtain complete molecules from crystallographic data in general cases.


5.1. Crystallographic data sets

If the source of structural data are crystallographic data, the corresponding Input file (cf. 1.4.) for SCHAKAL should contain the following information:

Such data sets can be written by a text editor using published crystal structure data.

A more convenient way to obtain such data sets is to use one of the sources given in table 5 . The corresponding files can be translated with the help of the 'USE Xtaldatafile n' command into an appropriate SCHAKAL Input file.

Table 5: Files which can be translated via 'Use Xtaldata n'
n source file type / format n source format / remarks
1 SHELX .ins or .res 4 ICSD via STN display format
2 CSD BCCAB format 5 [PDB] (symmetry is ignored !)
3 ICSD "print" format 6 CIF standard

As an example we translate the distributed file ex2a.ics:

1
2
3

{ USEC }1,1 (1)
{ XtaldatL}7,1 (2)

Set the parameter to 4 and click { [OK] }. Then specify the file name

ex2a

The program now asks for the name of the Input file onto which the ICSD file is to be translated You may answer by typing

=

(or by clicking { =R }4,5) which means that the file somepath|ex2a.ics is translated into the file someotherpath|ex2a.dat (if the file exists already, override it by clicking { [OK] }). The Input file is loaded immediately after translation. From now on you can use this Input file directly (i.e., the translation procedure has to be performed only once per structure). --- Let's clear the GUI now with

{ }2,2 (3, above)


5.2. Box sections and spherical sections

The structure, now stored in ex2a.dat (Pb3(PS4)2;space group P213) will be displayed with

{ quickR }3,4 (1)
1

2
3
4

The program generated just one unit cell with all atoms outside the unit cell walls cut off. The picture is somewhat confusing because of the many bonds. We will get rid of some of them in section 5.4. Let's now have a look at the data set itself:

{ EDTC }1,2 (2)
{ InputR }6,2 (3)

{ [OK] }

The data set (containing a number of #comment lines at the beginning) is in accordance with the rules given in section 5.1. - Leave the editor. We will use ex2a.dat now to generate a number of sections of the crystal structure of Pb3(PS4)2 . First we load the Input file once more by clicking

{ USEL }1,1 (4,above)

The data set is loaded and the program asks you to enter more data cards from the keyboard. At the same time the GUI's "command column" is replaced by a "card label column". This is the general behaviour if the program doesn't find an ENd card at the end of a data set.

Note Size and shape of a crystal structure section generated by SCHAKAL are controlled mainly by data cards and not by commands. These data cards may be appended to the Input file (containing the structural data) or may be input "by hand" in the process of loading the Input file (the latter if the data set doesn't contain an ENd card).

Data input given "by hand" is generally terminated by clicking { END }6,2 or, simply,

{ [OK] }

(i.e., no additional data are given, this time). To display the structure, we first set a view distance of 100 A by typing the corresponding 'Set View' command (which also would be available in the { SET } group):

s v 100

{ quickR }3,4 (1)
1
2

You will again see the unit cell of the structure (as the data set contains a SPgr card, but no BOx [or PAck] card, the program has added automatically a plain 'BOx' card (without parameters), see below). Unit cell edges (which are usually "hidden" after data processing of a non-crystallographic data set) have been switched on by the program because of the SPgr card in the data set.

Note The unit cell's a "axis" is generally displayed with grey colour (main colour no. 1), the b axis with red (no. 2), and the c axis with green (no. 3) colour.

If you want to modify size and/or shape of the model you will have to re-load the Input file:

{ USEL }1,1 (2, above)

The same Input file as before is re-loaded (as the command file qs.scf, invoked by { quickR }3,4 , which has been executed just before is generally excluded from the list of Input, Command, and Writing files; cf. section 1.4.). Again you are asked to specify additional data cards. Click

1
2

{ BOXL }19,1

Set the parameter to 0.25 and click { [OK] }. Then terminate the input of data cards with another

{ [OK] }
{ quickR}3,4

The model generated this way is enlarged by 0.25 (fractional coordinates) in all directions as compared to the model generated by the plain BOx card. Besides the 1-parameter syntax of the BOx card used here, there is also a 3-parameters and a 6-parameters syntax (available in the GUI from { BOXa } and { BOXb }). With these, any desired section of the structure with boundary walls parallel to the unit cell walls may be generated, provided that the program's atom/bond capacity is not exceeded.

Now let's re-load the Input file once more:

{ USEL }1,1

This time we use a RAdius card to generate a spherical section of the crystal structure:

{ RADIUSa }17,1 (2, above)

Set the parameters to 15, 0.5, 0.5, 0.5 and click { [OK] }. Then terminate with another

{ [OK] }
{ quickR}3,4

X

This time we have generated a spherical section of radius 15 A, center at the center of the unit cell. Let's now try a variant of the RAdius syntax. First re-load the Input file:

{ USEL }1,1

To input additional data, click

{ RADIUS }16,1 (X)

{ 4.0 } { Pb1 }2,13 { [OK] }

and terminate input of data cards with

{ [OK] }
{ quickR}3,4

We get a Pb1 atom of the structure plus all atoms bonded to it. In fact the program generated a spherical section of radius 4 A, center at the first Pb1 atom found in the Input file. But all atoms in this section are "hidden" initially except Pb and the atoms bonded to it. With a plain 'Def Fragment' command, i.e., by clicking { DEFL }1,12, you could make all atoms of the spherical section visible.


5.3. The EXpand region

A BOx section or a spherical section (or a polyhedral section) may be expanded by p Angstroms by means of an EXpand card. The additional space obtained is called the EXpand region; atoms which are within the EXpand region get the "EXpand region status". The parameter p should be slightly larger than the length of the longest bond in the structure. To check for the longest bonds in Pb3(PS4)2 we first re-load the Input file ex2a.dat :

{ USEL }1,1

This time, we generate another model which is a a bit more than one unit cell by typing:

bo .3

{ [OK] }
{ quickR}3,4

l b

1
2
3

We can now use the output produced by the 'List Bonds' command to check that the longest bonds have a length of 3.16 A. Therefore we use an EXpand parameter p of 3.2 A

{ USEL }1,1

The file ex2a.dat is re-loaded.

{ EXPA }9,1 (1)

Set the parameter to 3.2 and click { [OK] }.

{ BOXL }19,1 (2)

Set the parameter to 0.25 and click { [OK] }. Terminate data input with

{ END }6,2 (3)

{ quickR }3,4 (1)
1
2 >>

3

The 'BOx 0.25' section has been expanded by an "enveloping" layer of 3.2 A thickness, the "EXpand region". We can now use this EXpand region to re-shape the model in a way that it is reduced to the 'BOx 0.25' section but with all bonds pointing from this section "outwards" represented by broken-off bond sticks.

This is done with the 'Transform EXpandregion 1' command which is in the { ADD } group:

{ ADDC }1,13 (2)
{ Expand 1R}20,2 (3)
{ quickR}3,4 (1, above)

This representation visualizes that the model doesn't end at its borderlines but is only a section of an infinite crystal structure.


5.4. Customizing bond pattern / Surface models

>From now on we will consider the structure to consist of "isolated" tetrahedral PS43- anions held together by Pb2+ cations. Therefore we will get rid of the many Pb-S bonds which make the models look rather confusingly. This aim could be achieved by four different measures:

The 4th measure has already been performed with the modified data set ex2.dat . Let's have a look at it:

1
2
3

{ EDTC }1,2 (1)
{ InputfR}6,2 (2)

ex2

ex2.dat differs from ex2a.dat mainly by the lack of comment cards and by the two 'ASsume' cards, which make the following atoms be treated as Ionic or Molecular (= covalent) atoms. A by-product of this measure is that Pb will now be assigned its small (average) ionic radius instead of its large Van-der-Waals radius. Let's now leave the editor and load the file:

{ USEL }1,1 (3,above)

1
2

This time we will generate a "surface model", i.e., a model of how atoms are arranged on a surface (hkl) of a crystal of Pb3(PS4)2 . Click

{ FACE }12,1 (1)

and set the three parameters h, k, and l to 1, 2, and 0; then click { [OK] }. Now we use the BOx card to specify the size of the surface model:

{ BOXa }20,1 (2)

Set the three parameters to 0.5, 0.5, and 0; then click { [OK] }; terminate input with another

{ [OK] }

and display the model, e.g., with { quickR }3,4

You now may check that the model doesn't contain any bonds to and from Pb (see above).

The first two parameters on the 'BOx' card refer to the "2D unit cell" of the (120) surface (each crystallographic plane has its own 2D unit cell). This unit cell is displayed by cyan, yellow, and violet lines. It has been expanded by 0.5 fractional units along the two unit vectors. The third parameter tells the program to use the default thickness of the surface model which is the characteristic inter-lattice-plane distance d120.

To obtain a side-view of the model we rotate it by 90 degrees about the Y axis (pointing upwards). This is, of course, possible with the on-screen rotations box or by typing

R Y 90

X Q

You will see that the thickness of the generated sheet is rather small (it is the aforesaid d120). To generate thicker sheets use a correspondingly larger 3rd parameter of the BOx card.

For more information on surface models, see figs. 20 to 24.


5.5. Complete building blocks (molecules)

A shortcoming of the models generated so far lies in the fact that generally some of the peripheral PS4 tetrahedra are incomplete. The reason is, that atoms outside the BOx or RAdius ranges have been generally cut off strictly. However, as we consider the crystal to be composed of the building blocks Pb2+ and PS43- we would like to see all the PS4 groups intact.

In the simplest case we want to see just the minimum number of complete building blocks, i.e. those complete "molecules" of which the crystal can be formed by applying symmetry operations and lattice translations. It would be difficult or even impossible to figure out a BOX or RAdius range which just generates this kind of model without any additional atoms.

SCHAKAL offers a procedure which automatically generates this minimum number of complete building blocks by means of the default partition of the DCF build.scf (available from { cryst }). This procedure should generally be invoked when you are interested in the structure of a molecule from crystallographic data:

{ crystL }2,8 (1)
1

2
3

{ build }11,2 (2)

SCHAKAL now asks you to specify the Input file which contains the crystallographic data set. Click

{ [OK] }

to have the file ex2.dat re-loaded. The procedure which follows, ends up in displaying the desired building blocks: One Pb atom and two complete PS4 groups.

Note This procedure and the others from build.scf (see below) require two conditions to be fulfilled:

a) The automatic bond finding routines employed during the loading of a data set must not generate bonds between any two atoms belonging to two different building blocks (note: this does not pertain to intermolecular H bridges generated by a DCF of the { cryst } group !). I.e., for ex2.dat , the procedure would have failed, if any bonds between Pb and PS4 would be generated by the bond finding routines. This has been excluded by modifying the data set (see section 5.4.). Usually, if "forbidden" bonds are generated, you would have to exclude them with one or more 'DIst' cards to be inserted into the Input file.

b) No two atoms of two different building blocks should have the same name (e.g., C12 and C12). Generally, you simply should take care that all atoms in the data set have different names.

5.5.1. Addition of Hydrogen bonds

If your structure contains any H bridges, you may use { bld+h } (3, above) instead of { build } . In this case all inter- and intramolecular H bridges will be added to the complete molecule(s). Intermolecular H bridges will end in atoms of a small radius which belong to a molecule in the neighbourhood of the molecule in question. Use {cuthb } (also available from { cryst }) to transform such intermolecular bonds into broken-off bond sticks. As an example, you may use the file ex5.dat (structure of a tripeptide, spacegroup P-1, with two molecules per asymmetric unit and four molecules per unit cell).

Note The program assigns H bridges by checking H -- Donoratom distances against the ranges given in the file addhb.scf. If H atoms are badly positioned, e.g., as a result of an Xray structure analysis, the program may fail to recognize all H bonds or assign some erroneously.


5.6. Packing diagrams

Now we want to generate larger sections of the structure composed only of complete building blocks. Drawings of such models are usually called "packing diagrams". The necessary procedure to be used is also a partition of build.scf. It first generates the minimum number of building blocks (as in section 5.5.) and stores the structure obtained on a file which is named name_p.dat, where name is the name core of the Input file containing the crystallographic data. name_p.dat is then immediately loaded:

{ crystL }2,8 (1)
1

2
3

{ bld+p }12,2 (2)

Again you can answer the request for the file with crystallographic data with

{ [OK] }

to load once more the file ex2.dat. The procedure invoked generates the file ex2_p.dat. and loads it right after. As ex2_p.dat doesn't contain an 'ENd' card, you are asked to input more data cards. We want to have the contents of one unit cell:

{ [OK] }

The possible input of additional data is terminated, the program adds a plain 'BOx' card.

The model now covers one unit cell; all building blocks, the gravity centers of which are inside the BOx range (i.e., inside the unit cell, here) have been included and are complete.

SCH92 The file ex2_p.dat contains an 'ASsm P(ack)' card wich makes any 'BOx' card work like the corresponding 'PAck' card of SCHAKAL 92. The explicite use of the 'PAck' card is not recommended any more.

Next time you want to generate a packing diagram of the same structure you don't have to repeat the { bld+p } procedure. Instead you can directly load the ex2_p.dat file via 'Use Inputfile' or via the DCF { b+p2 }:

1
2

{ crystL }2,8 (1, above)
{ b+p2 }13,2 (3, above)

ex2_p

You cannot simply use { [ OK ] } this time as ex2_p.dat has not been specified explicitely by you before. The file is loaded. To generate a spherical packing diagram, click

{ RADIUSa }17,1 (1)

Set the first parameter to 12 and click { [OK] }. Then click another { [OK] } or

{ END }6,2 (2)

The spherical model consists of Pb atoms and complete PS4 tetrahedra.

5.6.1. Addition of Hydrogen bonds

If your structure contains H bonds you should use { bld+hp } to generate a packing diagram. This generates a file name_hp.dat which is immediately loaded to construct the first packing diagram. If you later want to generate more packing diagrams and if you want to start with name_hp.dat, you must use { bld+hp2 } to load this file (you cannot use 'Use Inputf' in this case !!).

More information is given in section 5.5.1.. Again, ex5.dat may be used to practice.


5.7. Summary

The following scheme gives an overview on how to obtain the Input file struct.dat containing a crystallographic data set:

Source Tool
Publication any text editor
SHELX file 'USE Xdatf 1'
CSD file (BCCAB) 'USE Xdatf 2'
ICSD file (print) 'USE Xdatf 3'
ICSD (STN) file 'USE Xdatf 4'
CIF file 'USE Xdatf 6'
    ===>    struct.dat

             (add DIst card(s) if required)


The following table shows how to obtain different kinds of models starting from the Input file struct.dat.

Tool addtl. card(s) results
'Use Inputfile' RAdius AC coord. sphere of atom AC
'Use Inputfile 1' . asymmetric unit
{ cryst } / { build } . intact unique molecule(s)
{ cryst } / { bld+h } . intact unique molecule(s) with H bonds
. . .
'Use Inputfile' (1)
     or
{ cryst } / { bld+p } (2)
     or
{ cryst } / { bld+hp } (3)
none unit cell
BOx ... parallel epipedal section
RAdiusa ... spherical section
several FAce polyhedral section
one FAce + BOx ... surface model

(1) generates a model with all atoms outside the specified section omitted.
Use an EXpand card (before all other additional cards) and a 'Transf Expandregion 1' command (after the Input file has been read) to generate broken-off bond sticks at the boundary walls of the section.

(2) generates a packing diagram and writes the file struct_p.dat. The file can later on be loaded with 'Use Inputfile' or with { cryst } / { bld+p2 } .

(3) generates a packing diagram with H bonds and writes the file struct_hp.dat. The file can later on be loaded with { cryst } / { bld+hp2 }.


Epilogue

To learn more about SCHAKAL, you might read the interactive hierarchical manual. To the features which have not (or hardly) been mentioned within the five sessions, belong ...

Adding a model to an existing one ('Add Inputfile', --> 113; 954)
The Label Position Storage (LPS; --> -22.3)
Use of "fonts" ('Use Font' , --> 245; see also distributed Command file showf.scf)
Geometry modifications (--> 32; 35; 36)
Aligning direct or reciprocal crystallographic lattice vectors (--> 334; 335)
Modification of the colour palette ('Gen Palette ..' , --> 42; 957)
Switching shadows on and off (--> 44; 583)
Intersection traces ('Gen Intersection ..', --> 447)
Shading modes ('Set Mode ..'; --> 45; fig. 6)
Contrast, intensity of shadows and highlights (--> 52)
Density of hatching lines; dashed and dotted lines (--> 54; fig.3)
Drawing area X,Y limits; Z limits for atoms/bonds (--> 57)
Adding Hydrogen atoms (--> 61)
Changing atom names ('Chge Name ..', --> 631)
Assigning numerical group numbers to atoms ('Def Group ..' , --> 668)
Redefining the origin of the internal Cartesian coordinates system ('Def Origin ..', --> 673)
Filter atom/bond codes ('Defn Target', --> 678; 'Filter ..' --> 68)
Getting a list of (too) close Van-der-Waals contacts (--> 697; 698)
Assigning bond sticks to edges of coord. polyhedra ('Transf Coordination ..', --> 715; fig. 17)
Echoing of command lines, suppressing written output (--> 74)
Using symmetry operations explicitely (--> 83)
Transforming crystallographic coordinates (--> 835)
Photographing screen pictures (--> 957)

You also might study the contents of the "distributed Command files" which give examples on how to do things. Unfortunately, "device partitions" and "labeled partitions" (--> 76) make most distributed Command files look rather confusing. Furthermore, some procedures have been written in a comparatively complicated way (to have them work in all cases). Of course, if you write your own Command files, these don't have to contain any partitions at all and you may design them to work for none but your special problems!

Back to Main TOC
Back to Top of Session 5