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
Namespace |
Объекты |
||
|---|---|---|---|
глобальный |
|||
Функции, порождающие геометрические примитивы |
|||
Style |
Функции для работы с текущим стилем |
||
Parameter |
Таблица групп параметров (определенных в JSON) |
||
Port |
|||
Добавлено в версии 2.0: Project |
|||
Функции для работы с текущим стилем#
Пространство имён Style (или в терминах Lua - таблица) содержит функции, которые:
создают различный уровень детализации стиля (детальный, условный или символьный) из модельной геометрии,
управляют доступом к параметрам и портам,
Добавлено в версии 2.0: добавляют в стиль арматурные стержни и наборы арматурных стержней,
Таблицы Parameters и Ports также являются объектами пространства имён Style.
Примечание
Подробнее про уровни детализации стиля см. модельную геометрию
Создать детальную геометрию стиля#
- SetDetailedGeometry(detailedGeometry)#
- Parameters:
detailedGeometry (
ModelGeometry) – Задает модельную геометрию.
1local detailedGeometry = ModelGeometry() -- создание экземпляра модельной геометрии
2.. -- наполнение модельной геометрии геометрическими примитивами
3
4Style.SetDetailedGeometry(detailedGeometry) -- создание детальной геометрии стиля
Создать условную геометрию стиля#
- SetSymbolicGeometry(symbolicGeometry)#
- Parameters:
symbolicGeometry – Задает модельную геометрию.
1local symbolicGeometry = ModelGeometry() -- создание экземпляра модельной геометрии
2.. -- наполнение модельной геометрии геометрическими примитивами
3
4Style.SetSymbolicGeometry(symbolicGeometry) -- создание условной геометрии стиля
Создать символьную геометрию стиля#
- SetSymbolGeometry(symbolGeometry)#
- Parameters:
symbolGeometry – Задает модельную геометрию.
1local symbolGeometry = ModelGeometry() -- создание экземпляра модельной геометрии
2.. -- наполнение модельной геометрии геометрическими примитивами
3
4Style.SetSymbolGeometry(symbolGeometry) -- создание символьной геометрии стиля
Добавить арматурный стержень в стиль#
Добавлено в версии 2.0:
- AddRebar(id, curve)#
- Parameters:
id (
Number) – Задает идентификатор стиля.curve (Curve3D) – Задает базовую трёхмерную кривую.
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)#
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:
RebarStyleId группы Reinforcement:#1local parameters = Style.GetParameterValues()
2local rebarStyleId = parameters.Reinforcement.RebarStyleId
3
4local style = Project.GetRebarStyle(rebarStyleId)