Как создать расчетное программное обеспечение с открытым исходным кодом (конструктивные решения) - Страница 12
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как создать расчетное программное обеспечение с открытым исходным кодом (конструктивные решения)

Как создать расчетное программное обеспечение с открытым исходным кодом (конструктивные решения)

Ответ
Поиск в этой теме
Непрочитано 24.09.2021, 14:52
Как создать расчетное программное обеспечение с открытым исходным кодом (конструктивные решения)
nickname2019
 
Регистрация: 18.11.2019
Сообщений: 1,716

На мой взгляд, основными проблемами российского рынка расчетного программного обеспечения являются:
- отсутствие нормальной возможности программной автоматизации по решению расчетных задач
(в расчетных программах отсутствует возможность для нормального программирования, т.е. невозможно написать программу для полностью автоматического создания расчетной схемы (нескольких расчетных схем), автоматического выполнения расчета, автоматического получения результатов и их автоматического анализа);
- закрытый исходный код по подбору расчетных параметров несущих элементов
(различные программы дают различные результаты при решении одинаковых задач, сравнение алгоритмов подбора различных между собой невозможно, так как код закрыт, общепринятых и одобренных алгоритмов нет, каждый пользуется своим "черным ящиком", который иногда может выдать ошибочное решение);
- для людей, которые занимаются автоматизацией на Лисп, C# и т.д. отсутствуют инструменты, которые позволяли бы программно "по-простому" вызвать готовую библиотечную функцию (например, по подбору сечения какой-то простой балки непосредственно из графического редактора), что вызывает необходимость вызова отдельной расчетной программы, что серьезно тормозит работу;
- "корявый" интерфейс, ужасно неудобная и медленная работа в существующих российских (и украинских) расчетных программах;
(фактически при наличии нормального графического редактора (autocad, nanocad и т.д.) приходится экспортировать данные в в "корявый" редактор расчетной программы и длительное в нем работать (задавать нагрузки, связи и т.д.), а встроить расчетную программу в нормальный графический редактор через автоматизацию невозможно).

В связи с вышеизложенным, назрел вопрос:
Как технологически наиболее правильно можно организовать разработку расчетного программного обеспечения с открытым исходным кодом?

Для совместной разработки кода создано общее хранилище на GitHub, используя которое каждый может поучаствовать в разработке :
https://github.com/chaosEagleOwl/source

На данным момент работа находится в стадии тестирования возможности совместной разработки.
Требования к программному обеспечению изложены в файле (ссылка README.md на GitHub): https://github.com/chaosEagleOwl/source/README.md

ТЗ на модуль формирования КЭ-сеток сформировано и помещено на GitHub.
На весь комплекс ТЗ формировать долго, видимо, будет чуть позже.

Сформирована доска для управления проектом, туда добавлены наиболее актуальные задачи.
Задачи проекта.

Последний раз редактировалось nickname2019, 06.10.2021 в 09:07.
Просмотров: 106923
 
Автор темы   Непрочитано 03.10.2021, 07:46
#221
nickname2019


 
Регистрация: 18.11.2019
Сообщений: 1,716


Цитата:
Несколько вопросов к тем, про программирует по-большому:[list=1][*]Сейчас в проекте есть папка ArxLib с ObjectARX 2015-2021. Если туда накидать еще и "нанокад / брикскад / и все остальные" - будет несколько гигабайт библиотек, одна из которых и так должна быть у любого, кто взялся за сборку, а оставшаяся часть из них ему лично не нужна. Так вообще делают?
Я подумал, что будет удобно, если библиотеки разместить на общем репозитории, чтобы участнику не приходилось заниматься самостоятельным поиском, установкой библиотек и прописыванием к ним путей.
Я думаю, что не нужные библиотеки можно попробовать отключить от загрузки.
Может попробовать воспользоваться .gitignore, чтобы прописать пути к библиотекам, которые игнорируются?
Или воспользоваться импортном части репозитория https://pro-prof.com/forums/topic/git-subtree (кажется, там нужно действовать командами через консольную программу GitHub).

Цитата:
Абсолютные пути в проекте - это правильно? Наверняка принято пути делать относительными, и как-то переопределять настройки для локальной копии проекта.
На самом деле, проект будет работать из любого места, только придется перебивать пути к файлам библиотек. Я думаю, что кто знает - тот сам все пропишет. Если человек раньше с этим дела не имел - просто может разместить репозиторий на диске С: и работать.
nickname2019 вне форума  
 
Непрочитано 03.10.2021, 07:58
#222
zvezdochiot

маркшейдер
 
Регистрация: 25.09.2021
Москва
Сообщений: 189


Цитата:
Сообщение от nickname2019 Посмотреть сообщение
библиотеки разместить на общем репозитории
Да Вас Autodesk и Nano распнут за копирайт! Ссылки в README указывайте и не более того.
__________________
Keep it simple, stupid.
zvezdochiot вне форума  
 
Автор темы   Непрочитано 03.10.2021, 08:04
#223
nickname2019


 
Регистрация: 18.11.2019
Сообщений: 1,716


Цитата:
Сообщение от zvezdochiot Посмотреть сообщение
Да Вас Autodesk и Nano распнут за копирайт! Ссылки в README указывайте и не более того.
Свободное использование библиотек ObjectArx в проектом с открытым исходным кодом не нарушает лицензию Autodesk.
Формально библиотеки Autodesk нельзя использовать для разработки под NanoCad и т.д., но это согласие подписывается при вступлении в "клуб разработчиков". В этом смысле, на общем репозитории совместно размещать библиотеки от Autodesk и других вендоров, пожалуй, не стоит.
Кто хочет что-то свое не под автодеск - тот пусть действует исключительно на свой страх и риск.

Последний раз редактировалось nickname2019, 03.10.2021 в 08:25.
nickname2019 вне форума  
 
Непрочитано 03.10.2021, 08:09
#224
zvezdochiot

маркшейдер
 
Регистрация: 25.09.2021
Москва
Сообщений: 189


Цитата:
Сообщение от nickname2019 Посмотреть сообщение
Свободное использование библиотек ObjectArx в проектом с открытым исходным кодом не нарушает лицензию Autodesk.
В суде сможешь это доказать? "Бережёного Бог бережёт"
__________________
Keep it simple, stupid.
zvezdochiot вне форума  
 
Автор темы   Непрочитано 03.10.2021, 08:14
#225
nickname2019


 
Регистрация: 18.11.2019
Сообщений: 1,716


Цитата:
Сообщение от zvezdochiot Посмотреть сообщение
В суде сможешь это доказать? "Бережёного Бог бережёт"
Во всех файлах с кодом ObjectArx прописана лицензия сверху с начала файла.
nickname2019 вне форума  
 
Непрочитано 03.10.2021, 08:15
#226
zvezdochiot

маркшейдер
 
Регистрация: 25.09.2021
Москва
Сообщений: 189


Цитата:
Сообщение от nickname2019 Посмотреть сообщение
Во всех файлах
Я "слегка" другое спросил. Проконсультируйся для начала, а уж потом "Гоп".
__________________
Keep it simple, stupid.
zvezdochiot вне форума  
 
Автор темы   Непрочитано 03.10.2021, 08:26
#227
nickname2019


 
Регистрация: 18.11.2019
Сообщений: 1,716


Цитата:
Сообщение от zvezdochiot Посмотреть сообщение
Я "слегка" другое спросил. Проконсультируйся для начала, а уж потом "Гоп".
Пока работаем. Если захотят закрыть - закроют просто на основании запрета на использование имени вендора в проекте.
nickname2019 вне форума  
 
Непрочитано 03.10.2021, 08:43
#228
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


nickname2019, кстати - а собственный скриптовый язык будете интегрировать в проект?
Сергей812 вне форума  
 
Автор темы   Непрочитано 03.10.2021, 08:57
| 1 #229
nickname2019


 
Регистрация: 18.11.2019
Сообщений: 1,716


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
nickname2019, кстати - а собственный скриптовый язык будете интегрировать в проект?
Я думаю, что это интересная, но отдельная тема. Может быть, отдельные элементы можно использовать, но это выясниться по ходу дела.
Управление расчетным ядром можно выполнять с использованием графического интерефейса или скриптами. Я думаю, нужно сначала создать ядро, потом уж думать как им управлять. В конце концов, можно использовать стандартные возможности.

----- добавлено через ~2 ч. -----
Цитата:
Сообщение от zvezdochiot Посмотреть сообщение
Я "слегка" другое спросил. Проконсультируйся для начала, а уж потом "Гоп".
Спасибо. Библиотеки убраны с общего репозитория. Порядок их установки прописан в readme.md.
Это, видимо, создаст некоторые проблемы, так как придется отдельно скачивать и устанавливать библиотеки, но , наверное, это правильно.
nickname2019 вне форума  
 
Автор темы   Непрочитано 04.10.2021, 22:22
#230
nickname2019


 
Регистрация: 18.11.2019
Сообщений: 1,716


ТЗ на модуль формирования КЭ-сеток сформировано и помещено на GitHub. (ТЗ рекомендуется читать в Word'е).
На весь комплекс ТЗ формировать долго, видимо, будет чуть позже.
Сформирован дашборд для управления проектом, туда добавлены наиболее актуальные задачи.
Задачи проекта.

Последний раз редактировалось nickname2019, 04.10.2021 в 22:38.
nickname2019 вне форума  
 
Непрочитано 04.10.2021, 23:40
| 1 #231
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


>>ТЗ рекомендуется читать в Word'е
на гитхабе рекомендуется использовать md

при создании опенсурса рекомендуется использовать опенсурс инструменты
zamtmn вне форума  
 
Непрочитано 05.10.2021, 07:03
#232
zvezdochiot

маркшейдер
 
Регистрация: 25.09.2021
Москва
Сообщений: 189


Цитата:
Сообщение от nickname2019 Посмотреть сообщение
Слишком много бинарного "мусора" в репе. Рекомендую переименовать репу в "mycop-bin", и на его базе сделать новую репу "mycop" только с сырцой и документацией.
__________________
Keep it simple, stupid.
zvezdochiot вне форума  
 
Автор темы   Непрочитано 05.10.2021, 07:50
#233
nickname2019


 
Регистрация: 18.11.2019
Сообщений: 1,716


Цитата:
Сообщение от zamtmn Посмотреть сообщение
>>ТЗ рекомендуется читать в Word'е
на гитхабе рекомендуется использовать md
спасибо. Сделано.

----- добавлено через ~1 мин. -----
Цитата:
Сообщение от zvezdochiot Посмотреть сообщение
Слишком много бинарного "мусора" в репе. Рекомендую переименовать репу в "mycop-bin", и на его базе сделать новую репу "mycop" только с сырцой и документацией.
Спасибо. Видимо, я плохо прописал пути для игнорирования отдельных папок для синхронизации (нужно исключить все папки _debug). Нужно еще разбираться.
nickname2019 вне форума  
 
Непрочитано 05.10.2021, 09:01
#234
румата


 
Регистрация: 06.04.2015
Сообщений: 2,754


Цитата:
Сообщение от nickname2019 Посмотреть сообщение
Задачи проекта.
Пожалуйста, добавьте в проект директорию .Net для реализации задач на альтернативных ЯПах
румата вне форума  
 
Автор темы   Непрочитано 05.10.2021, 11:56
#235
nickname2019


 
Регистрация: 18.11.2019
Сообщений: 1,716


Цитата:
Сообщение от румата Посмотреть сообщение
Пожалуйста, добавьте в проект директорию .Net для реализации задач на альтернативных ЯПах
В стандартной проводнике Windows создать директорию .Net не получилось - проводник пишет, что ошибка и нужно ввести имя файла.
Чтобы избежать этой проблемы создал папку Net (без точки в начале).
К сожалению, я не писал под Net, поэтому будет трудно создать рабочий проект с нужными настройками. Поэтому директория пока пустая.

Последний раз редактировалось nickname2019, 05.10.2021 в 12:21.
nickname2019 вне форума  
 
Непрочитано 05.10.2021, 13:01
| 1 #236
Нубий-IV

Инженер-философ
 
Регистрация: 24.04.2019
Хабаровск
Сообщений: 2,082


Цитата:
Сообщение от nickname2019 Посмотреть сообщение
В стандартной проводнике Windows создать директорию .Net не получилось
Можно запустить командный файл (или просто вставить это в командной строке):
Код:
[Выделить все]
c:
cd C:\GitHub\source\
md .Net
Цитата:
Сообщение от nickname2019 Посмотреть сообщение
Может кто-то создаст нужный проект
Я пока вообще не понимаю что планируется сделать. Судя по закомментированному содержанию acrxEntryPoint.cpp - большая красная кнопка? Выберите здание, начерченное палочками ... идет расчет ... укажите точку вставки готовой пояснительной записки? Тогда любителям альтернативного программирования вообще некуда вклиниться, только завидовать и пытаться написать такое же на своем, лучшем языке.

Потому что если обсуждалась "библиотека" или "модульность" - то структура каталогов сейчас для этого очень странная. Многоязычная библиотека подразумевает папку с библиотекой МКЭ (и в ней подпапки плагинов импорта-экспорта в разные форматы); промежуточную библиотеку описания геометрии в своей папке (потому что начерченное в автокаде, например, не совпадает с тем, что передается в GMSH - нужен анализ и преобразование геометрии), к ней же - api под шарпы, питоны и язык текстового описания геометрии, позволяющий в блокноте в десять строк задать расчет серийного здания; библиотеку форматирования результатов (с плагинами под html, rtf, dxf и т.п.). И отдельно - ARX модуль; вот на него сейчас происходящее и похоже. Но, пока в нем нет вообще никакого реального содержания - непонятно даже, зачем замусоривать репозиторий всеми возможными вариантами пустых проектов (да еще и содержащими копии одних и тех же файлов)?

По-моему, надо структуру программы определить, да начать заголовки с функциями накидывать. Будут у нас, например, суперэлементы для перекрытий (или вообще библиотечные суперэлементы с заранее обращенной матрицей для сверхбыстрого расчета панельных зданий)? Или режим заморозки части схемы, позволяющий не пересчитывать не менявшуюся геометрию? Нестандартные КЭ для расчета ребер (а не городильня из несовместимых стержней-с-вставками-под-оболочкой)? Элемент надколонного участка с логарифмическими функциями формы? Узлы с пользовательским набором степеней свободы? Смешивание расчетов на разных сетках? И т.п. От этого зависит API и возможности расширения в будущем.

Следом - например, минимально работающую версию, которая отдельно взятую конструкцию сумеет обработать (балку, или плиту), пока с заглушками под еще нереализованные части. И только с этого момента получится что-то на исполнителей раскидать, когда заготовки под работу уже будут.

А если придет кто со своей версией акада-R14, брикскада или еще чего - так пусть создает проект да подключает исходники. Сомневаюсь, что даже на уже созданные проекты прям ща слетятся сотни желающих попрограммировать.
Нубий-IV вне форума  
 
Непрочитано 05.10.2021, 13:20
#237
trir


 
Регистрация: 18.12.2010
Сообщений: 5,114


Цитата:
Можно запустить командный файл (или просто вставить это в командной строке):
так и систему уронить можно
trir вне форума  
 
Автор темы   Непрочитано 05.10.2021, 13:56
#238
nickname2019


 
Регистрация: 18.11.2019
Сообщений: 1,716


Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
Я пока вообще не понимаю что планируется сделать.
На данном этапе - генератор сеток как прописано в ТЗ + автоматическое задание нагрузок (ТЗ пока не готово). Если полученную сетку экспортировать в SCAD - это само по себе может существенно снизить трудоемкость.

Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
Судя по закомментированному содержанию acrxEntryPoint.cpp - большая красная кнопка? Выберите здание, начерченное палочками ... идет расчет ... укажите точку вставки готовой пояснительной записки? Тогда любителям альтернативного программирования вообще некуда вклиниться, только завидовать и пытаться написать такое же на своем, лучшем языке.
Да. По идее, нужно создать схему программы в целом, чтобы потом каждый модуль дорабатывать. Раньше это делалось на UML (универсальный язык разметки), но он заточен на ООП и я с ним никогда не работал.

Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
Потому что если обсуждалась "библиотека" или "модульность" - то структура каталогов сейчас для этого очень странная. Многоязычная библиотека подразумевает папку с библиотекой МКЭ (и в ней подпапки плагинов импорта-экспорта в разные форматы); промежуточную библиотеку описания геометрии в своей папке (потому что начерченное в автокаде, например, не совпадает с тем, что передается в GMSH - нужен анализ и преобразование геометрии), к ней же - api под шарпы, питоны и язык текстового описания геометрии, позволяющий в блокноте в десять строк задать расчет серийного здания; библиотеку форматирования результатов (с плагинами под html, rtf, dxf и т.п.). И отдельно - ARX модуль; вот на него сейчас происходящее и похоже. Но, пока в нем нет вообще никакого реального содержания - непонятно даже, зачем замусоривать репозиторий всеми возможными вариантами пустых проектов (да еще и содержащими копии одних и тех же файлов)?
Я в любом случае планирую закночить проект на С++ и включить все в один файл ARX.
Были созданы несколько проектов для простой компиляции для нескольких версий Autocad. Это намного проще, чем писать для одной версии Autocad, потом заниматься переносом проекта на другую версию.
А если выпускать релизы с 2015 по 2021 autocad, то желающих протестировать будет много больше, чем если выпустить тестовый релиз под одну версию.

Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
По-моему, надо структуру программы определить, да начать заголовки с функциями накидывать. Будут у нас, например, суперэлементы для перекрытий (или вообще библиотечные суперэлементы с заранее обращенной матрицей для сверхбыстрого расчета панельных зданий)?
В ТЗ каждая локальная сетка (перекрытие, стена) подразумевается как суперэлемент. Т.е. возможность имеется это учесть при разработке решателя. Но открытого решателя с суперэлементами мы вряд ли найдем. Проще сделать решение с разреженными матрицами.

Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
Или режим заморозки части схемы, позволяющий не пересчитывать не менявшуюся геометрию?
Суперэлементы это позволяют.
Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
Нестандартные КЭ для расчета ребер (а не городильня из несовместимых стержней-с-вставками-под-оболочкой)?
Это научно-исследовательская задача. Ее решение не гарантируется. Но вставки лучше не делать.

Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
Элемент надколонного участка с логарифмическими функциями формы?
Это бессмысленно для ЖБК. Пластика там все пики выравнивает.

Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
Узлы с пользовательским набором степеней свободы?
Да. Тип, который описывает степени свободы в узле должен содержать не только вектор типа double, но и ссылку на структуру, которая описывает, какую именно степень свободы описывает каждый элемент вектора. Это нужно, чтобы в одной схеме не путать механические КЭ и КЭ, которые, например, считают теплопроводность. Т.е. каждый КЭ должен проверять к тому ли типу узла он присоединен.

Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
Смешивание расчетов на разных сетках? И т.п. От этого зависит API и возможности расширения в будущем.
Сетки в любом случае примерно одинаковые. Имеется ввиду подключение расчетов различных полей (температурных, воздушных и т.д.)?

Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
Следом - например, минимально работающую версию, которая отдельно взятую конструкцию сумеет обработать (балку, или плиту), пока с заглушками под еще нереализованные части. И только с этого момента получится что-то на исполнителей раскидать, когда заготовки под работу уже будут.
Это начинает упираться в детальное ТЗ по каждой процедуре и их взаимодействию. Видимо, это и есть самая трудоемкая задача.
nickname2019 вне форума  
 
Непрочитано 05.10.2021, 14:29
| 1 #239
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от nickname2019 Посмотреть сообщение
Это начинает упираться в детальное ТЗ по каждой процедуре и их взаимодействию. Видимо, это и есть самая трудоемкая задача.
естественно - недаром профессиональные постановщики задач (не путать с менеджерами) "дороже" на цивилизованном рынке, чем просто программисты.. Отсутствие постановщика будет компенсироваться за счет энтузиазма участников в виде переделок.
Сергей812 вне форума  
 
Непрочитано 05.10.2021, 14:45
#240
румата


 
Регистрация: 06.04.2015
Сообщений: 2,754


Цитата:
Сообщение от nickname2019 Посмотреть сообщение
К сожалению, я не писал под Net, поэтому будет трудно создать рабочий проект с нужными настройками. Поэтому директория пока пустая.
Спасибо. Я сам создам преднастроенный проект плагина к AutoCAD 2020-2021. Проект будет называться AcGmsh. Этот проект для реализации 1-го пункта ТЗ

----- добавлено через ~8 мин. -----
Цитата:
Сообщение от nickname2019 Посмотреть сообщение
Были созданы несколько проектов для простой компиляции для нескольких версий Autocad.
А как будут осуществляться фиксации(коммиты)? Наверно стоит дать права для этого участникам проекта. Для добавления меня в команду разработчиков найдите на гитхабе пользователя rumata-ap.

Последний раз редактировалось румата, 05.10.2021 в 14:54.
румата вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как создать расчетное программное обеспечение с открытым исходным кодом (конструктивные решения)

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
СП 335.1325800.2017 «Крупнопанельные конструктивные системы. Правила проектирования» (Обсуждение) Armin Прочее. Архитектура и строительство 37 07.11.2018 06:55
Фирменные решения по пропуску коммуникаций через стены подвала Regby Конструкции зданий и сооружений 2 07.04.2010 20:43
устройство и возможные конструктивные решения вентфасада из кирпича Ivansobaka Каменные и армокаменные конструкции 1 16.12.2009 06:38
Конструктивные решения по перемычкам в многослойных кирпичных стенах! Westroy Архитектура 16 30.11.2009 13:57
Конструктивные решения монтажных соединений многоэтажных зданий на высокопрочных болтах VoRoNoFF Конструкции зданий и сооружений 1 04.04.2009 00:41