| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

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

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

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

На мой взгляд, основными проблемами российского рынка расчетного программного обеспечения являются:
- отсутствие нормальной возможности программной автоматизации по решению расчетных задач
(в расчетных программах отсутствует возможность для нормального программирования, т.е. невозможно написать программу для полностью автоматического создания расчетной схемы (нескольких расчетных схем), автоматического выполнения расчета, автоматического получения результатов и их автоматического анализа);
- закрытый исходный код по подбору расчетных параметров несущих элементов
(различные программы дают различные результаты при решении одинаковых задач, сравнение алгоритмов подбора различных между собой невозможно, так как код закрыт, общепринятых и одобренных алгоритмов нет, каждый пользуется своим "черным ящиком", который иногда может выдать ошибочное решение);
- для людей, которые занимаются автоматизацией на Лисп, 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.
Просмотров: 84570
 
Непрочитано 01.10.2021, 15:09
#201
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Цитата:
Сообщение от румата Посмотреть сообщение
Ничего не мешает любой гипотетической открытой библиотеке пройти набор верификационных тестов. Но, повторюсь, ничего общего с сертификатом, которые выдаются на строительное ПО такая верификация не имеет.
Ну вот сперва нужно будет МКЭ считалку верифицировать...
Потом на расчеты строительных конструкций.
Практически это вряд ли выполнимо, без денежных вливаний и админтстративного ресурса.
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 01.10.2021, 15:22
#202
румата


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


Цитата:
Сообщение от DEM Посмотреть сообщение
Ну вот сперва нужно будет МКЭ считалку верифицировать...
Будет считалка - будет верификация. Просто взять любой набор примеров из любого коммерческого ПО и прогнать. А сертификация пусть идет боком. Выполнение конструктивных расчетов просто нужно сделать с открытой трассировкой, т.е. исключить закрытость нормативных расчетных алгоритмов.
румата вне форума  
 
Автор темы   Непрочитано 01.10.2021, 15:30
#203
nickname2019


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
мой вопрос про
был проигнорирован, похоже.. Ребята настолько увлеклись "чтобы было все по взрослому" (под все версии, на каком языке чтобы было круче, ветки, коммиты), что забыли - любая совместная работа начинается с ТЗ в том или ином виде: чтобы было понятно - кто что делает и чего другие участники ожидают увидеть в конечном итоге. И все это должно быть сведено в один документ - а не "размазано" по десяткам постов...
На мой взгляд, эта задача является достаточно простой по логике, но весьма объемной в части количества простых задач.
Т.е. можно с понедельника потихоньку автоматизировать отдельные расчетные задачи по подбору сечений с составлением отчетов и ими можно уже начинать пользоваться по ходу дела.
Потом подтянется КЭ-решатель + сбор РСУ.
ТЗ как таковое будет составляться в процессе.
Конечно, неплохо бы было иметь какую-то автоматизированную систему, где можно бы было написать задачи, которые стоят перед разработчиками, чтобы желающие могли бы решить те задачи, которые хотят решить. Задач может быть много, начиная от оформления кнопок панелей инструментов или ленты.
Фактически может сложиться ситуация, что несколько человек делают одну задачу, что приведет к дублированию работ (и проблемам с объединением в единый проект, ибо непонятно какое решение лучше).
Т.е. ТЗ в данном случае может выглядеть как список задач.
Отсюда вопрос - в какой программе можно расписать стоящие задачи, чтобы она позволяла брать исполнителю ту задачу, которую он желает? Типа открытого общественного таскменеджера.
nickname2019 вне форума  
 
Непрочитано 01.10.2021, 15:33
#204
румата


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


Цитата:
Сообщение от nickname2019 Посмотреть сообщение
Отсюда вопрос - в какой программе можно расписать стоящие задачи, чтобы она позволяла брать исполнителю ту задачу, которую он желает? Типа открытого общественного таскменеджера.
https://www.google.ru/intl/ru/sheets/about/

----- добавлено через ~3 мин. -----
https://www.office.com/launch/excel?...U&rs=RU&auth=1
румата вне форума  
 
Непрочитано 01.10.2021, 15:39
#205
IBZ

Расчетчик МК
 
Блог
 
Регистрация: 06.05.2006
Ростов-на-Дону
Сообщений: 6,212


Ты можешь ходить как запущенный сад,
А можешь всё наголо сбрить,
И то и другое я видел не раз,
Кого ты хотел удивить ? (c)

Искренне желаю всем заинтересованным участникам успеха, но я был свидетелем таких начинаний не один раз. Ни в одном из случаев ничего путного, увы, не получилось ... Но поживем - увидим.
IBZ вне форума  
 
Непрочитано 01.10.2021, 15:47
#206
румата


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


Цитата:
Сообщение от IBZ Посмотреть сообщение
но я был свидетелем таких начинаний не один раз.
Оно не удивительно, что ничего путного не выходит, удивительно будет, если что-то путное действительно выйдет. Не будьте просто свидетелем - присоединяйтесь в меру своих возможностей. У Вас достаточный багаж знаний и опыта для этого. Творите историю, так сказать
румата вне форума  
 
Непрочитано 01.10.2021, 16:09
#207
zamtmn

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


>>Отсюда вопрос - в какой программе можно расписать стоящие задачи, чтобы она позволяла брать исполнителю ту задачу, которую он желает? Типа открытого общественного таскменеджера.
на гитхабе все есть
zamtmn вне форума  
 
Непрочитано 01.10.2021, 16:11
#208
IBZ

Расчетчик МК
 
Блог
 
Регистрация: 06.05.2006
Ростов-на-Дону
Сообщений: 6,212


Цитата:
Сообщение от румата Посмотреть сообщение
Не будьте просто свидетелем - присоединяйтесь в меру своих возможностей.
Да нет, своё я уже много лет назад написал. А сейчас уже нет ни времени, ни желания даже написать новую "морду лица" - работаем спокойненько с Dos интерфейсом

Цитата:
Сообщение от румата Посмотреть сообщение
У Вас достаточный багаж знаний и опыта для этого.
И они не вполне приемлют предлагаемую идеологию ...

Цитата:
Сообщение от румата Посмотреть сообщение
Творите историю, так сказать
О как, ни больше, ни меньше .
IBZ вне форума  
 
Непрочитано 01.10.2021, 16:11
#209
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 176


Я полностью согласен с zamtmn и Сергей812, параллельно с форумом, надо весть онлайн блокнотик. Так что бы доступ на чтение имели все, а редактирование избранные. Без технического задания тяжело работать. В любом случае, как бы участники не рвали тельняшки, и не рвались в бой, данный поход за славой будет долгий! Краткое техническое задание, разбитое над подпункты просто необходимо, это как ориентир для движения(что бы народ не расползся по своим хотелкам). Там напротив каждого пункта, впишете имя героя кто будет ее решать
veb86 вне форума  
 
Непрочитано 01.10.2021, 16:42
#210
fktstv

Инженер
 
Регистрация: 20.01.2016
Сообщений: 307


Господа, я тут с первого сообщения, но у меня так и не сложилось понимания, чего вы в точности хотите.
nickname2019, огромная просьба к вам как ТС, подбивайте, хотя бы в шапку темы, промежуточные итоги и задачи.
Цитата:
Сообщение от nickname2019 Посмотреть сообщение
задача является достаточно простой по логике, но весьма объемной в части количества простых задач.
Т.е. можно с понедельника потихоньку автоматизировать отдельные расчетные задачи по подбору сечений с составлением отчетов
Вот, например, если бы я хотел присоединиться к проекту:
Как выглядят исходные данные для расчета?
Отчет планируется формировать как в #198?
С помощью чего он сформирован?
Если в дальнейшем планируется прикрутить КЭ-решатель, значит расчет должен выполняться для каждого конечного/конструктивного элемента. Для каждого из них планируется выводить аналитический отчет с формулами?

В случае чего, прошу извинить мое невежество. Чукча совсем не программист.
__________________
Все, казалось бы, просто, но на самом деле это не так - В. В. Горев, том 1, стр. 338 - М. 2004
fktstv вне форума  
 
Непрочитано 01.10.2021, 16:56
1 | #211
Нубий-IV

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


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

Если есть еще братья по халяве, краткая инструкция:

Visual Studio и SDK:
  1. Версия Visual Studio - 2008 Professional, обязательно поставить Service Pack 1. Оба ISO-образа можно забрать с сайта Microsoft. Искать VS2008ProEdition90dayTrialENUX1435622.iso и VS2008SP1ENUX1512962.iso.
  2. SDK ставится вместе с нанокадом (скачивать отдельно не нужно), и лежит рядом с ним в папке NanoCAD\SDK.
Настройка проекта:
  1. Создать пустой проект. Добавить в него существующие *.h, *.cpp, *.def, которые раньше собирались под автокад.
  2. Общие настройки проекта:
    Configuration type = Dynamic Library (.dll)
    Use of MFC = Use MFC in a Shared DLL
    Use of ATL = Not Using ATL
    Character set = Use Unicode Character Set
  3. Настройки компилятора:
    Runtime Library = Multi-threaded DLL (/MD)
    Additional Include Directories = *\SDK\include;*\SDK\include\MAPI;*\SDK\include\TD;*\SDK\include\arxgate (вместо звездочки - свой путь к SDK)
    Additional options=/Zm115 (если компиляция обрывается с сообщением о нехватке памяти для прекомпилированных заголовков)
  4. Настройки компоновщика:
    Additional Library Dictionaries=*\SDK\lib;*\SDK\lib\TD
    Additional Dependencies=nrxgate.lib
    Module Definition File=*.def
Изменения в коде:
  1. Из заголовочных файлов нанокада автоматически подключаются заголовки MFC, а из них - windows.h. Если файл windows.h был подключен ранее, при компиляции будет ошибка "не включай два раза". Придется либо убрать windows.h из своих заголовков, либо вставить его в условную компиляцию:
    Код:
    [Выделить все]
     
    #ifdef AUTOCAD
    	#include <windows.h>
    #endif
    
  2. Макрос ACRX_T, которым в ObjectARX создают текст, в заголовках нанокада почему-то называется _ACRX_T. В stdafx.h придется задать переопределение:
    Код:
    [Выделить все]
     
    #ifdef NANOCAD
    	#define ACRX_T _ACRX_T
    #endif
    
  3. В DEF-файле имена экспортируемых функций надо исправить:
    acrxEntryPoint - заменить на ncrxEntryPoint (собственно, в заголовках SDK везде делается автоматическая замена префикса "ac" на "nc" - см. файл SDK\include\nrxgate\nc2ac.h, но DEF не обрабатывается препроцессором)
    acrxGetApiVersion - удалить, не используется
Проблемы:
  • Попадаются функции, которые есть в ObjectARX, но отсутствуют в nanoCAD SDK. У меня это была только ads_regen(), но наверняка есть еще. Вызовы придется либо убирать вообще, либо переопределять функции, иначе компиляция невозможна.
  • Попадаются классы, которые есть в ObjectARX, но отсутствуют в nanoCAD SDK. У меня - AcDbMline и AcDbMLeader. Видимо, будут еще. Компиляция невозможна. Вряд ли мы их переопределим, придется либо не реализовывать в нанокаде, либо отказываться от них и в автокаде.
  • Самое неприятное - попадаются функции, которые формально есть в SDK, но фактически не реализованы в nanoCAD. То есть они компилируются, но при запуске команды с таким вызовом срабатывает заглушка, и выдается диалоговое окно с предложением "прервать/пропустить/всегда игнорировать". Команда при этом, разумеется, ничего полезного сделать уже не сможет. У меня это были:
    acrxRegisterAppMDIAware - не страшно, и без нее многооконный режим работает
    acedUndef - пока не понял, надо ли оно вообще
    acedSSGet - самое обидное, из-за нее половина моих команд просто не работает. Причем функция частично рабочая, с параметром ":$" выполняется, с параметром ":$:L" - нет.
  • Замечена некорректная работа acutPrintf - в ней явно не опознается флаг форматирования %g - вместо числа выводится сам флаг: "Текущий шаг равен %g".

Последний раз редактировалось Нубий-IV, 01.10.2021 в 17:12.
Нубий-IV вне форума  
 
Автор темы   Непрочитано 01.10.2021, 17:26
#212
nickname2019


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


Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
Удалось собрать и заставить работать под бесплатным нанокадом мою старую подборку команд для автокада. Тест на собираемость в целом пройден, хотя и с оговорками.
Если есть еще братья по халяве, краткая инструкция:
...
Use of MFC = Use MFC in a Shared DLL
...
Тогда при создании проектов я не буду отключать MFC. На размер конечного файла это не повлияет. Мы можем просто им не пользоваться.
nickname2019 вне форума  
 
Непрочитано 01.10.2021, 18:33
#213
zvezdochiot

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


Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
Если файл windows.h был подключен ранее, при компиляции будет ошибка "не включай два раза".
Что за дела? Содержимое windows.h не завёрнуто в #ifndef ?
__________________
Keep it simple, stupid.
zvezdochiot вне форума  
 
Непрочитано 01.10.2021, 18:49
#214
Нубий-IV

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


Цитата:
Сообщение от zvezdochiot Посмотреть сообщение
Что за дела? Содержимое windows.h не завёрнуто в #ifndef ?
Можно придумать защиту от дурака, но только от неизобретательного (с) Мерфи

Цитата из MFC-шного заголовка:
Код:
[Выделить все]
 
#ifdef _WINDOWS_
	#error WINDOWS.H already included.  MFC apps must not #include <windows.h>
#endif
Нубий-IV вне форума  
 
Автор темы   Непрочитано 01.10.2021, 20:06
1 | #215
nickname2019


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


Цитата:
Сообщение от fktstv Посмотреть сообщение
Господа, я тут с первого сообщения, но у меня так и не сложилось понимания, чего вы в точности хотите.
Конечная цель - создать открытый код программы по расчету конструкций, чтобы каждый мог им воспользоваться.
Т.е. мы пишем программу. Пишем, в основном, на с++.
Я бы хотел, чтобы к разработке мог подключиться любой желающий через GitHub.
Для этого я к понедельнику постараюсь подготовить исходные коды проекта для разных версий студий и загрузить их на PornHub GitHub.
Желающей должен самостоятельно скачать и установить одну из доступных ему версий студий и библиотеки для взаимодействия с граф. редактором.
Это будет описано в шапке темы.
В шапке будут приведены ссылки на нужные ресурсы.

Цитата:
Сообщение от fktstv Посмотреть сообщение
nickname2019, огромная просьба к вам как ТС, подбивайте, хотя бы в шапку темы, промежуточные итоги и задачи.
Вот, например, если бы я хотел присоединиться к проекту:
Как выглядят исходные данные для расчета?
Пишем процедуры для проверки на с++, сами определяемся какие исходные данные нужны. В коде процедуры все подробно описываем каждую строчку.

Цитата:
Сообщение от fktstv Посмотреть сообщение
Отчет планируется формировать как в #198?
С помощью чего он сформирован?
Если в дальнейшем планируется прикрутить КЭ-решатель, значит расчет должен выполняться для каждого конечного/конструктивного элемента. Для каждого из них планируется выводить аналитический отчет с формулами?
Я думаю, что каждый расчет должен иметь возможность формирование такого отчета (чтобы проверить можно было вручную). Но должен быть вариант без отчета, когда проверяется много КЭ.
nickname2019 вне форума  
 
Непрочитано 01.10.2021, 22:29
#216
zvezdochiot

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


Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
Можно придумать защиту от дурака
Какая к чорту "защита от дурака"? Это стандартная схема построения хэдов общих либ.
__________________
Keep it simple, stupid.
zvezdochiot вне форума  
 
Непрочитано 02.10.2021, 03:22
#217
Нубий-IV

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


Цитата:
Сообщение от zvezdochiot Посмотреть сообщение
Это стандартная схема построения хэдов
Я не знаком со стандартом "подглядывать за чужими подключениями, и командовать ими". Когда файл сам выключается, если обнаруживает повтор - знаю. Допускаю, что у авторов MFC были на это причины. А для нас это значит, что в коде под разные кады будут различия. Автокад не подключает этот заголовок сам, а нанокад - наоборот, запрещает подключать. Значит, уже пора давать название библиотеке, кад-проекту в ней, и договариваться о дефайнах, которые будут в настройках проекта.
Нубий-IV вне форума  
 
Непрочитано 02.10.2021, 10:07
#218
Сергей812


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


Цитата:
Сообщение от nickname2019 Посмотреть сообщение
Пишем процедуры для проверки на с++, сами определяемся какие исходные данные нужны. В коде процедуры все подробно описываем каждую строчку.
шикарное ТЗ. Наверно, ветку пока ещё читают опытные расчетчики без навыков программирования - и их просто выкидывают за борт: каждый "конструктор-программист" реализует свое виденье расчетов и не более того...
Сергей812 вне форума  
 
Автор темы   Непрочитано 02.10.2021, 10:19
1 | 1 #219
nickname2019


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
шикарное ТЗ. Наверно, ветку пока ещё читают опытные расчетчики без навыков программирования - и их просто выкидывают за борт: каждый "конструктор-программист" реализует свое виденье расчетов и не более того...
Убедили. ТЗ будет во вторник 05.10.2021.
Я сейчас пытаюсь решить проблему с совместимость проекта с Autocad 2015-2021.
Для ТЗ нужно придумать типы данных и набросать пример расчета какой-нибудь, чтобы можно было его обсудить и дальше по-аналогии делать.


Upd: по состоянию на текущий момент (02.10.2021) проект подготовлен для разработки для следующих версий:
...\source\VS2012(c++)ac2016\ - папка с проектом для Visual Studio 2012 и Acad 2016
...\GitHub\source\VS2015(c++)ac2018\ - папка с проектом для Visual Studio 2015 и Acad 2018
...\GitHub\source\VS2017(c++)ac2020\ - папка с проектом для Visual Studio 2017 и Acad 2020
...\GitHub\source\VS2019(c++)ac2021\ - папка с проектом для Visual Studio 2021 и Acad 2021

У этих сборок общий файл acrxEntryPoint.cpp, т.е. содержательная часть кода будет общая.

Также общим я сделал файл resource.h.

Можно пробовать подключаться, компилировать и проверять на наличие ошибок компиляции.
Обязательно нужно прочитать файл readme.md на GitHb для правильной настройки путей.

Последний раз редактировалось nickname2019, 02.10.2021 в 18:04.
nickname2019 вне форума  
 
Непрочитано 03.10.2021, 06:30
#220
Нубий-IV

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



Для сборки понадобилось дополнительно подключить "extension.h" из include\nrxgate - это файл из нанокадовского SDK, без него InitAcUiDLL() не опознается. Таки нужен способ способ в исходниках отличать сборку под акад от сборки под нанокад.

Несколько вопросов к тем, про программирует по-большому:
  1. Сейчас в проекте есть папка ArxLib с ObjectARX 2015-2021. Если туда накидать еще и "нанокад / брикскад / и все остальные" - будет несколько гигабайт библиотек, одна из которых и так должна быть у любого, кто взялся за сборку, а оставшаяся часть из них ему лично не нужна. Так вообще делают?
  2. Абсолютные пути в проекте - это правильно? Наверняка принято пути делать относительными, и как-то переопределять настройки для локальной копии проекта.
Миниатюры
Нажмите на изображение для увеличения
Название: nc.png
Просмотров: 187
Размер:	87.3 Кб
ID:	241375  
Нубий-IV вне форума  
Ответ
Вернуться   Форум 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