示例#1
0
    def saw_uvs(self, mode='after'):
        if mode == 'after':
            saw_edges = self.saw_edges
            self.n_uvs = []
        else:
            saw_edges = common.conv_comp(self.s_edges, mode='vtx')
            saw_edges = common.conv_comp(saw_edges, mode='edge')
            for edge in self.s_edges:
                saw_edges.remove(edge)
        if not saw_edges:
            return
        checked_edges = []
        for edge in saw_edges:
            uvs = common.conv_comp(edge, mode='uv')
            uv_pos = [
                str(map(lambda x: round(x, 5), cmds.polyEditUV(uv, q=True)))
                for uv in uvs
            ]
            #print len(uv_pos)
            uv_pos = list(set(uv_pos))
            #if mode=='pre':
            #print edge, len(uv_pos)
            if len(uv_pos) > 2:
                continue
            checked_edges.append(edge)
        if checked_edges:
            cmds.polyMapSew(checked_edges, ch=True)
        cmds.polyMapSew(self.s_edges, ch=True)  #付け根のUVを縫合する
        self.saw_edges = []
        cmds.select(self.ex_edges, r=True)


#ExtrudeEdgeUV()._init_ui()
示例#2
0
def combine(comps=None, move=None, hist=None):
    """Sews all internal edges of given shell [Select uv shell]"""
    
    hist = True if hist is None else hist
    lssl = cm.ls(comps, type="float3")
    if not lssl:
        lssl = cm.ls(sl=1, type="float3")

    inner_e = cm.polyListComponentConversion(lssl, internal=1, te=1)
    if move:
        cm.polyMapSewMove(inner_e, nf=10, lps=0, ch=hist)
    else:
        cm.polyMapSew(inner_e, ch=hist)
示例#3
0
def polyMapSew(*args, **kwargs):
    res = cmds.polyMapSew(*args, **kwargs)
    if not kwargs.get('query', kwargs.get('q', False)):
        res = _factories.maybeConvert(res, _general.PyNode)
    return res