Это мой первый пост, поэтому дайте мне знать, если мне нужно что-то изменить!
Я создал сетку на основе следующего input :
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, то он не позволит мне вызвать значение индекса выше в этом столбце. Может ли кто-нибудь помочь мне понять это? И мне нужно изменить значение «instance» на новое значение.
Как краткое объяснение того, чего я пытаюсь достичь:
Пример изображения
Edit: добавление чего-то отличного от x или y к int, чтобы различать «11» с 1, измененным на «0» под ним, и «11» с 2 или 3, замененным на «0» под ними.