Wiki
Clone wikiprofile-via-points / Home
#Profile via points
readme.md
© Андрей Бушман, 2010
Email: bushman.andrey@gmail.com
##ЗАДАЧА
- Реализовать механизм экспорта координат точек из
AutoCAD
вMS Excel
. - Предоставить возможность выполнения обратной задачи - на основе координат, полученных из
MS Excel
, создать вAutoCAD
3D-полилинию и, в случае необходимости, пронумеровать её точки.
##Технические требования
Предоставленное решение должно работать в перечисленных ниже версиях операционной системы и AutoCAD:
- Windows XP SP3, Windows 7 SP1
- AutoCAD 2009 SP3 - 2016
###Описание принципов работы
* Пользователям нужно иметь возможность указывать различные точки, координаты которых, в свою очередь, должны собираться в таблицу координат во внешний CSV
-файл. Полученный файл можно открывать в MS Excel
и работать с ним. Все координаты должны сохраняться в пользовательской (т.е. не в мировой) системе координат.
* Проектировщик должен иметь возможность указать имя и место расположения создаваемого CSV
-файла. В таблице должны содержаться номера точек и их координаты. При запуске команды, пользователь должен иметь возможность указать с какого номера следует начинать нумерацию точек.
* Должна присутствовать возможность автоматического внесения изменений в уже существующий CSV
-файл. Т.е. пользователь запускает команду проставления нумерации точек в AutoCAD
, но при этом может потребовать не создавать новый CSV
-файл, но вносить изменения в уже существующий, при этом указав, в какой именно файл. Этот функционал нужен для случая, когда пользователю потребуется исправить значения некоторых, созданных ранее точек (т.е. указать их заново).
* Когда проектировщик указывает точку, в этом месте должен отображаться текст с номером точки. При этом пользователь должен иметь возможность передвинуть текст, и/или повернуть его на некоторый угол, в то же время не теряя информации о том, с какой именно точки взята координата.
* При наведении курсора мыши на текст, должна появляться подсказка с указанием координат.
* При нажатии комбинаций клавиш Ctrl
+ левая кнопка мыши, должен открываться CSV
-файл с соответствующей таблицей координат и при этом в таблице должна автоматически выделяться та строка, которая содержит координаты выбранной в редакторе AutoCAD
точки.
* Должна присутствовать возможность выполнения обратной задачи - считывание данных из таблицы координат CSV
-файла или из внешнего MDB
-файла базы данных MS Access
, и вычерчивания по ним 3D-полилинии с нумерацией точек или без нумерации - в зависимости от желания пользователя.
* При наведении курсора мыши на созданную 3D-полилинию должна появляться подсказка с полным именем CSV
-файла, по которому она создана.
* При нажатии комбинаций клавиш Ctrl
+ левая кнопка мыши, должен открываться CSV
-файл, в котором содержится таблица координат, на основании которой выполнено построение.
* Проектировщик должен иметь возможность указать сколько угодно CSV
-файлов за один раз и в результате для каждого из них должно быть выполнено своё построение.
* Должна иметься возможность настройки того, какое определение блока AutoCAD
следует использовать для формирования отметок, а так же какой атрибут в составе блока должен содержать в себе информацию о номере точки.
* Должна иметься возможность указания точности (количество знаков послед запятой) считываемых координат точек.
* Должна присутствовать возможность в настройках программы указывать, на каком слое следует размещать создаваемые вхождения блоков.
####Примечание
Обязательно следует учитывать тот факт, что текущая система координат в AutoCAD
нередко не является глобальной (WCS
).
##РЕШЕНИЕ
Решение представлено в виде набора команд AutoCAD
, перечисленных ниже. Откомпилированную версию решения можно скачать с её страницы: https://bitbucket.org/Andrey-Bushman/profile-via-points/downloads.
###Системные требования
- Windows XP SP3, Windows 7 SP1.
- .Net Framework 3.5 SP1 (если AutoCAD 2009).
- AutoCAD 2009 SP3, 2010, ..., 2016.
####Загрузка расширения в AutoCAD
#####AutoCAD 2009-2011
- Скопируйте каталог
pvp.bundle
на локальный диск вашего компьютера. - В командной строке
AutoCAD
запустите команду_.NETLOAD
и в открывшемся диалоговом окне укажите файл.\Contents\Win\pvp.R17.2.dll
.
#####AutoCAD 2012-2016
Вы можете воспользоваться способом, описанным выше применительно к AutoCAD 2009-2011
, с тем лишь исключением, что для AutoCAD 2013
и более новых версий нужно вместо pvp.R17.2.dll
загружать pvp.R19.0.dll
. Однако, начиная с AutoCAD 2012
, достаточно лишь скопировать каталог pvp.bundle
в один из следующих каталогов (в этом случае AutoCAD
2012-2016 будет загружать пакет автоматически, при первом вызове любой команды, определённой в составе этого пакета):
%APPDATA%/Autodesk/ApplicationPlugins
.%ProgramData%/Autodesk/ApplicationPlugins
(кромеAutoCAD 2012
).%ProgramFiles%/Autodesk/ApplicationPlugins
.
####КОМАНДЫ, ОПРЕДЕЛЁННЫЕ В СОСТАВЕ БИБЛИОТЕКИ
InsertNumber
- команда добавляет в чертёж нумерацию в виде вхождений блоков, при этом указанные точки вставки дополнительно оформляются в виде таблицы, сохраняемой во внешнийCSV
-файл.JoinPoints
- команда вычерчивает 3D-полилинию по точкам, считываемым изCSV
-файла. Точки считываются и проставляются в том порядке, в котором они записаны вCSV
-файле.JoinPointsMdb
- команда вычерчивает 3D-полилинию по точкам, считываемым изMDB
-файла (файл базы данных MS Access). Точки считываются и проставляются в том порядке, в котором они записаны вCSV
-файле.
##Видео
Команды, определённые в составе приложения и используемые в видео, переименованы. Выше по тексту указаны их текущие имена.
##Скрины
Диалоговое окно создания нового csv
-файла (аналогично выполняется пересохранение):
Результат работы команды:
Содержимое полученного в процессе работы csv
-файла:
###Пример работы команды, выполняющей извлечение точек из таблицы координат, с прорисовкой 3D-полилинии и простановкой нумерации точек.
Диалоговое окно выбора csv
-файлов, на основании которых должны быть выполнены построения (в примере выбрано три файла):
Результат работы команды
Если вызвать гиперссылку для вхождения блока - открывается csv
-файл источника и выделяется строка, содержащая координаты вставки того вхождения, для которого вызвана гиперсссылка:
Для того, чтобы построить трассу по данным, считанным из базы данных MS Access
, нужно вызвать команду JoinPointsMdb
. Откроется такое диалоговое окошко:
В нём отмечаете интересующие вас трассы, жмёте кнопку "выполнить построение", отвечаете на вопрос в командной строке и получаете нужный результат.
В mdb
-файле присутствует форма @_frmMain
, с помощью которой удобно работать с информацией, сохраняемой в базу данных. Выглядит это так:
Нумерацию указываемых пользователем точек выполняю с помощью блока, в котором значение номера точки хранится в его атрибуте. Точка вставки блока является той точкой, которую укажет пользователь. При этом атрибут можно перемещать/поворачивать с помощью ручек (блок динамический). Визуально примеры вхождений блока выглядят так:
На скрине показано 5 вхождений блока, в которых произведены различные изменения - перемещён/повёрнут текст атрибута. Изначально, при вставке вхождение имеет вид как для точки с номером 1 (крайняя левая).
В редакторе блока определение выглядит так:
Updated