2020-03-22

检查模型是否有点重合

思路:

        先求所有点的位置的列表,然后去掉重复的点的位置,再遍历出重复的点加入新的列表,最后选择这些重复的点。

下面有两种写法,第二种更完善,更快一点

import maya.cmds as mc

sel = mc.ls(sl=True)

vtx_num = mc.polyEvaluate(v=True)  

list_pos = []

for i in range(vtx_num):

      vtx_name = 'pSphere1.vtx[{0}]'.format(i)

      pos = mc.pointPosition(vtx_name)

      list_pos.append(pos)

list_pop = []

for a in list_pos:

      if list_pos.count(a) != 1:  

              if a in list_pop:

                    pass

              else:

                    list_pop.append(a)

list_sel = []

for b in range(vtx_num):

      for c in list_pop:

              vtx_name = 'pSphere1.vtx[{0}]'.format(b)

              if mc.pointPosition(vtx_name) == c:

                    list_sel.append(vtx_name)

mc.select(list_sel)   

import maya.cmds as mc

sel = mc.ls(sl=True)

for obj in sel:


    vtx_num = mc.polyEvaluate(obj,v=True)

    dict = {}


    allpos = []

    for all in range(vtx_num):

        trans = []

        vtx_name = 'pSphere1.vtx[{0}]'.format(all)

        vtx_pos = mc.pointPosition(vtx_name)

        for b in vtx_pos:

            trans.append(round(b,2))

        allpos.append(trans)

        dict[str(trans)] =  vtx_name

    list_sel = []

    check =[]

    for c in allpos:

        if c not in check:

            check.append(c)

        else:

            list_sel.append(dict.get(str(c)))

print allpos

mc.select(list_sel)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,537评论 0 13
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,060评论 0 2
  • 0x1 WAF的常见特征 之所以要谈到WAF的常见特征,是为了更好的了解WAF的运行机制,这样就能增加几分绕过的机...
    土拨鼠先生_阅读 790评论 0 0
  • 可能想通些繁杂的事,看似美好的普通,藏污纳垢,但并不能阻止向往。世上本就不存在什么真心,只是单单的本能,本能的趋利...
    Aestiva阅读 123评论 0 0
  • 下面是我昨天的收益和昨天写的几篇文章: 昨天写东西也没有说是太费心费力吧,但是也花了不少时间,就只获得了这么点收益...
    繁星润湿阑珊阅读 154评论 0 2