maybe this (be sure to check if it is working properly):

var oObject = CreatePrim("Text", "NurbsCurve", null, null);
SelectObj("text.isopnt[(3,0.922)]", null, null);
AddToSelection("text.isopnt[(2,0.433)]", null, null);
AddToSelection("text.isopnt[(0,0.267)]", null, null);
AddToSelection("text.isopnt[(6,0.748)]", null, null);
AddToSelection("text.isopnt[(4,0.463)]", null, null);
var oCluster =
oObject.ActivePrimitive.Geometry.AddCluster(siIsoPointCluster,
"Isopoint_AUTO");
cElements = oCluster.Elements;
for(var i = 0; i < cElements.Count; i++)
    LogMessage(cElements(i)); // 0,1,2,3,4

var oSubComponent = oCluster.CreateSubComponent();
LogMessage("oSubComponent.Type: " + oSubComponent.Type); //
isopntSubComponent
LogMessage("ClassName(oSubComponent): " + ClassName(oSubComponent)); //
SubComponent

var aElements = oSubComponent.ElementArray;
LogMessage("oSubComponent.ElementArray: " + aElements.toArray()); //
LogMessage("oSubComponent.ElementArray.length: " + aElements.length); //
undefined

/////////////////////////////////////////////////////////

//get members as 1-item (string) collection (does not affect viewport
selection)
var isopnts = SelectMembers(oCluster, false, false);
var isopntsString = isopnts.getastext();

//manipulate string to parse into a Vec3 Array
//logmessage(isopntsString);
var aIsoPnts = IsoPntVectorArrayFromClusterString(isopntsString);

// Vector.X = subcurve index / Vector.Y = curve U
for (i=0;i<aIsoPnts.length;i++){
logmessage ("Cluster item " + i + " -> Subcurve Index: "+ aIsoPnts[i].x +
", U: " + aIsoPnts[i].y);
}


//string parser function
function IsoPntVectorArrayFromClusterString(inStr){

var listString = inStr.substring( inStr.indexOf("[")+1, inStr.indexOf("]") )
var listSplitString = listString;
var aSplitIndices = new Array();
while (listSplitString.indexOf("),")!=-1){
aSplitIndices.push(listSplitString.indexOf("),"));
listSplitString = listSplitString.substring(0,
listSplitString.indexOf("),")) + "#"+
listSplitString.substring(listSplitString.indexOf("),")+3);
}
listSplitString = listSplitString.substring(1,(listSplitString.length-1));
var aItems = listSplitString.split("#");
var aReturn = new Array();
for (i=0;i<aItems.length;i++){
var isopnt = XSIMath.CreateVector3();
var aValues = aItems[i].split(",");
isopnt.x = parseFloat(aValues[0]);
isopnt.y = parseFloat(aValues[1]);
aReturn.push(isopnt);
}
 return aReturn;
}







2012/11/15 Eugen Sares <[email protected]>

> Anyone?
> Thanks!
>
> Am 14.11.2012 14:32, schrieb Eugen Sares:
>
>  Hi,
>> I'm looking for away to get the SubcurveIndex/UValue data out again that
>> an Isopoint Cluster was created from.
>>
>>
>> var oObject = CreatePrim("Text", "NurbsCurve", null, null);
>> SelectObj("text.isopnt[(3,0.**922)]", null, null);
>> AddToSelection("text.isopnt[(**2,0.433)]", null, null);
>> AddToSelection("text.isopnt[(**0,0.267)]", null, null);
>> AddToSelection("text.isopnt[(**6,0.748)]", null, null);
>> AddToSelection("text.isopnt[(**4,0.463)]", null, null);
>> var oCluster = 
>> oObject.ActivePrimitive.**Geometry.AddCluster(**siIsoPointCluster,
>> "Isopoint_AUTO");
>> cElements = oCluster.Elements;
>> for(var i = 0; i < cElements.Count; i++)
>>     LogMessage(cElements(i)); // 0,1,2,3,4
>>
>> var oSubComponent = oCluster.CreateSubComponent();
>> LogMessage("oSubComponent.**Type: " + oSubComponent.Type); //
>> isopntSubComponent
>> LogMessage("ClassName(**oSubComponent): " + ClassName(oSubComponent));
>> // SubComponent
>>
>> var aElements = oSubComponent.ElementArray;
>> LogMessage("oSubComponent.**ElementArray: " + aElements); //
>> LogMessage("oSubComponent.**ElementArray.length: " + aElements.length);
>> // undefined
>>
>>
>>
>> So neither "Cluster.Elements" nor "Cluster.CreateSubComponent()" deliver
>> anything usable. Dead end?
>> What I'd like to achieve is to feed Isopoints into a Curve Operator.
>> Thanks!
>> Best,
>> Eugen
>>
>
>

Reply via email to