Dynamic Dimension example

I want to share this little snippet about interactive dimensions using transform_script controller.
This is the initial phase of script and need more improvements.

To do list:
1. Direction of the tip arowws (cone primitives) need to be always parallel with
Line Shape.
2.In the code i commented helpers creations.
#1 "rotHelper" (big red point helper) will be used like Master parent for translation and rotation.
#2 "pos1Helper" and "pos2Helper" (blue one) will be control the size of Line Shape.

I'd appreciate any good advice for the future upgrade.

(
	txt = text alignment:2 pos:[0,0,0] size:10 wirecolor:yellow
	addModifier txt (Shell innerAmount:.05 outerAmount:.05)
	spl = splineShape showFrozenInGray:off wirecolor:yellow isFrozen:on render_renderable:on \
	render_displayRenderMesh:on thickness:.3 side:8 render_threshold:60
	addNewSpline spl
	addKnot spl 1 #corner #line [-50,0,0]
	addKnot spl 1 #corner #line [50,0,0]
	updateShape spl ; animatevertex spl #all
	--rotHelper = point name:(uniquename "rotHelper") Box:on axistripod:off centermarker:off cross:off size:50 wirecolor:red
	--pos1Helper = point name:(uniquename "pos1Helper") pos:[-55,0,0] Box:off axistripod:off centermarker:off cross:on size:15 wirecolor:blue
	--pos2Helper = point name:(uniquename "pos2Helper") pos:[55,0,0] Box:off axistripod:off centermarker:off cross:on size:15 wirecolor:blue
	cone1 = cone height:5 radius1:1 radius2:0 heightsegs:1 capsegs:1 sides:16 pos:[-50,0,0] dir:[-1,0,0] wirecolor:yellow --parent:pos1Helper
	cone2 = instance cone1 ; cone2.pos = cone1.pos * -1 ; cone2.dir = cone1.dir * -1 ; cone2.wirecolor = cone1.wirecolor ; --cone2.parent = pos2Helper
 
	--text transform
	ctrlTM = txt.transform.controller = transform_script()
	ctrlTM.addTarget "c1" cone1[3][1]
	ctrlTM.addTarget "c2" cone2[3][1]
	ctrlTM.addNode "mst" txt
	ctrlTM.addConstant "ang" 270
	ctrlTM.addConstant "offs" 3
	txt = "tm = matrixfromnormal (normalize (c2 - c1))\n"
	txt += "tm.row4 = (c2 + c1)/2\n"
	txt += "mst.text = units.formatValue ((formattedPrint (distance c1 c2) format:\"0.2f\") as float)\n"
	txt += "tm = preTranslate (prerotateY tm ang) [0,offs,0]"
	ctrlTM.script = txt
 
	--live verts position_list
	p3sV1 = spl[4][8][2].track = point3_script()
	p3sV1.addTarget "c1" cone1[3][1]
	p3sV1.addNode "mst" spl
	p3sV1.script = "c1 * inverse mst.transform"
	p3sV2 = spl[4][8][5].track = point3_script()
	p3sV2.addTarget "c2" cone2[3][1]
	p3sV2.addNode "mst" spl
	p3sV2.script = "c2 * inverse mst.transform"
)