/usr/share/xcrysden/examples/Scripting/build_crystal.tcl is in xcrysden-data 1.5.60-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 | # ------------------------------------------------------------------------
#****** ScriptingExamples/build_crystal.tcl ***
#
# NAME
# build_crystal.tcl -- animates and builds a crystal structure
#
# USAGE
# xcrysden --script build_crystal.tcl
#
# COPYRIGHT
# Anton Kokalj (C) 2003
#
# PURPOSE
# This is a simple script. It renders a crystal structure, and builds
# step by step bigger portions of the crystal.
#
# AUTHOR
# Anton Kokalj
#
# CREATION DATE
# Sometime in February 2003
#
# SOURCE
# ------------------------------------------------------------------------
# load the structure (the argument to scription:open is the command line
# ------------------------------------------------------------------------
scripting::open --xsf $env(XCRYSDEN_TOPDIR)/examples/XSF_Files/ZnS.xsf
# ------------------------------------------------------------------------
# resize the display window to 400x400
# ------------------------------------------------------------------------
scripting::displayWindow resize 400 400
# ------------------------------------------------------------------------
# let us make a white background
# ------------------------------------------------------------------------
set myParam(BACKGROUND) {1.00 1.00 1.00}
scripting::load_myParam
# ------------------------------------------------------------------------
# display the structure in appropriate display-mode
# ------------------------------------------------------------------------
#-----
# this is for Lighting-On modes:
#-----
scripting::lighting On
# choose a 3D-display mode
#scripting::displayMode3D Stick
#scripting::displayMode3D Pipe&Ball
#scripting::displayMode3D BallStick
scripting::displayMode3D SpaceFill
#----
# #---
# # this is for Lighting-Off modes:
# #---
# scripting::lighting Off
#
# # choose a 2D-display mode
#
# #scripting::displayMode2D WireFrame
# #scripting::displayMode2D PointLine
# #scripting::displayMode2D Pipe&Ball
# #scripting::displayMode2D BallStick-1
# scripting::displayMode2D BallStick-2
# #scripting::displayMode2D SpaceFill
# #---
# ------------------------------------------------------------------------
# show th crystal-cells and switch to perspective projection
# ------------------------------------------------------------------------
scripting::display on crystal-cells
scripting::display on perspective
# ------------------------------------------------------------------------
# first zoom the structure slowly
# ------------------------------------------------------------------------
scripting::zoom +0.03 15
# ------------------------------------------------------------------------
# rotate a few times
#
# usage:
# scripting::rotate x|y|z step_size number_of_times
# or
# scripting::rotate xy|xz|yz step_size1 step_size2 number_of_times
#
# ------------------------------------------------------------------------
scripting::rotate x +3 10
scripting::rotate y +3 10
scripting::rotate z -3 10
# ------------------------------------------------------------------------
# now build the crystal slowly
# ------------------------------------------------------------------------
for {set i 1} {$i < 3} {incr i} {
for {set j $i} {$j < 3} {incr j} {
for {set k $j} {$k < 3} {incr k} {
if { $i*$j*$k != 8 } {
scripting::buildCrystal $i $j $k
wait 100
}
}
}
}
for {set i 2} {$i < 4} {incr i} {
for {set j $i} {$j < 4} {incr j} {
for {set k $j} {$k < 4} {incr k} {
if { $i*$j*$k != 27 } {
scripting::buildCrystal $i $j $k
update
}
}
}
}
for {set i 3} {$i < 5} {incr i} {
for {set j $i} {$j < 5} {incr j} {
for {set k $j} {$k < 5} {incr k} {
scripting::buildCrystal $i $j $k
update
}
}
}
#****
# ------------------------------------------------------------------------
|