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

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

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

Версия для печати
 
Ответ
Опции темы Поиск в этой теме
Непрочитано 19.11.2013, 00:29 5 |
Создание CAD программы с нуля
zamtmn
 
КИПиА
 
Tyumen
Регистрация: 21.03.2005
Сообщений: 1,394
Отправить сообщение для 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траничка программы на GitHub
Cтраничка программы на Ohloh

Программа пишется на паскале, компилируется в Lazarus/FPC. Исходный код открыт и лежит в SVN репозитории Git репозитории
Текущую сборку программы можно взять тут (более менее свежие сборки для Windows_x86 и для Linux_x86_64, другие - стареханькие). Для работы требуется аппаратная поддержка OpenGL на целевом компе
Также программу можно собрать самомтоятельно, для этого понадобятся:
  • Lazarus версии не менее 1.6 на данный момент нужна последняя версия Lazarus из trunk, FPC версии не менее 3.0.4
  • 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 Кб, 272 просмотров)


Последний раз редактировалось zamtmn, 25.07.2018 в 11:55.
Просмотров: 72497
 
Автор темы   Непрочитано 27.04.2018, 13:40
#261
zamtmn

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


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

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


Цитата:
Сообщение от Сергей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
Сообщений: 2,907


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

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


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


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


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


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


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

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

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


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

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


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


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

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


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

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


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

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


Разделил проект. папка 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
Пенза
Сообщений: 87


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

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

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


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

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


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

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

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


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

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


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

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

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


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

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


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

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


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

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


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

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

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

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

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

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

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