PDA

View Full Version : select all vertices - but not all


alexx
12-08-2011, 10:55 AM
hey,

this title might sound a bit strange at the beginning, but i really mean it :)

here is the problem:
i have some mesh objects on which i need to run a polyMergeVertex operation. unfortunately this operation crashes maya, because the objects have a non-continuous vertex numbering.
if i select the objects, switch to vertex selection mode and drag over them, i get a selection like this:
object.vtx[0:132] object.vtx[138:256] object.vtx[261:554] .......
this is exactely the type of selection i need to run the polyMergeVertex with. (the command needs to be run with a distance of 0.0)
if i run the command with the object as the selection or even a selection like object.vtx[:] maya crashes.
it does not crash with the long selection from above.

so: how can i get that non-continuous selection using a script? i need to recreate what a user does while mouse-selecting the vertices in the GUI.

thanks

alexx

NaughtyNathan
12-08-2011, 11:08 AM
try: `getVerts` command
:nathaN

alexx
12-08-2011, 11:17 AM
is that 2012?

i can not find a command or a method like that.

cheers

alex

edit:
if you mean "verts"; that does not help either, because it returns the wrong result with a count from 0 to max vertex ID.

NaughtyNathan
12-08-2011, 12:49 PM
you didn't mention MEL or python in your original post so I went with the most basic solution which was MEL, hence the `backticks`. getVerts is a MEL (script) command that returns the expanded names of verts based on the selected object or verts, and it should be in 2012 (it's in 2011)

If this method works for your situation (I have no idea as I don't have a "corrupt" mesh to test it on) and you want to do the same using python simply open up the getVerts script and replicate what it does in python. (or mel.eval it)

:nathaN

alexx
12-08-2011, 01:46 PM
ah i see. a mel script itself :) thats why i can not find it in the manuals.

looked promising, but unfortunately it does not help either.
in my case it returns 15884 vertices, but a mouse selection returns 15855 vertices.. i guess there is something seriously messed up with the geometry.

funny sidenote:
by mouse selecting i get these values:
C5_126813.vtx[0:131] C5_126813.vtx[135:765] C5_126813.vtx[767:2327].........
but if i select vertex #132 i really get a selection..

thanks so far

alex

edit: omg.. now i see it. those vertices are not connected to any edge or face. hence the mouse selection fails on them!

thanks for the help.. guess a cleanup on the geometry will help

goleafsgo
12-08-2011, 02:11 PM
It does sound like you have some bad geometry, but the merge vertex code should still handle it. Can you share the model with me? Would make it easier to get the crash fixed...

benio33
12-08-2011, 02:33 PM
alexx, what I would do in your case would be:
1. Use python - because you can easily append arrays on it.
2. Run a for loop with "id" variable as the driver from 0 to maximal vert id. (for id in range(0,maxIdNum): )
3. In the run for loop I would check if the id exists if id does append it to a tempIds array (this is why use python).
4. Then run the merge on the tempIds array.

alexx
12-08-2011, 02:39 PM
unfortunately this is no geo i can share.

since i have to make sure the geometry is not altered in any way, i have to use a merge distance of 0.0 for the polyMergeVertex command.
and exactely that kills maya. (2009 and 2011 tested)

the stray vertices can not be deleted using "delete" or "delete edge/vertex".
selecting them and converting selection to edges or fasces does not work as well. so they are quite sure not connected to anything else in the mesh.

only using mesh->cleanup... and one of the three "zero ..." switches at the bottom can help get rid of them.
but i fear i might be killing geometry/normals that i should not..

investigating further...

thanks

alex

edit:
thanks benio33 (http://forums.cgsociety.org/member.php?u=195339)
as i found out in a post before, all the ids really exist. maya only does not mouse-select them, if they are not connected to any other edge/face.

edit edit:
the vertices are connected to some faces somehow. strange :)

edit edit edit:
omg..
if i delete ANY face in the mesh (really any - no matter which one or where or how far away), the wrong vertices dissapear as well...
what a serious ***** up geometry ;)

alexx
12-08-2011, 03:13 PM
final solution - kind of a bad hack:

before running the polyMergeVertex on the complete object, i run it only für the very first vertex.
that cleans the geometry and the *real* merge works without crashing then.

thanks to all

alex

benio33
12-08-2011, 03:34 PM
Damn, nice solution :argh: I wish you no changes to the geometry :)

CGTalk Moderation
12-08-2011, 03:34 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.