Перейти к публикации

API ANSYS'a или как с ним работать программно


Рекомендованные сообщения

Здравствуйте.

У меня возникла задача вытащить из ANSYS'a напряжения и прочую посчитанную инфу.. Вытащить например в массив(нуу в общем работать с инфой, может прям побайтово) другой проги (например написанной на Delphi).

Также есть идея обработать эту инфу и заслать в ANSYS свои данные, например обработать напряжения и записать их в результаты ансиса (типа User Result), чтобы там посмотреть покрутить НДС.

Кто-нибудь такими вещами занимался? Можете посоветовать какие-нибудь примеры может или описание API процедур и функций ?

Буду очень благодарен за помощь или за консультацию в аське или скайпе )

Ссылка на сообщение
Поделиться на других сайтах


<noindex>Здесь</noindex> есть прецеденты успешного решения подобных задач через прямое обращение к RST-файлу, а не через API к ANSYS. Обратитесь к ним по официальным каналам.

Занимается этои мой очередной хороший знакомый.

Ссылка на сообщение
Поделиться на других сайтах

Борман, мир тесен ))) Я из работы знаю, но мы пишем свою прогу.. кстати надо бы спросить чем мое начальство не устраивает их прога...

может кого еще посоветуете? Или может раскажете какая структура RST файла? и RTH.. они же бинарные.. наверно нетипизированные к тому же..

Ссылка на сообщение
Поделиться на других сайтах

есть прецеденты успешного решения подобных задач через прямое обращение к RST-файлу, а не через API к ANSYS.

линковать все равно придется некоторыми библиотеками ANSYS, binlib.lib например, так что без использования API ANSYS никак...

Или может раскажете какая структура RST файла? и RTH.. они же бинарные.. наверно нетипизированные к тому же..

как же, структура подробно описана по-моему в Programmers Manual, ну или в доках что то типа UPF (User programmable features). Вообще читать и писать можно и не только rst файлы, но с матрицами жесткости например.

В приложении обобщенный интерфейс любого бинарного файла ANSYS. Могу поделиться кодом - не жалко :cool: Если интересно - пишите в личку...

Ссылка на сообщение
Поделиться на других сайтах

Andron:

О!!! Фигасе RST это типизированный файл?! Это отлично!! и итемы расписаны... На Си конечно, но пофигу ) я делфи больше люблю )

Буду в личку писать )

Ссылка на сообщение
Поделиться на других сайтах

Самое простое - забать в буфер текстовые данные вставить куда угодно и делать что хочется. Я всегда так в Mathematica сбрасываю, предварительно отредактировав в UEStudio убрав лишнее и добавив запятых. Например часто надо проармировать море колонн, так забираю все интегральные характеристики интересующих элементов рисую точки в N-M диаграмме и с помощью программульки в Маth рисую предельную диаграмму сразу для всех колонн или разбиваю на 2-3 типа армирования. Быстро и просто и макулатуры для экспертов всего пара листочков. Никогда никаких проблем не было :unsure:

Ссылка на сообщение
Поделиться на других сайтах

в приложении интерфейсное API, позволяющее работать с бинарными файлами ANSYS (лично мне были интересны файлы результатов - RST, но легко можно расширить и углубить на остальные бинарные файлы)

1) По результатам сборки получаем библиотеку ANSYSInterface.lib
2) В своей программе, подключаем эту библиотеку(также нужны библиотеки binlib.dll, libifcoremd.dll, libifportmd.dll, libmmd.dll из дистрибутива ANSYS) и файл, содержащий интрефейс IAnsys.h
3) используем методы IAnsysRST – интерфейса для работы с файлами результатов
4) В папке "example" содержатся примеры использования предложенного функционала
5) а дальше кто во что горазд :cool: ....

ANSYSInterface.rar

Изменено пользователем Andron
Ссылка на сообщение
Поделиться на других сайтах
Andron Я вот тут подумал, а разве не получится сразу пользоваться библиотекой binlib.dll ? В описании написано что в ней есть все функции для работы с бинарным фалом... Прям ее например к делфи подключить и пользоваться ее функциями
Ссылка на сообщение
Поделиться на других сайтах

Andron Я вот тут подумал, а разве не получится сразу пользоваться библиотекой binlib.dll ? В описании написано что в ней есть все функции для работы с бинарным фалом... Прям ее например к делфи подключить и пользоваться ее функциями

Можно конечно, и в делфи)) вопрос только во времени - если знаешь С/C++, то проще и быстрее моими наработками воспользоваться, если нет - то возможно, что на том языке, который знаешь, будет быстрее
Ссылка на сообщение
Поделиться на других сайтах

Можно конечно, и в делфи)) вопрос только во времени - если знаешь С/C++, то проще и быстрее моими наработками воспользоваться, если нет - то возможно, что на том языке, который знаешь, будет быстрее

Ну так зачем мне разбираться в чужом коде и тем более на Си ?? В binlib.dll есть весь необходимый функционал для работы с файлами результатов. Я еще не проверял, но судя по написаному описанию так оно и есть...

Или там чегото нет? Например с этой библиотекой я смогу вытащить из файла напряжения (например сигма 1) в определенном узле?

Ссылка на сообщение
Поделиться на других сайтах
Closius, похоже ты меня и документацию не совсем понимаешь... в binlib.dll содержится функционал нижнего уровня для работы с бинарными файлами: открытие, чтение буфера с указанного места, запись буфера в указанное место и ВСЕ!!! Далее, нужно очень внимательно разбирать структуру файла, кодировать (не одна тысяча строчек кода !), отлаживать, конвертировать и т.п... До того, чтобы получить напряжение в определенном узле, придется потратить от нескольких дней (в лучшем случае, для программиста-проффи) до потенциально нескольких месяцев без гарантиии достижения результата (для программиста-новичка). В общем, начинай и все поймешь!
Ссылка на сообщение
Поделиться на других сайтах
  • 5 месяцев спустя...

Здравствуйте!

У меня возникла необходимость работы именно с rth файлами. Хочется извлечь из них температуру в каждом узле. Я не очень хорошо понимаю принципы и возможности предложенных решений поэтому хотелось бы узнать что по сути нужно изменить в коде для rst и где об этом почитать?

Также в config есть параметр похожий на число строк в файле - значит ли это что один файл требует одного конфига?

Ссылка на сообщение
Поделиться на других сайтах

У меня возникла необходимость работы именно с rth файлами. Хочется извлечь из них температуру в каждом узле. Я не очень хорошо понимаю принципы и возможности предложенных решений поэтому хотелось бы узнать что по сути нужно изменить в коде для rst и где об этом почитать?

1. Если необходимость действительно есть, то все-таки придется разбираться, если хотите достичь цели самостоятельно ;)

2. Почитать можно в хелпе в разделе // Programmer's Manual // I. Guide to Interfacing with ANSYS

3. Менять почти ничего не надо, надо добавлять ( и не особо много, кстати)

Ссылка на сообщение
Поделиться на других сайтах
  • 3 года спустя...
получаем библиотеку ANSYSInterface.lib
 а чего не сразу dll? Все бы не нарадовались)))
зачем мне разбираться в чужом коде и тем более на Си
разобрались?
Ссылка на сообщение
Поделиться на других сайтах
а чего не сразу dll? Все бы не нарадовались)))

Ты так трогательно боролся за восстановление сообщения. Ну как, ответ получил? :blush: Или в 2020 г. переспросишь?

 

 

У меня возникла задача вытащить из ANSYS'a напряжения и прочую посчитанную инфу.

Разумеется, тот, кто заинтересуется вопросом, найдет инфу и так. Но на всяк оставлю тут ссылки:

http://www.padtinc.com/blog/the-focus/reading-ansys-mechanical-rst-c-cpp-part1

http://www.padtinc.com/blog/the-focus/reading-ansys-mechanical-rst-c-cpp-part2

http://www.padtinc.com/blog/the-focus/reading-ansys-mechanical-rst-c-cpp-part3

Изменено пользователем piden
Ссылка на сообщение
Поделиться на других сайтах
а чего не сразу dll? Все бы не нарадовались)))

шутки не понял, может поясните преимущество динамической перед статической библиотекой в данном  случае

В любом случае каждый может себя обрадовать dll поменяв настройки проекта за несколько минут

 

В одном месте грамотно все изложено, когда то пришлось по крупицам информацию собирать)

Ссылка на сообщение
Поделиться на других сайтах

@@Andron, шутки? Какие уж тут шутки))) я мало знаком с "С". В случае использования динамической библиотеки, я бы мог вызывать функции-методы из любого языка программирования.
Статическая линковка через LIB и DLL подразумевает собой использование только "С" и подобных.
 
 


поменяв настройки проекта за несколько минут

 
В этом случае лезут ошибки компиляции.
А-ля:
 

error LNK2019: ссылка на неразрешенный внешний символ _BININI в функции "public: __thiscall AnsysFile::AnsysFile(void)" (??0AnsysFile@@QAE@XZ)

Мне проще враппер написать, чем ковырять существующее. Фактически переписав вашу библиотеку под другой язык программирования. Сейчас разбираюсь как же вызвать из binlib функции без lib файла  :sad:  (без использования "С" языков)


Радует, что вы сделали всё грамотно. И все функции имеют комментарии, вместо того, чтобы лазать по справке.

Изменено пользователем streamdown
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...