Наборы параметров
Наборы параметров — scratch параметры («параметры-зарубки») – совокупность параметров с присвоенными значениями. Данные наборы параметров могут быть присвоены объекту, записаны в файл, прочитаны из файла. Также в процессе работы с набором параметров можно создать переменные K3 и присвоить им значения из набора параметров. Каждый набор параметров может быть разделен на несколько групп.
Параметры могут быть следующих типов:
- Числовые
- Строковые
- Подстановки (набор значений из списка «строка — значение»). То есть, например, подстановкой может служить содержимое следующего, например, вида:
- 11 — «стойка»
- 12 — «полка»
- 14 — «стенка»
В этом случае есть список возможных значений параметра (11, 12, 14) и строк им соответствующих («стойка», «полка», «стенка»). Параметр может принимать только одно значение и только из указанного списка. Аналогией может служить перечисляемый тип данных в языках программирования.
При работе с наборами параметров необходимо придерживаться следующих правил.
- Имя переменной должно быть строкой из букв, цифр и знаков $ и _ длиной до 12 символов, и не должно начинаться с цифры.
- Имя подстановки и имя группы может быть строкой из любых символов кроме ; , “ и =. Длина имени подстановки и имени группы не должна превышать 32 символов.
Наборы параметров являются достаточно мощным инструментом при работе со сложными параметрическими моделями, одни параметры которых определяются другими параметрами.
Инициализация набора параметров и завершение работы с набором параметров[править | править код]
INT InitScratch()
Функция InitScratch инициирует новый набор параметров. Функция возвращает индекс созданного набора или ноль в случае ошибки.
LOGICAL TermScratch(INT <Index>)
Функция TermScratch завершает работу с набором параметров с индексом <Index>
и освобождает занятые ими ресурсы. Функция возвращает
- 1 — в случае успешного завершения работы с набором
- 0 — в случае ошибки
Чтение и запись наборов параметров[править | править код]
AddScratch[править | править код]
LOGICAL AddScratch(INT <Index>, STRING <SubstName>, LOGICAL <IsNumber>);
Функция AddScratch добавляет в набор параметров с индексом <Index>
новую группу параметров – множество перечисляемых значений (подстановку) с именем <SubstName>
. Логический параметр <IsNumber>
определяет, параметры какого типа (числовые – 1 или строковые 2) содержатся в подстановке. Функция возвращает
- 1 — в случае успешного выполнения
- 0 — в случае ошибки
LOGICAL AddScratch(INT <Index>, STRING <GroupOrSubstName>, STRING <ParamName>, VARIANT <ParamValue>)
Функция AddScratch добавляет в группу или в подстановку с индексом <Index>
и именем <GroupOrSubstName>
простой параметр: имя параметра (<ParamName>
) и его значение (<ParamValue>
). Если указанной группы нет в наборе, то она создаётся. В разных группах имена параметров могут совпадать. Повторное добавление параметра осуществит замену его значения. При добавлении параметра в подстановку тип значения параметра должен соответствовать типу, декларированному при создании подстановки. Функция возвращает
- 1 — в случае успешного выполнения
- 0 — в случае ошибки
LOGICAL AddScratch(INT <Index>, STRING <GroupName>, STRING <ParamName>, VARIANT <ParamValue>, STRING <SubstName>)
Функция AddScratch добавляет в группу набора с индексом <Index>
и именем <GroupName>
параметр перечисляемого типа (подстановку с именем <SubstName>
) с именем <ParamName>
и значением <ParamValue>
. Если указанной группы нет в наборе, то она создаётся. В разных группах имена параметров могут совпадать. Повторное добавление параметра осуществит замену его значения. Значение параметра должно быть одним из значений в указанной подстановке. Функция возвращает
- 1 — в случае успешного выполнения
- 0 — в случае ошибки
GetScratch[править | править код]
LOGICAL GetScratch(INT <Index>, STRING <GroupOrSubstName>, STRING <ParamName>, VARNAME <ParamValue>, STRING <SubstName>)
Функция GetScratch позволяет получить значение параметра из набора с индексом <Index>
и именем <GroupOrSubstName>
. <ParamName>
содержит строку с именем параметра. <ParamValue>
получает значение извлеченного параметра. Если набор является подстановкой, то в <SubstName>
заносится имя подстановки. Иначе в <SubstName>
заносится пустая строка. Функция возвращает
- 1 — в случае успешного выполнения
- 0 — в случае ошибки
DelScratch[править | править код]
LOGICAL DelScratch(INT <Index>, STRING <GroupOrSubstName>)
Функция DelScratch удаляет группу или подстановку с именем <GroupOrSubstName>
из набора с индексом <Index>
. Нельзя удалять подстановку, если на нее ссылается хотя бы один параметр в этом наборе. Функция возвращает
- 1 — в случае успешного выполнения
- 0 — в случае ошибки
LOGICAL DelScratch(INT <Index>, STRING <GroupOrSubstName>, STRING <ParamName>)
Функция DelScratch удаляет параметр с именем <ParamName>
из группы или подстановки с именем <GroupOrSubstName>
набора с номером <Index>
. Функция возвращает
- 1 — в случае успешного выполнения
- 0 — в случае ошибки
WriteScratch[править | править код]
LOGICAL WriteScratch(INT <Index>, STRING <AttrName>, VARIANT <holder>)
Функция WriteScratch создаёт и приписывает текстовый атрибут с именем <AttrName>
объекту или рабочей записи по содержимому набора параметров с индексом <Index>
. Параметр <holder>
может быть одним из следующих типов:
OBJECT
— владелец — указанный объект;STRING
— владелец — блок с именем заданным строкой holder;INT
— владелец — рабочая запись.
Функция возвращает
- 1 — в случае успешного выполнения
- 0 — в случае ошибки
Формат создаваемого атрибута:
Scratch-атрибут Группа1;{Число|Строка} // наименование подстановки с числовыми // или строковыми значениями Параметр1=Значение Параметр2=Значение … ГруппаN // наименование обычной группы параметров (не подстановки) Параметр1=Значение;Подстановка // перечисляемый параметр Параметр2=Значение // простой параметр Параметр3=”строка” // простой параметр со значением строка …
ReadScratch[править | править код]
INT ReadScratch(STRING <AttrName>, VARIANT <holder>)
По текстовому атрибуту с именем <AttrName>
, созданному по набору параметров, создать набор параметров. Параметр <holder>
может быть одним из следующих типов:
OBJECT
— владелец — указанный объект;STRING
— владелец — блок с именем заданным строкой holder;INT
— владелец — рабочая запись.
Функция возвращает индекс созданного набора или ноль в случае ошибки.
Пример использования функций, указанных выше[править | править код]
// Инициализируем новый набор параметров. pars=initscratch(); // Создаем шаблон текстового атрибута c именем "atrname". attribute create "atrname" "Пользовательские параметры" text 10 20; // Добавляем в набор параметров подстановку // с именем "Панели" числового типа. NULLOUT=addscratch(pars,"Панели",1); // Добавляем в созданную подстановку с именем "Панели" параметры // "Полка", "Стойка", "Стенка" со значениями // 12, 11, 14 соответственно. NULLOUT=AddScratch(pars,"Панели","Полка",12); NULLOUT=AddScratch(pars,"Панели","Стойка",11); NULLOUT=AddScratch(pars,"Панели","Стенка",14); // Добавляем в созданный набор параметров с индексом pars // в группу с именем "Группа панелей" параметр // перечисляемого типа (подстановку) // с именем "Виды", значением 12 (одно из // значений в подстановке) и именем самой подстановки Панели. // Результатом произведённых операций будет создание // у указанного объекта scratch-атрибута с именем "atrname". NULLOUT=addscratch(pars,"Группа панелей","Виды",12,"Панели"); // Записываем набор параметров в атрибут
objident : obj;
NULLOUT=WriteScratch(pars,"atrname",obj); // Завершаем работу с набором параметров pars=termscratch(pars);
Вычислить группу набора[править | править код]
calcvarscr <Index> <GroupName>
Команда calcvarscr вычисляет группу набора параметров с индексом <Index>
и именем <GroupName>
— создает переменные, одноименные с параметрами и присваивает им значения из набора.
Результат работы команды можно поместить в переменную. Команда возвращает
- 1 — в случае успешного завершения;
- 0 — в случае ошибки.
Пример:
#res calcvarscr 1 "Fasad"; =res; 1
Получение количества и содержимого набора параметров[править | править код]
INT CntSubstScr(INT <Index>)
Функция CntSubstScr возвращает количество подстановок в наборе параметров с номером <Index>
. В случае ошибки возвращает -1.
INT NameSubstScr(INT <Index>, STRING ARRAY <Names>)
Функция NameSubstScr заполняет массив <Names>
именами подстановок набора параметров с номером <Index>
. Функция возвращает количество заполненных элементов массива
INT CntGroupScr(INT <Index>)
Функция CntGroupScr возвращает количество групп в наборе параметров с номером <Index>
. В случае ошибки функция возвращает -1.
INT NameGroupScr(INT <Index>, sttring ARRAY <Names>)
Функция NameGroupScr заполняет массив <Names>
именами групп набора параметров с номером <Index>
. Функция возвращает количество заполненных элементов массива.
INT CntVarScr(INT <Index>, STRING <GroupOrSubstName>)
Функция CntVarScr возвращает количество параметров в группе набора или подстановке с номером <Index>
и именем <GroupOrSubstName>
. В случае ошибки функция возвращает -1.
INT NameVarScr(INT <Index>, STRING <GroupOrSubstName>, string ARRAY <Names>)
Функция NameVarScr заполняет массив <Names>
именами параметров в группе набора или подстановке с номером <Index>
и именем <GroupOrSubstName>
. Функция возвращает количество заполненных элементов массива.
Запись и чтение наборов параметров из файла[править | править код]
LOGICAL ScrtchToFile(INT <Index>, STRING <FileName>)
Функция ScrtchToFile сохраняет набор с номером <Index>
в файл с именем <FileName>
. У имени файла нет умолчания на расширение. Функция возвращает
- 1 — в случае успешного выполнения
- 0 — в случае ошибки
INT FileToScrtch(STRING <FileName>)
Функция FileToScrtch восстанавливает набор из файла с именем <FileName>
, предварительно созданного функцией ScrtchToFile. Функция возвращает номер созданного набора в случае успешного выполнения и ноль (0) в случае ошибки.