2015-04-28 68 views
0

我覺得這應該是一件簡單的事情,但似乎無法找到正確的命令。我有一些代碼可以生成polyCubes的隨機分佈,我需要刪除y值大於10的任何代碼,以及任何x值小於-7和大於+7的代碼。有沒有辦法使用Python代碼來做到這一點?瑪雅Python - 刪除指定區域外的對象

編輯:某些代碼:

import maya.cmds as cmds 
import random 
import math 

cmds.select(all=True) 
cmds.delete() 

zzz = 18 

def SMGShot(): 
    holes = [] 
    x = 1 
    y = 1 

    xCoordinate = random.uniform(0,5) 
    yCoordinate = random.uniform(0,0.5) 
    x = (xCoordinate) 
    y = (yCoordinate) 

    for number in range(zzz): 
     xStep = random.uniform(-1,0) 
     yStep = random.uniform(0,1) 
     x = (x+xStep) 
     y = (y+yStep) 

     bulletHole = cmds.polyCube(w = 0.1, d = 0.1, h = 0.1) 
     holes.append(bulletHole[0]) 
     cmds.move(x, y, 0) 
SMGShot() 

這些生成的立方體,我需要任何隨機產生將超過10上y和下-7 /過7 x上要被刪除。

+0

添加的代碼作爲一個編輯到原來的問題。謝謝! – Arazmis

+0

是否有任何具體的原因來產生這些不需要的polycubes?如果沒有理由這樣做,您可以在SMGShot函數的最後三行附加一個'if'語句來選擇您希望保留的那些語句。 – user1919235

+0

是的,不幸的。我的完整程序非常長(並且有點混亂),所以我不想全部上傳,但是我製作的是一款遊戲的子彈噴霧發生器。用戶輸入數據,例如到目標的距離和發射的子彈數量,這些數據用於在子彈擊中牆壁時產生傳播。 (我目前正在使用多維數據集,但我要爲最終的程序建模和導入孔)。由於每次輸入不同的數據,以及擴散生成的輕微隨機特性,立方體有時只會出現在牆外,有時會很好。 – Arazmis

回答

0

梅爾爲起點

SelectAll; 
for ($i in `ls -sl`){ 
    select $i; 
    $t = `xform -q -t`; 
    if ($t[1]>10||$t[0]<(-7)||$t[0]>7){delete $i;} 
}