Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- text .t -width 50
- frame .f1
- label .f1.l1 -text "Delta" -width 15
- entry .f1.t1 -width 20 -textvariable delta
- pack .f1.l1 .f1.t1 -side left
- pack configure .t .f1 -pady 5
- set array x1
- set array y1
- set array z1
- set array x2
- set array y2
- set array z2
- proc parse_coord { sz px py pz } {
- upvar $px x $py y $pz z
- set sz_length [string length $sz]
- set comma1 [string first "," $sz]
- set x [string range $sz 0 [expr $comma1 - 1] ]
- set x [string trimleft $x]
- #set print $x
- #append print "\n"
- # .t insert insert $print
- set comma2 [string last "," $sz]
- set y [string range $sz [expr $comma1 + 1] [expr $comma2 - 1] ]
- set y [string trimleft $y]
- #set print $y
- #append print "\n"
- # .t insert insert $print
- set z [string range $sz [expr $comma2 + 1] $sz_length ]
- set z [string trimleft $z]
- #append z "\n"
- #set print $z
- #append print "\n"
- # .t insert insert $print
- }
- proc distance { p1 p2 } {
- global x1 y1 z1
- global x2 y2 z2
- set dx [expr $x1($p1) - $x2($p2)]
- set dy [expr $y1($p1) - $y2($p2)]
- set dz [expr $z1($p1) - $z2($p2)]
- return [expr sqrt($dx * $dx + $dy * $dy + $dz * $dz)]
- }
- button .b -text "Select Atoms" -command {
- global x1 y1 z1
- global x2 y2 z2
- hcExec "query-response-has-tag false"
- set natoms1 [hcQuery "atom-count 1"]
- set print $natoms1
- append print "\n"
- .t insert insert $print
- set i 0
- while { $i < $natoms1 } {
- incr i 1
- set sz [hcQuery "coordinates($i,1)"]
- parse_coord $sz x1($i) y1($i) z1($i)
- }
- set natoms2 [hcQuery "atom-count 2"]
- set print $natoms2
- append print "\n"
- .t insert insert $print
- set i 0
- while { $i < $natoms2 } {
- incr i 1
- set sz [hcQuery "coordinates($i,2)"]
- parse_coord $sz x2($i) y2($i) z2($i)
- hcExec "select-atom $i 2"
- }
- #set delta 2
- set i 0
- while { $i < $natoms1 } {
- incr i 1
- set j 0
- while { $j < $natoms2 } {
- incr j 1
- set d [distance $i $j]
- if { $d < $delta } {
- set print "distance 1($i)\t 2($j)\t = $d\n"
- .t insert insert $print
- hcExec "select-atom $i 1"
- }
- }
- }
- }
- pack .b
Add Comment
Please, Sign In to add comment