Changeset 1016 for branches/sandbox


Ignore:
Timestamp:
Sep 22, 2010 3:30:06 PM (10 years ago)
Author:
toby
Message:

read & edit DISAGL distance/angle radii

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/sandbox/readexp.tcl

    r1015 r1016  
    26492649}
    26502650
     2651# get list of defined atom types
     2652proc AtmTypList {} {
     2653    set natypes [readexp " EXPR  NATYP"]
     2654    if {$natypes == ""} return
     2655    set j 0
     2656    set typelist {}
     2657    for {set i 1} {$i <= $natypes} {incr i} {
     2658        set key {this should never be matched}
     2659        while {![existsexp $key]} {
     2660            incr j
     2661            if {$j > 99} {
     2662                return $typelist
     2663            } elseif {$j <10} {
     2664                set key " EXPR ATYP $j"
     2665            } else {
     2666                set key " EXPR ATYP$j"
     2667            }
     2668        }
     2669        lappend typelist [string trim [string range $::exparray($key) 2 9]]
     2670    }
     2671    return $typelist
     2672}
     2673
     2674# read information about atom types
     2675#     distrad    atomic distance search radius (get/set)
     2676#     angrad     atomic angle search radius (get/set)
     2677proc AtmTypInfo {parm atmtype "action get" "value {}"} {
     2678    # first, search through the records to find the record matching the type
     2679    set natypes [readexp " EXPR  NATYP"]
     2680    if {$natypes == ""} return
     2681    set j 0
     2682    set typelist {}
     2683    for {set i 1} {$i <= $natypes} {incr i} {
     2684        set key {this should never be matched}
     2685        while {![existsexp $key]} {
     2686            incr j
     2687            if {$j > 99} {
     2688                return $typelist
     2689            } elseif {$j <10} {
     2690                set key " EXPR ATYP $j"
     2691            } else {
     2692                set key " EXPR ATYP$j"
     2693            }
     2694        }
     2695        if {[string toupper $atmtype] == \
     2696                [string toupper [string trim [string range $::exparray($key) 2 9]]]} break
     2697        set key {}
     2698    }
     2699    if {$key == ""} {
     2700        # atom type not found
     2701        return {}
     2702    }
     2703    switch -glob ${parm}-$action {
     2704        distrad-get {
     2705            return [string trim [string range [readexp $key] 15 24]]
     2706        }
     2707        distrad-set {
     2708            if ![validreal value 10 2] {return 0}
     2709            setexp $key $value 16 10
     2710        }
     2711        angrad-get {
     2712            return [string trim [string range [readexp $key] 25 34]]
     2713        }
     2714        angrad-set {
     2715            if ![validreal value 10 2] {return 0}
     2716            setexp $key $value 26 10
     2717        }
     2718        default {
     2719            set msg "Unsupported AtmTypInfo access: parm=$parm action=$action"
     2720            tk_dialog .badexp "Error in readexp" $msg error 0 Exit
     2721        }
     2722    }
     2723}
     2724
    26512725# write the .EXP file
    26522726proc expwrite {expfile} {
Note: See TracChangeset for help on using the changeset viewer.