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 .
4.1. | Printer devices |
4.2. | Printing |
4.2.1. | Writing a text file |
4.3. | Erasing a part of a printer drawing |
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 |
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.
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.
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 |
|
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>.
UNIX: | from a UNIX shell (with the path including the SCHAKAL 99 main directory) type ...
s | . | ||||||
MS-Win: |
| ![]() |
Then type
<RETURN>
The SCHAKAL window is opened, its contents consisting of the GUI (top and left parts) and the "drawing area".
{ 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.
{ 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.
{ 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.
{ + }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.
{ --> 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.
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).
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.
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). |
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) |
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) |
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:
|
![]() 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".
You may generally cancel input of a file name by typing "n", or by clicking
|
![]() 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. . |
{ 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
More about drawing is given in the next section. |
![]() 1
2
3
|
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). |
We now execute the 'Use Inputfile' command another time, this time using an "empty" filename (we first clear the text window):
We now input an "empty filename" by simply clicking
|
![]() 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.
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..
{ XQTC }1,4 | (1) |
![]() 1
3
|
![]() 2
|
{ QuickR }7,2 | (2) |
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) |
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").
|
![]() ![]() 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) |
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:
|
![]() ![]() 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) |
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) |
Now, modify the values in the two parameter boxes via the mouse until you have the new values 36 and 50. Then click
|
![]() ![]() 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
|
![]() ![]() 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). |
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.
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.
92
You don't have to read every detail by now, just get an impression.
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)
|
![]() 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:
|
![]() 1
2
3
|
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"):
|
![]() 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.
{ 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.
{ XQTL }1,4 | (red star) |
{ AtomsL }12,1 | (2, above) |
|
![]() 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".
![]() 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
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:
|
![]() ![]() 1
2
|
The different parts of the molecule can now easier be distinguished from each other.
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)):
"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
|
![]() 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).
{ 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) |
r z 90
r x -90
{ XQTL}1,4 | (2) |
![]() ![]() 1
2
3
|
{ 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
|
{ 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.
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:
|
![]() 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) |
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) |
{ 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').
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.)
{ 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" ').
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 $':
|
![]() 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) |
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.
{ 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.
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.
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. |
{ 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. |
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
|
|
![]() 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) |
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.
![]() |
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).
|
![]() 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
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.
|
![]() 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:
|
![]() 1
2
|
HSL coordinates are also used to change the characteristics of a certain main colour. This is done via the 'Set Hue' command.
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.
|
![]() 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
|
![]() X
|
![]() 1
2
|
{ ViewR }14,2 | (1) | |
{ XQTL}1,4 |
To get a drawing with perspective switched off (i.e. with parallel projection mode).
{ 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
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. |
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". |
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
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.
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. |
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
![]() 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
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
|
![]() 1
4
|
![]() 2
3
|
{ $ }7,2 | (2) | |
{ simple }13,2 | (3) |
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
|
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
|
![]() 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 { 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:
Finally, let's reset some parameter values, now:
Set all parameters to 0 and click
{ [OK] }.
Then clear the GUI with
{ }2,2/3
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 .
Then label the iron atoms by an extra 'Wrt Label ..' command:
The last action (invoked by 'W L..') may now be cancelled
by means of the 'Kill Last' command:
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 The 'Kill Region' command works differently:
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.
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:
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
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.
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:
Now let's do some drawing including labeling and correction of labeling:
Now move the Fe1 label with the mouse by 'T I Fe1' as
described in section 3.1.2.:
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:
To see what we have stored on this Echo file we execute it now as a Command file:
Up to now, we had plain black, white, or other uniformly coloured backgrounds.
However, SCHAKAL offers facilities to generate less trivial backgrounds. Click
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 :
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).
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):
{ blue } { [OK] }
{ 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:
The latter re-activates automatic screen erasing: the red
{ K }3,1.5 is
replaced by the green { K }2,1.5.
Note
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.
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:
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.
{ K }2,1.5
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.
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
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:
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:
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 ...
These are the steps I usually take:
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.
The "*" appears in the upper right corner of the
{ [OK] } button. If it is clicked, its CF turns
light blue.
The screen device is now in non-colour mode. Click
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:
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
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
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
Then click
{ [OK] }
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:
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:
{ 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 :
...
you may send the Printer file directly to the printer by a
'Use Printerfile 2' command, i.e. by:
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.).
(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:
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
Now let's write the text with 'Use Writingfile'
or with a plain 'Use' into a free space:
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
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:
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:
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:
We will now again use the atom code control fields, this time to generate a
'Wrt Label Fe' command:
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.
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
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:
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):
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)
Set the first parameter to 1 and click { [OK] }to launch the
'Set Inscr ! 1 0' command. Then let's repeat
the last drawing:
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 !' :
Set all parameters to 0, click { [OK] }, and clear the GUI with
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:
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:
{ 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:
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:
This is the end of session 4. You might terminate the program or
continue with session 5.
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.
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'
As an example we translate the distributed file ex2a.ics:
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
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:
{ [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
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.
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
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.
If you want to modify size and/or shape of the model you will have to re-load the Input file:
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
Set the parameter to 0.25 and click { [OK] }. Then terminate the input of data cards with another
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:
Set the parameters to 15, 0.5, 0.5, 0.5 and click
{ [OK] }. Then terminate with another
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
{ 4.0 } { Pb1 }2,13 { [OK] }
and terminate input of data cards with
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.
{ USEL }1,1
This time, we generate another model which is a a bit more than one unit cell by typing:
bo .3
l b
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.
Set the parameter to 3.2 and click { [OK] }.
Set the parameter to 0.25 and click
{ [OK] }. Terminate data input with
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:
This representation visualizes that the model doesn't end at its borderlines but is only a section of an infinite crystal structure.
The 4th measure has already been performed with the modified data set
ex2.dat . Let's have a look at it:
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:
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
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:
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.
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:
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.
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.
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).
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.
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 }:
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
Set the first parameter to 12 and click { [OK] }.
Then click another { [OK] } or
The spherical model consists of Pb atoms and complete PS4 tetrahedra.
More information is given in section 5.5.1..
Again, ex5.dat may be used to practice.
(add DIst card(s) if required)
The following table shows how to obtain different kinds of models
starting from the Input file struct.dat.
(1) generates a model with all atoms outside the specified section omitted.
(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 }.
Adding a model to an existing one ('Add Inputfile',
--> 113; 954)
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!
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 .
{ MGN InscrR }23,2
(1)
{ SET InscrR }25,2
(2)
{ SET WrtL }26,1
(3)
3.2. Erasing a part of a screen drawing
3.2.1. Removing results of last action
{ shadeR }3,5
(1)
{ LabelL }6,1
(2)
{ Fe }
{ [OK] }
{ l }2,1
'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
{ r }3,1
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
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
{ USEL }1,1
(3, above)
3.3.2. Recording an "Echo file"
{ USEC }1,1
(1)
{ EchofR }14,2
(2)
myecho
{ InputfR }6,2
(3)
ex1
{ CommandfR }13,2
(4)
ex1
{ varyZR }3,6
(1)
{ WRTC }1,3
(2)
{ LabelL }6,1
(3)
{ Fe }
{ [OK] }
{ TRL Insc }22,1
(4)
{ Fe1 }
{ [OK] }
{ USEC }1,1
(1)
{ Echof 1 }15,2
(2)
{ 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.
3.4. "Fourier" backgrounds
{ fourrR }3,7
(1)
{ EDTL }1,2
(2)
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.
{ ColOth }6,1
{ SETC }1,9
(1)
{ MGNC }1,14
(2)
{ }2,2/3
(1)
{ varyZR }3,6
(2)
{ K }3,1.5
(3)
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
3.5.1. Saving an image (normal resolution)
Click:
{ shadeR }3,5
(1)
{ save }4,10 )
(2)
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):
(1)
{ USEC }1,1
(2)
{ RestorefR }19,2
{ =R }4,5
(3)
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)
{ resx2* }8,2
(2)
{ shadeR }3,5
(3, above)
u r
{ =R }4,5
(2)
{ resxnR }3,8
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.
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.
{ G/SC }1,8
(1)
{ DeviceL }5,1
(2)
{ * }2,3
(1)
{ [OK] }3,3
(2)
{ shadeR 3,5
(3)
{ DeviceR }5,2
(4, above)
Session 4: Printer drawings
Table of Contents
4.1.
Printer devices
4.2.
Printing
4.2.1.
Writing a text file
4.3.
Erasing a part of a printer drawing
4.1. Printer 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
(1)
{ DeviceL }5,1
(2)
1)US users should probably set the 2nd parameter to 3 to activate US A format.
UNIX
Set the first parameter to 6 (EPS/Postscript)1)
MS-Win
Set the first parameter to 8 (Windows printer)1)
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 !
{ shadeR }3,5
{ linesL }2,4
(1)
{ 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)
{ Print }4,10
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:
{ EDTC}1,2
(1)
{ Writingf }8,2
(2)
to be or
not to be
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)
{ USEL }1,1
(1)
{ 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)
{ XQTR }1,7
(2)
(draw outlines)
{ GENL }1,4
(3)
(switch to shading)
{ XQTC }1,4
(4)
{ XQT }6,1
(activate 'Xqt Xqt ..' command)
{ O }
{ [OK] }
{ C }
{ [OK] }
{ Fe }
{ [OK] }
{ WRTC }1,3
(1)
{ LabelL }6,1
(2)
{ Fe }
{ [OK] }
{ l }2,1
(3, above)
{ x }3,1
(1)
{ K }2,1.5
(2)
4.4. Portrait format
Now let's make a drawing using a "predefined pattern" :
{ GENC }1,7
(1)
{ Outlines }13,2
(2)
('Generate Outlines': switch to outlines)
{ XQTR }1,4
(3)
4.4.1. Predefined patterns
{ GENL }1,7
{ G/SC }1,9
(1)
{ InscrL }17,1
(2)
{ ! }2,3
(3)
{ K }2,1.5
(1)
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
{ InscrL }17,1
(2, further above)
{ ! }2,3
(3, further above)
{ }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
{ pattnL2,5
(1)
{ $ }7,2
(1)
{ 3Dim* }9,2
(2)
{ WRTC }1,3
(1)
{ TRL Insc }22,1
(2)
{ }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)
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.
{ DeviceR }5,2
(2)
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.
{ otherL }2,9
(1)
{ reset }13,2
(2)
Session 5: Crystallo-Graphics
Table of Contents
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
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:
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
{ USEC }1,1
(1)
{ XtaldatL}7,1
(2)
{ }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)
{ EDTC }1,2
(2)
{ InputR }6,2
(3)
{ USEL }1,1
(4,above)
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).
{ quickR }3,4
(1)
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.
{ USEL }1,1
(2, above)
{ BOXL }19,1
{ [OK] }
{ quickR}3,4
{ RADIUSa }17,1
(2, above)
{ [OK] }
{ quickR}3,4
{ RADIUS }16,1
(X)
{ [OK] }
{ quickR}3,4
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 :
{ [OK] }
{ quickR}3,4
{ EXPA }9,1
(1)
{ BOXL }19,1
(2)
{ END }6,2
(3)
{ quickR }3,4
(1)
{ ADDC }1,13
(2)
{ Expand 1R}20,2
(3)
{ quickR}3,4
(1, above)
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:
{ EDTC }1,2
(1)
{ InputfR}6,2
(2)
{ USEL }1,1
(3,above)
{ FACE }12,1
(1)
{ BOXa }20,1
(2)
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.
{ crystL }2,8
(1)
{ build }11,2
(2)
Note
This procedure and the others from build.scf (see below) require two conditions to be fulfilled:
5.5.1. Addition of Hydrogen bonds
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)
{ bld+p }12,2
(2)
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.
{ crystL }2,8
(1, above)
{ b+p2 }13,2
(3, above)
{ RADIUSa }17,1
(1)
{ END }6,2
(2)
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 !!).
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
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
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.
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 ...
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)