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

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

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

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

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


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


Создал тестовый проект:
https://github.com/chaosEagleOwl/source

Проект создан пока для тестирования возможности совместной разработки.
В проекте прописаны пути из учета, что Visual Studio 2019 установлена на диске C:

Чтобы не думать о том, как назвать проект, название принято по умолчанию- ArxProject1.

В проекте три каталога:
VS2019(c++)ac2021- проект для Visual Studio 2019 и Acad 2021
ArxLib - библиотеки arx.
common - это для общих модулей в случае, если будут компилироваться исполняемые arx для других версий графического редактора.

Чтобы не возникали проблемы с локальными путями
локальный репозиторий думаю лучше хранить как
C:\GitHub\

Таким образом, после синхронизации с GitHub, локальный путь к проекту должен быть
C:\GitHub\source\VS2019(c++)ac2021\ArxProject1\ArxProject1.sln

До начала работы, думаю, следует установит ObjectARXWizard

Путь для запуска установки (после синхронизации):
C:\GitHub\source\ArxLib\ObjectARX_for_AutoCAD_2021_Win_64bit_dlm\ObjectARXWizard2021.msi

После запуска установки в качестве пути для SDK следует указать:
C:\GitHub\source\ArxLib\ObjectARX_for_AutoCAD_2021_Win_64bit_dlm\
(если указать другой путь - наверняка не найдет библиотеки при компиляции)

Для возможности отладки командой _appload в список автозагрузки Autocad должен быть добавлен файл:
C:\GitHub\source\VS2019(c++)ac2021\ArxProject1\x64\Debug\ArxProject1.arx

Для тестирования реализована только команда (из командной строки) -
MYHELLO
которая приветствует мир.

Желающим присоединиться к проекту можно пробовать устанавливать GitHub и тестировать возможности запуска и компиляции.

Можно также посмотреть настройки проекта, покритиковать, может что-то поправить надо.

Последний раз редактировалось nickname2019, 30.09.2021 в 09:56.
nickname2019 вне форума  
 
Непрочитано 30.09.2021, 09:54
#142
trir


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


почитай про gitignore - Debug'у в репозитории не место
для примера https://github.com/triroakenshield/R...ter/.gitignore
trir вне форума  
 
Автор темы   Непрочитано 30.09.2021, 10:05
#143
nickname2019


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


Цитата:
Сообщение от trir Посмотреть сообщение
почитай про gitignore - Debug'у в репозитории не место
для примера https://github.com/triroakenshield/R...ter/.gitignore
Спасибо. Я первый раз столкнулся с репозиторием. Самые большие файлы исключил, про debug "в целом" не догадался.
Поправлю.
Также добавил библиотеки objectarx в полном составе. Это, наверно, не самая удачная идея, но это должно обеспечить совместимость путей + простое обновление в случае, если библиотека поменяется.
nickname2019 вне форума  
 
Непрочитано 30.09.2021, 10:06
#144
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844


А в проекты на плюсах NuGet пакеты не подтягиваются, что ли?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 30.09.2021, 10:12
#145
trir


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


Цитата:
А в проекты на плюсах NuGet пакеты не подтягиваются, что ли?
ObjectArx можно скачать только с сайта доски
trir вне форума  
 
Автор темы   Непрочитано 30.09.2021, 10:18
#146
nickname2019


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


Если кто хочет участвовать - подключайтесь к редактированию (заодно можно с c++ разобраться, кто не знает).
Там как-то запрос на GitHube делать вроде надо.
nickname2019 вне форума  
 
Непрочитано 30.09.2021, 10:26
#147
trir


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


можно из VS изменения сразу на GitHub отправлять
trir вне форума  
 
Автор темы   Непрочитано 30.09.2021, 10:49
#148
nickname2019


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


Если возникают проблемы с компиляцией - прошу сообщать.
nickname2019 вне форума  
 
Непрочитано 30.09.2021, 11:42
#149
румата


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
А в проекты на плюсах NuGet пакеты не подтягиваются, что ли?
Крнечно нет. В том числе и поэтому я был против плюсов для автокада
румата вне форума  
 
Автор темы   Непрочитано 30.09.2021, 11:50
#150
nickname2019


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


Цитата:
Сообщение от румата Посмотреть сообщение
Крнечно нет. В том числе и поэтому я был против плюсов для автокада
Я просто не работал с #Net.

Планируется:
на objectarx будет писаться только интерфейсная часть (взаимодействие с граф. редактором), а расчетные процедуры могут быть запакованы в *.dll и подключены к #Net. На c++ оказывается проще брать и модифицировать сторонний исходный код (в основном математика написана на c++).
Кроме того, отдельные модули можно писать на #Net, если кому-то так удобнее.

Если кто-то желает создать интерфейсную часть на #Net, я не против. Код можно писать параллельно.
Нужно создать второй каталог и в нем решение на #Net. Потом гитхабом синхронизируем с основным каталогом. На #Net я не смогу эффективно писать.

Если кто-то желает создать проект на других языках - также можно создать другой каталог и в нем работать.
nickname2019 вне форума  
 
Непрочитано 30.09.2021, 11:56
#151
trir


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


под NET API можно и на плюсах писать
trir вне форума  
 
Автор темы   Непрочитано 30.09.2021, 11:59
#152
nickname2019


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


Цитата:
Сообщение от trir Посмотреть сообщение
под NET API можно и на плюсах писать
При создании проекта я не включил поддержку #Net и не включил поддержку COM.

Думаете, нужно пересоздать решение и включить поддержку Net и COM?
(в настройках проекта наверно будет очень трудно это поменять).

Пока, наверное, оставлю как есть.
nickname2019 вне форума  
 
Непрочитано 30.09.2021, 12:03
#153
trir


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


можно сделать отдельные проекты
trir вне форума  
 
Непрочитано 30.09.2021, 12:25
#154
Сергей812


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


Техзадание опосля напишите?
Сергей812 вне форума  
 
Непрочитано 30.09.2021, 12:31
#155
румата


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


Цитата:
Сообщение от trir Посмотреть сообщение
под NET API можно и на плюсах писать
Можно, но тем, кто привык к написанию в нативном си(пусть даже с плюсами) такое написание будет ударом "по дых"
румата вне форума  
 
Непрочитано 30.09.2021, 13:05
#156
Нубий-IV

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


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

VS 2019 Community не желает собирать даже пустой проект (в котором есть только точка входа в dll и ничего больше) - идет сплошная ругань на SDK-шные заголовки (они предназначены в оригинале для VS 2008). Например, "fabs не найдена в пространстве имен std". Если по советам из гугла сделать "std { #include <stdlib> }", то появляется противоположное требование - "operator new не может быть переопределен в std". И таких сообщений там сотни.

VS 2008 Express до сих пор доступна для скачивания с сайта Microsoft. И пустая DLL под автокад, с заголовками из ObjectARX 2011, в ней собирается без проблем. Но для нанокада опять фокусы с заголовками SDK - как минимум в одном из них классы определяются с использованием CStringW; в других есть ссылки на "afxwin.h". Как я понимаю, это значит, что для сборки нужна VS 2008 Professional, с библиотеками ATL и MFC. Можно в opensource-проекте иметь ссылки на коммерческие библиотеки, которые сегодня, похоже, и купить уже нельзя?
Нубий-IV вне форума  
 
Автор темы   Непрочитано 30.09.2021, 13:44
#157
nickname2019


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


Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
Может, это просто кривые руки... Я сижу под бесплатным пятым нанокадом, и автокадовская версия мне не интересна. Я проверил возможность собрать это все под нанокад в двух версиях студии. В обоих случаях до моего кода дело не доходит - сотня ошибок набирается прямо в SDK, и компиляция останавливается.
VS 2019 Community не желает собирать даже пустой проект (в котором есть только точка входа в dll и ничего больше) - идет сплошная ругань на SDK-шные заголовки (они предназначены в оригинале для VS 2008). Например, "fabs не найдена в пространстве имен std". Если по советам из гугла сделать "std { #include <stdlib> }", то появляется противоположное требование - "operator new не может быть переопределен в std". И таких сообщений там сотни.
VS 2008 Express до сих пор доступна для скачивания с сайта Microsoft. И пустая DLL под автокад, с заголовками из ObjectARX 2011, в ней собирается без проблем. Но для нанокада опять фокусы с заголовками SDK - как минимум в одном из них классы определяются с использованием CStringW; в других есть ссылки на "afxwin.h". Как я понимаю, это значит, что для сборки нужна VS 2008 Professional, с библиотеками ATL и MFC. Можно в opensource-проекте иметь ссылки на коммерческие библиотеки, которые сегодня, похоже, и купить уже нельзя?
Я думаю, что мы можем включать что угодно.
Мы пишем не бесплатное, а максимально открытое рабочее ПО.
Или мы напишем полностью открытое и бесплатное, но не рабочее ПО.
Nanocad раньше предоставлял бесплатную лицензию на Nanocad для разработчиков ПО (и SDK). Вы уверены, что нет смысла переходить на Nanocad более новой версии?
P.S.
Может проект перезамутить на Nanocad 10?

Последний раз редактировалось nickname2019, 30.09.2021 в 14:33.
nickname2019 вне форума  
 
Непрочитано 30.09.2021, 15:00
#158
Нубий-IV

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


Цитата:
Сообщение от nickname2019 Посмотреть сообщение
Может проект перезамутить на Nanocad 10?
Зачем? Все равно его надо собирать под разные версии. В моем наборе команд была папка с исходниками (одна-единственная, неизменная), и несколько файлов VS-2008.sln, VS-2012.sln, VS-2017.sln, VS-2018.sln, VS-2019.sln, в каждом из которых были свои настройки для акадов с 2005 по 2019, в каждом по несколько проектов, для всех поддерживаемых версий. Тут можно сделать так же, только еще и под нанокад настройки добавятся (теоретически они должны те же исходники переваривать, только я это еще не проверил, у меня студии не Pro).

Вот так оно должно выглядеть: "Портирование С++ приложений на платформу nanoCAD, использование страниц свойств проекта"

Последний раз редактировалось Нубий-IV, 30.09.2021 в 15:10.
Нубий-IV вне форума  
 
Автор темы   Непрочитано 30.09.2021, 15:10
#159
nickname2019


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


Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
Зачем? Все равно его надо собирать под разные версии. В моем наборе команд была папка с исходниками (одна-единственная, неизменная), и несколько файлов VS-2008.sln, VS-2012.sln, VS-2017.sln, VS-2018.sln, VS-2019.sln, в каждом из которых были свои настройки для акадов с 2005 по 2019, в каждом по несколько проектов, для всех поддерживаемых версий. Тут можно сделать так же, только еще и под нанокад настройки добавятся (теоретически они должны те же исходники переваривать, только я это еще не проверил, у меня студии не Pro).
Оставляем пока проект как есть? Нубий-IV сможет в нем участвовать?
Может версию студии понизить?
nickname2019 вне форума  
 
Непрочитано 30.09.2021, 15:26
#160
Нубий-IV

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


Цитата:
Сообщение от nickname2019 Посмотреть сообщение
Может версию студии понизить?
Исходники должны оставаться одними и теми же (по крайней мере, так обещают). А студию каждый может использовать какую хочет. Точнее, какую надо под свою версию акада или нанокада (у меня, видимо, обязана быть 2008pro). Просто можно накидать несколько файлов SLN рядом, каждый под свою версию студии.

В моих командах единственная вещь, которую пришлось сделать в исходниках - поставить в общем заголовке условную компиляцию, подменяющую один-единственный тип данных, который при смене версий в ObjectARX поменялся:

Код:
[Выделить все]
 #if	defined(RK_2008x32) || \
	defined(RK_2009x32) || \
	defined(RK_2010x32) || \
	defined(RK_2008x64) || \
	defined(RK_2009x64) || \
	defined(RK_2010x64)
		#define AdInt32 long
#endif
И в файлах проектов был задан соответствующий DEFINE для каждой версии. И тут должно быть что-то такое же.

Кстати, по ссылке выше описано использование страниц свойств для быстрой подмены настроек проекта. Если у каждого будет своя локальная страница свойств, можно не привязываться и к конкретным путям и версиям ObjectARX или автокада. А возможность один локальный файл настроек не синхронизировать наверняка есть у гитхаба.

Последний раз редактировалось Нубий-IV, 30.09.2021 в 15:37.
Нубий-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