Я пытаюсь получить нормаль каждой грани на поверхности (РЕДАКТИРОВАТЬ: поверхность извлекается из твердого тела, а не из оболочки). Однако я не могу получить объекты лица. Согласно справочному руководству по сценариям это должен быть синтаксис:
mdb.models[name].rootAssembly.instances[name].surfaces[name].faces[i]
Я пробовал это:
femur_instance.surfaces['IMPLANT_SHAFT'].faces[0]
но при попытке получить нормальное использование атрибута pointOn[1]
это дало мне ошибку атрибута. Когда я смотрю на атрибуты, я получаю это:
['__class__', '__copy__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__getstate__', '__hash__', '__init__', '__lt__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setstate__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_addToCache', '_cache', '_counter', '_id', '_p', '_scdId', 'getId', 'getText', 'name']
тип возвращаемого объекта: 'symbolicConstant'
Что я делаю не так?
РЕДАКТИРОВАТЬ: femur_instance
было определено как odb.rootAssembly.instances['FEMUR_SHAFT_1']
, вызвавшее ошибку, см. ответ.
(...).faces[0].pointOn[1]
должен возвращать кортеж, представляющий нормаль на 1-й грани. Вы хотите сказать, что это не так? Если это твердое тело, тогда другое дело. - person Matt P   schedule 05.04.2018odb.rootAssembly.instances['FEMUR_SHAFT_1'].surfaces['IMPLANT_SHAFT'].faces[0]
Так что действительно, он не возвращает нормаль первого лица. Он возвращает объект 'symbolicConstant'. - person ThaNoob   schedule 05.04.2018