GetMaterialSurfaceSquareTable
Суммировать все площади всех граней элемента раздельно по назначенным материалам.
Например, у элементов типа Morph можно назначать различным граням собственное поерытие (удерживайте CTRL+SHIFT и кликайте на нужные грани - они будут выбираться.
Затем в редакторе элемента задайте название материала).
Все площади покрытий можно получить одной командой.
Результат выводится в таблицу.
Вызов:
int ires = ac_request_special("GetMaterialSurfaceSquareTable", int iTableDescr);
Здесь:
iTableDescr - таблица с результатом.
Перед вызовом функции надо создать объект таблицы.
Функция создаст колонки:
"materialindex" - тип целое число;
"materialname" - тип строка;
"square" - тип число с плавающей точкой.
Пример. Получить площади всех поверхностей у выбранного элемента Morph раздельно по материалам и вывести в окно сообщений.
int main()
{
ac_request_special("load_elements_list_from_selection", 1, "MorphType", 0);
ac_request("get_loaded_elements_list_count",1);
int iсount = ac_getnumvalue();
if (icount == 0)
{
cout << "Сначала выберите элемента типа Morph";
return;
}
ac_request("set_current_element_from_list", 1, 0);
int iTableMat;
object("create", "ts_table", iTableMat);
ac_request_special("GetMaterialSurfaceSquareTable", iTableMat);
string str;
ts_table(iTableMat, "print_to_str", strrr);
coutvar << str;
object("delete", iTableMat);
cout << "Программа успешно завершена";
}
Результат: