Чтобы ускорить установку (по умолчанию nix будет собирать наши пакеты из исходников), можно использовать бинарный кеш. Для этого добавьте следующие параметры в `/etc/nix/nix.conf`:
Функции определены в файле `default.nix`. В общем случае для использования функций библиотеки нужно добавить в ваш репозиторий файл `flake.nix` следующего содержания:
```nix
{
# Входные параметры. В данном случае это библиотека фреймворка Robossembler, через которую подгружаются библиотеки `nixpkgs` и `flake-utils` для синхронизации версий ПО
# Утилиты для вызовов функций библиотеки могут быть специфичны для аппаратной платформы, поэтому наименование аппаратной платформы нужно передать с помощью `flake-utils`
# Пакеты, которые будут генерироваться. Выражение `with rbs.rlib.${system};` используется, чтобы не прописывать каждый раз функции библиотеки с этим префиксом.
packages = with rbs.rlib.${system}; {
# Генерируется пакет `stl`с помощью функции `step2stl`, принимающей в качестве аргументов `<имя пакета>` и путь к файлу, который необходимо конвертировать
stl = step2stl "gripper" ./gripper.step;
};
});
}
```
После чего добавьте файл в git-индекс (`git add flake.nix`) и запустите сборку пакета (`nix build .#stl`). В первый раз команда может выполняться достаточно долго, потому что сборщику требуется время на подгрузку необходимых зависимостей, однако повторный запуск будет почти мгновенным. Ссылка на результат сборки в `/nix/store/` будет находиться в директории `result`.
## Описание функций
### `step2stl`
* Описание: Конвертация файла в формате STEP в файл формата STL. Если вам в своём проекте нужно использовать STL модели, а в проекте родителе фигурирует STEP, то можно обеспечить автоматическую подгрузку STL-модели без необходимости хранить STL в репозитории.
* Параметры: имя пакета строкой (`"name"`), путь к файлу (`./file.step`)