【发布时间】:2022-01-08 20:26:30
【问题描述】:
我在 Ubuntu 21,10 上使用 Blender 3.0 为什么这段代码不起作用?我正在尝试随机生成立方体六个顶点的 x、y 和 z 值并创建它。
这段代码的灵感来自 Chris Holt 的https://youtu.be/mljWBuj0Gho
导入 bpy 随机导入 名称="新对象" 顶点=[] 边=[] 面孔=[]
床 = 300 #in mm print("床 = " + str(床))
xmin = -床/2 ymin = -床/2 zmin = -床/2 xmax = 床/2 ymax = 床/2 zmax = 床/2
打印("xmin" + str(xmin)) 打印("xmax" + str(xmax)) 打印(“ymin” + str(ymin)) 打印(“ymax” + str(ymax)) 打印(“zmin” + str(zmin)) print("zmax" + str(zmax))
生成坐标
左上角
a1=random.randint(xmin,0) a2 = random.randint(ymin,0) a3 = random.randint(0,zmax)
右上角
b1 = random.randint(xmin,0) b2 = random.randint(0,ymax) b3 = random.randint(0,zmax)
右上角
c1 = random.randint(0,xmax) c2 = random.randint(0,ymax) c3 = random.randint(0,zmax)
左上角
d1 = random.randint(0,xmax) d2 = random.randint(ymin,0) d3 = random.randint(0,zmax)
左下角
e1 = random.randint(xmin,0) e2 = random.randint(ymin,0) e3 = random.randint(zmin,0)
右下角
f1 = random.randint(xmin,0) f2 = random.randint(0,ymax) f3 = random.randint(zmin,0)
右下角
g1 = random.randint(0,xmax) g2 = random.randint(0,ymax) g3 = random.randint(zmin,0) xmax
左前下方
h1 = random.randint(0,xmax) h2 = random.randint(ymin,0) h3 = random.randint(zmin,0)
打印("\n") 打印(“\n”) 打印(“ a1 =” + str(a1)) 打印(“a2 =” + str(a2)) 打印("a3 = " + str(a3))
打印("\n") 打印(“b1 =” + str(b1)) 打印(“b2 =” + str(b2)) 打印("b3 = " + str(b3))
打印("\n") 打印(“c1 =” + str(c1)) 打印(“c2 =” + str(c2)) 打印("c3 = " + str(c3))
打印("\n") 打印(“d1 =” + str(d1)) 打印(“d2 =” + str(d2)) 打印("d3 = " + str(d3))
打印("\n") 打印(“e1 =” + str(a1)) 打印(“e2 =” + str(e2)) 打印("e3 = " + str(e3))
打印("\n") 打印(“f 1 =” + str(f1)) 打印(“f 2 =” + str(f2)) 打印("f3 = " + str(f3))
打印("\n") 打印(“g1 =” + str(g1)) 打印(“g2 =” + str(g2)) 打印("g3 = " + str(g3))
打印("\n") 打印(“h1 =” + str(h1)) 打印(“h2 =” + str(h2)) 打印(“h3 =” + str(h3)) 打印(“结束”)
#8 个顶点 verts.append([# index 0 a1, #x a2, #y a3 #z ]) verts.append([# 索引 1 b1, #x b2, #y b3 #z ]) verts.append([# 索引 2 c1, #x c2, #y c3 #z ]) verts.append([# 索引 3 d1, # d2, #y d3 #z ]) verts.append([# 索引 4 e1, #x e2, #y e3 #z ]) verts.append([# index 5 f1, #x f2, #y f3 #z ]) verts.append([# 索引 6 g1, #x g2, #y g3 #z ]) verts.append([# 索引 7 h1, #x h2, #y h3 #z ])
#12 边 #最佳 edge.append([0,1]) edge.append([1,2]) edge.append([2,3]) edge.append([3,0]) #底部 edge.append([4,5]) edge.append([5,6]) edge.append([6,7]) edge.append([7,4]) #连接 edge.append([0,4]) edge.append([1,5]) edge.append([2,6]) edge.append([3,7])
打印(垂直[7]) 打印(边缘[0])
#6 人脸 #最佳 faces.append([0,1,2,3]) #底部 faces.append([4,5,6,7]) #边
返回
faces.append([2,6,10,11])
正面
faces.append([0,1,4,5])
右侧
faces.append([1,2,5,6])
左侧
faces.append([0,3,4,7])
print"faces[1] = " + str(faces[1])) # 不起作用
打印(面孔[1])
mesh=bpy.data.meshes.new(名称) 打印(“网格=”+ str(网格)) obj=bpy.data.objects.new(名称,网格) 打印(“obj =” + str(obj)) col=bpy.data.collections.get("收藏") 打印(“col =” + str(col)) col.objects.link(obj) bpy.context.view_layer.objects.active=obj #mesh.from_pydata(verts,edges,faces)mod_skin = obj.modifiers.new('Skin', 'SKIN')
我得到的错误信息是
Traceback(最近一次调用最后一次): 文件“/dem.py”,第 188 行,在 AttributeError:“NoneType”对象没有属性“对象” 错误:Python脚本失败,在系统控制台查看消息
【问题讨论】:
-
我假设
bpy.data.collections.get("Collections")返回None。尝试查看他们的文档。 -
是的,它确实返回无。谢谢你看这个。它早些时候工作。我会看看文档。谢谢