bsplinecurve b1 3 5 0 4 1 1 2 1 3 1 4 4 0 0 0 1 1 2 0 1 2 2 0 1 2 2 0 1 3 2 0 1 4 2 0 1 5 4 0 1 cvalue b1 2.0 x y z dx dy dz set delta 0.01 set yvalue [dval y] set zvalue [dval z] repeat 100 { cmovetangent b1 2.0 x $yvalue $zvalue dx dy dz 1 set yvalue [expr $yvalue + $delta ] set zvalue [expr $zvalue + $delta ] repaint } renamevar b1 result checklength result -l 8.3346946955628098