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

 

API на основе объектов

API на основе объектов предоставляет более «питоновский» интерфейс. Этот интерфейс поддерживается и тестируется. Существуют методы модификации объектов, которые здесь не документированы. Эти методы устарели и не находятся в стадии текущей разработки.

Конечные объекты соответствуют сущностям в Fidesys. Они являются производными от GeomEntity и Entity. Все методы, определенные в базовых классах, доступны в конечных классах.

Сущности Fidesys должны быть созданы с помощью метода cmd. Существуют операторы для преобразования идентификатора в объект и обратно. Например,

#!python
import numpy as np
cubit.cmd('brick x 5')
id = cubit.get_last_id('volume')
box = cubit.body(id)
surfaces = box.surfaces()
x_norm = np.array([1, 0, 0])
for surf in surfaces:
  normal = np.array(surf.normal_at(surf.center_point()))
  if np.dot(normal,x_norm) != 0:
    print(f"Found +x surface id: {surf.id()}")
    break

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

Методы создания объектов

Объекты Fidesys создаются из идентификатора и возвращают объект заданного типа

cubit.body(id_in) 

Создает объект тела по ID

Параметры: id_in (int) – ID тела

Возвращает: Объект тело

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

cubit.volume(id_in) 

Создает объект объема по ID

Параметры: id_in (int) – ID объема

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

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

cubit.surface(id_in) 

Создает объект поверхности по ID

Parameters: id_in (int) – ID поверхности

Возвращает: Объект поверхность

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

cubit.curve(id_in) 

Создает объект кривой по ID

Параметры: id_in (int) – ID кривой

Возвращает: Объект кривая

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

cubit.vertex(id_in) 

Создает объект вершины по ID

Параметры: id_in (int) – ID вершины

Возвращает: Объект вершина

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

Сущность

class cubit.Entity 

Базовый класс всех типов геометрии и сеток

import cubit
cubit.cmd('brick x 1 y 1 z 1')
br = cubit.volume(1)
bbox = br.bounding_box()
cubit.cmd('delete body 1') 
entity.bounding_box() 

Получить ограничивающую рамку сущности

b_box = entity.bounding_box() 

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

  • 0 - минимальное значение x

  • 1 - минимальное значение y

  • 2 - минимальное значение z

  • 3 - максимальное значение x

  • 4 - максимальное значение y

  • 5 - максимальное значение z

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

entity.center_point() 

Получите центральную точку Entity. Обратите внимание, что это приблизительный центр

center = entity.center_point() 

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

  • 0 - значение x

  • 1 - значение y

  • 2 - значение z

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

entity.id() 

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

id = entity.id() 

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

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

entity.is_visible() 

Получить состояние видимости сущности

vis = entity.is_visible() 

Возвращает:Текущее состояние видимости сущности (1, если видно, 0, если нет)

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

entity.is_transparent() 

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

trans = entity.is_transparent() 

Возвращает: Текущее состояние прозрачности сущности (1, если прозрачна, 0, если нет)

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

Геометрические сущности

class cubit.GeomEntity(*args, **kwargs) 

Базовый класс специально для типов геометрии (Body, Surface и т.д.)

GeomEntity.mesh() 

Сетка GeomEntity

geomEntity.mesh() 
GeomEntity.is_meshed() 

Возвращает текущее состояние сетки GeomEntity

mesh = geomEntity.is_meshed() 

Возвращает: Является ли GeomEntity сеткой или нет

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

GeomEntity.smooth() 

Сглаживает сетку на GeomEntity

geomEntity.smooth() 

GeomEntity.remove_mesh()

Удаляет сетку на GeomEntity

geomEntity.remove_mesh() 

GeomEntity.entity_name()

Верните первое имя GeomEntity

name = geomEntity.entity_name() 

Возвращает: Первое имя GeomEntit

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

GeomEntity.entity_names() 

Вернуть все имена GeomEntity

names = geomEntity.entity_names() 

Возвращает: Кортеж строк, содержащий все имена GeomEntity

GeomEntity.dimension() 

Получить размеры GeomEntity

dim = geomEntity.dimension() 

Возвращает: Размерность GeomEntity

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

GeomEntity.bodies() 

Получить тела в GeomEntity

bodies = geomEntity.bodies() 

Возвращает: Кортеж тел, содержащихся в GeomEntity

GeomEntity.volumes() 

Получить объемы в GeomEntity

volumes = geomEntity.volumes() 

Возвращает: Кортеж томов, содержащихся в GeomEntity

GeomEntity.surfaces() 

Получить поверхности в GeomEntity

surfaces = geomEntity.surfaces() 

Возвращает: Кортеж поверхностей, содержащихся в GeomEntity

GeomEntity.curves() 

Получить кривые в GeomEntity

curves = geomEntity.curves() 

Возвращает: Кортеж кривых, содержащихся в GeomEntity

GeomEntity.vertices() 

Получить вершины в GeomEntity

vertices = geomEntity.vertices() 

Возвращает: Кортеж вершин, содержащийся в GeomEntity

Тело

Класс Body содержит тип тело Fidesys и предоставляет методы для запроса тел

class cubit.Body(*args, **kwargs) 

Определяет объект body, который в основном соответствует классу Body Fidesys

body.get_mass_props() 

Получите массовые свойства тела, в частности центр тяжести

props = body.get_mass_props() 

Возвращает: Кортеж числовых данных, соответствующих центру тяжести тела со следующими индексами:

  • 0 - координата x

  • 1 - координата y

  • 2 - координата z

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

body.point_containment(loc_in) 

Узнать, находится ли точка внутри, на или снаружи тела Body

on_out_in = body.point_containment([0,0,0]) 

Возвращает: Является ли точка неизвестной (-1), находится вне (0), внутри (1) или на (2) теле Body

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

body.volume() 

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

vol = body.volume() 

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

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

body.is_sheet_body() 

Определите, является ли тело Body листовым или нет

is_sheet = body.is_sheet_body() 

Возвращает: Является ли тело Body листовым телом или нет

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

Объем

Класс Volume содержит объем Fidesys и предоставляет методы для запроса объема

class cubit.Volume(*args, **kwargs) 

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

volume() 

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

vol = volume.volume() 

Возвращает: Получить объем Volume

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

volume.color() 

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

col = volume.color() 

Возвращает: Значение цвета, связанное с текущим цветом объема. Примечание (0.,0.,0.,0.) обозначает цвет по умолчанию без назначенного значения цвета

volume.principal_axes() 

Получить главные оси объема Volume

axes = volume.principal_axes() 

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

  • 0 - ось 1 значение x

  • 1 - ось 1 значение y

  • 2 - ось 1 значение z

  • 3 - ось 2 значение x

  • 4 - ось 2 значение y

  • 5 - ось 2 значение z

  • 6 - ось 3 значение x

  • 7 - ось 3 значение y

  • 8 - ось 3 значение z

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

volume.principal_moments() 

Получить гавные моменты объема Volume

moments = volume.principal_moments() 

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

  • 0 - момент x

  • 1 - момент y

  • 2 - момент z

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

volume.centroid() 

Получить центр объема Volume

centroid = volume.centroid()

Возвращает: Кортеж координат центра тяжести объема с индексами кортежа, соответствующими следующим значениям:

  • 0 - координата x

  • 1 - координата y

  • 2 - координата z

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

Поверхнось

Класс Surface содержит поверхность Fidesys и предоставляет методы для запроса поверхности

class cubit.Surface(*args, **kwargs) 

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

surface.color() 

Получить цвет поверхности Surface

col = surface.color() 

Возвращает: Значение цвета, связанное с текущим цветом тома. Примечание (0.,0.,0.,0.) обозначает цвет по умолчанию без назначенного значения цвета

Возвращаемый тип: tuple[float], length 4 (r, g, b, a).

surface.ordered_loops() 

Получить упорядоченные контуры поверхности, где первый контур является внешним

loops = surface.ordered_loops() 

Возвращает: Кортеж кортежей контуров кривых

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

  • 0, 0 - контур 1 кривой 1

  • 0, 1 - контур 1 кривой 2

  • 1, 0 - контур 2 кривой 1

  • etc…

surface.normal_at(location) 

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

norm = surface.normal_at([0,0,0]) 

Параметры: location – Список или кортеж, содержащий три значения, которые являются координатами точки

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

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

  • 0 - значение x

  • 1 - значение y

  • 2 - значение z

surface.closest_point_trimmed(location) 

Получить ближайшую точку на поверхности Surface к указанной точке

nearest = surface.closest_point_trimmed([0,0,0]) 

Параметры: location – Кортеж, содержащий три значения, которые являются координатами точки

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

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

  • 0 - координата x

  • 1 - координата y

  • 2 - координата z

surface.closest_point_along_vector(location, along_vector) 

Получить ближайшую точку на поверхности к указанной точке вдоль указанного вектора

nearest = surface.closest_point_along_vector([0,0,0], [1,1,1]) 

Параметры: location – Список или кортеж, содержащий три значения, которые являются координатами точки

Возвращает: Кортеж чисел двойной точности, представляющих значения ближайшей точки следующим образом

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

  • 0 - координата x

  • 1 - координата y

  • 2 - координата z

surface.point_containment(point_in) 

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

on_off = surface.point_containment([0,0,0]) 

Параметры: point_in (tuple[float] length 3, in) – Вектор, содержащий три значения, которые являются координатами точки

Возвращает: Логическое значение Python, представляющее, находится ли точка вне (0) или на (1) поверхности Surface

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

surface.principal_curvatures(point) 

Получить основные кривизны поверхности Surface

curvatures = surface.principal_curvatures([0,0,0]) 

Параметры: point (tuple[float], in) – Вектор, содержащий три значения, которые являются координатами точки

Возвращает: Список из двух float-ов, представляющих кривизны

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

  • 0 - кривизна 1

  • 1 - кривизна 2

surface.position_from_u_v(u, v) 

Получить декартовы координаты из uv-координат на поверхности

pos = surface.position_from_u_v(0, 0) 

Параметры:

  • u (float, in) – параметр u

  • v – параметр v

Возвращает: Декартовы координаты предоставленных uv-координат как вектор

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

  • 0 - координата x

  • 1 - координата y

  • 2 - координата z

surface.u_v_from_position(location) 

Получить uv-координаты из предоставленных декартовых координат на поверхности

uv = surface.position_from_u_v([0,0,0]) 

Параметры: location (list[float] in) Вектор, содержащий декартовы координаты

Возвращает: Значения кривизны

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

  • 0 - параметр u

  • 1 - параметр v

surface.get_param_range_U() 

Получить диапазон u для поверхности Surface

bounds = surface.get_param_range_U() 

Возвращает: Значения кривизны

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

  • 0 - Наименьшее значение в направлении u

  • 1 - Наибольшее значение в направлении u

surface.get_param_range_V() 

Получить диапазон v для поверхности Surface

lower_bound, upper_bound = surface.get_param_range_V() 

Возвращает: Значения кривизны

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

  • 0 - Наименьшее значение в направлении v

  • 1 - Наибольшее значение в направлении v

surface.area() 

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

area = surface.area() 

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

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

surface.is_planar() 

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

planar = surface.is_planar() 

Возвращает: Является ли поверхность плоской или нет

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

surface.is_cylindrical() 

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

cyl = surface.is_cylindrical() 

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

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

surface.dihedral_angle(other, fraction) 

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

Параметры:

  • other (Surface) – Другой поверхностный объект, используемый для формирования двугранного угла

  • fraction (float) – Доля вдоль общей кривой, на которой вычисляется двугранный угол (0,0 – 1,0)

Возвращает: двугранный угол между поверхностями, в радианах

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

Кривая

Класс Curve содержит кривую Fidesys и предоставляет методы для запроса кривой

class cubit.Curve(*args, **kwargs) 

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

curve.color() 

Получить цвет кривой Curve

col = curve.color() 

Возвращает: Значение цвета, связанное с текущим цветом тома. Примечание (0.,0.,0.,0.) обозначает цвет по умолчанию без назначенного значения цвета

curve.tangent(point) 

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

tan = curve.tangent([0,0,0]) 

Параметры: point (tuple[float], length 3 , in) – Вектор, содержащий 3 числа двойной точности, представляющие координаты местоположения на кривой Curve

Возвращает:Касательная к кривой Curve в указанном месте

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

curve.curvature(point) 

Получите кривизну кривой Curve в определенной точке

curvature = curve.curvature([0,0,0]) 

Параметры: point (tuple[float], length 3, in) - Вектор, содержащий 3 числа двойной точности, представляющие координаты местоположения на кривой Curve

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

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

curve.closest_point(point) 

Получите кривизну кривой Curve в определенной точке

close = curve.closest_point([0,0,0]) 

Параметры: point (tuple[float], length 3, in) – Вектор, содержащий 3 числа двойной точности, представляющие координаты местоположения на кривой Curve

Возвращает: Ближайшая точка к кривой Curve от указанного местоположения

curve.closest_point_trimmed(point) 

Получите кривизну кривой Curve в определенной точке

close = curve.closest_point([0,0,0]) 

Параметры: point (tuple[float], length 3, in) – Вектор, содержащий 3 числа двойной точности, представляющие координаты местоположения на кривой Curve

Возвращает: Ближайшая точка к кривой Curve от указанного местоположения

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

curve.length() 

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

len = curve.length() 

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

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

curve.curve_center() 

Получить центральную точку кривой Curve

center = curve.curve_center() 

Возвращает: Вектор, содержащий координаты центра кривой согласно следующему:

  • 0 - координата x

  • 1 - координата y

  • 2 - координата z

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

curve.position_from_fraction(fraction_along_curve) 

Получить положение точки указанной дроби вдоль кривой Curve

pos = curve.position_from_fraction(0.5) 

Параметры: fraction_along_curve (float, in) – Десятичное значение от 0 до 1 для определения конкретного положения на кривой Curve

Возвращает: Вектор, содержащий координаты положения указанной фракции вдоль кривой Curve:

  • 0 - координата x

  • 1 - координата y

  • 2 - координата z

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

curve.start_param() 

Получить наименьшее значение кривой Curve в uv пространстве

start = curve.start_param() 

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

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

curve.end_param() 

Получите наибольшее значение кривой Curve в uv пространстве

end = curve.end_param()

Возвращает: Конечное значение параметра

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

curve.u_from_position(position) 

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

u = curve.u_from_position([0,0,0]) 

Параметры: position (tuple[float], length 3, in) – Вектор, содержащий координаты входной позиции

Возвращает: Значение u положения вдоль кривой Curve

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

curve.position_from_u(u_value) 

Получить положение конкретного значения u для кривой Curve

position = curve.position_from_u(0.5) 

Параметры: u_value (float, in) – Значение u положения вдоль кривой Curve

Возвращает: Вектор, содержащий координаты выходной позиции

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

curve.u_from_arc_length(root_param, arc_length)

Получить значение u для точки, находящейся на указанной длине дуги от указанного корневого параметра на кривой Curve.

u = curve.u_from_arc_length(0, 0.5) 

Параметры:

  • root_param (float, in) – Начальный параметр, к которому добавляется длина дуги

  • arc_length (float, in) – Длина от корневого параметра выходного параметра

Возвращает: Значение u кривой - длина дуги от корневого параметра

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

curve.fraction_from_arc_length(root_vertex, length) 

Получить дробь вдоль кривой Curve, на которой указанная длина дуги находится от заданной вершины Vertex

fraction = curve.fraction_from_arc_length(vertex, 0.5) 

Параметры:

  • root_vertex (Vertex, in) – Начальная вершина (объект вершины)

  • length (float, in) – Длина вдоль кривой Curve от корневой вершины Vertex

Возвращает: Часть кривой Curve, которая находится на указанной длине от указанной вершины Vertex

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

curve.point_from_arc_length(root_param, arc_length) 

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

position = curve.point_from_arc_length(0, 0.5) 

Параметры:  

  • root_param (float, in) – Корневой параметр, к которому добавляется длина дуги

  • arc_length (float, in) – Длина дуги вдоль кривой от корневого параметра

Возвращает: Вектор, содержащий координаты позиции, находящейся на указанной длине дуги от корневого параметра

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

curve.length_from_u(parameter1, parameter2) 

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

length = curve.length_from_u(0, 0.5) 

Параметры:

  • parameter1 (float, in) – Начальный параметр

  • parameter2 (float, in) – Конечный параметр

Возвращает: Длина между двумя указанными параметрами вдоль кривой

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

curve.is_periodic() 

Определите, является ли кривая Curve периодической или нет

periodic = curve.is_periodic() 

Возвращает: Является ли кривая Curve периодической или нет

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

curve.dihedral_angle(other, common_surface) 

Получите двугранный угол между этой кривой Curve и другой кривой Curve, относящейся к данной поверхности

Параметры:

  • other (Curve) – Другой объект кривой, который образует двугранный угол с этим объектом

  • common_surface (Surface) – Поверхностный объект, содержащий обе кривые

Возвращает: Двугранный угол между кривыми, в радианах

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

Вершина

Класс Vertex содержит вершину Fidesys и предоставляет методы для запроса вершины

class cubit.Vertex(*args, **kwargs) 

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

vertex.color() 

Получить цвет вершины Vertex

col = vertex.color() 

Возвращает: Значение цвета, связанное с текущим цветом вершины

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

vertex.coordinates() 

Получить декартовы координаты вершины

position = vertex.coordinates() 

Возвращает: Вектор, содержащий координаты вершины Vertex с индексами, соответствующими координатам следующим образом:

  • 0 - координата x

  • 1 - координата y

  • 2 - координата z

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

Направление

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

class cubit.Dir(x, y, z) 

Определяет объект направления

vertex.x() 

Получить местоположение точки по оси x

Возвращает: Значение x

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

vertex.y() 

Получить местоположение точки по оси y

Возвращает: Значение y

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

vertex.z() 

Получить местоположение точки по оси z

Возвращает: Значение z

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

vertex.set_x(x_in) 

Установить x координату точки

Параметры: x_in (float) – новое значение x

vertex.set_y(y_in) 

Установить y координату точки

Параметры: y_in (float) – новое значение y

vertex.set_z(z_in) 

Установить z координату точки

Параметры: z_in (float) – новое значение z

vertex.get_xyz() 

Получить массив вектора

vertex.normalize() 

Нормализовать ‘this’ вектор

vertex.set(x, y, z) 

Установить значения xyz вектора

Возвращает:  None

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

vertex.cross(vec2) 

Возвращает векторное произведение этого X vec2

Возвращает: Векторное произведение

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

vertex.dot(vec2) 

Возвращает скалярное произведение

Возвращает: Скалярное произведение

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

vertex.length() 

Возвращает длину

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

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

vertex.distance(vec_in)

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

Возвращает: Расстояние (дистанция)

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

vertex.angle(vec_in) 

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

a = cubit.Dir(1,0,0) angle = a.angle(cubit.Dir(1,1,0))

Возвращает: Угол

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

vertex.dir_print() 

Напечатать вывод

vertex.orthogonal_vectors() 

Находит 2 (произвольных) вектора, ортогональных данному