Экспорт списка координат линии, контура из AutoCAD в текстовый файл V 1.3
![]()
Программа предназначена для экспорта списка координат отдельного объекта (линия, контур) из AutoCAD в текстовый файл.
В Проекте AutoCAD создать и выделить объект (линия, контур).
Открыть вкладку Сервис.
Нажать кнопку Список.
Скопировать (выделить мышкой в Списке и Ctrl+C) блок с координатами, вставить (Ctrl+V или кнопка «Вставка из буфера обмена») в окно «Исходный текст» программы.
Перевычислить в нужный(е) формат(ы).
Файлы сохранятся в папке, из которой была запущена программа.
Rick Keisi, Dnl и Maverick нравится это.
Последние обнoвления
- Добавлена кнопка «Копировать в буфер обмена» 12 сен 2020
- Кириллица в названиях папок 29 апр 2020
- ACAD_Coord 22 апр 2020
Пoследние рецензии
Версия: v 1.0 (c) 2019
Замечательно!Спасибо!
Спасибо за отзыв! пока не особо замечательно, слепил по нужде на коленке.. думаю вот, может еще туда что-нибудь вкрячить. Ну и, коль мне понадобилось, пусть и тут полежит — может еще кому полезна окажется ))
Рекомендован
Информация
Автор: vsv Всего скачиваний: 414 Первый выпуск: 30 ноя 2019 Последнее обновление: 12 сен 2020 Категория: Вспомогательные программы и драйвера
Как получить координаты объектов в Autocad с помощью VBA\Python?
Есть ли какое-то свойство для получение координат любого объекта?
То есть координаты объекта в самом автокаде я могу посмотреть, но как получить мне координаты объекта с помощью VBA?
Я могу получить координаты, например, выбирая объект
cor = doc.Utility.GetEntity()
Неужели нет свойства, для получения координат любого объекта?
И есть ли какой-то метод, для получения объектов в выделенной области, а не только метод для получения единичного объекта (doc.Utility.GetEntity() ) ?
В чём суть. Я хочу получить объекты в выделенной области (те что выделю я сам, руками в автокаде) и получить их координаты, чтобы в дальнейшем обработать так, как хочется
Ковыряясь в документации не удалось найти чего-то похожего или просто я плохо ищу
- Вопрос задан более двух лет назад
- 309 просмотров
Аutocad 2011 «извлечение данных» из полилинии
Здравствуйте.
Пытаюсь извлечь данные из полилинии мне нужны координаты вершин X, Y, в мастере извлечения данных в «фильтре категорий» в свойстве «геометрия» этих данных для полилинии нет. Как можно решить мою задачу?
Просмотров: 37939
Регистрация: 29.10.2004
Сообщений: 16,310
команда _list
Регистрация: 14.06.2011
Сообщений: 2
Спасибо.
А нет возможности получить координаты в виде таблицы excel, или другой какой либо таблицы которую можно в excel вставить. Просто когда у полилинии три десятка вершин очень долго копировать поштучно 60 координат в excel таблицу.
Регистрация: 12.08.2005
Сообщений: 523
Я поражен! Первым же вопросом новичок приятно порадовал глубиной проникновения в Акад.
Действительно, у полилинии при извлечении данных нет координат ее вершин. Что, впрочем и понятно, 1 полилиния = 1 примитив, хотя и составной.
Тут смотря какая цель стоит, так и надо действовать. Для одной полилинии и одноразовой работы — List, как уже сказали. Для автоматизации надо доработать.
1. Расставить блоки или точки в каждой вершине полилинии (кажется, есть такой лисп)
2. Извлекать инфо для расставленных блоков.
Как-то так.
__________________
В MEP моя буква — Е
Последний раз редактировалось Andi55, 16.06.2011 в 12:42 .
Регистрация: 02.09.2009
Тында, Дальний Восток
Сообщений: 404
В AutoCAD Civil 3d есть функция расстановки точек по узлам полилинии, с последующим выводом их в табличную форму, можно и в Эксель
Оснащение проходки горных выработок, ПОС, нормоконтроль, КР, АР
Регистрация: 30.01.2008
Сообщений: 18,490
Не сочтите некрофилом, но помогите разобраться поподробнее, пожалуйста.
Точки я научился ставить по полилинии, а как таблицу с координатами получить ?
И у меня почему то дикие координаты.
Сделал новую пользовательскую систему (верх Х вправо y) в точке с координатой 0;0.
Но всё равно в «Редактор точек » координаты видимо пишутся из системы мировой МСК.
Пишутся :
Восточное положение
Северное положение
А
Восточное положение в координатах сетки
и Северное положение в координатах сетки
не пишутся
__________________
«Безвыходных ситуаций не бывает» барон Мюнхаузен
Регистрация: 11.05.2005
Сообщений: 6,983
Сообщение от avax
А нет возможности получить координаты в виде таблицы excel, или другой какой либо таблицы которую можно в excel вставить
__________________
Как использовать код на Лиспе читаем здесь
Регистрация: 31.07.2011
Сообщений: 12
Уважаемый, VVA, давно и с большим удовольствием пользуюсь Вашим скриптами из серии Coord (CoorN и ECoor), спасибо за Ваш труд! Но тут вдруг задача возникла нетипичная и кроме как с этим Лиспом решить не получается, что собственно и причина моего обращения. Если Вам не особо сложно, подскажите пожалуйста, в каком месте кода надо подправить, чтоб для COORT и COORNP можно было возвратить в результате нечто похожее на это:
;(setq ptLst (mapcar '(lambda(x)(mapcar 'rtos x)) ptlst)) ;возвратить результат в ед. чертежа 1:1 (setq ptLst (mapcar '(lambda(x)(mapcar 'rtos (mapcar '(lambda(y)(* y 0.001)) x))) ptlst)) ;возвратить результат 1:1000по аналогии с тем, как я поступал по Вашему совету с кодом COORN в таких случаях, но теперь я использую Ecoor и сам конечно же не могу разобраться с Lisp.
обычно это сильно не беспокоило, но сейчас такая задача, что надо работать со своими чертежами, а они обычно 1:1, но в файл надо выводить в метрах.И ещё, если не трудно посмотрите пожалуйста, что можно сделать, чтоб последняя точка на замкнутом POLYLINE не отрисовывалась в чертеж, но в списке присутствовала и в файл выводилась как первая точка?
Спасибо!Последний раз редактировалось baleew, 31.07.2011 в 19:14 . Причина: зы
Регистрация: 11.05.2005
Сообщений: 6,983
baleew, Там все очень просто.
Берем за основу ECoor. Там все сделано функциями.
Для COORN
Было(defun c:COORN ( / ptLst) (vl-load-com) (if (setq ptLst (vva-get-final-points-list)) ;_В ptlst список полученных точек (vva-export-point ptLst t nil) ;_Экспорт списка ptlst ) (princ) )(defun c:COORN ( / ptLst) (vl-load-com) (if (setq ptLst (vva-get-final-points-list)) ;_В ptlst список полученных точек (progn (setq ptLst(mapcar '(lambda(x)(mapcar '* x (list 0.001 0.001 0.001)))ptlst)) ;_Возвратить результат М 1:1000 (vva-export-point ptLst t nil) ;_Экспорт списка ptlst );_end of progn ) (princ) )Для COORT найди строчки
(setq txtList (reverse txtList)) (princ "\n+++++++ Coordinates list +++++++\n")И добавь после txtlist
(setq txtList (reverse txtList)) (setq ptLst(mapcar '(lambda(x)(mapcar '* x (list 0.001 0.001 0.001)))ptlst)) ;_Возвратить результат М 1:1000 (princ "\n+++++++ Coordinates list +++++++\n")По поводу последней просьбы: внес изменения в Ecoor.lsp Пока выкладываю здесь. Потестируй и обязательно отпишись. Тогда обновлю по ссылке
| ECoor.LSP (26.1 Кб, 533 просмотров) |
__________________
Как использовать код на Лиспе читаем здесь
Последний раз редактировалось VVA, 02.08.2011 в 20:38 .
Регистрация: 31.07.2011
Сообщений: 12
Спасибо, VVA, с масштабом вроде всё понятно, хотя в случае с COORNP рекомендованный способ не вполне срабатывает, т.е. задача с выводом списка в файл решается, но отрисовки нет. В общем я немного поправил код в самой функции vva-export-point, в месте где было:
(setq ptLst (mapcar '(lambda (x) (mapcar 'rtos x)) ptlst))(setq scale 0.001) ;_потом доделаю с вводом переменной (setq ptLst (mapcar '(lambda(x)(mapcar 'rtos (mapcar '(lambda(xx)(* xx scale)) x))) ptlst)) ;_возвратить результат M 1:scaleтак пока всё работает, с этим вопросом решено, спасибо!
С новым вариантом ECoor.LSP проблема! Скрипт завершается (похоже аварийно) после ввода step. Т.е., что вводится -- значения не имеет, просто ломается на этой процедуре.
Регистрация: 24.09.2010
Сообщений: 215
Сообщение от Tyhig
как таблицу с координатами получить ?
Экспорт точек или групп точек в любом удобном Вам формате файла и порядком данных.
Регистрация: 11.05.2005
Сообщений: 6,983
baleew, Обновил #9. Забыл добавить библиотечную функцию. Тестируй
__________________
Как использовать код на Лиспе читаем здесь
Регистрация: 31.07.2011
Сообщений: 12VVA, теперь работает, _.-TEXT вводит так как и хотелось -- на 1 раз меньше чем в списке, вернее чем должно быть в списке. С отрисовкой в чертёж всё в порядке.
Но теперь в списке на 1 элемент больше чем надо:+++++++ Coordinates list +++++++ 41759.704,20823.350,0.000 67609.351,45879.144,0.000 66230.217,57772.704,0.000 75151.045,57713.885,0.000 75375.554,45050.840,0.000 91383.441,28535.769,0.000 61943.562,0.000,0.000 41759.704,20823.350,0.000 41759.704,20823.350,0.000 +++++++++ End of list +++++++++и возникла ещё очень неприятная штука с выводом в файл, а именно -- на LUPREC вообще не обращает внимания, выводит после дес.точки всё подряд:
1;41759.70447416601;20823.35011575372;0.000000000000 2;67609.35080235823;45879.14403409230;0.000000000000 3;66230.21693950517;57772.70379885008;0.000000000000 4;75151.04496178588;57713.88493783308;0.000000000000 5;75375.55402835457;45050.84007264581;0.000000000000 6;91383.44074345006;28535.76929118578;0.000000000000 7;61943.56163667888;0.000000000007;0.000000000000 1;41759.70447416601;20823.35011575372;0.000000000000 1;41759.70447416601;20823.35011575372;0.000000000000ps. ну с этим я тоже вроде разобрался, там в строчках: (rtos (cadr ln) 2 12) -- это можно отрегулировать и по аналогии с первым вариантом ECoor.LSP, если без двух последних аргументов, то используются текущие значения LUNITS и LUPREC. Если так, то этот вопрос тоже снят.
Последний раз редактировалось baleew, 02.08.2011 в 12:29 . Причина: ps
Регистрация: 11.05.2005
Сообщений: 6,983baleew, Обновил #9 Пробуй. Я считал, что нужно выводить в отчет все точки полилиний. Получается, что нужно выводить в отчет все различные точки?
__________________
Как использовать код на Лиспе читаем здесь
Регистрация: 31.07.2011
Сообщений: 12VVA, да в отчёт надо выводить все точки полилиний, но в случае если полилиния замкнута (т.е. координаты первой и последней точек совпадают), в отчете последняя точка тоже присутствует, но не как №4 (в случае с треугольником), а как №1 и со своими координатами (или координатами №1, что собственно без разницы). Другими словами, в отчете должно всё выглядеть так же как и в самом первом варианте ECoor.lsp, с той только разницей, что в колонке "N" для последней точки должно использоваться имя первой точки, они должны выглядеть как будто бы это одна и та же точка. По сути первый вариант скрипта делает всё правильно, надо только в отчете переименовать последнюю точку на первую. Ну и в чертеже сейчас выглядит всё так как надо.
ps/ для наглядности привожу результат исполнения последнего варианта ECoor.LSP
1;41759.704;20823.350;0.000 2;67609.351;45879.144;0.000 3;66230.217;57772.704;0.000 4;75151.045;57713.885;0.000 5;75375.554;45050.840;0.000 6;91383.441;28535.769;0.000 7;61943.562;0.000;0.000но ожидается такое:
1;41759.704;20823.350;0.000 2;67609.351;45879.144;0.000 3;66230.217;57772.704;0.000 4;75151.045;57713.885;0.000 5;75375.554;45050.840;0.000 6;91383.441;28535.769;0.000 7;61943.562;0.000;0.000 1;41759.704;20823.350;0.000Последний раз редактировалось baleew, 02.08.2011 в 13:30 .
Регистрация: 11.05.2005
Сообщений: 6,983
Обновил еще раз #9. Надеюсь последний
__________________
Как использовать код на Лиспе читаем здесь
Регистрация: 31.07.2011
Сообщений: 12VVA, да, спасибо большое, всё работает! А со своими чертежами, так вообще -- красота, скрипт теперь можно считать совсем близким к идеальному.
Но, Владимир, я наверное сразу невнятно обрисовал задачу. Мне хотелосьМоя проблема состояла в том, что сейчас вот пришлось разбираться с чужим планом, который во-первых был нарисован в 1000 раз мельче моих и во-вторых "грязный". Все многоугольники нарисованы так, что количество сегментов полилинии равно количеству сторон (если честно, я сам не сразу увидел), т.е. не как обычная замкнутая поллиния, а такая которая если даже не замкнута выглядит в чертеже как многоугольник (замкнутая полилиния). И если даже точки у неё "дотянуты", но их всё равно на одну больше, чем должно быть, а координаты двух последних совпадают с первой. К примеру для прямоугольного треугольника, где a,b =10, в свойствах полилинии получается такое:
0.000,0.000,0.000 0.000,10.000,0.000 10.000,0.000,0.000 0.000,0.000,0.000но в своих планах я обычно рисую не так (как это делают разные прилады у кадастровых инженеров, в пред. варианте), а просто, как делает ACAD
0.000,0.000,0.000 0.000,10.000,0.000 10.000,0.000,0.000в этом случае и старый скрипт делал всё правильно в отчете, за исключением нумерации последней вершины.
Потому я и попросил тебя, чтоб ты научил скрипт приводить такие (кадастровые) варианты к виду:
1;0.000;0.000;0.000 2;0.000;10.000;0.000 3;10.000;0.000;0.000 1;0.000;0.000;0.000Чистить все чужие полилинии или наоборот -- перерисовывать свои, сам понимаешь, весьма муторное занятие, поэтому огромное тебе спасибо за существенное облечение труда.
А вообще-то я иногда очень жалею, что я не кодер, на базе одного твоего ECoor можно было бы собрать великолепную утилиту, которая бы решила абсолютно все геодезические проблемы.
Спасибо, Владимир.Регистрация: 11.05.2005
Сообщений: 6,983Обновил #9 Раньше обрабатывались варианты:
- начало/конец совпадают, полилиния незамкнутая
- начало/конец не совпадают, полилиния замкнутая
В варианте начало/конец совпадают, полилиния замкнутая появлялась лишняя точка. В принципе такое так же может быть в середине полилинии, если пару раз подряд ткнули в одну точку. Добавил функцию удаления из списка одинаковых (до 1e-6) подряд идущих точек. Тестируй__________________
Как использовать код на Лиспе читаем здесь
Регистрация: 31.07.2011
Сообщений: 12VVA, да, это кажется именно то, что надо, только желательно такую же процедуру наверное и к ptLst применить тоже, ибо сейчас из отчёта номер точки удаляется, а X,Y,Z остаются.
в варианте -- начало/конец почти совпадают, полилиния замкнутая:1;0.000;0.000;0.000 2;0.000;10.000;0.000 3;10.000;0.000;0.000 ;0.000;0.001;0.000 1;0.000;0.000;0.000в варианте -- начало/конец почти совпадают, полилиния незамкнутая:
1;0.000;0.000;0.000 2;0.000;10.000;0.000 3;10.000;0.000;0.000 ;0.000;0.001;0.000но отрисовка в чертеж в обоих случаях срабатывает великолепно!
ps/ оба варианта с "грязным" многоугольником, в случае с нормальным построением к скрипту претензий никаких. Понимаю, что в идеале надо было бы "почистить" весь план, удалить из всех полилиний последние (и очень близко лежащие) вершины и замкнуть полилинии, но если бы их было поменьше о скрипте и мысль бы не возникла. В общем я не знаю уже, что тут проще, может быть даже нет смысла различать их по свойству замкнуто/незамкнуто, а просто в обоих случаях удалять из списка последнюю точку (с координатами очень близкими к началу) и вместо неё записывать первую. То есть список для отчета формировать так же как и список для отрисовки точек.
Т.е. если последняя точка очень близка к первой (с допуском определенной точности, от 1e-2 и менее) то в результате она просто не появляется в списках и в отчете полилиния описывется так:1;0.000;0.000;0.000 2;0.000;10.000;0.000 3;10.000;0.000;0.000 1;0.000;0.000;0.000Как узнать координаты полилинии в автокаде
Учебник AutoCAD . Координаты в Автокад.
В программе autocad положение точек объектов можно задавать различными способами. Один из способов задания положения - работа с системами координат в autocad . В autocad существуют 2 типа систем координат: абсолютные и относительные.
Чем же отличаются абсолютные и относительные координаты в autocad ?
При использовании абсолютных координат положение точек задаётся относительно некоторой строго фиксированной точки - начала координат. Координаты в autocad вводятся с клавиатуры в командную строку. Записываются абсолютные координаты по следующему правилу. Вначале вводится координата точки по горизонтальной оси абсцисс X , затем ставится запятая и указывается координата по вертикальной оси ординат Y . При трёхмерном моделировании в autocad можно также указывать третью ось - ось апликат Z , поскольку рабочее пространство autocad трёхмерное. При задании координат нужно учитывать, что в числе координаты целая часть отделяется от дробной точкой, а не запятой. Например, если координата по X равна 16, а координата по Y 16 ,5 то вводить координаты нужно следующим образом: 16,16 .5 . Если указать 16, 16,5 , то autocad решит, что Вы указали расстояние по оси X - 16 , по оси Y - 16 , а по оси Z - 5 , и положение точки будет указано неверно.
Относительные координаты всегда откладываются от последней указанной точки, которая принимается за центр относительных координат. Такой точкой может быть, например, первая угловая точка прямоугольника. Относительные координаты в autocad записываются следующим образом: сначала вводится значок " собака " , потом координата по оси X , затем ставится запятая и вводится координата по оси Y . Ввод координат всегда завершается нажатием клавиши "Enter" . При использовании относительных координат в autocad также существует возможность указания третьей координаты по оси Z . При вводе относительных координат целая часть тоже отделяется от дробной точкой. Пример ввода относительных координат: @16, 16.5 .
При использовании относительных координат положение точки можно указывать как в декартовой прямоугольной системе координат, так и в полярной. При использовании полярной системы координат сначала указывают расстояние от центра относительных координат, затем указывается угол по отношению к горизонтальной оси абсцисс направленной вправо. Угол откладывается против часовой стрелки.
Подробнее познакомиться с координатами в autocad Вы можете скачав и изучив видео урок "Относительные и абсолютные координаты. Команды рисования в AutoCAD 2008". Урок можно скачать здесь.
Прямо Сейчас Подпишитесь На Рассылку!
И Получайте Бесплатные
Обучающие Видео Уроки
По AutoCAD На Ваш E-mail!
Просто Введите Ваши Данные В Форму!