I don't seem to see a direct method for listing shells, other than the
count. But here is a possible approach. You can loop over the faces,
and determine that actual shells using polySelect extendToShell.

Here is a function that can take a poly name and return either the
first face id of each shell, or the string name for the entire shell.
Depends on how you want to use it. I tried to make it a bit more
efficient by breaking early once we have the number of shells we
expected, and to also skip over faces that were part of the previously
collected shell. Reduces the number of polySelect calls to just the
first face of each one.

https://gist.github.com/3738519

def getShellFaces(poly, asString=False):
    shells = set()
    faces = set()
    total = cmds.polyEvaluate(s=True)

    for f in xrange(cmds.polyEvaluate(poly, f=True)):

        if len(shells) >= total:
            break
        if f in faces:
            continue

        shell = cmds.polySelect(poly, extendToShell=f)
        faces.update(shell)

        if asString:
            val = "%s.f[%d:%d]" % (poly, min(shell), max(shell))
        else:
            val = min(shell)

        shells.add(val)

    return list(shells)

poly = 'polySurface1'

# get the first face of each shell to be selected
# later with polySelect
faceIds = getShellFaces(poly)
for f in shells:
    cmds.polySelect(poly, extendToShell=f)

# get the string name of the entire shell in the
# form of polySurface1.f[x:y] to be used with select
shells = getShellFaces(poly, True)
for f in shells:
    cmds.select(f)



On Mon, Sep 17, 2012 at 3:45 AM, Sumant Shenoy <shenronshe...@gmail.com> wrote:
> hey Echo7
> just find the number of shells and write a loop for selecting using range
>
> --
> view archives: http://groups.google.com/group/python_inside_maya
> change your subscription settings:
> http://groups.google.com/group/python_inside_maya/subscribe

-- 
view archives: http://groups.google.com/group/python_inside_maya
change your subscription settings: 
http://groups.google.com/group/python_inside_maya/subscribe

Reply via email to