StrandPosition is an array of arrays: one array of positions for each strand.
Here’s a Python snippet:
from win32com.client import constants xsi = Application def dispFix( badDispatch ): import win32com.client.dynamic # Re-Wraps a bad dispatch into a working one: return win32com.client.dynamic.Dispatch(badDispatch) attr = xsi.Selection(0).ActivePrimitive.Geometry.ICEAttributes( "StrandPosition" ) dataType = attr.DataType data2D = attr.DataArray2D for data in data2D: for elem in data: elem = dispFix(elem) xsi.LogMessage( "Vector3: " + str(elem.X) + ":" + str(elem.Y) + ":" + str(elem.Z) )
And here’s a JScript snippet:
a = Selection(0).ActivePrimitive.Geometry.ICEAttributes( "StrandPosition" ); LogMessage( ClassName(a) ); x = a.DataArray2D.toArray(); LogMessage( x.length ); for ( var i = 0; i < x.length; i++ ) { y = x[i].toArray(); LogMessage( "=======================" ); for ( var j = 0; j < y.length; j++ ) { LogMessage( y[j].X + ", " + y[j].Y + ", " + y[j].Z ); } }
