这是我的第一篇文章,所以如果我需要更改任何内容,请告诉我!
我根据以下输入创建了一个网格:
1;2;12;12;12
11;12;2;12;12
1;2;12;2;12
11;12;2;1;2
为了创建这个网格,我使用了这段代码:
node = hou.pwd()
geo = node.geometry()
text = node.evalParm('text')
lines = text.splitlines()
numbers = [map(int, line.split(';') ) for line in lines]
geo.addAttrib(hou.attribType.Point, 'instance', -1)
for row, n in enumerate(numbers):
for col, value in enumerate(n):
pos = (col, 0.0, row)
pt_add = geo.createPoint()
pt_add.setAttribValue('instance', value)
pt_add.setPosition(pos)
这很有效,并创建了点间距为 1 且具有正确值的网格。现在我想做以下事情:
if value != 0:
a = #Value of current index
b = #Value of index above
if len(a) < len(b):
if a[-len(a)] == b[-len(a)]:
a = '0'
b = b
else:
pass
else:
if len(a)== len(b):
if len(a) < 2:
pass
else:
a = '0'
b = b + 'x'
else:
if a[-len(a)] == b[-len(a)]:
b = a + 'y'
a = '0'
else:
pass
现在我假设我需要再次遍历行和列,但是如果我使用 for 循环执行此操作,那么它将不允许我在该列中调用上述索引的值。有人可以帮我解决这个问题吗?我需要将“实例”的值更改为新值。
作为对我要实现的目标的简要说明: 示例图片
编辑:将 x 或 y 以外的内容添加到 int 以区分其下的 1 更改为“0”的“11”和其下的 2 或 3 更改为“0”的“11”。