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

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

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

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

Всем привет!
В свободное время делаю для себя небольшую 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 Кб, 557 просмотров)


Последний раз редактировалось zamtmn, 09.09.2022 в 20:53.
Просмотров: 208296
 
Автор темы   Непрочитано 03.02.2014, 11:44
#61
zamtmn

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


Очередное "минорное" добовление. с виду не заметно, а реализовать было довольно тяжко))
- изменения примитивов через инспектор объектов теперь undo\redo`тся
zamtmn вне форума  
 
Непрочитано 03.02.2014, 16:55
#62
gomer

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


zamtmn, не нужно менять геометрию по каждому чиху в инспекторе
gomer вне форума  
 
Автор темы   Непрочитано 03.02.2014, 20:43
#63
zamtmn

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


Пожалуй да, сейчас у меня сделано 2 варианта
-по каждому чиху
-по надатию ентера
надо реализовать по ентеру и по потере фокуса
zamtmn вне форума  
 
Непрочитано 12.02.2014, 01:55
#64
ETCartman


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


http://andorra.sourceforge.net/index...ction=features
ETCartman вне форума  
 
Автор темы   Непрочитано 12.02.2014, 15:43
#65
zamtmn

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


Игровые движки для cad бесполезны - под другое заточены

----- добавлено через ~23 ч. -----
Чето пропало желание чтото серъезное делать, только мелочи((
В порядке хваставства - обзавелся монитором 2560х1440 - пришлось увеличить дефолтные шрифты в системе. Интерфейс зкада на увеличеных шрифтах смотрится нормально, единственное пришлось увеличить высоту строк в испекторе. Такчто в новых версиях на обычных разрешениях инспектор будет выглядеть "жирно", для возвращения прежнего вида нужно уменьшить параметр "Object inspector row height" на вкладке "интерфейс" инспектора, старое значение параметра 21. или поправить файл /rtl/sysvar.pas заменив строку
Код:
[Выделить все]
INTF_ObjInspRowH:=31
на
Код:
[Выделить все]
INTF_ObjInspRowH:=21
zamtmn вне форума  
 
Непрочитано 17.02.2014, 21:52
#66
ETCartman


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


http://sourceforge.net/projects/free...Version%202.6/
делфи
ETCartman вне форума  
 
Автор темы   Непрочитано 18.02.2014, 00:39
#67
zamtmn

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


ETCartman
Спасибо за ссылку. В сети встречается довольно много похожих программ как серъезных, так и совсем простых, большинство из них я уже смотрел как устроены. К сожалению ничего интересного подчерпнуть до сих пор неполучилось - разве что как образцы оформления кода (но и тут у меня свои тараканы - нелюбовь к дизайнеру, классам, пропертям...)
zamtmn вне форума  
 
Непрочитано 18.02.2014, 02:00
#68
ETCartman


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


там может быть можно вытащить экспорт модели в IGES
вообще это узкоспециализированная программа для расчета корпусов судов (геометрия, гидростатика, сопротивление). В принципе простая конечно - все пляшет от параметрической модели.
ETCartman вне форума  
 
Автор темы   Непрочитано 18.02.2014, 10:08
#69
zamtmn

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


>>там может быть можно вытащить экспорт модели в IGES
Зачем он?
zamtmn вне форума  
 
Непрочитано 18.02.2014, 10:28
#70
ETCartman


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


ну это как бы уже настоящий cad формат. хотя в чертильном смысле он мало чего значит - скорее обмен геометрией. для расчетов например
ETCartman вне форума  
 
Автор темы   Непрочитано 18.02.2014, 11:04
#71
zamtmn

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


В смысле настоящий 3d формат? дело не столько в формате, сколько в примитивах возможных в данном формате и спосабах работы с ними. Основной у меня пока dxf - соответственнно всё и пляшет от него - примитивы, стили и т.д. Добавлять другой формат - получится не полноценная реализация, а некоторое "пересечение" добавляемого формата и dxf.
Т.е. сделать экспорт существующих в зкаде примитивов и стилей кудалибо большого труда не составит (возможно с потерями), а полноценная реализация довольно проблематична.
Также написание полноценных 3д примитивов - в одиночку для меня невыполнимая задача. Огромную роль играет мотивация - интересно мне чтото - оно появляется легко и непринужденно... пытаюсь сделать "план развития" - не особо интересные вещи так и остаются в txt файле)) ИМХО всякие фичи должны делаться заинтересованными людьми, тут даже деньги не помогут как личная заинтересованность.
zamtmn вне форума  
 
Автор темы   Непрочитано 28.02.2014, 14:25
#72
zamtmn

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


Появился новый режим выделения - кнопка SN над инспектором объектов. В этом режиме при выделении устройства\кабеля\трассы автоматически "довыделяются" устройства с такимже именем. Удобно при внесении изменений в уже выполненную связку схема структурная-схема подключений-план расположения.
zamtmn вне форума  
 
Непрочитано 12.03.2014, 21:11
#73
ETCartman


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


А вот между прочим попробовал qcad и пришел к крамольному выводу что хотя они и не пытались создать прямой клон типа A9CAD
тем не менее пользоваться им на порядок удобней, а все несоответствия осваиваются очень быстро. Как плюс - проф версия (со всеми версиями dwg и CNC) стоит смешные копейки
(в бесплатной как и у вас - dxf2000). Конечно это сделано для простых чертежей, но по моему упрощения там вполне разумны.
в конечном итоге самые великие инженерные вещи созданы в доавтокадовскую эпоху, на кульмане, а уж возможности кульмана данная программа перекрывает
ETCartman вне форума  
 
Автор темы   Непрочитано 12.03.2014, 22:35
#74
zamtmn

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


Последняя версия qcad порадовала - наконецто появился инспектор объектов.
Но имхо всеравно не очень юзабельна - нет полярной трассировки, типов линий, размерных стилей - это то что сразу бросается в глаза... а главное тормозит(( Возможности кульмана конечно давно перекрыты, но для быстрого интуитивно понятного черчения - еще далеко
zamtmn вне форума  
 
Автор темы   Непрочитано 14.06.2014, 14:46
#75
zamtmn

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


Давно не копал зкад - копил энтузиазм))
Накопил и решил поковыряться в сторону "мультирендерности", т.е организовать возможность выбора различных API для графической системы. Почемуто всегда считал что автокад при отключеном ускорении использует для рисования GDI+, в инете куча хвалебных статей по этому интерфейсу. Попробовал и обломался - скорость GDI+ на порядок меньше GDI при выводе линий.
Или я чтото делаю нетак, или за старость интерфейса микрософт лишила его хардварной акселерации... Cделал небольшой тестик http://sourceforge.net/projects/zcad...t.zip/download - простое рисование случайных линий аредствами GDI, GDI+ и AGG. Буду благодарен если обладатели WindowsXP запостят сюда его результаты (циферки под первой и второй панелью, AGG не интересует, с ним всё ясно). Также интересуют результаты от обладателей интегрированных видеокарт и ATI\AMD
zamtmn вне форума  
 
Непрочитано 15.06.2014, 03:20
#76
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,402
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
OpenGL driver info: Intel Intel(R) HD Graphics 2000 3.1.0 - Build 9.17.10.3517
Draw 10000 random lines
Canvas: 13msec
GDIPlus: 456msec
AGG: 762msec
OpenGL: 2msec
Но у меня W7 x64
Александр Ривилис вне форума  
 
Непрочитано 15.06.2014, 12:13
#77
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,843


Цитата:
OpenGL driver info: Intel Intel(R) HD Graphics 4.0.0 - Build 10.18.10.3282
Draw 10000 random lines
Canvas: 30msec
GDIPlus: 888msec
AGG: 1409msec
OpenGL: 1msec
Win8x64
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 15.06.2014, 14:46
#78
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,569


Цитата:
OpenGL driver info: ATI Technologies Inc. AMD Radeon HD 7700 Series 4.2.11733 Compatibility Profile Context
Draw 10000 random lines
Canvas: 23msec
GDIPlus: 928msec
AGG: 1580msec
OpenGL: 1msec
win7 x64
Boxa вне форума  
 
Непрочитано 15.06.2014, 14:55
#79
swell{d}

гадание на конечно-элементной гуще
 
Регистрация: 31.05.2006
Düsseldorf
Сообщений: 7,611


Цитата:
OpenGL driver info: NVIDIA Corporation GeForce 8600 GT/PCIe/SSE2 3.3.0
Draw 10000 random lines
Canvas: 25msec
GDIPlus: 757msec
AGG: 1022msec
OpenGL: 0msec
win8 x32
__________________
.: WikiЖБК + YouTube :.
swell{d} вне форума  
 
Непрочитано 15.06.2014, 16:09
#80
gomer

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


Цитата:
OpenGL driver info: NVIDIA Corporation GeForce GT 630/PCIe/SSE2 4.2.0
Draw 10000 random lines
Canvas: 21msec
GDIPlus: 685msec
AGG: 1184msec
OpenGL: 0msec
win7 x64
gomer вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание CAD программы с нуля

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

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