Not sure if that is what you are looking for, but if you want  to use the 
API you can do something like

mSel = OpenMaya.MSelectionList()
mSel.add("yourObject")
mDag = OpenMaya.MDagPath()
cmpMObj = OpenMaya.MObject()
mSel.getDagPath(0, mDag, cmpMObj)

faces = list()
mIt = OpenMaya.MItMeshPolygon(mDag, cmpMObj)
while not mIt.isDone():
    faces.append(mIt.index())
    mIt.next()


El viernes, 18 de junio de 2021 a las 18:54:49 UTC+2, Juan Moraga escribió:

> I totally agree. I had a problem like this before and I ended up using a 
> method similar to Marcus'.
> As an additional note, something I found handy in the past was the 
> "-flatten" flag of the cmds.ls() command, which will return you a list 
> with one item for each component (faces, verts etc.).
>
> for mesh in cmds.ls(selection=True, type="transform"):
>>     faces = cmds.ls(mesh + ".f[0:]", fl = True)
>>     print(faces)
>>
>
> By the way, wouldn't the ls() in the for loop be with the type = 
> "transform" flag instead of type = "mesh" flag? 
>
> Kind regards,
>
>
>
> On Fri, 18 Jun 2021 at 15:12, Marcus Ottosson <konstr...@gmail.com> wrote:
>
>> Cool. :) It should be fast, you’re more or less passing the burden of 
>> actually iterating over the scene to those two commands which are already 
>> implemented in C++. So it’s likely that trying to replicate this via the 
>> Python API would be *more* expensive.
>>
>> On Fri, 18 Jun 2021 at 14:56, Alejandro <voidr...@gmail.com> wrote:
>>
>>> I made a few tests on the usual number of elements, 2k / 1k, and it goes 
>>> smoothly, not bad!
>>>
>>> Thanks a lot Marcus :)
>>>
>>> On Friday, June 18, 2021 at 9:42:35 a.m. UTC-4 Marcus Ottosson wrote:
>>>
>>>> You tell me. How long does it take currently? How often do you intend 
>>>> on running it? How long would you like it to take?
>>>>
>>>> On Fri, 18 Jun 2021 at 12:38, Alejandro <voidr...@gmail.com> wrote:
>>>>
>>>>> Thanks a lot Marcus, 
>>>>>
>>>>> I was looking for an option with the API for speed, since I have 
>>>>> scenes with more than 1k objects, do you think it's not needed in this 
>>>>> case 
>>>>> ?
>>>>>
>>>>>
>>>>> On Friday, June 18, 2021 at 3:01:43 a.m. UTC-4 Marcus Ottosson wrote:
>>>>>
>>>>>> Something like this should have you covered.
>>>>>>
>>>>>> for mesh in cmds.ls(selection=True, type="mesh"):
>>>>>>     cmds.select("%s.f[0:]" % mesh)
>>>>>>     cmds.sets(name="%s_set" % mesh)
>>>>>>
>>>>>> The .f[] syntax is for selecting faces, it’s what you see echoed in 
>>>>>> the Script Editor as you select a face interactively via the viewport.
>>>>>>
>>>>>> On Fri, 18 Jun 2021 at 00:44, Alejandro <voidr...@gmail.com> wrote:
>>>>>>
>>>>>>> Hello guys!,
>>>>>>>
>>>>>>> What would be the fastest solution to store all the face components 
>>>>>>> for each object I select into its correspondent set?
>>>>>>>
>>>>>>> I'm trying something like this:
>>>>>>>
>>>>>>> mesh = maya.cmds.ls(selection=True, type='mesh')[0]
>>>>>>> selection_list = OpenMaya.MSelectionList()
>>>>>>> selection_list.add(mesh)
>>>>>>> dag_path = selection_list.getDagPath(0)
>>>>>>> mfn_mesh = OpenMaya.MFnMesh(dag_path)
>>>>>>>
>>>>>>> v_count, ids = mfn_mesh.getTriangles()
>>>>>>>
>>>>>>> but these are only triangle counts and vtx indexes, how could I have 
>>>>>>> the full face element and store in a set ?
>>>>>>>
>>>>>>> thank you !
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> -- 
>>>>>>> You received this message because you are subscribed to the Google 
>>>>>>> Groups "Python Programming for Autodesk Maya" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>>> send an email to python_inside_m...@googlegroups.com.
>>>>>>> To view this discussion on the web visit 
>>>>>>> https://groups.google.com/d/msgid/python_inside_maya/24a2b1e9-f975-4461-97a1-e1155b235973n%40googlegroups.com
>>>>>>>  
>>>>>>> <https://groups.google.com/d/msgid/python_inside_maya/24a2b1e9-f975-4461-97a1-e1155b235973n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>> .
>>>>>>>
>>>>>> -- 
>>>>> You received this message because you are subscribed to the Google 
>>>>> Groups "Python Programming for Autodesk Maya" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>>> an email to python_inside_m...@googlegroups.com.
>>>>>
>>>> To view this discussion on the web visit 
>>>>> https://groups.google.com/d/msgid/python_inside_maya/66b60eee-81c2-4ea5-9f77-effe7565d39an%40googlegroups.com
>>>>>  
>>>>> <https://groups.google.com/d/msgid/python_inside_maya/66b60eee-81c2-4ea5-9f77-effe7565d39an%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>> -- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "Python Programming for Autodesk Maya" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to python_inside_m...@googlegroups.com.
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/python_inside_maya/5e7dd6e7-ff12-4c8c-b5c2-aaaaafee720bn%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/python_inside_maya/5e7dd6e7-ff12-4c8c-b5c2-aaaaafee720bn%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Python Programming for Autodesk Maya" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to python_inside_m...@googlegroups.com.
>>
> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/python_inside_maya/CAFRtmOBZ10508id9V4yM9MrePJSRitKqqLefz4XvqFt0y2eVNw%40mail.gmail.com
>>  
>> <https://groups.google.com/d/msgid/python_inside_maya/CAFRtmOBZ10508id9V4yM9MrePJSRitKqqLefz4XvqFt0y2eVNw%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>
>
> -- 
> *Juan Moraga*
> *Lead Technical Director @ MondoTV*
>
> Portfolio: https://juanmoraga.carbonmade.com/
> LInkedin: https://www.linkedin.com/in/juanmoragamartin/ 
> <http://juanmoragaart.tumblr.com/>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to python_inside_maya+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/python_inside_maya/c2395c53-c5fb-46ba-907f-45ad8bb0704fn%40googlegroups.com.

Reply via email to