我在一个名为Solfec
的Python应用程序中有以下函数:
n0 = 330
n1 = 1027
n2 = 1201
n3 = 1023
def make_rock (x, y, z, r, kind, material, solfec):
m = randint (8, 64)
points = [ ]
for n in range (m):
points.append (x + r * (1.0 - random()))
points.append (y + r * (1.0 - random()))
points.append (z + r * (1.0 - random()))
hull = HULL (points, 1, 1)
rocks = BODY (solfec, kind, hull, material)
SURFACE_MATERIAL (solfec, model = 'SIGNORINI_COULOMB', friction = 0.5)
bulk = BULK_MATERIAL (solfec, 'KIRCHHOFF', young = 1.5E5, poisson = 0.25, density = 2.6E-6)
# choose the rock radius(r,r1,r2,r3):
r = 16
r1 = 13
r2 = 11
r3 = 10
aint = int(w - 10)
bint = int(d - 10)
cint0 = int(p*n0/16)
cint1 = int(p*n1/16)
cint2 = int(p*n2/16)
cint3 = int(p*n3/16)
for a in range (10, aint, 30):
for b in range (10 , bint , 30):
for c in range (20 , 20 + cint0, p):
make_rock (a, b, c, r, 'RIGID', bulk, solfec)
for a1 in range (10, aint, 30):
for b1 in range (10, bint, 30):
for c1 in range (50, 50 + cint1, p):
make_rock (a1, b1, c1, r1, 'RIGID', bulk, solfec)
for a2 in range (10, aint, 30):
for b2 in range (10, bint, 30):
for c2 in range (40, 40 + cint2, p):
make_rock (a2, b2, c2, r2, 'RIGID', bulk, solfec)
for a3 in range (10, aint, 30):
for b3 in range (10, bint, 30):
for c3 in range (30, 30 + cint3, p):
make_rock (a3, b3, c3, r3, 'RIGID', bulk, solfec)
它通过for循环创建某种几何对象并为其指定一些属性(外壳、主体)。在
我使用的应用程序允许我通过以下方式输出创建的每个实体的体积:
^{pr2}$所以如果我写下:
print rocks.volume
我得到了所有卷的打印清单。在
我需要把这些值加起来,我怎么做?如果我使用:
print sum(rocks.volume)
我得到float
对象不可编辑。在
所以我想我需要创建所有这些输出值的唯一列表,然后用普通的sum()
命令对它们进行汇总。在
假设你有一张清单,上面有你可以做的事情:
如果你没有,那么我们需要更多关于这个方法的剩余代码的信息(例如,它返回什么,它在哪里被调用),以及你需要在哪里计算这个和以及多久计算一次。在
我会根据你的评论来编辑我的答案,但是如果你只是编辑你的问题,提供make\u rock方法中的所有代码以及你调用它的地方,这还是会容易得多。现在,如果您只需要所能完成的卷的总和:
^{pr2}$在制作摇滚乐的最后,请确保你有:
相关问题 更多 >
编程相关推荐