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

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

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

Ответ
Поиск в этой теме
Непрочитано 19.11.2013, 00:29 6 |
Создание CAD программы с нуля
zamtmn
 
КИПиА
 
Tyumen
Регистрация: 21.03.2005
Сообщений: 1,559

Всем привет!
В свободное время делаю для себя небольшую 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 Кб, 568 просмотров)


Последний раз редактировалось zamtmn, 09.09.2022 в 20:53.
Просмотров: 210305
 
Непрочитано 02.03.2023, 17:12
#461
trir


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


Цитата:
Не могли бы Вы дать ссылки на проекты САПР, создаваемые с помощью C# и WPF/WinForms, если таковые имеются и Вам известны?
https://github.com/xBimTeam/XbimWindowsUI
trir вне форума  
 
Автор темы   Непрочитано 03.03.2023, 02:35
#462
zamtmn

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


Встречалась еще читалка двг https://github.com/DomCR/ACadSharp насчет качества - хз
zamtmn вне форума  
 
Автор темы   Непрочитано 30.03.2023, 01:48
#463
zamtmn

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


Релиз 0.9.11.0
-тёмная тема для windows
-расширение extdrSmartTextEnt для текстовых примитивов внутри устройств
zamtmn вне форума  
 
Непрочитано 15.04.2023, 14:56
#464
Нубий-IV

Инженер-философ
 
Регистрация: 24.04.2019
Хабаровск
Сообщений: 1,841


Цитата:
Сообщение от zamtmn Посмотреть сообщение
так полностью файл без ошибок и не могу записать
Пример из вложения не поможет?

Это DXF, полученный сохранением пустого файла в Автокаде 2000 и его ручной чисткой. Вроде как он минимальный, поскольку уже ничего больше не удаляется. А добавлять в него всякие примитивы или стили можно.

На его основе мы с приятелем когда-то делали малую автоматизацию на С. Я библиотеку функций для записи DXF свалял - линии, тексты, штриховки и т.п., а он уже на ней что-то чертил. Те Автокады, которым мы скармливали результаты, вроде не жаловались.
Вложения
Тип файла: zip minimal_dxf_2000.zip (1.1 Кб, 32 просмотров)
Нубий-IV вне форума  
 
Автор темы   Непрочитано 16.04.2023, 10:29
#465
zamtmn

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


Спасибо!
переосмысление dxf назревает, но пока в далеких планах
zamtmn вне форума  
 
Непрочитано 17.04.2023, 22:09
#466
trir


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


минимальный dxf будет весить < 100 байт
trir вне форума  
 
Автор темы   Непрочитано 17.04.2023, 22:50
#467
zamtmn

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


Цитата:
Сообщение от trir Посмотреть сообщение
минимальный dxf будет весить < 100 байт
Будте любезны
zamtmn вне форума  
 
Автор темы   Непрочитано 05.06.2023, 13:32
#468
zamtmn

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


Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
Пример из вложения не поможет?

Это DXF, полученный сохранением пустого файла в Автокаде 2000 и его ручной чисткой. Вроде как он минимальный, поскольку уже ничего больше не удаляется. А добавлять в него всякие примитивы или стили можно.

На его основе мы с приятелем когда-то делали малую автоматизацию на С. Я библиотеку функций для записи DXF свалял - линии, тексты, штриховки и т.п., а он уже на ней что-то чертил. Те Автокады, которым мы скармливали результаты, вроде не жаловались.
Использовал ваш файл как шаблон поумолчанию. Спасибо!
https://github.com/zamtmn/zcad/commi...fed14a90235fa1
zamtmn вне форума  
 
Непрочитано 05.06.2023, 15:53
1 | #469
Нубий-IV

Инженер-философ
 
Регистрация: 24.04.2019
Хабаровск
Сообщений: 1,841


Завсегда пожалуйста! Тогда уж и пример записи dxf "с нуля без шаблона" пусть будет. Он, правда, на си, а не на паскале. Но порядок записи примитивов оттуда посмотреть можно. Проект под Code::Blocks/GCC, для контроля собирал еще в VS.
  • dxf Базовая библиотека функций записи.
    Собирается первой, на выходе получаются библиотеки для линковки. Функции записи примитивов, словарей и т.п. Структура DXF, описывающая dxf-файл. Писать самодельные структуры для хранения записываемых объектов в памяти было лень, так что в DXF при открытии файла просто создаются еще несколько временных файлов-буферов - под словари, объекты и т.п., и каждый вид данных записывается в свой буфер. А при закрытии файла эти буферы объединяются в один окончательный файл.
  • dxf_dgdp Библиотека стилей, под мою прошлую контору.
    Собирается второй, дает библиотеки для линковки. Использует базовую библиотеку. Тут лежат настроенные размеры, тексты, штриховки и т.п. Единственная функция set_dgdp_styles, собственно, и создает пустой DXF, записывая минимально необходимый набор данных. После ее вызова можно уже чертить.
  • dxf_standard Библиотека стандартных стилей.
    Не помню, доделал я ее или нет. Она должна давать чистый файл, как его создает автокад из своего шаблона по умолчанию. Альтернатива предыдущей библиотеки стилей, собирать и подключать надо одну из двух, по выбору.
  • dxf_test Программа - пример использования библиотеки.
    Собирается последней. Использует две предыдущие библиотеки. В каталоге EXE лежит DXF - результат выполнения программы. Можно посмотреть, что библиотека умеет.
Насколько помню, при записи размеров был прикол. Если смотреть, как их пишет Автокад, то у них должны быть блоки с засечками. Причем засечки еще в каком-то повернутом положении записаны. Я думал, что надолго там застряну. Но, протестировав недоделанную версию, обнаружил, что Автокад восстанавливает отсутствующие засечки сам, если их нет в dxf. С остальными примитивами вообще проблем не было.
Вложения
Тип файла: zip dxf.zip (74.7 Кб, 26 просмотров)
Нубий-IV вне форума  
 
Автор темы   Непрочитано 05.06.2023, 16:10
#470
zamtmn

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


Спасибо, но мне не пригодится.
И должно быть не тут, а на гитхабе))
zamtmn вне форума  
 
Автор темы   Непрочитано 06.09.2023, 09:17
#471
zamtmn

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


Когдато давно начиная делать зкад я мечтал что напишу убийцу еплана и автокад електрикал вместе взятых))

И вот наконец решил заняться возможностью редактирования схем))
Сейчас изучаю конкурентов чтоб подглядеть интересные возможности. Может кто поделится опытом\хотелками?
Миниатюры
Нажмите на изображение для увеличения
Название: nets.png
Просмотров: 150
Размер:	39.9 Кб
ID:	258508  
zamtmn вне форума  
 
Автор темы   Непрочитано 26.09.2023, 08:08
#472
zamtmn

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


Первая схема. глючит но работает))
Миниатюры
Нажмите на изображение для увеличения
Название: sch.jpg
Просмотров: 97
Размер:	157.9 Кб
ID:	258941  
zamtmn вне форума  
 
Автор темы   Непрочитано 29.10.2023, 22:34
#473
zamtmn

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


Приделал возможность "передавать свойства" примитивам попадающим "внутрь других примитивов"
https://imgur.com/F8RqcJx - пример доступа из примитива пожарного извещателя к переменным test и test2 содержащимся в внешних примитивах окружностях
https://imgur.com/gLhBNYE - пример использования данного механизма для навигации в навигаторе устройств - сделанная на коленке экспликация помещений
zamtmn вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание CAD программы с нуля

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

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