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

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

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

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

Всем привет!
В свободное время делаю для себя небольшую 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, HATCH
  • некоторые потуги автоматизации слаботочных разделов проекта
Cтраничка программы на SourceForge
Cтраничка программы на GitHub
Cтраничка программы на Ohloh

Программа пишется на паскале, компилируется в Lazarus/FPC. Исходный код открыт и лежит в SVN репозитории Git репозитории
Текущую сборку программы можно взять тут, но лучше тут (более менее свежие сборки для Windows_x86 и для Linux_x86_64, другие - стареханькие). Для работы требуется аппаратная поддержка OpenGL на целевом компе
Также программу можно собрать самомтоятельно, для этого понадобятся:
  • релизный Lazarus версии не менее 2.0.10 на базе FPC версии не менее 3.2

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

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

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


Последний раз редактировалось zamtmn, 09.09.2022 в 20:53.
Просмотров: 209271
 
Автор темы   Непрочитано 23.11.2013, 01:10
#21
zamtmn

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


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

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,537


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

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


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

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,537


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

КМД
 
Регистрация: 26.03.2013
Я ЖЫВУ В РОССИИ.
Сообщений: 511
<phrase 1=


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

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


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

КМД
 
Регистрация: 26.03.2013
Я ЖЫВУ В РОССИИ.
Сообщений: 511
<phrase 1=


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


 
Регистрация: 09.12.2008
Сообщений: 4,663


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


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


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

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


Цитата:
Сообщение от 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,559
<phrase 1=


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

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

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


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

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


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

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


ХЗ, по мне так шибко тяжеловато разбираться в твоих исходниках.
Если бы хотя бы по более было бы задокументированно, то еще ничего.
Ну или хотя бы примитивов было по больше....
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Автор темы   Непрочитано 26.11.2013, 12:22
#35
zamtmn

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


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

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

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


Меня интересовали как ты помнишь сплайны и 3d фейсы
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Автор темы   Непрочитано 26.11.2013, 12:56
#37
zamtmn

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


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

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

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


Цитата:
Сообщение от zamtmn Посмотреть сообщение
3dфейс - есть и это имхо очень простой примитив, не сложнее линии
Мне нужен был многоточечный а не простой....
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Автор темы   Непрочитано 26.11.2013, 14:28
#39
zamtmn

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


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

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


НУ по всей видимости так....
Пока ничего добавлять не надо, я сейчас под автокадом работаю...
Другое дело что было бы свободное время, можно было бы попробовать сделать универсальную прогу для создания расчетных схем и просмотра результатов...
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание CAD программы с нуля

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

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