LiraAPI, быстрый старт

Страницы:1
LiraAPI, быстрый старт
 

   Пошагово рассмотрим последовательность действий для создания простого плагина, который будет выводить на экран количество выбранных в модели объектов. В данном посте будет разработан плагин с использованием библиотек .Net, а именно языка С#, но также возможна разработка с использованием С++, подробный синтаксис доступных команд описан в документе "C:\Program Files\Lira Soft\Lira10.12\LiraAPI\LiraAPIHelp.pdf".

   Для добавления расширения ПК ЛИРА 10.12 потребуется выполнить два действия:

а. Разработать расширение dll, опираясь на возможности API ПК Лира.

б. Зарегистрировать разработанное расширение в среде ПК ЛИРА 10.12.

   а. Разработка пользовательского расширения

   Создаем новый проект в SharpDevelop (или любой другой среде, например, в Microsoft Visual Studio) – библиотека классов C#, .NET Framework 4.5. В свойствах проекта указываем работу с 64-разрядными системами.

   Для корректной работы плагина в проект необходимо добавить минимальный набор ссылок: System, System.Data, System.Windows.Forms и библиотеки Лира "..\Lira Soft\Lira10.12\bin64\FEModel.dll", "..\Lira Soft\Lira10.12\bin64\LiraAPI.dll".


   Реализуем в проекте класс TestClass наследованный от интерфейса ILiraAPI, который описан в LiraAPI.dll. Внутри данного класса мы  выстраиваем основную логику программы. Далее будет приведен код программы с необходимыми комментариями.

Код
public class ClassStress : ILiraAPI //класс наследованный от ILiraAPI
{
LiraAPI.ReturnCodes LiraAPI.ILiraAPI.ExecuteProgram_Result(IResultLiraAPI result, int nodesCount, int elemCount, List<List<FEModel.Results_Key>> allLoadCases, FEModel.Results_Key loadCase)
{
//nodesCount и elemCount – количество узлов и элементов в расчетной схеме
//loadCase - информация о текущем загружении
//allLoadCases - информация обо всех доступных в задаче загружениях
//result - объект, позволяющий получить таблицы результатов расчета
List<int> elementArray = new List<int>(); //массив индексов узлов или элементов (начиная от 0)
for (int i = 0; i < elemCount; i++) {elementArray.Add(i);}
List<FEModel.Results_Key> pKeyArr = new List<Results_Key>(); //объект, описывающий загружение
pKeyArr.Add(loadCase);
FEModel.e_Results_ColumnType[] pColumnArr = null; //имена столбцов таблицы результатов
string[] pNameColumns = null; //названия столбцов таблицы результатов
//получение таблицы результатов allElements, в данном случае RTT_ELEMENTS, которая содержит информацию об элементах, номер, тип,
сечение и т.д. Подробную информацию о доступных типах таблиц вы можете найти в файле LiraAPIHelp.pdf, который копируется на
жесткий диск в папку [INSTALLDIR] + "\\LiraAPI" в момент установки ПК ЛИРА 10.12
System.Data.DataTable allElements = result.get_TableResult(e_Results_TableType.RTT_ELEMENTS, elementArray, pKeyArr, ref pColumnArr, ref pNameColumns);
int count=0; //счетчик отмеченных элементов
//перебираем элементы в полученной таблице результатов allElements
foreach (System.Data.DataRow currentElement in allElements.Rows)
{
//проверка – является ли текущий элемент отмеченным. Информацию по названию столбцов в
текущей таблице результатов вы можете просмотреть в режиме отладки, например,
для таблицы элементов на иллюстрации:
Код
if ((bool)currentElement[16] == true){
count++; //если текущий элемент является выбранным, то увеличиваем значение счетчика
}
}
MessageBox.Show("Отмечено
элементов: "+count.ToString()); //выводим сообщение
return ReturnCodes.RC_OK;
} }

Запускаем проект на выполнение, в результате чего в папке проекта будет скомпилирована библиотека test.dll – пользовательское расширение. Размещаем библиотеку по следующему пути "C:\Users\User1\AppData\Roaming\Lira Soft\Lira10.12\Addins\test.dll".

   б. Регистрация пользовательского расширения

   На следующем этапе нам необходимо зарегистрировать созданное нами расширение в ПК Лира, чтобы его можно было запустить на выполнение.

   При первом запуске ЛИРА 10.12 создает файл с глобальными настройками:

[ApplicationData]+"\\Lira Soft\\Lira10.12\\VariableEnvironment_x86.xml"

[ApplicationData]+"\\Lira Soft\\Lira10.12\\VariableEnvironment_x64.xml"

   Среди прочих настроек в этом файле есть параметр AddinsPath, содержащий путь к папке, в которой должны находиться xml-файлы регистрации расширений. По умолчанию это [ApplicationData]+"\\Lira Soft\\Lira10.12\\Addins".

   На примере нашего расширения файл регистрации расширения ([ApplicationData]+"\\Lira Soft\\Lira10.12\\Addins\\test.xml") должен иметь следующую структуру:

Код
<?xml version="1.0"
encoding="utf-8"?>
<LiraAddIns>
<AddIn Type="PROLONGATION">
<AssemblyPath>"C:\Users\User1\AppData\Roaming\Lira Soft\Lira10.12\Addins\test.dll"</AssemblyPath>
<CommandName>Количество выбранных</CommandName>
<CommandDescription>Выводит количество отмеченных элементов</CommandDescription>
<ImagePath> </ImagePath>
<Vendor>ЛИРА Софт</Vendor>
<VendorDescription> ЛИРА Софт </VendorDescription>
</AddIn>
</LiraAddIns>

   AddIn содержит атрибут Type, который может принимать одно из трех значений: PRIME, PROLONGATION или ALL. Этот атрибут указывает, в каком режиме будет доступна команда этого расширения: в режиме редактирования исходных данных, в режиме анализа результатов расчета или в обоих режимах. В текущей версии доступно только значение PROLONGATION.

AssemblyPath — абсолютный путь к файлу расширения *.dll.

ImagePath — абсолютный путь к файлу, содержащему изображение для иконки в меню

(стандартный размер Width=24, Height=20).

CommandName — имя команды в меню ЛИРА 10.12.

Vendor и VendorDescription — информация о разработчике расширения.

   При запуске ЛИРА 10.12 добавляет пункт меню для каждого найденного и удачно прочитанного xml-файла регистрации расширений.


   Для тестирования разработанного расширения мы выбираем один элемент в расчетной схеме и запускаем наш плагин на вкладке «Расширения», запуск необходимо выполнять в режиме просмотра результатов. В результате работы получим на экране сообщение о том, что в схеме отмечен 1 элемент.

Изменено: - 07.06.2022 12:20:03
Страницы:1

Инновации и сотрудничество: ЛИРА софт на международном семинаре в Satbayev University (г. Алматы, Казахстан)
ЛИРА софт приняла участие в знаковом событии - международном форуме, посвященный устойчивости зданий к сейсмическим угрозам в Satbayev University.
05 марта 2024
BIM-Факультет АСКОН ЛИРА 10: Конструкторские расчёты модели из Renga
Приглашаем принять участие в обучающем онлайн-проекте - BIM-факультет АСКОН. ЛИРА софт выступила одним из спикеров и партнеров проекта.
05 марта 2024
ЛИРА софт на Russian BIM Days: Навигатор по устойчивым конструкциям
Присоединяйтесь к ЛИРА софт на серии вебинаров Russian BIM Days, организованных ИЕСОФТ совместно с Академией Осознанного Проектирования.
22 февраля 2024
ЛИРА софт на BuildingSkinRussia 2024: Практики моделирования фасадных систем
Алексей Колесников, технический директор ЛИРА софт, выступит 29 февраля в 13:30 на площадке Amber Plaza в рамках конференции «IT в архитектуре и строительстве. Вызовы 2024».
20 февраля 2024
Все новости
Информационное моделирование и проектирование многоэтажного жилого здания с использованием российского программного обеспечения
Выполнено формирование информационной модели многоэтажного
жилого здания в BIM-системе Renga. Проведен экспорт модели и расчет конструктивной
системы здания в ПК Лира 10.12. Представлены результаты моделирования и
проектирования.
12 февраля 2024
Реализация модели контактного слоя при расчете адгезионного соединения с использованием метода конечных элементов
В большинстве опытов по испытанию адгезионных соединений измеряется средняя адгезионная прочность. Данная величина вычисляется как отношение разрушающей нагрузки к площади склейки. Подобный подход подразумевает равномерное распределение касательных напряжений. Исследователи давно обнаружили, что средняя адгезионная прочность соединения является сильной функцией геометрических [1] и физико-механических параметров модели и, следовательно, делает малоинформативными и несопоставимыми экспериментальные данные, выполненные на отличающихся образцах. Малочисленные результаты по измерению касательных напряжений по площади склейки с использованием преимущественно поляризационно-оптических методов [2] показывают, что распределение напряжений является нелинейной функцией. При этом наблюдается концентрация напряжений у торцов модели. В связи с этими фактами возникает необходимость детального изучения напряженно-деформированного состояния адгезионных соединений.
06 июня 2019
Оценка точности нелинейного статического метода анализа сейсмостойкости сооружений
В статье рассмотрено практическое применение методики нелинейного статического анализа сейсмостойкости зданий и сооружений. Произведен расчет одноэтажной стальной рамы нелинейным статическим и нелинейным динамическим методами. В результате анализа полученных результатов расчета показана значимость высших форм колебаний и необходимость анализа их влияния на реакцию системы.
06 февраля 2018
Напряженно-деформированное состояние коррозионно - поврежденных железобетонных элементов при динамическом нагружении
С помощью современного программно-вычислительного комплекса  ЛИРА 10.6 выполнена сравнительная оценка напряженно–деформированного состояния  не поврежденного и коррозионно-поврежденного железобетонного элемента при динамическом и статическом нагружении. Проанализировано   влияния ослабленного коррозией бетонного участка сжатой зоны на перераспределение напряжений в сечении.
25 января 2018
Все публикации
BIM-Практикум 2023. ЧАСТЬ 12 «BIM-МОДЕЛИ КМ И КМД: РАСЧЕТ И АНАЛИЗ СТРОИТЕЛЬНЫХ КОНСТРУКЦИЙ»
Покажем взаимодействие между ПК ЛИРА 10.12 при передаче данных в ПК Renga.
20 сентября 2023
Особенности работы в ПК ЛИРА 10.12 и ModelStudio CS при проектировании зданий промышленно-гражданского строительства
Участники вебинара узнают, как обмениваться данными и экономить время на создании расчетных моделей в ПК ЛИРА 10.12, используя уже существующие модели из ModelStudio CS.
04 сентября 2023
Разбор применения различных типов нагрузок в статических задачах
На вебинаре вы научитесь где и как правильно использовать тот или иной способ задания нагрузки. Будут рассмотрены полезные типы нагрузок, которые, возможно, вами никогда не использовались.
12 июля 2023
Разбор примеров из практики по расчету на сейсмические воздействия
Рассмотрим реальные примеры уже построенных или проектируемых объектов
22 марта 2023
Все записи вебинаров