Running WEAP from Tcl with tcom

EKB WEAP (http://www.weap21.org/ ) is the Water Evaluation and Planning system from the Stockholm Environment Institute (SEI, web site: http://www.sei.se ). It's a commercial package, but is free for people in developing country institutions. I've been working with it (because I work at SEI!) and have been thinking about how to run WEAP from Tcl/Tk for various purposes. WEAP can act as a COM server, so tcom seemed like a good choice.

For anyone else who might want to play with this, here's the example from the WEAP API help translated from VBScript into Tcl:

package require tcom

set weapobj [::tcom::ref createobject "WEAP.WEAPApplication"]

$weapobj Verbose 1
$weapobj Logfile [file join [$weapobj Directory] "WeapErrors.txt"]
$weapobj ActiveArea "Weaping River Basin"
$weapobj ActiveScenario "Supply Measures"

for {set GrowthRate 0} {$GrowthRate < 6} {incr GrowthRate} {
    set varobj [$weapobj BranchVariable {\Demand Sites\South City:Annual Activity Level}]
    $varobj Expression FALSE "Growth($GrowthRate%)"

    $weapobj LoadFavorite "Groundwater Storage"

    # Did user cancel?
    if {[$weapobj Status] eq "FALSE"} {
        break
    }
      
    $weapobj ExportResults "C:\\GWresults$GrowthRate.csv" FALSE TRUE
}