2015-04-20 23 views
0

初学者在这里有一个非常简单的问题 - 我想在球体内创建6个球体,一个在中间红色,一个在外面黑色,休息在两者之间。我遇到了颜色问题 - 我得到的错误是“对非序列类型的迭代”。这是我的代码到目前为止:在for循环中改变球的颜色(python/rhino)

import rhinoscriptsyntax as rs 
import random 

maxNum=6 

a=(1/maxNum) 

pt0 = [50,50,50] 

pts = [] 
pts.append(pt0) 

for i in range (0,6): 

    sphere0= rs.AddSphere(pt0, 30*i) 

    rs.ObjectColor (sphere0, [(i+1)*2.55,0,0]) 

非常感谢!

+0

我很确定这不是错误消息。请告诉我们它是如何读取的以及它在哪一行发生的。更好的是给一个完整的追溯。 –

+0

OK,以下是完整回溯: 消息:遍历所有类型的非序列NoneType 回溯: 线423,在ObjectColor,“/用户/学生/库/ Application Support/McNeel /犀牛/ MacPlugIns/IronPython的/ settings/lib/rhinoscript/object.py“ line 18,in ,”/Users/students/Desktop/imagination.py“ – Ava

+0

对不起,我以前没有看到您的回复。回溯告诉你,在ObjectColor的第423行中,试图迭代一个无对象的对象。这就是“类型类型”的意思。这个函数是从脚本的第18行调用的。脚本的最后一行确实有对ObjectColor的调用,所以这很有意义。你传递了两个参数给这个函数。第二个是列表,所以它不可能是None。所以另一个是问题,什么是sphere0 - 来自AddSphere的返回值?你为什么不打印出来看看它是什么? –

回答

0

您添加的第一个球体的半径= 0,因此AddSphere调用失败并且返回的GUID为无。这就是为什么你不能设置颜色。