Этот пример показывает один из простых вариантов использования LabPP_Automat. Он находится в дистрибутиве.
Достаточно немного поэкспериментировать с этим примером чтобы получить представление о гибкости и функциональности возможностей автоматизации.
Текстовые файлы программных скриптов позволяют вносить изменения и полностью менять все что Вы видите.
В каталоге tsprglist Вы можете создать рядом копию каталога "Ландшафтный дизайн с ценами" и дать ему собственное название.
А затем сразу приступить к созданию собственной системы автоматизации на базе своей собственной новой конфигурации. Создавать кнопки, программы, задавать вид панели LabPP_Automat и т.п.
Конфигураций может быть сколько угодно.

Разбор примера.

1. Структура каталогов и конфигурация.
2. Кнопка "Открыть файл Excel".
3. Кнопка помощи.
4. Кнопка выгрузки из ARCHICAD в EXCEL.
5. Кнопка загрузки из EXCEL в ARCHICAD.
6. Найти строку в EXCEL по выбранному объекту ARCHICAD.
7. Найти объект ARCHICAD по выбранной строке в EXCEL.


Этот пример показывает один из простых вариантов использования LabPP_Automat для настраиваемого расчета технико-экономических показателей (ТЭП) в ARCHICAD.
В информации о проекте создаются переменные, соответствующие разнообразным показателям. Это площадь застройки в квадратных метрах и в гектарах, площадь участка, коэффициент застройки, строительный объем и т.д.
Эти переменные могут использоваться в качестве автотекста в любых местах проекта штатными средствами ARCHICAD (например в таблицах ТЭП).
Их изменение отражается сразу во всех местах вашего проекта.

 

Значения переменных ТЭП автоматически рассчитываются и заполняются при выполнении функции "расчет" на панели LabPP_Automat.
Расчет ведется по имеющимся и специально создаваемым пользователем элементам проекта.
В этом примере площадь участка задается 2d штриховкой с ID="S участка" на слое "Площадь участка.ТЭП".
Названия слоев, значения ID и вообще весь порядок выполнения функции можно полностью изменять в текстовом файле программного скрипта.
Так же можно изменять, добавлять или удалять параметры ТЭП. Можно переделать чтобы какие-то переменные были без расчета, для ввода вручную.
Достаточно немного поэкспериментировать с этим примером чтобы получить представление о гибкости и функциональности возможностей автоматизации.
Текстовые файлы программных скриптов позволяют вносить изменения и полностью менять все что Вы видите.

Разбор примера.

1. Состав файлов конфигурации ТЭП. Файл config.cpp.
2. Файл tep.hpp, в котором заданы переменные с названиями слоев, объектов, параметров.
3. Кнопка "Создать параметры зон для ТЭПl".
4. Кнопка "Создать переменные ТЭП в информации о проекте".
5. Кнопка "Создать слои ТЭП в проекте".
6. Кнопка "Заполнить ТЭП по проекту".


В качестве основы языка программирования в LabPP_Automat используется широко известный, простой и гибкий язык Си++.
Достоинствами этого языка являются:
- высокая скорость выполнения;
- орошая читаемость, лаконичность и понятность кода;
- простота создания и обращения к функциям;
- большая библиотека разнообразных процедур.
- его освоение намного легче и он более удобный для работы.

Для большего удобства использования конструкций языка в LabPP_Automat добавлен тип данных string.
Если Вы задали функцию MyStringFunc, которая возвращает строковое значение, то можно писать так:

string MyString = MyStringFunc();

Здесь мы сразу объявляем переменную типа "строка" MyString и сразу же записываем в нее значение из функции MyStringFunc().


int ac_request() Основаная функция для выполнения операций с ARCHICAD
string ac_getstrvalue(); Возвращает текстовый результат последнего запроса к ARCHICAD
double ac_getnumvalue(); Возвращает числовой результат последнего запроса к ARCHICAD

int ac_request(string directive, ... );

Запрос к ARCHICAD. Директива представляет собой кодовое слово, в соответствии с которым выполняется запрос и определяется набор аргументов.

get_curr_floor_name   получить имя текущего этажа в 2d окне ARCHICAD
get_object_property_value   получить значение переменной объекта
set_object_property_value   изменить значение у переменной объекта
set_layer_visible   управляет видимостью слоя

string alltrim(string source) Обрезать пробелы в начале и в конце строки
string toupper(string source) Перевести содержимое строки в верхний регистр
string tolower(string source) Перевести содержимое строки в нижний регистр
 + Состыковка строк (конкатенация)
 = Присвоение значения переменной типа string
+= Присваивает значение переменной прибавляя строку к ее текущему содержимому
string itoa(int value) Перевести целое значение в строку
string сtoa(char value) Перевести целое значение в строку в виде символа
string sprintf(string format, double value) Перевести число с плавающей точкой в строку
int strcontains(string source,string substr) Если строка source содержит substr, то возвращает 1 (если нет, то 0)
cout << arg1 << arg2 << ... Вывести информацию в окно сообщений