Функции поиска прототипа

Материал из K3-Macro
Версия от 16:36, 1 октября 2021; SVP (обсуждение | вклад) (убрал недопустимые значения поля <Field>)
Макро | Мебельные команды и функции | Работа с заказом | Длинномеры | Комната | Мебельная панель | Профиль | Каркас | Виды и фильтры | Расчёт стоимости | Мебельные объекты | Работа с изделиями в сцене | Работа с мебельными состояниями | Запрос данных из Номенклатуры | Получение информации о положении вспомогательных файлов | Создание отчётов FastReport | Работа с чертежами | Пользовательские подстановки | Параметризация кривых | Приписывание мебельных позиций | Состояние мебельных пунктов меню и панелей инструментов | Определение мебельных габаритных координат | Заполнение массива параметрами отверстий | Поиск прототипа | Информация о линии свободного крепежа | Хэш-код объекта | Выгрузка информации в мебельную базу

INTEGER GetProtoID(STRING <ProtoLib>, STRING <Prototype>[, STRING <Field>, VARIANT <Value>])

Функция ищет прототип с именем <Prototype> в библиотеке прототипов с именем <ProtoLib> и возвращает его ID или 0, если такого прототипа в библиотеке нет. Если заданы дополнительные параметры <Field> и <Value>, то если прототипа с именем <Prototype> в библиотеке <Prototype> не найдено, функция пытается найти прототип в той же библиотеке, у которого значение поля с именем <Field> равно <Value>. Такая ситуация возможна, если пользователь переименовал прототип.

Возможные значения имен полей <Field>:

  • ProtoMacro - Имя файла макропрограммы создания прототипа - строковое поле


INTEGER GetProtoInfo(STRING <ProtoLib>, INT <ProtoID>, ARRAY <info>) (с 18.02.2020)

Функция возвращает информацию о прототипе с ID <ProtoID> в библиотеке прототипов с именем <ProtoLib>.

Выходные параметры:

  • <info[1]> — название прототипа (строка);
  • <info[2]> — макрокоманда создания прототипа (строка);
  • <info[3]> — файл с картинкой к прототипу (строка).

Функция возвращает число:

  • -2 — нет прототипа с данным ID;
  • -1 — нет такой протобиблиотеки;
  • 0 — ошибка;
  • > 0 — количество заполненных элементов в массиве <info>

Поиск параметра прототипа по типу

Eksklamacia.png Данная функция реализована только для К3-Мебель

INT GetProtoPar(INT <ProtoID>, {INT <ProtoLibID> | STRING <ProtoLibName>}, INT <ParamType>, STRING <ParNameArray>)

Функция GetProtoPar находит среди параметров прототипа с ID = <ProtoID> в библиотеке с номером <ProtoLibID> или именем <ProtoLibName> все параметры, тип которых равен <ParamType>. По результатам этого функция создает массив с именем <ParNameArray> и заполняет его именами найденных параметров.

Функция возвращает количество найденных параметров. Если параметров не найдено, функция возвращает 0 и массив с именем <ParNameArray> не создает. Если прототипа с ID=<ProtoID> в библиотеке <ProtoLibName> (<ProtoLibID>) не существует, функция возвращает -1.

В качестве типа параметров <ParamType> может выступать ID группы подстановки или: 1 - размер 2 - количество 3 - значение да/нет 4 - набор значений 5 - индекс текстурного материала

Пример использования:

ProtoId=63;       //-- ID прототипа для поиска параметров
LibName="Shkaf";  //-- Название библиотеки для поиска параметров
libid=1;          //-- ID библиотеки (нужно лиьбо ID, либо название)
ParamType=17;     //-- Тип параметра прототипа
arrayname="arrn"; //-- Имя массива для выходных данных 

num=GetProtoPar(ProtoId,libid,ParamType,arrayname);
putmsg(num);
putmsg(arrn);
exit;

Макро | Мебельные команды и функции | Работа с заказом | Длинномеры | Комната | Мебельная панель | Профиль | Каркас | Виды и фильтры | Расчёт стоимости | Мебельные объекты | Работа с изделиями в сцене | Работа с мебельными состояниями | Запрос данных из Номенклатуры | Получение информации о положении вспомогательных файлов | Создание отчётов FastReport | Работа с чертежами | Пользовательские подстановки | Параметризация кривых | Приписывание мебельных позиций | Состояние мебельных пунктов меню и панелей инструментов | Определение мебельных габаритных координат | Заполнение массива параметрами отверстий | Поиск прототипа | Информация о линии свободного крепежа | Хэш-код объекта | Выгрузка информации в мебельную базу