Ar_Hpoint = #() Ar_Line=#() Ar_All=#(Ar_Hpoint, Ar_Line) Fn ADDpoint ArrayA = ( local n = ArrayA.count+1 ArrayA [n]= point() ArrayA [n].box=true ArrayA [n].cross=false ArrayA [n].size=20 ArrayA [n].constantscreensize=false ArrayA [n] ) Fn drawLineBetweenTwoPoints pointA pointB ArrayC= ( local n = ArrayC.count+1 ArrayC[n]=SplineShape pos:pointA --local ss = SplineShape pos:pointA addNewSpline ArrayC[n] addKnot ArrayC[n] 1 #corner #line PointA addKnot ArrayC[n] 1 #corner #line PointB updateShape ArrayC[n] ArrayC [n] ) ( ADDpoint Ar_Hpoint ADDpoint Ar_Hpoint move Ar_Hpoint [2] [50,0,0] ADDpoint Ar_Hpoint move Ar_Hpoint [3] [100,0,0] drawLineBetweenTwoPoints Ar_Hpoint[1].pos Ar_Hpoint[2].pos Ar_Line drawLineBetweenTwoPoints Ar_Hpoint[2].pos Ar_Hpoint[3].pos Ar_Line ) --first part /* when transform Ar_Hpoint[1] changes do (setKnotPoint Ar_Line[1] 1 1 Ar_Hpoint[1].pos ; updateShape Ar_Line[1]) when transform Ar_Hpoint[2] changes do (setKnotPoint Ar_Line[1] 1 2 Ar_Hpoint[2].pos ; updateShape Ar_Line[1]) when transform Ar_Hpoint[2] changes do (setKnotPoint Ar_Line[2] 1 1 Ar_Hpoint[2].pos ; updateShape Ar_Line[2]) when transform Ar_Hpoint[3] changes do (setKnotPoint Ar_Line[2] 1 2 Ar_Hpoint[3].pos ; updateShape Ar_Line[2]) */ --second part /* for i = 1 to 2 do ( when transform Ar_Hpoint[i] changes do (setKnotPoint Ar_Line[i] 1 1 Ar_Hpoint[i].pos ; updateShape Ar_Line[i]) when transform Ar_Hpoint[i+1] changes do (setKnotPoint Ar_Line[i] 1 2 Ar_Hpoint[i+1].pos ; updateShape Ar_Line[i]) ) */ --third part /* for b=1 to 2 do ( global i=b when transform Ar_Hpoint[i] changes do (setKnotPoint Ar_Line[i] 1 1 Ar_Hpoint[i].pos ; updateShape Ar_Line[i]) when transform Ar_Hpoint[i+1] changes do (setKnotPoint Ar_Line[i] 1 2 Ar_Hpoint[i+1].pos ; updateShape Ar_Line[i]) ) */