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 );
}
}