@Eric Thivierge A) Thanks, I was wondering if there was something more integrated but the script below certainly helps. si = Application sel = si.Selection for i in xrange(len(sel[0].Envelopes(0).Deformers)): print i, sel[0].Envelopes(0).Deformers[i]
B) Thanks, GEAR indeed has a lot of little utilities that I was looking for including this one. @Matt Lind A) Indeed I seem to be at fault for having the order to "Type + Alphabetical" instead of "None(creation)": http://prntscr.com/61ahpv. With that selected the group does show in it's ID order. Thanks B) Agreed that some of these are certainly more script oriented operations, tweaks, that do not require non-destructibility and dynamic feedback. ICE is comfy though... Deals with "API" details, comes with a UI almost for free and you can see the algorithms results as you build them, certainly not always important, but it's nice when coupled with the "display properties" in context. I ended up making some compounds even though I recognize they are not the most practical. https://vimeo.com/118719552 Thanks for the script example, I couldn't make it run as it returned an error: http://prntscr.com/61ao2j Thank you all I'm sorted :D Always love when exploring programmatic solutions, be it by code or ICE, I end up building up small algorithmic solutions that help me in other tasks :) Cheers On Wed, Jan 28, 2015 at 8:08 PM, Jeremie Passerin <gerem....@gmail.com> wrote: > Not sure there is a tool for that in Gear, but there is some code you can > use to write such a tool. I'm pretty sure. > > > On 27 January 2015 at 13:13, Eric Thivierge <ethivie...@gmail.com> wrote: > >> A) mesh.Envelopes(0).Deformers should give you the object collection in >> the proper order. You can recreate the group by using the Envelope > Select >> Deformers and once selected, create a group. >> >> B) You'll have to write a script for that. Check the GEAR tools I think >> there might be a tool in there for that. >> >> Eric T. >> >> -------------------------------------------- >> Eric Thivierge >> http://www.ethivierge.com >> >> On Tue, Jan 27, 2015 at 4:07 PM, pedro santos <probi...@gmail.com> wrote: >> >>> A - Something that always bugged me is that I don't know a way to >>> inspect the Order ID of and object in a Group or in an Envelope. So say I >>> have Null_H Which in the deformers or group list shows up in 8th position >>> (ID7) because it comes after Null_A, Null_B, etc. But that doesn't mean >>> that when the group was made that was the selection order. So when you do a >>> Set Envelope and select the group, again it uses the same order, even >>> though the lists are ordered alphabetically. >>> Now... I can do this in ICE like this... http://i.imgur.com/OIegAAA.png But >>> feels cumbersome... :/ >>> >>> B - How do I copy the all the weight information from one point to other >>> points. If one has to have parts to have plain weight values that match a >>> nearby point it's handy to sort of Constrain "Object To Cluster", but >>> there's no Copy Paste in the Weight Editor for a single point whole info. >>> Again, I can do it in ICE... but.. >>> >>> Cheers >>> >>> >>> -- >>> >>> >>> >>> >>> *------------------------------[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/>* >>> >> >> > On Tue, Jan 27, 2015 at 11:11 PM, Matt Lind <speye...@hotmail.com> wrote: > A - The default behavior in Softimage is to use chronological order of > creation, not alphabetical order. If a tool takes it's input from the > selection list, items are processed in the order which they were selected. > > B - the easiest way to copy weights is to store them in a GridData object > as a scratchpad, modify the weights values as desired, then apply the > GridData weights back onto the envelope. The GridData is a 2D array just > like you see in the envelope weights editor. Each row of the GridData is a > point on the envelope. Each column of the GridData represents a deformer. > To copy the weights between points, you copy the weights from one row and > paste onto another. > > // example - JScript > > // get reference to selected enveloped geometry > var oObject = Selection(0); > > // get envelope operator from enveloped geometry > // NOTE: should verify Object.Envelopes.Count > 0 > // before grabbing the envelope operator > var oEnvelope = oObject.Envelopes(0).Envelope; > > // store weights in a temporary GridData object (2D array) > var oWeightData = XSIFactory.CreateGridData(); > oWeightData.Data = oEnvelope.Weights.Array; > > // Make modifications (example, copy weights from vertex 23 to vertex 164) > var aVertexWeightValues = oWeightData.GetRowValues( 23 ).toArray(); > oWeightData.SetRowValues( 164, aVertexWeightValues ); > > > // update the envelope with modified weights. > // (this will trigger the scene graph to re-evaluate the envelope.) > oEnvelope.Weights.Array = oWeightData.Data; > > > The SDK docs show much the same in more detail. > > Keep in mind when you do your weight copying/pasting in ICE, it's doing it > as an operator and persistently copying the data to maintain the > relationship. Whenever an input or output is modified, the ICE tree gets > triggered to do it again and again until you freeze or delete the ICE tree. > > When you copy/paste weights in scripting, it's a one time operation and > more efficient. As you can see, it doesn't take much code. > > > Matt > > > > > > > > Date: Tue, 27 Jan 2015 21:07:34 +0000 > From: pedro santos <probi...@gmail.com> > Subject: Know the ID of an Object in an Envelope and Group? Copy > Weights? Partial Gator? > To: Softimage Mailing List <softimage@listproc.autodesk.com> > > A - Something that always bugged me is that I don't know a way to inspect > the Order ID of and object in a Group or in an Envelope. So say I have > Null_H Which in the deformers or group list shows up in 8th position (ID7) > because it comes after Null_A, Null_B, etc. But that doesn't mean that when > the group was made that was the selection order. So when you do a Set > Envelope and select the group, again it uses the same order, even though > the lists are ordered alphabetically. > Now... I can do this in ICE like this... http://i.imgur.com/OIegAAA.png > But > feels cumbersome... :/ > > B - How do I copy the all the weight information from one point to other > points. If one has to have parts to have plain weight values that match a > nearby point it's handy to sort of Constrain "Object To Cluster", but > there's no Copy Paste in the Weight Editor for a single point whole info. > Again, I can do it in ICE... but.. > > Cheers > > -- *------------------------------[image: http://i153.photobucket.com/albums/s202/animatics/probiner-sig.gif]Pedro Alpiarça dos Santos Animator 3DModeler Illustrator >> http://probiner.x10.mx/*