Первые два легко выполнить с помощью
Код: Выделить всё
faces = p.faces
face_bot = faces.findAt((p_center_bot,))
face_top = faces.findAt((p_center_top,))
p.Set(faces=face_bot, name='Set-face-bot')
p.Set(faces=face_top, name='Set-face-top')
Я попробовал извлечь индексы face_bot, face_top с помощью
Код: Выделить всё
face_bot_idx = face_bot[0].index
face_top_idx = face_top[0].index
Код: Выделить всё
# Of the 3 faces, get the one not being bottom or top
face_lat_idx = [idx for idx in range(len(faces)) if ((idx!=face_bot_idx) and (idx!=face_top_idx))][0]
Обратите внимание, что именованный аргумент face< /code> требует последовательности и, похоже, не принимает кортеж, например (face_lat_0,) или список, например [face_lat_0].
Если я прав, что список или кортеж использовать нельзя, мне нужно создать последовательность.
Я нашел метод getSequenceFromMask(. ..), но я не знаю, как сгенерировать маску для face_lat_0, учитывая его индекс.
В качестве альтернативы я мог бы попробовать использовать именованный аргумент xFaces , но я думаю, мне понадобится исключить последовательность, содержащую face_bot[0] и face_top[0], которую я опять же не знаю, как создать.
Есть идеи?
Возможно, связано (хотя я не нашел там ответа):
[*]Abaqus Surface getSequenceFromMask
[*]Abaqus получает объект лица
[*]Abaqus: скрипт для выбора элементов поверхность
[*]как выбрать part.surface в abaqus с помощью скрипта Python
[*]https://imechanica.org/node/15852
Подробнее здесь: https://stackoverflow.com/questions/788 ... ace-object