Skip to content

This is project, the meaning of which is to work with the api AutoCAD app. Details can be found in the ReadMe.

Notifications You must be signed in to change notification settings

boogiedk/section-converter-plugin

Repository files navigation

Section-Converter-Plugin-For-AutoCAD

Приветствую, {userName}!

Данная статья является описанием модификации для работы с чертежами, а именно - плагин для AutoCAD 2018. В ней будут описаны основные функции, интерфейс и результат работы плагина. Так же я кратко расскажу о реализации некоторых функций, особенностях разработки и проблемах.

Для начала опишу принцип загрузки и общую концепцию работы плагина.

1. Загрузка плагина при старте работы AutoCAD.

Чтобы плагин загружался при запуске автокада, я добавил в папку с acad.exe - "acaddoc.lsp" - файл с параметрами загрузки dll сборки, который автоматически подгружается службами автокада.

Код lisp файла выглядел примерно так:

   	(
    defun-q HwdStartup()
    (c:AcadLayoutsCountLoad)
   	)  
   	(
    	defun c:AcadLayoutsCountLoad()
   (setq echo (getvar "cmdecho"))
   (setvar "cmdecho" 0)
  (setq fd (getvar "filedia"))
  (setvar "filedia" 0)
   (command "_netload" "path to dll file")
    (setvar "filedia" fd)
   (setvar "cmdecho" echo)
	)

  (setq S::STARTUP (append S::STARTUP HwdStartup))

2. Загрузка кнопок в ленту автокада и их краткий обзор.

После успешного подключения dll файла и запуска автокада, пользователь увидит новую вкладку в ленте с инструментами - Конвертер сечений.

Ribbon

В ленте можно увидеть 4 вида точек - Ось, Отметка, Черная и Красная (все они представляют из себя блоки с сущностями(entity) точка (DbPoint) + текст (MText)) -, настройки точек и настройка размера окна (область, из которой экспортировать блоки) и кнопку, которая позволяет сформировать документацию (в формате xml, dwg, tsv) из данных о точках на чертеже.

3. Создание точек и как это выглядит в действии.

Собственно, каждая точка имеет индивидуальную семантику. Например, Осевая точка требует ввод в формате "ПК_123+12.345" и может быть только единственной на чертеже, а так же имеет уникальный цвет, когда Отметка имеет формат - "53м". Предназначения точек и суть плагина я опишу чуть далее.

Points axisInfo

4. Экспорт данных и формирование документации.

Когда на чертеже установлен набор точек (1 осевая, 1 отметка, >2 черных и любое множество красных), можно приступить к запуску экспорта данных. Процесс экспорта состоит из 3 этапов: 1) Создание data.xml и settings.xml;
2) Используя подпрограмму (proccess запускает .exe файл), которая в свою очередь формирует list.tsv);
3) Используя вторую подпрограмму (proccess запускает .exe файл), которая в свою очередь формирует blueprint.dwg;

export

Если все условия соблюдены, создается папка в формате <имя чертежа>_время_создания.

В папке создается такой набор выходных данных:

  • data.xml
  • settings.xml
  • <имя_чертежа>list<имя чертежа_время_создания>.tsv
  • <имя_чертежа>blueprint<имя чертежа_время_создания>.dwg

Чуть подробнее о каждом:

  • data.xml - хранит в себе данные о точках: позиция, номер. data

  • settings.xml - хранит в себе данные о чертеже и выходных файлов: имена, пути, форматы.

  • <имя_чертежа>list<имя чертежа_время_создания>.tsv - хранит в себе данные о чертеже, и формирует входные данные для подпрограммы.

  • <имя_чертежа>blueprint<имя чертежа_время_создания>.dwg - чертеж с графическим выводом результатов.

result

5. Подпрограммы

Подпрограммы были сделаны не мною, поэтому исходного кода прикрепить не могу. Но, сами .exe можно найти в директории:

  • section-converter-plugin-for-AutoCAD/resourceReadme/SectionConverterPlugin/

Они позволяют формировать .tsv и .dwg файлы - конечные файлы. Вызываются при формировании data.xml и settings.xml.

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

Особенности разработки

Проект включил в себя несколько паттернов, правил разработки, ошибок именований, пренебрежений к безопаности и в целом множество тех вещей, которые многие себе не позволяют. Из использованных технологий я могу выделить: LINQ, Windows Forms, C# и собственно сам AutoCAD API. Было много событий, свойств и наследования. Проект насыщен различными приемами, которые позволили построить достаточно гибкую архитектуру, благодаря которой, я избежал дублирования кода.

Какие проблемы решает плагин?

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


Таким образом, плагин позволяет быстро выполнять задачи пользователей, экономя время и энергию для более важных вещей.

About

This is project, the meaning of which is to work with the api AutoCAD app. Details can be found in the ReadMe.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages