Thanks guys. I should learn JS. When things go sour, just *pfff* web development x)
Cheers On Fri, Jul 24, 2015 at 3:00 AM, Martin <[email protected]> wrote: > Hi Pedro. > > Selection is a collection object, not an array. Use Count instead. > > Martin > Sent from my iPhone > > On 2015/07/24, at 3:35, pedro santos <[email protected]> wrote: > > Hi Martin > Thanks again for coming up with a solution, this works great! I changed it > a bit to add a integer stack selection. I was actually surprised it ran the > function before it was defined unlike Python :) Problem is I don't know JS > :P So I tried to loop over "selection" with no avail. I noticed that if I > had several objects selected used selection(0) or selection(1) it did > something accordingly, but apparently I can not use .lenght to define a > loop duration: // ERROR : Object doesn't support this property or method - > [line 30] > > I don't know how to loop it... Well, I cal set a fixed number like 999 in > for (var i = 0; i < selection.length; i++) { and just cope with the out of > range error :) > > Thanks > Pedro > > // JScript > > function delOps(oObj){ > var oOpColl = new ActiveXObject( "XSI.Collection" ); > var oOpStack = new Enumerator( oObj.ActivePrimitive.ConstructionHistory ); > for (;!oOpStack.atEnd();oOpStack.moveNext()){ > if (oOpStack.item().name == stack){ > var ModelingFlag = 1; > continue; > } > if (ModelingFlag == 1){ > oOpColl.add (oOpStack.item()); > } > } > if (oOpColl.Count>0) DeleteObj( oOpColl ) ; > } > > var pickstack = 2; > var stack = ["Modeling", "Shape Modeling", "Animation", "Secondary Shape > Modeling"][pickstack]; > > > //Loop Attempt #1 > for (i in selection) { > delOps(i); > } > > //Loop Attempt #1 > for (var i = 0; i < selection.length; i++) { // Throws error that > selection doesn't support .length > delOps(selection(i)); > } > > On Thu, Jul 23, 2015 at 10:17 AM, Martin Yara <[email protected]> wrote: > >> Just delete them? Or you mean by script >> >> I wrote something similar in JScript to freeze some operators under >> certain stack. I just changed it to delete all operators below the Modeling >> Stack. It only works with 1 object, you'll need to add a loop. >> >> // JScript >> >> delOps(selection(0)) >> >> function delOps(oObj){ >> var oOpColl = new ActiveXObject( "XSI.Collection" ); >> var oOpStack = new Enumerator( oObj.ActivePrimitive.ConstructionHistory ); >> for (;!oOpStack.atEnd();oOpStack.moveNext()){ >> if (oOpStack.item().name == "Modeling"){ >> var ModelingFlag = 1; >> continue; >> } >> if (ModelingFlag == 1){ >> oOpColl.add (oOpStack.item()); >> } >> } >> if (oOpColl.Count>0) DeleteObj( oOpColl ) ; >> } >> >> >> Martin >> >> >> On Thu, Jul 23, 2015 at 5:47 PM, pedro santos <[email protected]> wrote: >> >>> >>> >>> >>> *HiQuite a few times when I'm adding operators to multiple objects I >>> would also like to clear those objects of any operator. This is not >>> Freezing, as I do not want to apply those operators, but remove them. More >>> over if the above is possible, is it also possible to remove operators only >>> from the modeling stack? Alike one uses Freeze and Freeze modeling >>> differently?Thanks* >>> *Pedro* >>> >> >> > > > -- > > > > > *------------------------------[image: > http://i153.photobucket.com/albums/s202/animatics/probiner-sig.gif]Pedro > Alpiarça dos Santos Animator 3DModeler Illustrator >> > http://probiner.x10.mx/ <http://probiner.x10.mx/>* > > -- *------------------------------[image: http://i153.photobucket.com/albums/s202/animatics/probiner-sig.gif]Pedro Alpiarça dos Santos Animator 3DModeler Illustrator >> http://probiner.x10.mx/ <http://probiner.x10.mx/>*

