Найти в Дзене

Строим полилинию в AutoCAD по координатам из таблицы Excel

Добрый день!
Возникла недавно простая задача: построить в AutoCAD полилинию по координатам из таблицы Excel. Знаю, что можно написать программу на AutoLISP (или найти готовую), но дело осложнялось тем, что создать полилинию надо было в AutoCAD LT, который, как известно, не поддерживает программирование. После недолгого изучения вопроса решение было найдено. Делюсь.
Задача: в таблице Excel содержатся координаты точек. Необходимо по этим точкам создать полилинию в AutoCAD. При этом, формат файла Excel может быть разным в зависимости от того, откуда получены данные (результат лазерного сканирования, топосъемка, таблица координат от контрольно-измерительной машины и пр.)
Решение: сначала штатными функциями Excel преобразовать координаты в вид X.X,Y.Y, скопировать массив координат в буфер обмена, затем в AutoCAD запустить команду ПЛИНИЯ (_PLINE) и подставить значения координат из буфера.
Предлагаю пошаговую инструкцию. Открываем таблицу Excel.
В нашем случае в таблице каждая координата
Оглавление

Добрый день!
Возникла недавно простая задача:
построить в AutoCAD полилинию по координатам из таблицы Excel.

Знаю, что можно написать программу на AutoLISP (или найти готовую), но дело осложнялось тем, что создать полилинию надо было в AutoCAD LT, который, как известно, не поддерживает программирование. После недолгого изучения вопроса решение было найдено. Делюсь.

Задача: в таблице Excel содержатся координаты точек. Необходимо по этим точкам создать полилинию в AutoCAD. При этом, формат файла Excel может быть разным в зависимости от того, откуда получены данные (результат лазерного сканирования, топосъемка, таблица координат от контрольно-измерительной машины и пр.)

Решение: сначала штатными функциями Excel преобразовать координаты в вид X.X,Y.Y, скопировать массив координат в буфер обмена, затем в AutoCAD запустить команду ПЛИНИЯ (_PLINE) и подставить значения координат из буфера.

Предлагаю пошаговую инструкцию.

Подготовка данных в Excel

Открываем таблицу Excel.

В нашем случае в таблице каждая координата точки записана в отдельной ячейке

-2

ВАЖНО! В AutoCAD координаты вводятся в формате X.X,Y.Y - т.е. дробные части координат отделяются друг от друга точкой, а сами координаты  - запятой!

Т.к. в нашем случае в таблице Excel дробные части отделены запятой, то необходимо заменить их на точки. Для этого на ленте перейдем на вкладку
Главная ➤ панель Редактирование Заменить.

В появившемся окне
Найти и заменить в качестве параметра Найти вводим запятую, в качестве Заменить на - точку и нажимаем кнопку Заменить все

-3

В результате все числа в таблице будут приведены к нужному нам формату

-4

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

Движемся дальше. Теперь необходимо разрозненные координаты X и Y объединить в одну запись в ячейке. Для этого можно использовать стандартные функции Excel, например,
СЦЕПИТЬ или ОБЪЕДИНИТЬ.

В соседнем столбце вводим формулу 
=СЦЕПИТЬ(A1;",";B1)

В этой форуме A1 и B1 - адреса ячеек с координатами, "," - символ, который будет вставлен между ними.

-5

UPD: в комментариях предложили еще ввести параметр _none для отключения привязки. В этом случае значение формулы будет таким  =СЦЕПИТЬ("_none ";A1;",";A1)

Перетаскиваем маркер заполнения ячеек для того, чтобы скопировать формулу во все ячейки столбца. В итоге получаем готовую таблицу координат.

-6

Если для объединения вы будете использовать функцию ОБЪЕДИНИТЬ, то формула будет следующая =ОБЪЕДИНИТЬ(",";ИСТИНА;A1;B1)

Главное, на что нужно обратить внимание: в результате преобразований мы должны получить в ячейке запись вида X.X,Y.Y.

Выделяем все полученные ячейки с координатами и копируем их содержимое в буфер обмена.

-7

Строим полилинию в AutoCAD

Запускаем AutoCAD или AutoCAD LT.

Запускаем команду
ПЛИНИЯ (_PLINE) и в командную строку вставляем содержимое буфера обмена

-8

Полилиния готова

-9

Заключение

Как видите, многие задачи можно упростить и автоматизировать даже без программирования, но далеко не все.