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

Вернуться   Форум 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 Кб, 558 просмотров)


Последний раз редактировалось zamtmn, 09.09.2022 в 20:53.
Просмотров: 208397
 
Автор темы   Непрочитано 27.04.2018, 13:40
#261
zamtmn

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


Нет, не планирую. Из планов только поддержка следующего релиза Lazarus, чтоб можно было собрать зкад просто установив лазаря без плясок с сборкой девелоперских версий
zamtmn вне форума  
 
Непрочитано 27.04.2018, 13:43
#262
veb86

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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
так просто две версии - обычный и электрикал.


я несколько лет писал на дельфи вспомогательные задачи, но сейчас давно перешел на C# и придется заново вспоминать язык дельфи и его конструкции - прежде чем начать разбираться в самом коде.

Кстати, Майкрософт похоже решила не отставать и Linux сегмент тоже охватить .Net.
Мне нравился C#.Net удобно библиотек много, SharpDevelop хорошая среда. Но насколько мне известно Mono C# линуксовый не успевает за windows-ким.
C# значительно медленнее Pascal-я. Пересесть с С# на Pascal было не трудно...

Цитата:
Сообщение от Marsikus Посмотреть сообщение
Не планируете на C# переписывать с нуля?
Смысл нулевой, тупо сделать программу медленнее. И такое чувство, что после переписи, народ прям хлынет развивать ее. Все так же будут сидеть и говорить, ну мы то в автокаде работаем!. Вот если бы вы смогли библиотеки Теигха подключить.

Цитата:
Сообщение от Marsikus Посмотреть сообщение
Не шучу, довольно часто бывает, что проект за годы превращается в такие дебри, что легче переписать.
Обожаю таких переписчиков, запал которых хватает на год, потом приходит осознание что наверное лучше делать рефакторинг существующего кода и переписывать узкие мета, а не проект целиком
veb86 вне форума  
 
Непрочитано 27.04.2018, 13:45
#263
trir


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


Цитата:
Скорее всего JS генерит HTML
нет
trir вне форума  
 
Непрочитано 27.04.2018, 13:47
#264
veb86

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


Цитата:
Сообщение от zamtmn Посмотреть сообщение
Нет, не планирую. Из планов только поддержка следующего релиза Lazarus, чтоб можно было собрать зкад просто установив лазаря без плясок с сборкой девелоперских версий
А я вот не знаю уже, ты постоянно в проекте используешь передовые разработки. Это может тебе связать руки. Уж лучше в транк с Zcad-ом тупо складывать рабочий Lazarus архивом и мелкий хелп по его запуску. Когда перестает компилится ZCAD то лазарь в транке обновлять. Но сейчас это не актуально, я как понимаю кроме нас ZCAD, ни кто не компилит.
veb86 вне форума  
 
Непрочитано 27.04.2018, 13:53
#265
hentan


 
Регистрация: 22.01.2013
Сообщений: 1,266
Отправить сообщение для hentan с помощью Skype™


Offtop:
Цитата:
Сообщение от trir Посмотреть сообщение
webgl часть спецификации html5
Был не прав, согласен, пардон за оффтоп. Если рассматривать html не как отдельный язык разметки, а как часть спецификации, где и все остальное будет
__________________
"Тщательное планирование – ключ к безопасному и быстрому путешествию."
Одиссей (с)
hentan вне форума  
 
Непрочитано 27.04.2018, 14:02
#266
Сергей812


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


Цитата:
Сообщение от veb86 Посмотреть сообщение
Но насколько мне известно Mono C# линуксовый не успевает за windows-ким.
сколько у нас проектных фирм, сидящих на линуксе? Именно на линуксе, а не на маке.

Цитата:
Сообщение от veb86 Посмотреть сообщение
C# значительно медленнее Pascal-я.
"тормоза" больше зависит от степени прямизны рук программиста, имхо)
Сергей812 вне форума  
 
Автор темы   Непрочитано 27.04.2018, 19:48
#267
zamtmn

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


с# - это временно

Переписывать в дань моде? спасибо... проблем с паскалем я в рамках данного проекта я не испытываю никаких
zamtmn вне форума  
 
Непрочитано 27.04.2018, 19:59
#268
Сергей812


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


Цитата:
Сообщение от zamtmn Посмотреть сообщение
с# - это временно
ну да, с 2002 года только вышел "в люди" .NET Framework)
Сергей812 вне форума  
 
Непрочитано 27.04.2018, 22:15
#269
Marsikus

software quality engineer
 
Регистрация: 19.09.2009
Харьков, Украина
Сообщений: 451


Кстати, в под Мак, раз упомянули его, проект собирается?
__________________
energokot.blogspot.com
Marsikus вне форума  
 
Автор темы   Непрочитано 27.04.2018, 22:38
#270
zamtmn

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


lcl умеет carbon и cocoa виджесеты, мне неначем попробовать. Скорее всего при сборке возникнут непринципиальные проблемы, понадобится отладка и платформенные воркароунды.
Я проверял (неглубоко) zcad на qt4, qt5, gtk2, win виджесетах - работает, но имеются небольшие оговорки
zamtmn вне форума  
 
Автор темы   Непрочитано 03.05.2018, 06:21
#271
zamtmn

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


Разделил проект. папка cad (где раньше были рантайм файлы и куда ложится скомпилированный бинарник) теперь изначально пустая, чтоб ее наполнить сделал 2 батника: zcad.bat и zcadelectrotech.bat. данные батники копируют содержимое environment\runtimefiles\ в cad\ и настраивают исходники на соответствующее использование. также пришлось сделать настраиваемую загрузку гуя - появился файл components\stage0.cmd который выполняется до создания интерфейса программы и где можно прописать какое меню и набор тулбаров использовать.
Структура папок после разделения выглядит так:
Код:
[Выделить все]
|-cad                   (тут будет сформирован дистрибутив (батники+компилятор))
|-cad_source            (исходный код)
|-environment
   |-runtimefiles 
      |-common          (тут общие рантайм файлы, батник скопирует их в cad)
      |-zcad            (тут рантайм файлы чистого зкада, батник скопирует их в cad)
      |-zcadelectrotech (тут электротехнические рантайм файлы, батник скопирует их в cad)

Последний раз редактировалось zamtmn, 03.05.2018 в 06:30.
zamtmn вне форума  
 
Непрочитано 04.05.2018, 15:14
#272
veb86

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


Здравствуйте! Я перевел половину своего модуля на новые математические рельсы. По сравнению с видео, изменится не много меню и появится возможность прокладки кабелей сразу на все трассы. Самое главное изменение это внутри кода. Модуль сейчас дорабатывается и скоро сдастся. После этого я очень хочу подружить свой модуль с электрикой (освещение и силовка). На уровне получения однолинейных схем кабельных журналов, возможно еще чего. На данный момент это в целом возможно

Цитата:
Сообщение от veb86 Посмотреть сообщение
- добавить еще пункт к суперлинии, который будет отвечать за тип прокладки в штробе, в ст.тр, в мет лотке и т.д. Естественно с автоматическим добавлением условного обозначения. Плюс сбор всех кабелей и расчет необходимого лотка. Постараюсь учесть и кабели, которые прокладываются по другим трассам. Этот пункт планируется отработать как следует.
Я считаю, что это лучше делать на электрической части.
Теперь переходим к сути сообщения. У меня есть наработанная однолинейная схема электроснабжения, которой я пользуюсь. На ее примере будет удобно сделать автоматическое создание. Но она мне не очень нравится, в ней тоже есть проблемы. Например наличие мест которые нельзя сделать длинными это вызовет наложение(«ВВГнг-LS-3х2,5мм² в ПВХ тр L=30м в штробе L=30м в мет.рв L=30м») даже при том, что указаны диаметры и габаритные размеры изделий. Это расстраивает. Я например не делаю кабельные журналы. Скорее всего кабельный журнал нужен, но оформленный по ГОСТу кабельный журнал жутко не информативен.
На планах в каждом помещении пишу марки светильников, но считаю, что проще ставить циферку и делать ведомость светильников. Так планы будут более свободными
Как Вы оформляете, как Вы выходите из положения. Интересно, в каких местах Вы указываете, как прокладывается тот или иной кабель .
Предлагаю подумать над составом чертежей, обсудить их, и уже после выбрать схемы, которые я заберу в работу, и которые будут генерироваться автоматически.
Вложения
Тип файла: dwg
DWG 2007
СВЕТ-обсуждение.dwg (115.5 Кб, 36 просмотров)
veb86 вне форума  
 
Автор темы   Непрочитано 15.05.2018, 22:52
#273
zamtmn

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


Цитата:
Сообщение от Marsikus Посмотреть сообщение
Кстати, в под Мак, раз упомянули его, проект собирается?
Любопытства ради поставил хакинтош. Как и предпологал - зкад собрался, но незаработал (работал, при попытке создать чертеж - вылет).
МакОсь увидел впервые в жизни, впечатления - отвратные. Линукс наще всё!
zamtmn вне форума  
 
Автор темы   Непрочитано 03.06.2018, 14:58
#274
zamtmn

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


Дошли руки приделать суммарные свойства с подсчетом вхождений в инспекторе. Пока только для имен блоков. потом для всех стилей.
Присутствует возможность фильтровать выбор по данному свойству [-] - исключить данные примитивы из набора,[*] оставить только эти примитивы в наборе.

Единственная закавыка - сейчас работает для набора состоящего только из вхождений блоков (или если его отфильтровать по типу примитивов). Надо сделать чтоб эти свойства попадали в инспектор при нахождении в наборе хотя бы одного целевого примитива
Миниатюры
Нажмите на изображение для увеличения
Название: BlocksByName.png
Просмотров: 133
Размер:	129.4 Кб
ID:	203047  
zamtmn вне форума  
 
Непрочитано 03.06.2018, 17:15
#275
Marsikus

software quality engineer
 
Регистрация: 19.09.2009
Харьков, Украина
Сообщений: 451


Еще и темная тема оформления есть! Круто!
__________________
energokot.blogspot.com
Marsikus вне форума  
 
Автор темы   Непрочитано 04.06.2018, 07:18
#276
zamtmn

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


>>темная тема оформления
это системная тема, так у меня выглядят все приложения. zcad тут непричем))

Последний раз редактировалось zamtmn, 04.06.2018 в 07:47.
zamtmn вне форума  
 
Непрочитано 04.06.2018, 14:50
#277
veb86

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


Проект переехал на https://github.com/zamtmn/zcad
veb86 вне форума  
 
Непрочитано 05.06.2018, 09:19
#278
Marsikus

software quality engineer
 
Регистрация: 19.09.2009
Харьков, Украина
Сообщений: 451


Цитата:
Сообщение от veb86 Посмотреть сообщение
Проект переехал на https://github.com/zamtmn/zcad
Отлично, гитхаб очень удобен. Главное чтобы его мелкомягкие не испортили теперь.
__________________
energokot.blogspot.com
Marsikus вне форума  
 
Автор темы   Непрочитано 05.06.2018, 11:06
#279
zamtmn

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


>>чтобы его мелкомягкие не испортили теперь.
Да, не вовремя получилось. все оттуда, мы туда
zamtmn вне форума  
 
Автор темы   Непрочитано 12.06.2018, 00:08
#280
zamtmn

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


Ьинарники буду выкладывать тоже на гитхабе https://github.com/zamtmn/zcad/relea...4/cad_win32.7z.

Из нового - суммарные свойства для имен блоков, слоев, типов линий, стилей текста. Имена блоков и стили текста появляются в свойствах при наличии хотябы одного блока или (м)текста в выборе. Получилось очень удобно.
Миниатюры
Нажмите на изображение для увеличения
Название: summary.png
Просмотров: 68
Размер:	14.4 Кб
ID:	203429  

Последний раз редактировалось zamtmn, 12.06.2018 в 00:18.
zamtmn вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание CAD программы с нуля

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

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