Перед началом работы настоятельно рекомендуем ознакомиться с правилами форума.

Получить координаты узлов в выбранной координатной системе ACT

sertet
Аватар пользователя sertet

Этот код позволяет получить координаты узлов на выбранных поверхностях, но в основной декартовой координатной системе. Как получить координаты узлов в другой координатной системе?

nodeIds = []
mesh = ExtAPI.DataModel.MeshDataByName("Global")
for refId in faceIds:
    meshRegion = mesh.MeshRegionById(refId)
    nodeIds += meshRegion.NodeIds

nodeIds = list(set(nodeIds))
x = []
y = []
z = []
for i in range(0,nodeIds.Count):
    idx = nodeIds[i]
    node = mesh.NodeById(idx)
    x.append(node.X)
    y.append(node.Y)
    z.append(node.Z)

 

Aleksey_K
Аватар пользователя Aleksey_K

Посмотрите пример из документации: https://ansyshelp.ansys.com/account/secured?returnurl=/Views/Secured/corp/v212/en/act_script/act_script_examples_coordinate_system_math.html

sertet
Аватар пользователя sertet

Спасибо.
Мне кажется в примере ошибка. Вместо:

theta = math.degrees(math.atan(user_coordinates[1] / user_coordinates[0]))

должно быть:

theta = math.degrees(math.atan2(user_coordinates[1] , user_coordinates[0]))

так как первое возвращает углы от -90 до 90.

Aleksey_K
Аватар пользователя Aleksey_K

Вы правы, atan2 позволяет рассчитать арктангенс всех четырех квадрантов в отличие от atan

Добавить комментарий

Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Приложить файл

Максимальный размер файла: 128 МБ.
Допустимые типы файлов: txt doc docx xls xlsx pdf rar zip 7zip tar.