В приложение LabPP_Calc встроено ядро LabPP_Automat.

Поэтому Вы можете создавать и выполнять свои собственные программы расчетов.

Этот мощный, быстрый, проверенный на больших объемах механизм автоматизации позволяет сэкономить огромное количество времени.

Обычно программы расчетов - это текстовые файлы на языке C++ для ARCHICAD.

Эти файлы хранятся в удобном месте компьютера или в сети и могут запускаться в любой момент.

Результат вычислений может помещаться в любое из расчетных полей (A, B, C или основное) с соответствующим комментарием под ним.

Кликните здесь чтобы получить больше информации об этом.

Вы можете заказывать разработку таких программ на сайте www.labpp.ru.



Пример расчетной программы.

Этот пример находится в каталоге "MyPrg" и называется "Расчет количества кирпича и цементного раствора.cpp"


//************************************************************************************************

// Пример C++ для ARCHICAD

// Выбирает стены, у которых имя класса в любом месте содержит слово "кирпич" или "Кирпич".

// Рассчитывает количество кирпичей и объем цементного раствора, затем помещает результат в 

// LabPP_Calc в поля 'A' и 'B' с комментариями.

//

// Учтите: для корректной работы нужно чтобы ваши стены были классифицированы и их классы 

// в классификационной системе имели в каком либо месте слова "кирпич" или "Кирпич".

// Калькуляция для простоты сделане для размера кирпича = 250x120x65 mm

// При необходимости Вы можете присвоить и использовать, например, пользовательское свойство для 

// кирпичных стен с заданием других размеров кирпича.

// И Вы можете использовать другой, более точный способ определения объема кирпичной кладки.

//************************************************************************************************


string sClassificationSystemName = "ARCHICAD Classification";


int main()

{

   ac_request_special("load_elements_list", 1, "WallType", 2,

   "", "Cls", sClassificationSystemName, "REGEXMATCH", ".*[Кк]ирпич.*", "");


   ac_request("select_elements_from_list", 1, 1);

   ac_request("get_loaded_elements_list_count", 1);

   int icount = ac_getnumvalue();

   cout << "Number of elements selected for analysis = " << icount << "\n";


   // суммировать объем кладки

   int i;

   double volume, volume_sum;

   for (i = 0; i < icount; i++)

   {

      ac_request("set_current_element_from_list", 1, i);

      ac_request("get_quantity_value","Volume");

      volume = ac_getnumvalue();                

      volume_sum += volume;

   }

   coutvar << volume_sum;

   // рассчитать кол-во кирпичей размером = 250x120x65 mm

   double brick_count = volume_sum * 396;

   brick_count = tsround(brick_count, 1);

   coutvar << brick_count;

   cout << "поместить в поле 'A'\n";

   ac_request("interface", "calc_field", "set", "a", 1, ecvt(brick_count), "Кирпич 250x120x65 мм");


   // рассчитать объем раствора

   double mortar_volume = volume_sum * 0.232;

   mortar_volume = tsround(mortar_volume, 1);

   coutvar << mortar_volume;

   cout << "поместить в поле 'B'\n";

   ac_request("interface", "calc_field", "set", "b", 1, ecvt(mortar_volume), "Объем раствора для кладки 250x120x65 мм");

   cout << "Программа успешно завершена";

}