Skip to content

Latest commit

 

History

History
123 lines (64 loc) · 8.38 KB

README.md

File metadata and controls

123 lines (64 loc) · 8.38 KB

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 на одну только установку блоков ушло бы не меньше минуты.


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