dwg.ru forum rss xml
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание CAD программы с нуля

Создание CAD программы с нуля

Версия для печати
 
Ответ
Опции темы Поиск в этой теме
Непрочитано 19.11.2013, 00:29 3 |
Создание CAD программы с нуля
zamtmn
 
КИПиА
 
Tyumen
Регистрация: 21.03.2005
Сообщений: 1,362
Отправить сообщение для zamtmn с помощью ICQ

zamtmn вне форума Вставить имя

Всем привет!
В свободное время делаю для себя небольшую CAD программу - всегда было интересно как это работает внутри.
На данный момент есть следующие наработки:
  • Довольно быстрый OpenGL рендеринг чертежа
  • Кроссплатформенность (Windows/Linux, x86/x64, win/gtk/qt)
  • поддержка подмножества DXF версии 2000
  • поддержка SHX, TTF шрифтов
  • поддержка типов линий
  • поддержка примитивов POINT, LINE, CIRCLE, POLYLINE, LWPOLYLINE, ARC, ELLIPSE, INSERT, TEXT, MTEXT, 3DFACE, SOLID, SPLINE
  • некоторые потуги автоматизации слаботочных разделов проекта
Cтраничка программы на SourceForge
Cтраничка программы на Ohloh

Программа пишется на паскале, компилируется в Lazarus/FPC. Исходный код открыт и лежит в SVN репозитории
Текущую сборку программы можно взять тут (более менее свежие сборки для Windows_x86 и для Linux_x86_64, другие - стареханькие). Для работы требуется аппаратная поддержка OpenGL на целевом компе
Также программу можно собрать самомтоятельно, для этого понадобятся:
  • Lazarus версии не менее 1.6, FPC версии не менее 3.0
  • SVN клиент чтоб скачать исходные коды (под Windows лучше всего подойдет TortoiseSVN, мануал)
Если Вы соберете zcad для Windows64 также понадобится 64 разрядная версия библиотеки GLU32.DLL (системная не подходит, т.к. старой версии) - прилагаю к этому посту, необходимо будет положить ее рядом с ексешником, заменив идущую в дистрибутиве zcad`а 32 разрядную версию GLU32.DLL

Программа не требует установки и не пишет\читает ничего в системные папки (за исключением TEMP) Под windows не допускаются кирилические (и другие) символы в пути к программе (в путях к dxf файлам допускаются), lunux версия такой болезнью не страдает.

Для запуска доступны следующие ключи командной строки:
  • NLL - отключение загрузки файла докинга окон, окна открываются непристыкованными, но докинг работает
  • SI - полное отключение докинга, зкад работает в однооконном режиме (очень недоделанном)
  • UPDATEPO - отключение закрузки локализации, будет запущена английская версия. Также в этом режиме доступна команда обновления файлов локализации
  • NOSPLASH - отключение показа окна загрузки
  • путь/к/файлу.dxf - открыть указанный файл

Любые замечания/предложения приветствуются!

Вложения
Тип файла: zip glu.zip (903.8 Кб, 242 просмотров)


Последний раз редактировалось zamtmn, 29.03.2016 в 01:33.
Просмотров: 48646
 
Непрочитано 29.08.2017, 03:42
#221
bigden


 
Регистрация: 05.08.2008
Сообщений: 460


Цитата:
Сообщение от ProjectMaster Посмотреть сообщение
вот сейчас пытаюсь в с++ посчитать осадку свайного поля под 4-х секционным 18-этажным зданием на основе текстовых файлов SCAD'а
это сетка из скада или свою генерируете?
bigden вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 29.08.2017, 06:34
| 1 #222
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 10,012


Цитата:
Сообщение от ProjectMaster Посмотреть сообщение
Может быть, плюнуть и переделать программу на что-то более масштабируемое и универсальное (типа ObjectArx на c++).
На мой взгляд, на авттокадах/нанокадах/брикскадах и т.д. ваша программа могла бы найти больше пользователей.
Много чего "может быть". Советовать можно что угодно, и советы могут быть справедливыми.

Но zamtmn делает программу для себя. По своей концепции. Именно "с нуля". Не взял какие-нибудь CAD-компоненты, которые есть для Delphi. Ради интереса и для "унутреннего употребления". При этом он уже приобрел бесценный опыт. И с другими делится. Да, что-то не получается, где-то не туда пошел, вернулся. Ничего страшного.

Конечно, этот проект никогда не будет коммерчески успешным, так он и не задумывался таким.

Удачи, zamtmn.
ShaggyDoc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 29.08.2017, 07:53
#223
ProjectMaster


 
Регистрация: 21.08.2017
Сообщений: 128


Цитата:
Сообщение от zamtmn Посмотреть сообщение
Для такой задачи формошлепство в делфи - идеальный случай. срр тут ненужное усложнение.
Но это имхо и офтоп
На самом деле - нет. Object Pascal не поддерживается напрямую производителями основных CAD. Большинство алгоритмов, которыми можно воспользоваться, написаны на c++. Некоторые функции можно просто скопировать и не переводить на Object Pascal.
C++ я выучил за месяц, читая книжку в автобусе по дороге на работу. Время, потраченное на изучение C++ с лихвой экономиться при разработке.
У c++ есть система шаблонов типа vector и система перегружаемых операторов для классов, которые в разы упрощают работу с кодом. Для c++ есть современные компиляторы, которые позволяют работать на 64-разрядной архитектуре, поэтому для больших задач скорость работы программы на с++ больше возможности увеличить.

P.s.
Я не сравниваю возможности Net и чистого c++, так как не специалист в Net. Возможно, Net предпочтительнее c++.

----- добавлено через ~6 мин. -----
Цитата:
Сообщение от bigden Посмотреть сообщение
это сетка из скада или свою генерируете?
Сваи моделируются связями односторонней жесткости в SCAD. В Скаде создается группа из элементов односторонней жесткости с именем, соответствующей геологической колонки.
Выводится txt файл расчетной схемы и txt файл нагрузок на связи конечной жесткости.

Потом осадка каждой сваи считается методом послойного суммирования как для условного фундамента с учетом влияния соседних условных фундаментов. Нагрузка от грунта при выемке котлована не учитывается. Для каждой сваи-пружинки считается откорректированный коэффициент жесткости.

Программа формирует txt файл расчетной схемы с учетом откорректированных жесткостей свай,которые получены методом послойного суммирования.

----- добавлено через ~8 мин. -----
Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Удачи, zamtmn.
Присоединюсь.

Последний раз редактировалось ProjectMaster, 29.08.2017 в 08:28.
ProjectMaster вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 29.08.2017, 08:39
#224
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,362
Отправить сообщение для zamtmn с помощью ICQ


Да у С комюнити больше, да это промстандарт... Но алгоритмы они одинаковые что на паскале, что на с
С++ непомерно сложнее и просто си и паскаля, толку от его выучивания за месяц нет никакого - нужна практика. Это что за алгоритмы на нем пишут))?

>>У c++ есть...
В современном паскале это тоже всё есть.
холивар с[++] vs pascal завязываем, или открываем другую тему. Тут мне гораздо интересней услышать претензии к новому интерфейсу

ShaggyDoc, ProjectMaster
Спасибо!
zamtmn вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 29.08.2017, 10:29
| 1 #225
veb86

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


Цитата:
Сообщение от ProjectMaster Посмотреть сообщение
Прошу понять меня правильно. Эйнштейну приписывают слова (примерно), что талант заключается в умении приложить все усилия для достижения цели, а гений состоит в умении отказаться от этой цели (несмотря на все усилия) в пользу другой. Может быть, плюнуть и переделать программу на что-то более масштабируемое и универсальное (типа ObjectArx на c++).
На мой взгляд, на авттокадах/нанокадах/брикскадах и т.д. ваша программа могла бы найти больше пользователей.
ZCAD прекрасен тем что он открыт и бесплатен, конечно все что будет реализоваться, будет направлено в основном на развитие САПРа в целом и в сторону слаботочных сетей и силового электроснабжения. Я в проектирование уже пользуюсь zcad-ом, и уже ощутил ускорение проектирования, конечно полноценно оформить чертеж тяжело(изза нехватки некоторых команд и некоторых примитивов). Жаль что у меня пока мало времени на развитие zcad-а, думаешь все, что завтра сяду за кодинг и снова что то происходит, и опять все откладываешь. Когда в zcad-е появится централизация, станет совсем здорово. Очень много задумок, даже странно что другие инженерные коммуникации не занимаются развитием своих направлений в zcad-е
И самое главное что греет, это что ZCAD ты можешь использовать всюду, твои модули навсегда с тобой. И в конце концов на дворе 2к17, а у человечества нет полноценного опенсоурсного када!

zamtmn-у респект и уважуха!
veb86 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 08.10.2017, 01:58
#226
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,362
Отправить сообщение для zamtmn с помощью ICQ


Ну и раз пошла такая пьянка - еще "релизик"
Навигатор устройств научился обновляться вместе с изменениями на чертеже, но пока кнопку ручного обновления на всякий случай оставляю))
Миниатюры
Нажмите на изображение для увеличения
Название: Навигатор.png
Просмотров: 49
Размер:	158.0 Кб
ID:	194464  
zamtmn вне форума вставить имя Обратить внимание модератора на это сообщение  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание CAD программы с нуля

 VetCAD++
Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

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

Быстрый переход

|| Главная || Каталог САПР || Тендеры || Публикации || Объявления || Биржа труда || Download || Галерея ||
|| Библиотека || Кунсткамера || Каталог предприятий || Контакты || Файлообменник || Блоги ||