bsplinecurve b1 3 5 0 4 1 1 2 1 3 1 4 4  0 0 0 0.8  1 0.5 0 0.6   2 1 0 0.5  2 2 0 1  3 1.5 0 1  4 1.5 0 1   5 2 0 1 
cvalue b1 2.0 x y z dx dy dz
set delta 0.01
point p1 x y z
set dyvalue [dval dy] 
set dzvalue [dval dz] 
repeat 100 {
    cmovetangent b1 2.0  x y z dx $dyvalue $dzvalue 1
    set dyvalue [expr $dyvalue + $delta ]
    set dzvalue [expr $dzvalue + $delta ]
    repaint
}
renamevar b1 result
checklength result -l 7.0867664447042955