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
 
Автор темы   Непрочитано 23.11.2013, 01:10
#21
zamtmn

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


ETCartman
Мануал написать можно (ну или хорошо прокоментировать исходники, что имхо лучше), но только при заинтересованности в нем. просто так, в ящик - неохота.
>>Но хотелось бы взглянуть на код ZCADа и может быть что то позаимствовать оттуда для себя
ZCAD в принципе получился довольно сложен и по началу будет трудно врубиться что-где смотреть, также всё написано в одиночку - грязно и мало коментариев. Такчто если соберешся и с лету не разберешся - стукни в аську или в мыло. Я прекрасно понимаю что эти косяки нужно исправлять, но всё сразу не получится, по мере интереса.
zamtmn вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 23.11.2013, 15:22
#22
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,552
Отправить сообщение для gomer с помощью ICQ Отправить сообщение для gomer с помощью Skype™


Плюс к тому же желательно видеть историю изменений, а комментирование исходников - это вообще обязательная практика
gomer вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 23.11.2013, 16:47
#23
zamtmn

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


Историю изменений можно отследить в свн клиенте, вплоть до строк которые менялись
zamtmn вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 23.11.2013, 17:59
#24
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,552
Отправить сообщение для gomer с помощью ICQ Отправить сообщение для gomer с помощью Skype™


ну, я имел ввиду history.txt
gomer вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 23.11.2013, 19:07
#25
hexD

КМД
 
Регистрация: 26.03.2013
Я ЖЫВУ В РОССИИ.
Сообщений: 508
Отправить сообщение для hexD с помощью ICQ


посыл темы в чем? я чето не догнал...
hexD вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 23.11.2013, 19:11
#26
zamtmn

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


hexD
в первом посте снизу под спойлером
zamtmn вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 23.11.2013, 19:27
#27
hexD

КМД
 
Регистрация: 26.03.2013
Я ЖЫВУ В РОССИИ.
Сообщений: 508
Отправить сообщение для hexD с помощью ICQ


Если позволите один ненавязчивый вопрос - ZCad работает "на" SQLite?
hexD вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 23.11.2013, 20:00
#28
ETCartman

Ansys, SolidWorks, etc
 
Регистрация: 09.12.2008
Texas
Сообщений: 4,457


Цитата:
Сообщение от gomer Посмотреть сообщение
Плюс к тому же желательно видеть историю изменений, а комментирование исходников - это вообще обязательная практика
это обязательная когда вы работаете программистом и пишете за почасовую оплату. комментирование иногда отнимает больше времени чем написание кода на самом деле. когда вы пишете для хобби то это просто усложняет работу. по хорошему должно быть руководство разработчика которое описывает общую работу программы (такой достаточно сложной как ZCAD), отдельные ее функциональные части и так далее. Вообще для открытого софта это важная веха - получить устойчивый и распределенный коллектив разработчиков. при таком раскладе проект не заглохнет в случае если у автора пропадет интерес.
ETCartman вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 23.11.2013, 20:07
#29
bahil


 
Сообщений: n/a


Комменты в исходнике обязательны. Не важно "для себя" или "не для себя".
Очень помогают при отладке и модификации.
вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 23.11.2013, 21:22
#30
Serge Krasnikov

Конструктор, инженер-механик
 
Регистрация: 03.10.2003
Новосибирск
Сообщений: 5,453


Цитата:
Сообщение от ETCartman Посмотреть сообщение
Offtop: где взять 3.7 ? На сегодня 5 версия - бесплатная, но лицензия выдается на год
http://www.nanocad.ru/products/download.php?id=371
__________________
Ну какой же я не интеллигент, у меня профессия есть.
Serge Krasnikov вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 24.11.2013, 03:57
#31
zamtmn

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


bahil
>>Комменты в исходнике обязательны. Не важно "для себя" или "не для себя".
не спорю. но по мановению палки коменты в ~100к строк исходников не появятся.
hexD
>>ZCad работает "на" SQLite?
нет. работает сам по себе. в зависимотях тоько OpenGL

Последний раз редактировалось zamtmn, 24.11.2013 в 04:04.
zamtmn вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 25.11.2013, 18:40
#32
YarUnderoaker

Негропроект, инженегр-конструктор
 
Регистрация: 16.02.2008
Черкассы
Сообщений: 663


Заглянул в модули рендера - увидел glVertex, glScale
Сейчас когда все (даже Intel) железо поддерживает OpenGL 3.3 (шейдеры и вершинные буфера) основывать рендер на столь устаревших и непродуктивных методам очень недальновидно
YarUnderoaker на форуме вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 25.11.2013, 21:21
#33
zamtmn

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


>>увидел glVertex, glScale
Ниче это не . Я за версиями гоняться не собираюсь, максимум glVertex заменится на VBO, но он есть и в 1.х в виде расширения. Применительно к кад в новых версиях нет ничего (может плохо смотрел), наоборот, имею большое желание сделать вариант рендера вообще без GL.
zamtmn вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 25.11.2013, 22:01
#34
DEM

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


ХЗ, по мне так шибко тяжеловато разбираться в твоих исходниках.
Если бы хотя бы по более было бы задокументированно, то еще ничего.
Ну или хотя бы примитивов было по больше....
__________________
Шаг 12й......
Мои публикации
DEM вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 26.11.2013, 12:22
#35
zamtmn

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


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

>>Ну или хотя бы примитивов было по больше....
недавно появились размерные примитивы - повернутый и выровненный, доделываю радиальный и диаметральный. Чего конкретно не хватает?
zamtmn вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 26.11.2013, 12:30
#36
DEM

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


Меня интересовали как ты помнишь сплайны и 3d фейсы
__________________
Шаг 12й......
Мои публикации
DEM вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 26.11.2013, 12:56
#37
zamtmn

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


3dфейс - есть и это имхо очень простой примитив, не сложнее линии
сплайн появился но только по управляющим точкам, с контрольными я работать не умею(( - там очень хитрая математика всплывает. В автокаде насколько я понял и контрольные точки и направления начала и конца - это надстройка над управляющими точками. Во всяком случае созданый в автокаде по контрольным точкам и направлению сплайн будет верно отображаться в зкаде.
По сути у меня для сплайнов сделана полурабочая заглушка - показываются, редактируются но какието серъезные действия с ними упираются в математику, требуется либо реализовывать эту математику (мне не по силам) либо прилаживать чтото типа OpenNURBS.
Лично мне сплайны не интересны и в зкаде они появились для обкатки типов линий на криволинейных объектах, как самый сложный случай этих криволинейных объектов

Последний раз редактировалось zamtmn, 26.11.2013 в 13:08.
zamtmn вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 26.11.2013, 14:11
#38
DEM

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


Цитата:
Сообщение от zamtmn Посмотреть сообщение
3dфейс - есть и это имхо очень простой примитив, не сложнее линии
Мне нужен был многоточечный а не простой....
__________________
Шаг 12й......
Мои публикации
DEM вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 26.11.2013, 14:28
#39
zamtmn

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


ЕМНИП в 3дфейсе 3 или 4 вершины, если больше это уже не 3дфейс а чтото другое.
Тебе нужен был тесселятор, в зкаде он недавно появился в виде тесселятора TTF шрифтов на основе GLU, могу оформить его отдельным классом - умеет тесселировать любые полигоны с дырками
zamtmn вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 26.11.2013, 14:31
#40
DEM

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


НУ по всей видимости так....
Пока ничего добавлять не надо, я сейчас под автокадом работаю...
Другое дело что было бы свободное время, можно было бы попробовать сделать универсальную прогу для создания расчетных схем и просмотра результатов...
__________________
Шаг 12й......
Мои публикации
DEM вне форума вставить имя Обратить внимание модератора на это сообщение  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание CAD программы с нуля

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

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

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

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