2017-01-04 1 views
1

У меня есть forloop, чтобы получить все позиции в списке локаторов, мне нужна эта информация, чтобы создать кривую всех точек. но когда я помещаю cmds.curve в forloop, он создает несколько кривых, и когда я вывожу его за пределы, в последней позиции в списке есть только одна кривая. У кого-то есть решение?Maya Python Как сделать кривую из нескольких собранных точек в цикле for

for locator in state: 

     print("\t", locator) 
     translate_x_value = cmds.getAttr("%s.translateX" % locator) 
     translate_y_value = cmds.getAttr("%s.translateY" % locator) 
     translate_z_value = cmds.getAttr("%s.translateZ" % locator) 


     cmds.curve(p=translate_x_value,translate_y_value,translate_z_value)) 
+1

Софи, вы преступив фундаментальное правило на SO, вероятно, потому, что вы новичок. Нам нравятся вопросы, которые сводились к необходимости. Они показывают все, что нам нужно для их решения, но они приятные и короткие. –

+1

Когда у вас много кода, это здорово видеть весь код, но вы можете сегментировать его, чтобы выделить важные его части (как вы это делали в своем редактировании). – DrWeeny

ответ

3

Вы, возможно, придется кормить cmds.curve() вне цикла:

locatorOrder = ['loc1', 'loc2'...etc] 
positionOrder = [cmds.pointPosition(i) for i in locatorOrder] 

cmds.curve(p=positionOrder) # draw the curve between locators 
Смежные вопросы