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

Вернуться   Форум 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.
Просмотров: 208298
 
Непрочитано 17.11.2014, 00:06
#101
gomer

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


Цитата:
Сообщение от zamtmn Посмотреть сообщение
Спецсимволы в тексте основные есть, что добавить?
Я имею ввиду символы заданные как %%число, где число - номер символа в таблице ascii-кодов например %%247 - это "÷", %%169 - "©", если не ошибаюсь...
В размерах хотелось бы видеть хотя бы цвет текста и правильный масштаб, а не по стилю, если размер переопределен. и еще "стрелки", то бишь выноски
насчет атрибутов, я имею ввиду автокадовские, хотелось бы все таки, чтоб они отображались
кстати я когда-то делал формочки для вставки блока и массива, если надо могу скинуть
gomer вне форума  
 
Автор темы   Непрочитано 17.11.2014, 01:07
#102
zamtmn

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


>>%%число
добавил в тестовом режиме. в автокаде это работает насколько я понял только для текстов, в мтекстах данная последовательность не работает. Спецсимволы у меня поддерживались и до этого в виде \U+число

>>насчет атрибутов, я имею ввиду автокадовские, хотелось бы все таки, чтоб они отображались
могу сделать только в виде преобразования в текст, примитив пока не планирую добавлять

>>кстати я когда-то делал формочки для вставки блока и массива, если надо могу скинуть
что за формы? интересно, скинте. Но лучше бы форму редактора размерных стилей))
zamtmn вне форума  
 
Непрочитано 17.11.2014, 01:55
#103
gomer

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


как то так, формы конечно не доделанные, но хоть что-то
а насчет размеров, я уже говорил, делайте общий менеджер стилей, это значительно сэкономит ресурсы
Вложения
Тип файла: zip project1.zip (172.6 Кб, 48 просмотров)
gomer вне форума  
 
Автор темы   Непрочитано 17.11.2014, 07:22
#104
zamtmn

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


Давайте так - я добавляю формы в zcad (под лиценцией LGPL2, авторство за Вами), делаю увязку с движком (интеграция в интерфейс, получение имен блоков, указание точек на чертеже, создание вставок блоков), Вы доводите формы внутри zcad`а.
zamtmn вне форума  
 
Непрочитано 17.11.2014, 19:30
#105
gomer

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


Цитата:
Сообщение от zamtmn Посмотреть сообщение
Вы доводите формы внутри zcad
С этого момента поподробнее... вообще эта черепаха такая медленная...
gomer вне форума  
 
Автор темы   Непрочитано 17.11.2014, 20:17
#106
zamtmn

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


В первом посте я примерно расписал что нужно чтоб поучавствовать в разработке:
- ставите TortoiseSVN, checkout`ите исходники зкада себе, в дальнейшем update`те последние изменения, прошедшие с момента checkout`а
- регаетесь на шаманграде, добавляетесь в разработчиков зкада, с этого момента вы с помошью TortoiseSVN можете commit`ить свои изменения которые вы внесли у себя в репозиторий на шаманграде

Для компиляции зкада вам понадобятся свежие lazarus и fpc, желательно девелоперские. Вы какими версиями распологаете?

После того как я добавлю ваши формы в зкад - вы открываете zcad.lpi находите их там и дальше делаете что душе угодно, незабывая в моменты когда всё более менее работает комитить проделаное в репозиторий.
zamtmn вне форума  
 
Непрочитано 17.11.2014, 20:21
#107
gomer

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


Цитата:
Сообщение от zamtmn Посмотреть сообщение
Для компиляции зкада вам понадобятся свежие lazarus и fpc,
Поставил себе лазарь 1.1 с fpc2.7.1 x64, но он не работает почему-то... до этого был 1.0.12 но тоже ошибки выдавал при компиляции
gomer вне форума  
 
Автор темы   Непрочитано 17.11.2014, 20:30
#108
zamtmn

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


>> до этого был 1.0.12 но тоже ошибки выдавал при компиляции
этот непойдет, слишком много было изменений в лазаре с тех времен

>>Поставил себе лазарь 1.1 с fpc2.7.1 x64, но он не работает почему-то...
Этот пойдет, я поправлю зкад чтоб он собирался и в вашем 1.1 и в моем 1.3. То что неработает - решаемо, думаю неуказаны какиенибудь пути или еще какаянибудь "мелочь", на что ругается?
zamtmn вне форума  
 
Непрочитано 17.11.2014, 20:33
#109
gomer

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


Код:
[Выделить все]
procedure TmyPOFile.Add(const Identifier, OriginalValue, TranslatedValue,
  Comments, Context, Flags, PreviousID: string; SetFuzzy: boolean = false; LineNr: Integer = -1);
var
   t:boolean;
begin
     t:=self.FAllEntries;
     self.FAllEntries:=true;
     inherited; // здесь останавливается
     self.FAllEntries:=t;
end;
gomer вне форума  
 
Автор темы   Непрочитано 17.11.2014, 20:38
#110
zamtmn

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


т.е. lazarus работает, некомпилится зкад))
Дайте точную версию лазаря, (в окне Abount Lazarus, щелкните правой кнопкой мыши появится меню с возможностью вставить всё нужное в бужер обмена), я откачу своего лазаря до вашей версии и утрясу проблемы
zamtmn вне форума  
 
Непрочитано 17.11.2014, 20:42
#111
gomer

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


Lazarus 1.1 r42508 FPC 2.7.1 x86_64-win64-win32/win64
gomer вне форума  
 
Автор темы   Непрочитано 17.11.2014, 21:24
#112
zamtmn

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


Обновите исходники зкада (при закрытом лазаре, вообще он подхватывает изменения, но малоли) и попробуйте еще раз.

т.к. вы внесли изменения в своюю версию
Код:
[Выделить все]
procedure TmyPOFile.Add(const Identifier, OriginalValue, TranslatedValue,
  Comments, Context, Flags, PreviousID: string; SetFuzzy: boolean = false; LineNr: Integer = -1);
var
   t:boolean;
begin
     t:=self.FAllEntries;
     self.FAllEntries:=true;
     inherited; // здесь останавливается
     self.FAllEntries:=t;
end;
тамже где их внес я, при обновлении будут красные строчки - конфликты. щелкайте на них другой кнопкой мыши и указывайте "resolve as thiers" (или чтото подобное, главное thiers, a не mine), т.е. чтобы к вам пришла моя версия изменений. Конфликты неизбежная штука, когда пользователи одновременно чтото меняют в одном месте, если бы изменения были в разных строках программы - всё было бы ок

Последний раз редактировалось zamtmn, 17.11.2014 в 21:42.
zamtmn вне форума  
 
Непрочитано 17.11.2014, 21:42
#113
gomer

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


я пока еще ничего не менял, просто скопировал папку на рабочий стол
gomer вне форума  
 
Автор темы   Непрочитано 17.11.2014, 21:48
#114
zamtmn

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


Если вы добавили // здесь останавливается при редактировании поста то не меняли, если вписали это в лазаре, потом пытались компилировать или сохранили при выходе - изменения внесены (в вашу копию, не в репозиторий).
В любом случае, страшного ничего нет, на то он и контроль версий, чтоб хоть что откатить хоть до чего. Я просто предупредил про возможность конфликта

>>просто скопировал папку на рабочий стол
Я кстати только сегодня победил русские буквы в путях, еще не тестировал толком. возможно попрежнему неработает.
Старенький лазарь точно будет дуреть от кирилицы в путях))
zamtmn вне форума  
 
Непрочитано 17.11.2014, 21:58
#115
gomer

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


так как добавиться в разработчики?
gomer вне форума  
 
Автор темы   Непрочитано 17.11.2014, 21:59
#116
zamtmn

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


Регистрация на shamangrad.net есть? сообщите мне тамошний ник

----- добавлено через ~4 ч. -----
Формы я добавил - \cad_source\gui\blockinsertwnd.pas и \cad_source\gui\arrayinsertwnd.pas соответственно, команды показа форм TestInsert1_com и TestInsert2_com в модуле \cad_source\commands\gdbcommandsexample.pas
zamtmn вне форума  
 
Непрочитано 18.11.2014, 22:21
#117
gesper

Проектирование разделов ЭО и ЭМ
 
Регистрация: 18.04.2009
Москва
Сообщений: 128


Цитата:
Сообщение от gomer Посмотреть сообщение
я пока еще ничего не менял, просто скопировал папку на рабочий стол
Для доступа на рабочий стол используется путь с русскими буквами - не лучшее место для хранения. Для разработки под zcad нужно чтобы путь был из латинских букв, без русских.
gesper вне форума  
 
Непрочитано 18.11.2014, 23:53
#118
gomer

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


нашел еще пару багов: русские имена блоков отображаются некорректно в инспекторе, при переносе повернутого текста за ручки угол его сбрасывается в 0
gomer вне форума  
 
Автор темы   Непрочитано 19.11.2014, 00:03
#119
zamtmn

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


>>Для разработки под zcad нужно чтобы путь был из латинских букв, без русских.
Будь проклят тот кто придумал локализовать названия системных папок))

>>нашел еще пару багов
так и запишем, поправлю
zamtmn вне форума  
 
Непрочитано 19.11.2014, 00:06
#120
gesper

Проектирование разделов ЭО и ЭМ
 
Регистрация: 18.04.2009
Москва
Сообщений: 128


Цитата:
Сообщение от zamtmn Посмотреть сообщение
Будь проклят тот кто придумал локализовать названия системных папок))
Я не понимаю, чего сложного на конечных функциях работы с файловой системой тебе было вписать UTF8ToSys?
gesper вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание CAD программы с нуля

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

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