Error during SESSION activate. I got the message
invalid command name "::request::global"
invalid command name "proc"
    while executing
"proc CalculeRibbon {mol} {
    global Rad
    global LesVecs

    DecortiqueUnPDB "${mol}.pdb"
    global PDB_[set mol]_AtmXYZ
    global PDB_[set mol..."
    (in namespace eval "::request" script line 1)
    invoked from within
"namespace eval ::request $script"
    ("::try" body line 12)

OUTPUT BUFFER:

proc CalculeRibbon {mol} { global Rad global LesVecs DecortiqueUnPDB "${mol}.pdb" global PDB_[set mol]_AtmXYZ global PDB_[set mol]_NmrRes set ch [array names PDB_[set mol]_AtmXYZ] set LU {} set LV {} foreach p [set PDB_[set mol]_AtmXYZ($ch)] { set ca1 [lindex $p 1] lappend LU $ca1 set ca1 [lindex $p 2] set ca2 [lindex $p 3] set V [V_VV $ca2 - $ca1] set n [expr {1.0/[S_nV $V]}] set V [V_VS $V * $n] lappend LV $V } set len [llength $LV] set u0 [lindex $LU 0] GetRad $LU lappend newv $u0 foreach v [lrange $LV 1 end] { set norm 0.0 set norm [S_VV $u0 * $v] if {$norm < 0.0} {set v [V_SV -1. * $v]} set u0 $v lappend newv $v } set LV $newv # Lissage 3D par polynome Lagrange ordre 5 puts "LU avant [llength $LU]" set LNewU [Lissage3D $LU] puts "LU apres [llength $LNewU]" set LNewV [Lissage3D $LV] # calcul des normales set L1 [lrange $LNewU 2 [expr {4*($len-1)}]] set L2 [lrange $LNewU 0 [expr {4*($len-1)-2}]] set LV [lrange $LNewV 1 [expr {4*($len-1)-1}]] foreach x1 $L1 x2 $L2 v $LV { set u0 [V_VV $x1 - $x2] set w [Vectoriel $u0 $v] set norm [S_nV $w] if {$norm > 0.001} {set norm [expr {1.0/sqrt($norm)}]} lappend Lw [V_SV -$norm * $w] } # les extremites set Lw [linsert $Lw end [lindex $Lw end]] set Lw [linsert $Lw 0 [lindex $Lw 1]] set d1 0.5 set d2 0.5 set col1 [list 1.0 0.3 0.3] set col2 [list 1.0 0.3 0.3] set kstep 1 set LesVecs {} for {set i 0} {$i < $len-1} {incr i} { # compute the coordinates of points and of the normals for {set k [expr {4*$i}]} {$k < 4*($i+1)} {incr k} { # couleurs set mlt [expr {$k-4.*$i}] set c1 [V_VV $col1 + [V_VS [V_VS [V_VV $col2 - $col1] * 0.25] * $mlt]] set c2 [V_VV $col1 + [V_VS [V_VS [V_VV $col2 - $col1] * 0.25] * $mlt]] # points set d [expr {$d1 + ($d2-$d1)*0.25*$mlt}] set uk [lindex $LNewU $k] set up [lindex $LNewU [expr {$k+1}]] set vk [lindex $LNewV $k] set vp [lindex $LNewV [expr {$k+1}]] set wk [lindex $Lw $k] set wp [lindex $Lw [expr {$k+1}]] set p1 [V_VV $uk - [V_SV $d * $vk]] set p2 [V_VV $uk + [V_SV $d * $vk]] set d [expr {$d1 + ($d2-$d1)*0.25*($k+1.-4.*$i)}] set p3 [V_VV $up - [V_SV $d * $vp]] set p4 [V_VV $up + [V_SV $d * $vp]] if {$k % 2} { lappend LesVecs $wk $c1 $p1 $wp $c2 $p3 $wk $c1 $p2 lappend LesVecs $wk $c1 $p2 $wp $c2 $p3 $wp $c2 $p4 } else { lappend LesVecs $wk $c1 $p1 $wk $c2 $p4 $wk $c1 $p2 lappend LesVecs $wk $c1 $p1 $wp $c2 $p3 $wp $c2 $p4 } } } return } proc Lissage3D l { # lissage par polynomes de Lagrange d ordre 5 set n [llength $l] set km [expr {4*($n-1)+1}] set cof [list 0.1 0.125 0.25 0.375 0.50 0.625 0.75 0.875 1.0 0.875 0.75 0.625 0.50 0.375 0.25 0.125] for {set k 0} {$k < $km} {incr k} { set xout($k) [list 0.0 0.0 0.0] set norms($k) 0.0 } set xout([expr $km-1]) [lindex $l end] set C0 6144.0 set C1 -1536.0 set C2 1024.0 set i 0 set lx1 [lrange $l 0 end-4] set lx2 [lrange $l 1 end-3] set lx3 [lrange $l 2 end-2] set lx4 [lrange $l 3 end-1] set lx5 [lrange $l 4 end] foreach v1 $lx1 v2 $lx2 v3 $lx3 v4 $lx4 v5 $lx5 { for {set k 0} {$k < 16} {incr k} { set kk0 "$k." set kk4 [expr {$k - 4.0}] set kk8 [expr {$k - 8.0}] set kk12 [expr {$k - 12.0}] set kk16 [expr {$k - 16.0}] set c0 [expr {$kk4 * $kk8 * $kk12 * $kk16 / $C0}] set c1 [expr {$kk0 * $kk8 * $kk12 * $kk16 / $C1}] set c2 [expr {$kk0 * $kk4 * $kk12 * $kk16 / $C2}] set c3 [expr {$kk0 * $kk4 * $kk8 * $kk16 / $C1}] set c4 [expr {$kk0 * $kk4 * $kk8 * $kk12 / $C0}] foreach {x1 y1 z1} $v1 {} foreach {x2 y2 z2} $v2 {} foreach {x3 y3 z3} $v3 {} foreach {x4 y4 z4} $v4 {} foreach {x5 y5 z5} $v5 {} set lecof [lindex $cof $k] set qipk [expr {4*$i+$k}] foreach {xo yo zo} [set xout($qipk)] {} set xo [expr {$xo + $lecof*($x1*$c0 + $x2*$c1 + $x3*$c2 + $x4*$c3 + $x5*$c4)}] set yo [expr {$yo + $lecof*($y1*$c0 + $y2*$c1 + $y3*$c2 + $y4*$c3 + $y5*$c4)}] set zo [expr {$zo + $lecof*($z1*$c0 + $z2*$c1 + $z3*$c2 + $z4*$c3 + $z5*$c4)}] set xout($qipk) [list $xo $yo $zo] set norms($qipk) [expr {[set norms($qipk)] + $lecof}] } incr i } for {set k 0} {$k < $km-1} {incr k} { set xout($k) [V_VS [set xout($k)] / [set norms($k)]] } foreach k [lsort -integer [array names xout]] { lappend Lo [set xout($k)] } return $Lo } proc GetRad {l} { global pgl global xc yc zc global Rad foreach a {xc yc zc xm ym zm xx yx zx} { set $a 0.0 } foreach e $l { foreach {x y z} $e {} foreach a {x y z} b {xm ym zm} c {xx yx zx} { if {[set $a] < [set $b]} {set $b [set $a]} if {[set $a] > [set $c]} {set $c [set $a]} } } set Rad -999999. foreach a {xc yc zc} b {xm ym zm} c {xx yx zx} { set $a [expr {0.5 * ([set $b] - [set $c])}] if {abs([set $b]-[set $c]) > $Rad} {set Rad [expr {abs([set $b]-[set $c])}]} } set pgl(xMin) $xm set pgl(yMin) $ym set pgl(zMin) $zm set pgl(xMax) $xx set pgl(yMax) $yx set pgl(zMax) $zx set pgl(xCen) $xc set pgl(yCen) $yc set pgl(zCen) $zc puts "radius : $Rad" set fmt [format "Centre : %6.2f %6.2f %6.2f" $pgl(xCen) $pgl(yCen) $pgl(zCen)] puts "$fmt" set fmt [format "Minimum : %6.2f %6.2f %6.2f" $pgl(xMin) $pgl(yMin) $pgl(zMin)] puts "$fmt" set fmt [format "Maximum : %6.2f %6.2f %6.2f" $pgl(xMax) $pgl(yMax) $pgl(zMax)] puts "$fmt" return $Rad } proc light_color3fv {a b c} { # puts "a= $a b= $b c= $c" set le [list $a $b $c 0.0] glMaterialfv GL_FRONT_AND_BACK GL_AMBIENT_AND_DIFFUSE $le return }