position of a vertex
Hi
How to get the value of the position of polygon vertex (x y z)... What is the MEL command to get the value ... Please some one reply me immediately.......... |
1 Attachment(s)
open up the component editor (window > general editors > component editor) select your vert/s and their co-ordinates will show under the poly tab. If you can't see the tab use the scroll arrows that I've highlighted in green.
Hope that helps, Mat. |
Thank u....for the fast reply...
|
What is the Mel command to get those value...getAttr not working...what is the command????
Please help me! |
1 Attachment(s)
This will give you the world co-ordinates of your selected vert
pointPosition OBJECT.vtx[VTX No.]; and this will give you the local co-ordinates of your selected vert. getAttr OBJECT.vtx[VTX No.]; OBJECT is the name of your poly object and VTX No. is the vertex number. My example shows the results for vertex 2 on pCube1. Hope that's what you're after, Mat. |
you have to remember about object space and world space. If you use that getAttr command on the vertex pos you may not always get the worldspace position.
So I would use the xform command (believe me it's your new best friend!) so I would use string $obj = "myObject"; float $pos[] = `xform -q -ws -t ($obj + ".vtx[0]")`; now you can use the array to access the postions: print("pos: " + $pos[0] + " " + $pos[1] + " " + $pos[2]); That's about it really :ninja: Alan |
Could you not just simpify the script to
xform -q -t -ws; (with the vertex in question selected before executing the script) |
well yes you could but why add that extra step into your script? it's less efficient to add in that selection change for EVERY vertex e.g.if you wanted to loop through the verts:
string $obj = "myObject"; int $numbVerts[] = `polyEvaluate -v $obj`; int $i = 0; for($i; $i < $numbVerts[0]; $i++) { float $pos[] = `xform -q -ws -t ($obj + ".vtx["+$i+"]")`; print($obj + ".vtx["+$i+"] " + $pos[0] + " " + $pos[1] + " " + $pos[2] + "\n"); } there's no need to change selection and thus no need to store the users current select to change back to at the end. Alan |
Suppose so
Just thought that the guy wanted to question one vertex. Although your script would be great, for a more robust selections |
Thank for the replies...
I tried out with different changes in xform...its working nice.... Is there any command to verify the changes in attribute....(numerical changes) so that i dont want to assign any specific value in the script. |
I have an additional question to this topic if you guys don´t mind.
I have 8 objects and I want to randomly duplicate and place them at every vertex' position of this base object. what I came up with is string $obj = "body"; string $dupes = "dupes"; int $numbVerts[] = `polyEvaluate -v $obj`; int $i = 0; for($i; $i < $numbVerts[0]; $i++) { float $pos[] = `xform -q -ws -t ($obj + ".vtx["+$i+"]")`; duplicate -rr $dupes; setAttr "dupes.translateX" $pos[0]; setAttr "dupes.translateY" $pos[1]; setAttr "dupes.translateZ" $pos[2]; } this is working for one duplicated object (dupes). but how would I take 8 objects and integrate the randomly duplicated versions of them into this script? tia falott |
rename your 8 objects to use the same stem and suffix that I have listed below, or change those strings to what you want. The suffix is important because you are using a * to match objects, if you dont have a suffix it will match the shape nodes as well and you don't want that. so make sure it's stem_ID_suffix!
Code:
string $stem = "dupes_"; Alan |
woohooo!
that was real fast, thx a lot Alan. I´ll try it right now. |
no worries
Alan |
that was just perfect! after stupid me changed IDs from 0-7 to 1-8. I know you made a comment about that :)
one last question is open for me. is it possible via scripting to align the orientation (let´s say z-axis) of the dupes along the normals of the baseSurface? I mean like the surfaceNormals pointing outwards... or would that be just a ridiculous amount of code to write? besides that - you already made my life a lot easier today! |
All times are GMT. The time now is 11:46 PM. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Simply Maya 2018