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

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

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

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

Возможные значения имен полей <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 | Работа с чертежами | Пользовательские подстановки | Параметризация кривых | Приписывание мебельных позиций | Состояние мебельных пунктов меню и панелей инструментов | Определение мебельных габаритных координат | Заполнение массива параметрами отверстий | Поиск прототипа | Информация о линии свободного крепежа | Хэш-код объекта | Выгрузка информации в мебельную базу