/usr/share/xcrysden/examples/Scripting/multiScript.tcl is in xcrysden-data 1.5.53-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 | # ------------------------------------------------------------------------
#****** ScriptingExamples/multiScript.tcl ***
#
# NAME
# multiScript.tcl -- a simple example of multi-job script (i.e. multiScript)
#
# USAGE
# xcrysden --script multiScript.tcl
#
# COPYRIGHT
# Anton Kokalj (C) 2003
#
# PURPOSE
# This is a scripting example that shows how to produce a multi-jobs.
# It uses the scripting::multiScript facility. Many times, one might
# want to produce several plots of molecular orbitals of a given
# molecule. It would be desirable that the display parameters are
# exactly the same for all plots. This is one such example, where CO
# HOMO and LUMO molecular-orbitals are printed.
#
# The multiScript uses major and minor script. In the first script the
# loading of the files is specified, while in the latter script the
# operations of what to do with each file are defined. The usage of
# multiScript is:
#
# scripting::multiScript scriptMajor scriptMinor
#
# scripting::multiScript scriptMajor scriptMinor
#
# WARNINGS
# Inside the major-script (i.e. scriptMajor) the scripting::exec
# should be used instead of scripting::open.
#
# AUTHOR
# Anton Kokalj
#
# CREATION DATE
# Sometime in February 2003
#
# SOURCE
scripting::multiScript {
# ------------------------------------------------------------------------
# This is the MAJOR script
#
# It opens two files, one at a time, and then for each opened
# file proceed according to minor script instructions
# ------------------------------------------------------------------------
global env
set dir [file join $env(XCRYSDEN_TOPDIR) examples Xcrysden_Structure_Files]
set file1 [file join $dir CO_homo.xsf.gz]
set file2 [file join $dir CO_lumo.xsf.gz]
foreach file [list $file1 $file2] {
# load the $file XSF
scripting::exec --xsf $file
# rename print.png to $file.png
if { [file exists print.png] } {
set filehead [file tail [file rootname $file]]
file rename -force print.png $filehead.png
}
}
} {
# ------------------------------------------------------------------------
# This is the MINOR script
#
# It produces and prints the isosurface + colorplane
# ------------------------------------------------------------------------
# ------------------------------------------------------------------------
# display the structure in appropriate display-mode
# ------------------------------------------------------------------------
scripting::lighting On
scripting::displayMode3D Pipe&Ball
# ------------------------------------------------------------------------
# zoom and rotate the structure
# ------------------------------------------------------------------------
scripting::zoom -0.5
scripting::rotate x -90
# ------------------------------------------------------------------------
# load the 3D scalar field
# ------------------------------------------------------------------------
scripting::scalarField3D::load
# ------------------------------------------------------------------------
# configure, i.e., specify how to render the scalar field
#
# for the usage see, for example, isosurface+colorplane+print.tcl file
# ------------------------------------------------------------------------
scripting::scalarField3D::configure \
-isosurface 1 \
-interpolation_degree 2 \
-isolevel 0.1 \
-plusminus 1 \
-basalplane 2 \
-colorbasis BLUE-WHITE-RED \
-scalefunction LINEAR \
-expand2D specify \
-expand2D_X 1 \
-expand2D_Y 1 \
-expand2D_Z 1 \
-colorplane 1 \
-isoline 1 \
-colorplane_lighting 0 \
-cpl_transparency 0 \
-cpl_thermometer 1 \
-2Dlowvalue -0.1 \
-2Dhighvalue +0.1 \
-2Dnisoline 11 \
-anim_step 1 \
-current_slide 25 \
-isoline_color monocolor \
-isoline_width 3 \
-isoline_monocolor \#000000
# ------------------------------------------------------------------------
# hide the isosourface control window
# ------------------------------------------------------------------------
wm withdraw .iso
# ------------------------------------------------------------------------
# render the 3D scalar field as requested by
# scripting::scalarField3D::configure
# ------------------------------------------------------------------------
scripting::scalarField3D::render
# # ------------------------------------------------------------------------
# # revert the isosurface normals (this should be done after rendering of
# # isosurface)
# # ------------------------------------------------------------------------
#
# scripting::scalarField3D::configure -revertnormal {pos neg}
# ------------------------------------------------------------------------
# now lets print to file what we have on the display window
# ------------------------------------------------------------------------
scripting::printToFile print.png windowdump
# we've done all; exit
exit 0
}
#******
|