Перейти к статье

 

API на основе методов

Базовые методы

cubit.cmd(input_string)
fidesys.cmd(input_string)
Передать командную строку в Fidesys. Передача команды в Fidesys с помощью 
 
 этого метода приведет к немедленному выполнению команды. Команда 
 передается 
 напрямую в Fidesys без какой-либо валидации или другой проверки.
cubit.cmd("brick x 10") 
fidesys.cmd("brick x 20")
Параметры: input_string - Указатель на строку, содержащую    полную команду Fidesys.
cubit.get_id_string(entity_ids)

Разобрать список целых чисел в список идентификаторов в стиле Fidesys. Возвращаемая строка не будет включать перенос строки.

cubit.cmd('sphere radius .5') 
cubit.cmd('volume 1 copy move x 2 repeat 3') 
id_list = cubit.parse_cubit_list('volume', 'all') 
# id_list = [1,2,3,4] 
# returned id_string is '1 to 4' 
id_string = cubit.get_id_string(id_list) 

Параметры: entity_ids – кортеж целых чисел возвращает строку A, представляющую список идентификаторов без переносов строк

Тип: list[int]

Возвращает:

строка идентификаторов Cubit stype

Возвращаемый тип: str

cubit.init(argv, in_python=True)

Используйте cubit.init() для инициализации Cubit в автономном сеансе Python.

Cubit можно импортировать в Python без запуска GUI. Необходимо указать путь к лицензионной версии Fidesys, а Cubit необходимо инициализировать до доступа к другим методам в этом API.

Аргументы метода init() являются аргументами командной строки для Fidesys с добавлением того, что первый аргумент — это имя программы «cubit».

Следующий скрипт Python показывает пример инициализации и использования Fidesys. Ключевые части — обеспечение того, чтобы библиотеки Fidesys находились в пути, импорт библиотек Fidesys и вызов cubit.init().

import sys   
# add Fidesys libraries to your path sys.path.append('/opt/ Fidesys/ CAE-Fidesys-9.0/preprocessor/bin')   
import cubit   
# start cubit - this step is key. Note that: 
# cubit.init does not require any arguments. 
# If you do want to provide arguments, you must 
# provide 2 or more, where the first must 
# be "cubit", and user args start 
# as the 2nd argument. 
# If only one argument is used, it will be ignored. cubit.init(['cubit','-nojournal'])   
height = 1.2 
blockHexRadius = 0.1732628   
#hexagon 
cubit.cmd(f"create prism height {height} sides 6 radius {blockHexRadius}") 
#etc . . .   

Параметры: argv – Список директив запуска командной строки. Пустого списка, например [‘’], будет достаточно. Если указаны параметры команды, первый элемент в списке игнорируется

Тип: list[str]

cubit.parse_cubit_list(type, entity_list_string)

Разбор списка сущностей в стиле Cubit в список целых чисел. Пользователям разрешено вводить множество вариаций сущностей и идентификаторов для любой заданной команды. Эта процедура анализирует ввод и возвращает обычный список допустимых идентификаторов для указанного типа сущности. Например:

cubit.parse_cubit_list('surface', '1 to 12')
cubit.parse_cubit_list('surface', 'with name "myname*"')
cubit.parse_cubit_list('surface', 'in volume 5 to 23')
cubit.parse_cubit_list('hex', 'in volume 1')

Параметры:

  • type – Конкретный тип сущности, представленный списком сущностей

  • entity_list_string – Строка, содержащая список сущностей

Тип: str

Тип: str

Возвращает: Список допустимых идентификаторов для данного типа в пределах указанных параметров

Return type: tuple[int]

Методы Get

cubit.get_arc_length(curve_id)

Получить длину дуги указанной кривой

Параметры: curve_id – ID кривой

Возвращает: Длина дуги кривой

Возвращаемый тип: float

cubit.get_block_name(entity_id)

Получить имя блока для заданного идентификатора блока (ID)

block_name = cubit.get_block_name(1) 

Параметры: block_id – IИдентификатор рассматриваемого блока

Возвращает: Имя блока, связанного с этим блоком, или “”, если его нет

Возвращаемый тип: str

cubit.get_curve_center(curve_id)

Получить центральную точку дуги

Параметры: curve_id – ID кривой

Возвращает: x, y, z центральной точки кривой

Возвращаемый тип: tuple[float]

cubit.get_curve_length(curve_id)

Получить длину указанной кривой

Параметры: curve_id – ID кривой

Возвращает: Длина кривой

Возвращаемый тип: float

cubit.get_curve_radius(curve_id)

Получить радиус указанной дуги

Параметры: curve_id – ID кривой

Возвращает: Радиус кривой

Возвращаемый тип: float

cubit.get_distance_from_curve_start(x_coordinate, y_coordinate, z_coordinate, curve_id)

Получить расстояние от точки на кривой до начальной точки кривой

Параметры:

  • x – значение точки для измерения

  • y – значение точки для измерения

  • z – значение точки для измерения

  • curve_id – ID кривой

Тип:  float

Тип:  float

Тип:  float

Возвращает: Расстояние от xyz до начала кривой

Возвращаемый тип: float

cubit.get_center_point(entity_type, entity_id)

Получить центральную точку указанного объекта.

center_point = cubit.get_center_point("surface", 22)

Параметры:

  • entity_type – Указывает строку, представляющую тип геометрии объекта

  • entity_id – Указывает идентификатор сущности

Возвращает: Координаты x, y, z центральной точки

Возвращаемый тип: tuple[float]

cubit.get_common_curve_id(surface_1_id, surface_2_id)

Дано 2 поверхности, получить общий идентификатор кривой

Параметры:

  • surface_1_id – Идентификатор одной из поверхностей

  • surface_2_id – Идентификатор одной из поверхностей

Возвращает: Идентификатор кривой, общей для двух поверхностей

Возвращаемый тип: int

cubit.get_common_vertex_id(curve_1_id, curve_2_id)

Даны 2 кривые, найдите общий идентификатор вершины

Параметры:

  • curve_1_id – Идентификатор одной из кривых

  • curve_2_id – Идентификатор других кривых

Возвращает: Идентификатор вершины, общей для двух кривых, 0, если таковой отсутствует

Возвращаемый тип: int

cubit.get_entities(entity_type)

Получить все сущности указанного типа (включая геометрию, сетку и т. д.)

entity_id_list = cubit.get_entities("volume") 

Параметры: entity_type – Указывает тип сущности

Возвращает: Кортеж идентификаторов указанного типа геометрии

Возвращаемый тип: boolean

cubit.get_nearby_entities(entity_type)

Получить список близлежащих сущностей типа кривая, поверхность или объем, заданный список того же типа сущности. Например, задан один или несколько объемов, найти все объемы, которые находятся ближе указанного расстояния.

entity_id_list = cubit.get_nearby_entities("volume") 

Параметры:

gtype – "curve", "surface" или "volume"

ent_ids – Найдите объекты, близкие к объектам в этом списке

compare_ents – Сущности одного типа для проверки. Если пусто, будет проверяться по всем из них

distance – Максимальное расстояние между сущностями. Необязательно. Используйте -1 для вычисления допуска по умолчанию

Возвращает: Список сущностей типа gtype, которые находятся рядом с ent_ids из списка compare_ents

Возвращаемый тип: tuple[int]

cubit.get_entity_color(entity_type, entity_id)

Получить цвет указанного объекта

color = cubit.get_entity_color("curve", 33) 

Параметры:

  • entity_type – Указывает тип сущности

  • entity_id – Указывает идентификатор сущности

Возвращает: Цвет сущности (r, g, b, a). Обратите внимание, что (0,0,0,0) обозначает цвет по умолчанию

Возвращаемый тип: tuple[float], length 4

cubit.get_entity_name(entity_type, entity_id, no_default=False)

Получить имя указанной сущности Возвращаемые имена бывают двух типов: 1) определяемые пользователем имена, которые фактически хранятся в Fidesys, когда имя определено, и 2) имена «по умолчанию», предоставляемые Fidesys во время выполнения, которые не хранятся в Cubit. Второй тип имени не может использоваться для запроса Fidesys

name = cubit.get_entity_name("vertex", 22)

Параметры:

  • entity_type – Указывает тип сущности

  • entity_id – Указывает идентификатор сущности

  • no_default – True для возврата пустой строки, если имя не задано

Возвращает: Название организации

Возвращаемый тип: str

cubit.get_error_count()

Получить количество ошибок в текущем сеансе Fidesys

Возвращает: Количество ошибок в сеансе Fidesys

Возвращаемый тип: int

cubit.get_merge_tolerance()

Получить текущее значение допуска слияния

Возвращает: Значение текущего допуска слияния

Возвращаемый тип: float

cubit.get_mesh_intervals(geometry_type, entity_id: int) → int

Получить количество интервалов для указанного объекта

intervals = cubit.get_mesh_intervals("surface", 12)

Параметры:

  • geom_type – Указывает тип геометрии объекта

  • entity_id – Указывает идентификатор сущности

Возвращает: Количество интервалов сущности

Возвращаемый тип: int

cubit.get_mesh_scheme(geometry_type, entity_id)

Получить схему сетки для указанного объекта

scheme = cubit.get_mesh_scheme("surface", 12)

Parameters:

  • geom_type – Указывает тип геометрии объекта

  • entity_id – Указывает идентификатор сущности

Возвращает: Схема объединения сущности

Возвращаемый тип: str

cubit.get_mesh_size(geometry_type, entity_id)

Получить размер сетки для указанного объекта

mesh_size = cubit.get_mesh_size("volume",2)

Параметры:

  • geom_type – Указывает тип геометрии объекта

  • entity_id – Указывает идентификатор сущности

Возвращает: Размер ячейки сущности

Return type: float

cubit.get_surface_area(surface_id)

Получить площадь поверхности

Parameters: surface_id – ID поверхности

Returns: Площадь поверхности

Возвращаемый тип: float

cubit.get_surface_centroid(surface_id)

Получить центроид поверхности для указанной поверхности

Параметры: surface_id – ID поверхности

Возвращает: центр поверхности

Возвращаемый тип: tuple[float], length 3

cubit.get_surface_normal(surface_id)

Получить нормаль поверхности для указанной поверхности

Параметры: surface_id – ID поверхности

Возвращает: нормаль к поверхности в центре

Возвращаемый тип: tuple[float], length 3

cubit.get_surface_normal_at_coord(surface_id, arg2)

Получить нормаль поверхности для указанной поверхности в определенном месте

Parameters: surface_id – – ID поверхности :param coord: массив координат x,y,z на поверхности

Возвращает: Нормаль к поверхности в точке с координатами

Возвращаемый тип: tuple[float], length 3

cubit.get_total_volume(volume_list)

Получить общий объем для списка идентификаторов томов

Параметры: volume_list – Список идентификаторов томов

Возвращает: Общий объем всех томов, указанных в списке идентификаторов

Возвращаемый тип: float

cubit.get_version()

Получить версию Fidesys

Возвращает:Строка, содержащая текущую версию Fidesys

Возвращаемый тип: str

cubit.get_volume_area(volume_id)

Получить площадь объема

Параметры: volume_id – ID объема

Тип: int

Возвращает: Площадь объема

Возвращаемый тип: float

cubit.get_volume_volume(vol_id)

Получить объем тома

Параметры: volume_id - ID объема

Type: int

Возвращает: Объем>

Возвращаемый тип: float

Методы запроса состояния

cubit.is_merged(geometry_type, entity_id)

Определяет, объединена ли указанная сущность

state = cubit.is_merged("surface",137)

Параметры:

  • geom_type – Указывает тип геометрии объекта

  • entity_id – Указывает идентификатор сущности

Возвращаемый тип: boolean

cubit.is_meshed(geometry_type, entity_id)

Определяет, является ли указанный объект сеткой

state = cubit.is_meshed("surface",137)

Параметры:

  • geom_type – Указывает тип геометрии объекта

  • entity_id – Указывает идентификатор сущности

cubit.is_periodic(geometry_type, entity_id)

Запросить, является ли указанная поверхность или кривая периодической

result = cubit.is_periodic("surface",22)

Параметры:

  • geom_type – Указывает тип геометрии объекта

  • entity_id – Указывает идентификатор сущности

Возвращает:True, если сущность периодическая, в противном случае false

Возвращаемый тип: boolean

cubit.is_point_contained(geometry_type, entity_id, xyz_point)

Определите, находится ли заданная точка внутри, снаружи, на заданном объекте или неизвестно. Обратите внимание, что это обычно используется для объемов или листовых тел

Параметры:

  • geom_type – строка, определяющая тип геометрии (volume или body)

  • id – ID геометрической сущности

  • xyz_point – триплет, определяющий координаты точки x,y,z

Тип:  str

Тип:  int

Тип:  tuple[float], length 3

Возвращает: -1 failure, 0 outside, 1, inside, 2 on

Возвращаемый тип: int

cubit.is_surface_meshable(surface_id) 

Проверьте, совместима ли поверхность с текущей схемой

Возвращает: Логическое значение, указывающее, является ли поверхность разбиваемой сеткой с текущей схемой

Возвращаемый тип: boolean

cubit.is_surface_planar(surface_id) 

Запрос, является ли заданная поверхность плоской

Параметры: surface_id – Указывает идентификатор поверхности

cubit.is_volume_meshable(volume_id) 

Проверьте, совместим ли объем с текущей схемой

Возвращает: Логическое значение, указывающее, совместим ли объем с текущей схемой

Возвращаемый тип: boolean

cubit.is_sheet_body(volume_id)

Запросить, является ли указанный объем листовым телом

Параметры: volume_id – ID объема

Возвращает: True, если объем представляет собой листовое тело, в противном случае false

Возвращаемый тип: boolean

cubit.measure_between_entities(entity_type1, entity_id1, entity_type2, 
 entity_id2)

Возвращает расстояние между двумя геометрическими объектами и их ближайшими точками

dist_info = cubit.measure_between_entities(“curve”, 10,
“surface”, 12)
dist = dist_info[0]
curv_point = [dist_info[1], dist_info[2], dist_info[3]]
surf_point = [dist_info[4], dist_info[5], dist_info[6]]]

Параметры:

  • entity_type1 – тип первой сущности

  • entity_id1 – ID первой сущности

  • entity_type2 – тип второй сущности

  • entity_id2 – ID второй сущности

Тип:  str, one of “vertex”, “curve”, “surface”, “volume”, “node”, “edge”, “tri”, “face”, “tet”, “hex”, “wedge”, “pyramid”

Возвращает: Расстояние между двумя сущностями

Возвращаемый тип: float

Методы запроса ID

cubit.get_id_from_name(name)

Получить идентификатор для именованной сущности. Эта процедура возвращает целочисленный идентификатор для сущности, имя которой передано

entity_id = cubit.get_id_from_name("member_2")

Параметры: name – Имя сущности для проверки. Возвращает целочисленное представление сущности

Возвращает: Идентификатор, связанный с данным именем

Возвращаемый тип: str

cubit.get_last_id(entity_type) 

Получить идентификатор последней созданной сущности заданного типа

last_id = cubit.get_last_id(“surface”)

Параметры: entity_type – Тип запрашиваемой сущности

Type:  str

Возвращает: Идентификатор последней созданной сущности

Возвращаемый тип: int

cubit.get_next_block_id()

Получить следующий доступный идентификатор блока

Возвращает:Следующий доступный идентификатор блока

Возвращаемый тип: int

cubit.get_next_group_id() 

Получите следующий доступный идентификатор группы от Fidesys

Returns: Идентификатор следующей группы

Return type: int

cubit.get_next_nodeset_id()

Получить следующий доступный идентификатор набора узлов

Возвращает: Следующий доступный идентификатор набора узлов

Возвращаемый тип: int

cubit.get_next_sideset_id()

Получить следующий доступный идентификатор sideset

Возвращает: Следующий доступный идентификатор sideset

Возвращаемый тип: int

Методы баундинг бокса

cubit.get_bounding_box(geometry_type, entity_id)

Получить ограничивающую рамку для указанного объекта

vector_list = cubit.get_bounding_box("surface", 22)

Параметры:

  • geom_type – Указывает тип геометрии объекта

  • entity_id – Указывает идентификатор сущности

Возвращает: Кортеж координат, описывающих ограничивающую рамку сущности. Десять (10) значений будут:

  • [0] = минимальный x

  • [1] = максимальный x

  • [2] = box x range

  • [3] = минимальный y

  • [4] = максимальный y

  • [5] = box y range

  • [6] = минимальный z

  • [7] = максимальный z

  • [8] = box z range

  • [9] = box diagonal length

Возвращаемый тип: tuple[float], length 10

cubit.get_total_bounding_box(geometry_type, 
 entity_list)

Получить ограничивающую рамку для списка сущностей

vector_list = cubit.get_total_bounding_box("surface", 
 entity_list)

Параметры:

  • geom_type – Указывает тип геометрии объекта

  • entity_list – Список идентификаторов, связанных с geom_type

Возвращает: Массив координат ограничивающей рамки сущности:

  • [0] = минимальный x

  • [1] = максимальный x

  • [2] = box x range

  • [3] = минимальный y

  • [4] = максимальный y

  • [5] = box y range

  • [6] = минимальный z

  • [7] = максимальный z

  • [8] = box z range

  • [9] = box diagonal length

Возвращаемый тип: tuple[float], length 10

cubit.get_tight_bounding_box(geometry_type, 
 entity_list)

Получить узкую ограничивающую рамку для списка сущностей

vector_list = cubit.get_tight_bounding_box("surface", 
 entity_list)

Параметры:

  • geom_type – Указывает тип геометрии объекта

  • entity_list – Список идентификаторов, связанных с geom_type

Возвращает: Кортеж координат центральной точки и определений осей:

  • [0] = x центра

  • [1] = y центра

  • [2] = z центра

  • [3] = нормализованная u компонента 0

  • [4] = нормализованная u компонента 1

  • [5] = нормализованная u компонента 2

  • [6] = нормализованная v компонента 0

  • [7] = нормализованная v компонента 1

  • [8] = нормализованная v компонента 2

  • [9] = нормализованная w компонента 0

  • [10] = нормализованная w компонента 1

  • [11] = нормализованная w компонента 2

  • [12] = длина u

  • [13] = длина v

  • [14] = длина z

Возвращаемый тип tuple[float], length 15

Методы запроса сетки

cubit.get_closest_node(x_coordinate, y_coordinate, z_coordinate)

Получить узел, ближайший к заданным координатам

Параметры:

  • x – координата

  • y – координата

  • z – координата

Тип:  float

Тип:  float

Тип:  float

Возвращает: идентификатор ближайшего узла, 0, если ничего не найдено

Возвращаемый тип: int

cubit.get_connectivity(entity_type, entity_id)

Получить список идентификаторов узлов, содержащихся в объекте сетки

node_id_list = cubit.get_connectivity("hex", 221) 

Параметры:

  • entity_type – Тип элемента сетки

  • entity_id – Идентификатор элемента сетки

Возвращает: Tuple of node ids

Возвращаемый тип: tuple[int]

cubit.get_expanded_connectivity(entity_type, entity_id)

Получить список идентификаторов узлов, содержащихся в объекте сетки, включая внутренние узлы

node_id_list = cubit.get__expanded_connectivity("hex", 221) 

Параметры:

  • entity_type – Тип элемента сетки

  • entity_id – Идентификатор элемента сетки

Возвращает: Кортеж всех идентификаторов узлов, связанных с элементом, включая внутренние (высшего порядка) узлы

Возвращаемый тип: tuple[int]

cubit.get_element_type(element_id) 

Возвращает тип заданного элемента

Параметры: element_id – Идентификатор элемента (т.е. глобальный идентификатор экспорта элемента)

Возвращает: Тип

Возвращаемый тип: str

cubit.get_geometry_owner(entity_type, entity_id)

Получить геометрию, которой принадлежит этот элемент сетки

geom_owner = cubit.get_geometry_owner("hex", 221)

Параметры:

  • entity_type – Тип элемента сетки

  • entity_id – Идентификатор элемента сетки

Возвращает: Имя сущности

Возвращаемый тип: str

cubit.get_nodal_coordinates(node_id) 

Получить узловые координаты для заданного идентификатора узла

Параметры: node_id – Идентификатор узла

Возвращает: Кортеж, содержащий координаты x, y и z

Возвращаемый тип: tuple[float], length 3