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

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

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

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


Последний раз редактировалось zamtmn, 25.07.2018 в 11:55.
Просмотров: 79177
 
Автор темы   Непрочитано 21.09.2018, 21:33
#301
zamtmn

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


>>надо просто включить приметив точку, и программно определять, если внутри блока есть точка то привязываемся только к ней
Это совсем неуправляемый способ, так можно делать уже сейчас
zamtmn вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 21.09.2018, 22:25
#302
veb86

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


Цитата:
Сообщение от zamtmn Посмотреть сообщение
Это совсем неуправляемый способ, так можно делать уже сейчас
Не сразу допер что ты имел в виду в сообщении №297, еще раз перечитал, потупил, подумал,перечитал и полностью с тобой согласен. Твой варианты гораздо интересней
veb86 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 01.10.2018, 22:12
1 | #303
zamtmn

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


Попримитивное отключение привязок заработало
Миниатюры
Нажмите на изображение для увеличения
Название: osnapmode.png
Просмотров: 126
Размер:	29.0 Кб
ID:	206636  
zamtmn вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 01.10.2018, 22:24
#304
bigden


 
Регистрация: 05.08.2008
Сообщений: 535


программа только на английском?
bigden вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 01.10.2018, 22:50
#305
veb86

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


Цитата:
Сообщение от bigden Посмотреть сообщение
программа только на английском?
У Zcad-a есть языковая проблема чисто русский язык выбрать не получится все равно часть интерфейса останется на английском, и на оборот.
Как по мне, так русского в ней больше
veb86 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 02.10.2018, 04:42
#306
zamtmn

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


bigden
Система локализации есть, но в актуальном состоянии она не поддерживается

----- добавлено через ~56 мин. -----
Похоже значение по умолчанию для контроля привязок лучше сделать asowner, сейчас сделал on, но это выльется в большое редактирование бд блоков, с asowner редактировать гораздо меньше
zamtmn вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 03.10.2018, 08:25
#307
zamtmn

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


Ну и чтоб совсем было хорошо добавил переменную DWG_OSModeControl:Boolean - false: "попримитивное" управление привязками отключено - работает как в автокаде, true: учитываются настройки каждого примитива. Для удобного переключения - ассоциировал с ней кнопку "OSC" в статусбаре
zamtmn вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 03.10.2018, 08:52
#308
Marsikus

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


По умолчанию - false?
__________________
energokot.blogspot.com
Marsikus вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 03.10.2018, 09:12
#309
zamtmn

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


Да, но ее значение мохраняется между сесиями при сохранении параметров
zamtmn вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 03.10.2018, 11:12
#310
frostmourn


 
Регистрация: 23.04.2015
Сообщений: 140


А есть готовая сборка? По ссылкам не нашёл.
frostmourn вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 03.10.2018, 11:55
#311
zamtmn

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


https://yadi.sk/d/pP2dWkj_wg2MHw еще не тестировалось. С проблемами или сюда или на багтрекер гитхаба
zamtmn вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 08.10.2018, 07:07
#312
zamtmn

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


Появилась возможность назначать разные сочетания клавиш на действия, например кусок конфига cad\menu\actionscontent.xml:
Код:
[Выделить все]
      <ZAction Name="ACN_COPY" Command="Copy" Img="copy" Caption="Copy" Hint="Copy primitives" SecondaryShortCuts="C"/>
      <ZAction Name="ACN_MOVE" Command="Move" Img="move" Caption="Move" Hint="Move primitives" ShortCut="CTRL+SHIFT+M" SecondaryShortCuts="M"/>
      <ZAction Name="ACN_ROTATE" Command="Rotate" Img="rotate" Caption="Rotate" Hint="Rotate primitives" ShortCut="CTRL+SHIFT+R" SecondaryShortCuts="R"/>
      <ZAction Name="ACN_SCALE" Command="Scale" Img="scale" Caption="Scale" Hint="Scale primitives" ShortCut="CTRL+SHIFT+S" SecondaryShortCuts="S"/>
параметр ShortCut - основной шорткат который будет отображаться в меню, SecondaryShortCuts несколько дополнительных шорткатов, разделенных "|". Пока активна командная строка, буквенные шорткаты крадутся ей, если ее закрыть - работать становится очень удобно. Надо делать механизм быстрого дисабленья-енабленья командной строки и гдето подглядеть грамотную раскладку хоткеев.
zamtmn вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 08.10.2018, 08:06
#313
Marsikus

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



В AutoCAD? )
__________________
energokot.blogspot.com
Marsikus вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 08.10.2018, 08:08
#314
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 35,961


Цитата:
Сообщение от Marsikus Посмотреть сообщение
В AutoCAD? )
Вообще-то топик посвящен не ACAD'у.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 08.10.2018, 09:11
#315
Marsikus

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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Вообще-то топик посвящен не ACAD'у.
Я про подглядеть.
__________________
energokot.blogspot.com
Marsikus вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 08.10.2018, 12:01
#316
zamtmn

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


В автокаде все давно подсмотрено. режим работы с командной строкой, хоткеи вида ctrt+...
Я хочу "быстро отключаемую-включаемую" командную строку, чтоб и однобуквенные хоткеи работали, и чтото ввести можно было - например длину полярной трассировки.
Естественно это настраиваемо - хочешь как в автокаде работаешь, хочешь както похитрее

Также есть мысли по двухбуквенным хоткеям, напрямую lcl их неподдерживает, но сделать должно быть нетрудно. Вопрос только нужно ли. Двухбуквенные хоткеи например в кукаде во все поля, но имхо неочень удачно
zamtmn вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 11.10.2018, 01:44
#317
zamtmn

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


Отключение комстроки https://imgur.com/a/0vbQz89
zamtmn вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 14.10.2018, 23:41
#318
zamtmn

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


Приделал управление контролем "множественного" запуска программы - параметр "Unique instance" на вкладке "Система"
True - Запуск новых копий программы не происходит, параметры запуска (например открываемый файл) отдаются уже запущеной копии с "Unique instance"=true
False - каждый раз запускается новая копия программы
Данный параметр можно принудительно отключить параметром запуска в комстроке 'NOTCHECKUNIQUEINSTANCE' или 'NCUI'

Фича просилась давно, но было лень делать механизм раннего сохранения/чтения параметров - существующий работает гораздо позже чем осуществляется проверка повторного запуска. Сделал, появился новый конфигурационный файл - zcad/rtl/config.xml

----- добавлено через ~23 ч. -----
Проверил возможность сборки на Lazarus2.0RC1&FPC3.0.4 - работает! Теперь можно не плясать с бубном собирая транковые версии компилятора и среды, а поставить релиз (на данный момент релиз кандидат) лазаруса и потыкать палочкой зкад))
единственное, изза отсутствия в fpc 3.0.4 пакета компилятора rtl-generics пришлось его оформить лазарус пакетом.
соответственно при использовании fpc 3.0.4 нужно доставить
cad_source\other\rtl-generics_for_FPC304 - это rtl-generics из транка
при использовании транкового компилятора нужно поставить
cad_source\other\rtl-generics_dummy\ - это пустая заглушка чтоб лазарус не ругался
чуть более подробная инструкция по сборке - https://github.com/zamtmn/zcad#build-from-source

Теперь буду стараться поддерживать совместимость с релизами, пока в транках не появится ченить вкусного))
zamtmn вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 23.10.2018, 08:50
1 | #319
zamtmn

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


https://github.com/zamtmn/zcad/releases/tag/0.9.8.4 Релиз с последними изменениями
zamtmn вне форума вставить имя Обратить внимание модератора на это сообщение  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание CAD программы с нуля

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

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

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

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