Lua-интерфейс Renga#

Скрипты, описывающие геометрическое представление шаблона стиля, расположение портов инженерного оборудования и поведение параметров из файла описания параметров JSON, создаются в отдельном файле с расширением LUA. Описанию встроенных функций, взаимодействующих с Renga, посвященна данная часть руководства.

Примечание

Кроме использования встроенных функций, разработчики могут использовать в скриптах стандартные библиотеки Lua:

  • package library — базовые средства для загрузки модулей в Lua,

  • string manipulation — общие функции для работы со строками, такие как поиск и извлечение подстрок, а также сопоставление с шаблоном,

  • table manipulation — общие функции для работы с таблицами,

  • mathematical functions — математические функции.

Style Template API предоставляет средства для описания шаблонов стилей (объекты, классы, функции и системные перечисления).

Функции, создающие различные геометрические примитивы в Renga, а также системные перечисления (enums), доступны в любой части скрипта. Условно можно сказать, что они относятся к глобальному пространству имён (или в терминах Lua — в глобальном окружении). Также выделяются в отдельное пространство имён Style функции для работы с текущим стилем и в отдельное пространство имён Project функции для получения объектов и стилей проекта:

Примечание

Подробнее см. справочное руководство Renga STDL

Style Template API#

Namespace

Объекты

глобальный

Модельная геометрия

Функции, порождающие геометрические примитивы

Базовые типы геометрии

Графические примитивы

Плоская 2D-геометрия

Твёрдотельная 3D-геометрия

Системные перечисления

Вспомогательные функции

Style

Функции для работы с текущим стилем

Parameter

Таблица групп параметров (определенных в JSON)

Port

Точки подключения (порты) оборудования

Добавлено в версии 2.0: Project

Функции для получения объектов и стилей проекта

Стили арматурного стержня

Функции для работы с текущим стилем#

Пространство имён Style (или в терминах Lua - таблица) содержит функции, которые:

Таблицы Parameters и Ports также являются объектами пространства имён Style.

Примечание

Подробнее про уровни детализации стиля см. модельную геометрию

Создать детальную геометрию стиля#

SetDetailedGeometry(detailedGeometry)#
Parameters:

detailedGeometry (ModelGeometry) – Задает модельную геометрию.

Пример 1. Добавление детальной модельной геометрии в стиль:#
1local detailedGeometry = ModelGeometry()    -- создание экземпляра модельной геометрии
2..                       -- наполнение модельной геометрии геометрическими примитивами
3
4Style.SetDetailedGeometry(detailedGeometry) -- создание детальной геометрии стиля

Создать условную геометрию стиля#

SetSymbolicGeometry(symbolicGeometry)#
Parameters:

symbolicGeometry – Задает модельную геометрию.

Пример 2. Добавление условной модельной геометрии в стиль:#
1local symbolicGeometry = ModelGeometry()    -- создание экземпляра модельной геометрии
2..                       -- наполнение модельной геометрии геометрическими примитивами
3
4Style.SetSymbolicGeometry(symbolicGeometry) -- создание условной геометрии стиля

Создать символьную геометрию стиля#

SetSymbolGeometry(symbolGeometry)#
Parameters:

symbolGeometry – Задает модельную геометрию.

Пример 3. Добавление символьной модельной геометрии в стиль:#
1local symbolGeometry = ModelGeometry()    -- создание экземпляра модельной геометрии
2..                     -- наполнение модельной геометрии геометрическими примитивами
3
4Style.SetSymbolGeometry(symbolGeometry)   -- создание символьной геометрии стиля

Добавить арматурный стержень в стиль#

Добавлено в версии 2.0:

AddRebar(id, curve)#
Parameters:
  • id (Number) – Задает идентификатор стиля.

  • curve (Curve3D) – Задает базовую трёхмерную кривую.

Пример 4. Добавление арматурного стержня в стиль:#
1local parameters = Style.GetParameterValues()
2local RebarStyleId = parameters.Reinforcement.RebarStyleId
3local rebarCurve = CreateLineSegment3D(Point3D(0,0), Point3D(height,0))
4
5Style.AddRebar(RebarStyleId, rebarCurve)

Добавить набор арматурных стержней в стиль#

Добавлено в версии 2.0:

AddRebarSet(id, curve, direction, step, count)#
Parameters:
  • id (Number) – Задает идентификатор стиля.

  • curve (Curve3D) – Задает базовую трёхмерную кривую.

  • direction (Vector3D) – Задает направление расположения стержней.

  • step (Number) – Задает расстояние между стержнями.

  • count (Number) – Задает количество стержней.

Пример 5. Добавление набора арматурных стержней в стиль:#
1local parameters = Style.GetParameterValues()
2local RebarStyleId = parameters.Reinforcement.RebarStyleId
3local rebarCurve = CreateLineSegment3D(Point3D(0,0), Point3D(height,0))
4
5Style.AddRebarSet(RebarStyleId, rebarCurve, Vector3D(0, 1, 0), 200, 10)

Функции для получения объектов и стилей проекта#

Пространство имён Project содержит функции для получения сущностей (Entity) проекта Renga.

Класс Entity — базовый элемент проекта Renga. Это может быть объект или стиль. Из данного типа можно получать другие типы с помощью вызовов функций Cast*, например, контейнер параметров

Получить стиль арматурного стержня#

Добавлено в версии 2.0:

GetRebarStyle(id)#
Parameters:

id (Number) – Задает идентификатор стиля.

Returns:

Стиль арматурного стержня

Return type:

Entity

Пример 5. Получение стиля арматурного стержня из параметра RebarStyleId группы Reinforcement:#
1local parameters = Style.GetParameterValues()
2local rebarStyleId = parameters.Reinforcement.RebarStyleId
3
4local style = Project.GetRebarStyle(rebarStyleId)