MakeNXScript #nxscript createxml junk4.xml echidna.dic proc getVal {msg} { return [string trim [lindex [split $msg =] 1 ] ] } proc nxreopenfile {} { global dataFileName; nxscript reopen $dataFileName echidna.dic; } set dradius 1.25 set ndect 128 set tubedia 0.0254 set pi 3.1415926 #set angsep [expr $tubedia/$dradius *(180/$pi)] set angsep 1.25 # stthmin = (180 - (1.25*127))/2 set stthmin 10.625 proc addnxentry {nxobj entryname scanVariable scanVarPos } { global dradius ndect angsep stthmin; putcommon $nxobj $entryname $scanVariable putcrystal $nxobj putmonitor $nxobj putsample $nxobj set mtth_val [string trim [lindex [split [mtth] =] 1]] $nxobj putfloat $scanVariable $mtth_val # Add thetamin and stth to tharr(i) set sampletwotheta [string trim [lindex [split [stth] =] 1]] for {set i 0} {$i < $ndect} {incr i} { set tharr($i) [expr ($i-63.5)*$angsep + $sampletwotheta] } $nxobj updatedictvar thetadim $ndect $nxobj putarray dtheta tharr $ndect $nxobj puttext dtype He-3 position sensitive detector, tube active length=335+/-5mm, tube diameter=25.4 +/- 0.8mm $nxobj puttext ddesc 128 He-3 proportional counter detector tubes (GE Energy Reuter Stokes Inc. item=RS-P4-0814-217) $nxobj putfloat dradius $dradius $nxobj puttext dlayout area $nxobj puthm dcounts hmm $nxobj puthm deff hmm $nxobj makelink scandata dcounts $nxobj makelink scandata dtheta $nxobj makelink scanvar $scanVariable } proc bm_addnxentry {nxobj entryname scanVariable scanVarPos } { global dradius ndect angsep stthmin; putcommon $nxobj $entryname $scanVariable putcrystal $nxobj putmonitor $nxobj putsample $nxobj set mtth_val [string trim [lindex [split [mtth] =] 1]] $nxobj putfloat $scanVariable $mtth_val # Add thetamin and stth to tharr(i) # $nxobj puttext dtype He-3 position sensitive detector, tube active length=335+/-5mm, tube diameter=25.4 +/- 0.8mm # $nxobj puttext ddesc 128 He-3 proportional counter detector tubes (GE Energy Reuter Stokes Inc. item=RS-P4-0814-217) # $nxobj putfloat dradius $dradius $nxobj puttext dlayout point $nxobj makelink scandata mdata $nxobj makelink scanvar $scanVariable } proc putmonitor {nxobj} { $nxobj puttext mmode [string trim [lindex [split [bm getmode] =] 1]] $nxobj putfloat mpreset [string trim [lindex [split [bm getpreset] =] 1]] $nxobj putint mdata [string trim [lindex [split [bm getcounts] =] 1]] $nxobj putfloat mdistance [getVal [bm_distance]] } proc putsample {nxobj} { $nxobj puttext saname [getVal [Sample]] } proc putcrystal {nxobj} { $nxobj puttext ctype "Ge 113" } proc putcommon {nxobj entryName scanVariable} { $nxobj updatedictvar entryName $entryName $nxobj updatedictvar scan_variable $scanVariable $nxobj puttext etitle [getVal [title]] $nxobj puttext estart [sicstime] $nxobj puttext eend [sicstime] $nxobj puttext iname [getVal [instrument]] # NXsource $nxobj puttext sname OPAL $nxobj puttext stype Reactor Neutron Source $nxobj puttext sprobe Neutron } publish addnxentry user publish bm_addnxentry user