玛雅仅在使用组时从1开始选择项目

发布于 2025-02-02 18:50:23 字数 540 浏览 3 评论 0原文

我试图让玛雅人根据一个名称选择要放入一个组中的所有内容,但是,每次我运行该功能时,它都会选择第一个项目,然后每个项目以1个开始。然后在此之后没有选择任何内容。我已经尝试摆脱 * *,但是它只选择了项目1,而没有其他选择。我该如何解决此问题

def tree(num):
    for y in range (25):
        TREY=rnd.uniform(23,40)
        TREX=rnd.randint(-10,10)
        TREZ=rnd.randint(-10,10)
        cmds.polyPlatonicSolid(n=pfx+"tree_"+str(num)+"_tree_top_"+str(num))
        cmds.move(TREX,TREY,TREZ)
        cmds.scale(4.5,4.5,4.5)

        
   cmds.group(pfx+"tree_"+str(num)+"_tree_top_"+str(num)+"*",n=pfx+"top_GRP"+str(num))
   tree(1)

I am trying to get maya to select everything based on a name to be put into one group, however, every time I run the function, it selects the first item, then every item beginning with a 1. and then doesnt select anything after that. I've tried getting rid of the * but then it only selects item 1 and nothing else. How do I fix this

def tree(num):
    for y in range (25):
        TREY=rnd.uniform(23,40)
        TREX=rnd.randint(-10,10)
        TREZ=rnd.randint(-10,10)
        cmds.polyPlatonicSolid(n=pfx+"tree_"+str(num)+"_tree_top_"+str(num))
        cmds.move(TREX,TREY,TREZ)
        cmds.scale(4.5,4.5,4.5)

        
   cmds.group(pfx+"tree_"+str(num)+"_tree_top_"+str(num)+"*",n=pfx+"top_GRP"+str(num))
   tree(1)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无畏 2025-02-09 18:50:23

我认为问题与玛雅人如何在名称冲突中自动命名新对象有关。尝试一下:

import random as rnd
import maya.cmds as cmds

def tree(num):
    pfx = "prefix_"
    n = str(num)
    basename = pfx + "tree_" + n + "_tree_top_"
    name = basename + n
    groupname = pfx + "top_GRP" + n
    
    for y in range(25):
        TREY=rnd.uniform(23, 40)
        TREX=rnd.randint(-10, 10)
        TREZ=rnd.randint(-10, 10)
        cmds.polyPlatonicSolid(n=name)
        cmds.move(TREX, TREY, TREZ)
        cmds.scale(4.5, 4.5, 4.5)
    
    cmds.group(basename + "*", n=groupname)

tree(1)

但是,一种更好的方法是将所有新创建的对象存储在列表中,而不是依赖于名称

import random as rnd
import maya.cmds as cmds

def tree(num):
    pfx = "prefix_"
    n = str(num)

    name = pfx + "tree_" + n + "_tree_top_" + n
    groupname = pfx + "top_GRP" + n
    
    objs = []
    
    for y in range(25):
        TREY=rnd.uniform(23, 40)
        TREX=rnd.randint(-10, 10)
        TREZ=rnd.randint(-10, 10)
        obj = cmds.polyPlatonicSolid(n=name)[0]
        cmds.move(TREX, TREY, TREZ, obj)
        cmds.scale(4.5, 4.5, 4.5, obj)
        objs.append(obj)
    
    cmds.group(objs, n=groupname)

tree(1)

,请注意,字符串数组是从polyplatonicsolid()返回的,因此要获取对象需要第一个元素obj = cmds.polyplatonicsolid()[0]

I assume the problem is related to how Maya will automatically name new objects upon name clashes. Try this:

import random as rnd
import maya.cmds as cmds

def tree(num):
    pfx = "prefix_"
    n = str(num)
    basename = pfx + "tree_" + n + "_tree_top_"
    name = basename + n
    groupname = pfx + "top_GRP" + n
    
    for y in range(25):
        TREY=rnd.uniform(23, 40)
        TREX=rnd.randint(-10, 10)
        TREZ=rnd.randint(-10, 10)
        cmds.polyPlatonicSolid(n=name)
        cmds.move(TREX, TREY, TREZ)
        cmds.scale(4.5, 4.5, 4.5)
    
    cmds.group(basename + "*", n=groupname)

tree(1)

However, a perhaps better approach is to store all the newly created objects in a list, rather than depend on name

import random as rnd
import maya.cmds as cmds

def tree(num):
    pfx = "prefix_"
    n = str(num)

    name = pfx + "tree_" + n + "_tree_top_" + n
    groupname = pfx + "top_GRP" + n
    
    objs = []
    
    for y in range(25):
        TREY=rnd.uniform(23, 40)
        TREX=rnd.randint(-10, 10)
        TREZ=rnd.randint(-10, 10)
        obj = cmds.polyPlatonicSolid(n=name)[0]
        cmds.move(TREX, TREY, TREZ, obj)
        cmds.scale(4.5, 4.5, 4.5, obj)
        objs.append(obj)
    
    cmds.group(objs, n=groupname)

tree(1)

Note that a string array is returned from polyPlatonicSolid(), so to get object you need the first element obj = cmds.polyPlatonicSolid()[0]

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文