diff --git a/examples/SPIN/prepare_vmd.sh b/examples/SPIN/prepare_vmd.sh index 331f2741e4..59a4c407fb 100755 --- a/examples/SPIN/prepare_vmd.sh +++ b/examples/SPIN/prepare_vmd.sh @@ -13,67 +13,67 @@ FILE=view_${TS}.vmd cat >${FILE} <] [resolution ] [radius ] [filled ]"} # defaults - set scale 3.0 - set res 5 + set scale 2.0 + set res 50 set radius 0.1 set filled yes - if {[llength $args] < 3} { - error "wrong # args: should be $usage" + if {[llength \$args] < 3} { + error "wrong # args: should be \$usage" } - set mol [lindex $args 0] - set center [lindex $args 1] - set vector [lindex $args 2] - if {[llength $center] != 3 || [llength $vector] != 3} { - error "wrong type of args: should be $usage" + set mol [lindex \$args 0] + set center [lindex \$args 1] + set vector [lindex \$args 2] + if {[llength \$center] != 3 || [llength \$vector] != 3} { + error "wrong type of args: should be \$usage" } - foreach {flag value} [lrange $args 3 end] { - switch -glob $flag { - scale {set scale $value} - res* {set res $value} - rad* {set radius $value} - fill* {set filled $value} - default {error "unknown option '$flag': should be $usage" } + foreach {flag value} [lrange \$args 3 end] { + switch -glob \$flag { + scale {set scale \$value} + res* {set res \$value} + rad* {set radius \$value} + fill* {set filled \$value} + default {error "unknown option '\$flag': should be \$usage" } } } - set vechalf [vecscale [expr $scale * 0.5] $vector] - return [list \ - [graphics $mol color yellow]\ - [graphics $mol cylinder [vecsub $center $vechalf]\ - [vecadd $center [vecscale 0.7 $vechalf]] \ - radius $radius resolution $res filled $filled] \ - [graphics $mol color orange]\ - [graphics $mol cone [vecadd $center [vecscale 0.6 $vechalf]] \ - [vecadd $center $vechalf] radius [expr $radius * 2.5] \ - resolution $res]] + set vechalf [vecscale [expr \$scale * 0.5] \$vector] + return [list \\ + [graphics \$mol color yellow]\\ + [graphics \$mol cylinder [vecsub \$center \$vechalf]\\ + [vecadd \$center [vecscale 0.7 \$vechalf]] \\ + radius \$radius resolution \$res filled \$filled] \\ + [graphics \$mol color orange]\\ + [graphics \$mol cone [vecadd \$center [vecscale 0.6 \$vechalf]] \\ + [vecadd \$center \$vechalf] radius [expr \$radius * 2.5] \\ + resolution \$res]] } proc vmd_draw_spin {args} { global molid - graphics $molid delete all - set frame [molinfo $molid get frame] - set natoms [molinfo $molid get numatoms] - for {set i 0} {$i < $natoms} {incr i} { - set sel [atomselect top "index $i"] - set coords [lindex [$sel get {x y z}] $molid] - set velocities [lindex [$sel get {vx vy vz}] $molid] - draw vector $coords $velocities - set uvx [lindex [$sel get {vx}] $molid] - set uvy [lindex [$sel get {vy}] $molid] - set uvz [lindex [$sel get {vz}] $molid] - $sel set user [vecadd [vecadd [vecscale $uvy $uvy] [vecscale $uvz $uvz] ] [vecscale $uvx $uvx]] - $sel set user $uvy - #draw vector $coords {0.0 uvy 0.0} + graphics \$molid delete all + set frame [molinfo \$molid get frame] + set natoms [molinfo \$molid get numatoms] + for {set i 0} {\$i < \$natoms} {incr i} { + set sel [atomselect top "index \$i"] + set coords [lindex [\$sel get {x y z}] \$molid] + set velocities [lindex [\$sel get {vx vy vz}] \$molid] + draw vector \$coords \$velocities + set uvx [lindex [\$sel get {vx}] \$molid] + set uvy [lindex [\$sel get {vy}] \$molid] + set uvz [lindex [\$sel get {vz}] \$molid] + \$sel set user [vecadd [vecadd [vecscale \$uvy \$uvy] [vecscale \$uvz \$uvz] ] [vecscale \$uvx \$uvx]] + \$sel set user \$uvy + #draw vector \$coords {0.0 uvy 0.0} } #pbc box -color 3 }