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

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

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

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


Последний раз редактировалось zamtmn, 29.03.2016 в 01:33.
Просмотров: 65351
 
Автор темы   Непрочитано 27.04.2018, 13:40
#261
zamtmn

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


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

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


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


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

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


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


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


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


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


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

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

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


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

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


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


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

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


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

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


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

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,380
Отправить сообщение для 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
Пенза
Сообщений: 70


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

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

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


Цитата:
Сообщение от Marsikus Посмотреть сообщение
Кстати, в под Мак, раз упомянули его, проект собирается?
Любопытства ради поставил хакинтош. Как и предпологал - зкад собрался, но незаработал (работал, при попытке создать чертеж - вылет).
МакОсь увидел впервые в жизни, впечатления - отвратные. Линукс наще всё!
zamtmn на форуме вставить имя Обратить внимание модератора на это сообщение  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание CAD программы с нуля

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

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

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

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