Как бороться с этими неизвестными / странными типами переменных?

Программное обеспечение Abaqus FEM, использующее Python, создает собственные типы переменных / списков, например:

a = mdb.models['Model-1'].rootAssembly.instances['Instance-1'].faces
print a
type(a)

['Face object', 'Face object', 'Face object', ...]

тип FaceArray

print a[0]:
type(a[0])

({'featureName': 'Name-1', 'index': 6, 'instanceName': 'Name-1', 'isReferenceRep': False, 'pointOn': ((0.0, 0.733333, -0.133333),)} )

введите "Лицо"

Теперь, когда я инициализирую x=[] и добавляю 'Face object' с x.append(a[2]), это приводит к

[mdb.models ['Модель-1']. rootAssembly.instances ['Экземпляр-1']. Faces [2]]

вместо того

["Лицо объекта"]

Как я могу создать новую переменную того же формата, что и a?


person user56574    schedule 04.04.2016    source источник
comment
Что возвращает type(x[0])?   -  person Swier    schedule 04.04.2016
comment
Он возвращает: ›тип« NoneType ».   -  person user56574    schedule 04.04.2016


Ответы (1)


Вам нужно создать массив лиц, а не простой массив, а затем добавить в свой массив лиц Объекты лица

x = FaceArray()
person János Farkas    schedule 04.04.2016
comment
К сожалению, это не работает и возвращает: ›NameError: имя FaceArray не определено. - person user56574; 04.04.2016
comment
ivt-abaqusdoc. ivt.ntnu.no:2080/v6.14/books/ker/ Функция getByBoundingBox возвращает массив лиц, то есть содержит конструктор массива лиц. - person János Farkas; 05.04.2016
comment
Спасибо за вашу помощь. Что именно это значит для меня? Например, как я могу использовать тот факт, что getByBoundingBox в этом случае содержит информацию о конструкторе? - person user56574; 06.04.2016
comment
где-то в функции getByBoundingBox вызывает метод, который создает facearray (поскольку тип возвращаемой переменной - facearray), ваша единственная задача - найти его, и с этого момента вы можете создать свой собственный facearray (лично я никогда не использовал abaqus, но он наверняка содержит. py файлы) - person János Farkas; 06.04.2016
comment
Несколько функций возвращают массив лиц, но это не очень помогает. Похоже, что конструктор недоступен. - person Dimali; 29.05.2017