Строим полилинию в AutoCAD по координатам из таблицы Excel
Возникла недавно простая задача: построить в AutoCAD полилинию по координатам из таблицы Excel .
Знаю, что можно написать программу на AutoLISP (или найти готовую), но дело осложнялось тем, что создать полилинию надо было в AutoCAD LT, который, как известно, не поддерживает программирование. После недолгого изучения вопроса решение было найдено. Делюсь.
Задача: в таблице Excel содержатся координаты точек. Необходимо по этим точкам создать полилинию в AutoCAD. При этом, формат файла Excel может быть разным в зависимости от того, откуда получены данные (результат лазерного сканирования, топосъемка, таблица координат от контрольно-измерительной машины и пр.)
Решение: сначала штатными функциями Excel преобразовать координаты в вид X.X,Y.Y, скопировать массив координат в буфер обмена, затем в AutoCAD запустить команду ПЛИНИЯ (_PLINE) и подставить значения координат из буфера.
Предлагаю пошаговую инструкцию.
Подготовка данных в Excel
Открываем таблицу Excel.
В нашем случае в таблице каждая координата точки записана в отдельной ячейке
ВАЖНО! В AutoCAD координаты вводятся в формате X.X,Y.Y — т.е. дробные части координат отделяются друг от друга точкой, а сами координаты — запятой!
Т.к. в нашем случае в таблице Excel дробные части отделены запятой, то необходимо заменить их на точки. Для этого на ленте перейдем на вкладку Главная ➤ панель Редактирование ➤ Заменить .
В появившемся окне Найти и заменить в качестве параметра Найти вводим запятую, в качестве Заменить на — точку и нажимаем кнопку Заменить все
В результате все числа в таблице будут приведены к нужному нам формату
Обратите внимание, что если в вашем исходном файле в качестве разделителя используется точка, то дополнительно преобразовывать ничего не нужно.
Движемся дальше. Теперь необходимо разрозненные координаты X и Y объединить в одну запись в ячейке. Для этого можно использовать стандартные функции Excel, например, СЦЕПИТЬ или ОБЪЕДИНИТЬ .
В соседнем столбце вводим формулу =СЦЕПИТЬ(A1;»,»;B1)
В этой форуме A1 и B1 — адреса ячеек с координатами, «,» — символ, который будет вставлен между ними
Перетаскиваем маркер заполнения ячеек для того, чтобы скопировать формулу во все ячейки столбца. В итоге получаем готовую таблицу координат
Если для объединения вы будете использовать функцию ОБЪЕДИНИТЬ, то формула будет следующая =ОБЪЕДИНИТЬ(«,»;ИСТИНА;A1;B1)
Главное, на что нужно обратить внимание: в результате преобразований мы должны получить в ячейке запись вида X.X,Y.Y.
Выделяем все полученные ячейки с координатами и копируем их содержимое в буфер обмена
Строим полилинию в AutoCAD
Запускаем AutoCAD или AutoCAD LT.
Запускаем команду ПЛИНИЯ (_PLINE) и в командную строку вставляем содержимое буфера обмена
Создание точек в вершинах полилинии или горизонтали поверхности с использованием значений отметок поверхности
В вершинах полилинии, выходящих за пределы поверхности, точки размещены не будут.
Поскольку данная команда создает точки на основе отметок, считываемых с поверхности, то при выполнении этой команды настройки раздела «Запрашивать отметки» , заданные в параметрах «Создание точек» , не влияют на способ вывода запроса.
- Выберите параметры и создайте стили, слои, группы точек и ключи-описатели.
- Выберите вкладку «Главная» панель «Создать данные рельефа» меню «Точки» «Создать точки – Поверхность» «Вершины полилинии/горизонтали» .
- Выберите поверхность.
- Выберите полилинию или горизонталь поверхности. Точки будут размещены в вершинах полилинии или горизонтали поверхности.
- Для каждой точки по запросу введите имя точки и описание.
Прим.: На то, как точка отображается, оказывают влияние многие факторы. Для получения дополнительных сведений см. раздел Управление внешним видом точек на чертеже.
На уровень выше: Создание точек на основе отметок поверхности
Понятия, связанные с данным
- Создание точек на основе отметок поверхности
- Перед созданием точек
Запись в текстовый файл координат вершин полилинии.
Программа проверена на работоспособность в AutoCAD 2010, 2013, 2016.
Программа считывает координаты X,Y каждой вершины указанной полилинии(LWPOLYLINE), записывает их в текстовый файл, рисует в ней кружок и пишет номер точки. Начало нумерации, радиус кружочка, угол поворота номера точки и сдвиг номера от точки запрашиваются на первой точке. Угол поворота текста номера можно ввести в градусах или указать мышкой. Номер окончания нумерации, радиус кружка и высота текста запоминаются в текущем сеансе для продолжения при следующем вызове команды, можно ввести другой стартовый номер, радиус и т.д.
В начале также запрашивается имя и размещения текстового файла для записи координат. При последующем вызове команды можно указывать тот же файл, запись в него будет продолжена ниже не смотря на запрос на перезапись.
Все рисуется на текущем слое.
коорд_вершин_авто — пишет в файл координаты X, Y как есть, в автокадовском прочтении: Х направо, Y — вверх.
коорд_вершин_авто2 — пишет в файл координаты X, Y наоборот, меняя местами, т.е. в топографическом прочтении: X на север, Y — на восток, направо.
Номер окончания нумерации, радиус кружка и высота текста запоминаются в текущем сеансе для обеих команд едино.
Как получить координаты отдельных точек полилинии?
Форумы CADUser → Autodesk → AutoCAD → Как получить координаты отдельных точек полилинии?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщения 7
#1 Тема от Борис 26 октября 2004г. 16:07:00
Тема: Как получить координаты отдельных точек полилинии?
Можно ли получить в автоматическом режиме координаты отдельных точек произвольно начерченной полилинии, например, с шагом несколько пикселей, с целью дельнейшего получения математического описания данной линии? Предполагается использовать эту возможность для апроксимации различных графиков (аналогично как в Excel строиться линия тренда), а полилинию получать путем обрисовки отсканированного графика.
#2 Ответ от Lenich 26 октября 2004г. 17:08:23
Re: Как получить координаты отдельных точек полилинии?
Борис (2004-10-26 16:07:00)
Не могли бы Вы поподробнее описать в каком виде Ван нужны эти координаты.
Потому как есть несколько способов узнать координаты вершин полилинии. Можно просто посмотреть в пропертисах и вручную переписать на листочек :))))
Кстати какая полилиняи 2Д или 3Д?
#3 Ответ от VK 26 октября 2004г. 21:13:22
Re: Как получить координаты отдельных точек полилинии?
Кажется, это одна из неисчерпаемых тем :)) Много раз поднималась и так же много было предложено решений, как правило с применением LISP-программ. Подозреваю, что для этого случая надо что то новое, потому как
Ну нету в АКАДе понятия пикселов :(( Не фотошоп это, елки зеленые. Тут есть единицы чертежа и усе. Ни метров, ни миллиметров как таковых нет — все относительно. Можно еще брать за единицу какой то процент от общей длины полилинии. Кажется, что то похожее я уже делал.
Однако, уточните подробности, плиз
#4 Ответ от Борис 27 октября 2004г. 15:51:38
Re: Как получить координаты отдельных точек полилинии?
Спасибо за ответы! Постараюсь сформулировать, что я хочу :))
Т. к. я не очень хорошо разбираюсь в терминологии и программировании, мне, наверное проще будет объяснить, что я имею и что, в результате, хочу получить:
У меня есть график функции у=f(X) на бумаге. Цель — получить математическое описание этого графика. Т. е. аналогично тому, что если бы я в Excel ввел таблицу значений у=f(X), построил график, а затем с помощью линии тренда получил ее полином заданной степени. Так вот, я этот график с бумаги сканирую, обвожу его сплайном в автокаде, и хочу получить координаты точек (по осям х и у) этого сплайна в табличном виде с произвольным (задаваемым) шагом. При этом, необходимо каким то образом задать компьютеру точки начала и конца отсчета по осям, а также шаг. А лучше, если бы Автокад сам аппроксимировал эту кривую и выдавал формулу, причем, с заданной степенью полинома. Можно усложнить задачу, если иметь, например семейство кривых, а получить нужно полином, описывающий все это семейство.
Заранее спасибо.