Перейти к содержимому

Как в автокаде вытащить координаты полилинии

  • автор:

Как получить все координаты 3D-полилинии, не взрывая её?

Мне нужно получить все координаты 3D полилинии (не взрывая её). Дело в том, что 3D полилиния имеет такие параметры как smooth. Что делать если полилиния "сглажена"? Как в таком случае получить координаты прямых из которых состоит полилиния?

#2 Ответ от kpblc 20 декабря 2005г. 13:29:37

  • Откуда: С.-Петербург
  • На форуме с 29 ноября 2004г.
  • Сообщений: 8,348
  • Спасибо: 23
Re: Как получить все координаты 3D-полилинии, не взрывая её?

Чтобы получить все координаты всех вершин, вопользуйся

Возвращает одномерный список из координат вершин (3Д-точки для 3dpoly и 2Д-точки для lwpolyline). Если надо получить вершину со строго определенным номером

#3 Ответ от Олег(jr.) 20 декабря 2005г. 13:45:01

  • На форуме с 10 августа 2004г.
  • Сообщений: 917
  • Спасибо: 5
Re: Как получить все координаты 3D-полилинии, не взрывая её?

> Антон
Что-то вроде этого:

#4 Ответ от Антон 20 декабря 2005г. 13:48:55

  • На форуме с 1 апреля 2005г.
  • Сообщений: 70
  • Спасибо: 0
Re: Как получить все координаты 3D-полилинии, не взрывая её?

В том-то всё и дело, что получить координаты вершин относительно просто. А вот как получить реальные координаты полилинии?
kpblc для теста можно начертить 3Д полилинию из 2 линий.

Выдаст ровно 3 координаты.
НО.
Если поставить Properties->fit/smooth->quadratic
То полилиния изменится, а код будет выдавать те же 3 координаты!
В этом и есть суть вопроса — как получить РЕАЛЬНЫЕ координаты полилинии?

#5 Ответ от kpblc 20 декабря 2005г. 13:54:55

  • Откуда: С.-Петербург
  • На форуме с 29 ноября 2004г.
  • Сообщений: 8,348
  • Спасибо: 23
Re: Как получить все координаты 3D-полилинии, не взрывая её?

Стоп. По тормозам. сглаживание полилинии не приводит к изменению координат ее вершин, об этом, по-моему, по всей документации говорится. Она ж вершина, куда ей деваться-то? А есть снять сглаживание, чего будет? Если вершина "съедет", как можно будет это объяснить? Так что вершина сидит как вкопанная, чего ей еще делать-то?
Или вопрос задан некорректно, и надо на самом деле определять не вершины, а некоторые точки, ближайшие к указанной?

#6 Ответ от Александр Ривилис 20 декабря 2005г. 13:58:10

  • Откуда: Украина / Киев
  • На форуме с 15 апреля 2005г.
  • Сообщений: 8,661
  • Спасибо: 158
Re: Как получить все координаты 3D-полилинии, не взрывая её?

> Антон
Что такое "реальные координаты полилинии"? Если ты ее "скруглил", то у тебя уже нет реальных вершин этой полилинии и единственный способ — это выполнить ее апроксимацию, т.е. в зависимости от параметра получать точку на полилинии.

#7 Ответ от Антон 20 декабря 2005г. 13:59:46

  • На форуме с 1 апреля 2005г.
  • Сообщений: 70
  • Спасибо: 0
Re: Как получить все координаты 3D-полилинии, не взрывая её?

Вопрос задан совершенно корретный:
"Как получить координаты прямых из которых состоит полилиния?"
Если полилинию взорвать — она, независимо от сглаживания, распадётся на набор прямых, который меня и интересует. Вопрос в том как найти координаты этих прямых без взрывания полилинии.

#8 Ответ от kpblc 20 декабря 2005г. 14:04:22

  • Откуда: С.-Петербург
  • На форуме с 29 ноября 2004г.
  • Сообщений: 8,348
  • Спасибо: 23
Re: Как получить все координаты 3D-полилинии, не взрывая её?

Все, теперь я перегрелся. Суть вопроса дошла.
Хотя с другой стороны, все равно вопрос не до конца не понятен (все равно, правда, я помочь не смогу) — как минимум шаг получения координат надо знать да направление, по которому получать эти координаты для каждого сегмента полилинии.
—
ИМХО
—
Пока писал, новые посты появились. Антон, ты уж определись, чего тебе надобно. Если ты знаешь начальную и конечную координату отрезка, ты сможешь получить координаты любой точки, принадлежащей этому отрезку.

#9 Ответ от Евгений Елпанов 20 декабря 2005г. 14:10:47

  • Откуда: Москва
  • На форуме с 2 июля 2004г.
  • Сообщений: 2,538
  • Спасибо: 10
Re: Как получить все координаты 3D-полилинии, не взрывая её?

#10 Ответ от Антон 20 декабря 2005г. 14:37:43

  • На форуме с 1 апреля 2005г.
  • Сообщений: 70
  • Спасибо: 0
Re: Как получить все координаты 3D-полилинии, не взрывая её?

Евгений, я проверил Ваш код, но. Увы и ах. К сожалению он выдаёт набор точек на полилинии. Причем где-то посередине полилинии, а не от начала и до конца. Всё равно спасибо, вопрос остаётся открытым.

#11 Ответ от Антон 20 декабря 2005г. 14:44:25

  • На форуме с 1 апреля 2005г.
  • Сообщений: 70
  • Спасибо: 0
Re: Как получить все координаты 3D-полилинии, не взрывая её?

Извиняюсь. Сам дурак! Евгений Вы — Гений! Ваш код работает. Спасибо

#12 Ответ от Олег(jr.) 20 декабря 2005г. 15:23:07

  • На форуме с 10 августа 2004г.
  • Сообщений: 917
  • Спасибо: 5
Re: Как получить все координаты 3D-полилинии, не взрывая её?

> Антон
Ты рано радуешься, я тоже в свое время делал код
исходя из vlax-curve-getPointAtParam, посмотри
внимательно разницу для замкнутых и разомкнутых полилиний

#13 Ответ от Антон 20 декабря 2005г. 15:27:21

  • На форуме с 1 апреля 2005г.
  • Сообщений: 70
  • Спасибо: 0
Re: Как получить все координаты 3D-полилинии, не взрывая её?

Для теста написал следующий код:

По-моему всё работает.
Программа взрывает 3Дполилинию

#14 Ответ от VH 20 декабря 2005г. 17:43:17

  • На форуме с 14 июня 2001г.
  • Сообщений: 1,381
  • Спасибо: 7
Re: Как получить все координаты 3D-полилинии, не взрывая её?

AutoCAD Help: Developer Documentation/DXF Reference/ENTITIES Section/VERTEX:

Vertex group codes
100 Subclass marker (AcDbVertex)
100 Subclass marker (AcDb2dVertex or AcDb3dPolylineVertex)
10 Location point (in OCS when 2D, and WCS when 3D)
.
70 Vertex flags:
1 = Extra vertex created by curve-fitting
2 = Curve-fit tangent defined for this vertex. A curve-fit tangent direction of 0 may be omitted from DXF output but is significant if this bit is set
4 = Not used
8 = Spline vertex created by spline-fitting
16 = Spline frame control point
32 = 3D polyline vertex
64 = 3D polygon mesh
128 = Polyface mesh vertex
.

то есть все вершины 3D-Полилинии, у которых группа 70 содержит значение 40, являются точками на сглаженной кривой и располагаются как раз ". на концах прямых (то есть отрезков — VH.). ".
С помощью (entsel) выбрать 3D-Полилинию. С помощью (entnext) выбирать последовательно вершины. С помощью (entget) получать сведения об очередной вершине. С помощью (assoc) выбрать группу 70 и с помощью (logand) проанализировать ее значение. Ежели в состав значения входят и 32 и 8 (в сумме 40) — это "вершина" на сглаженной кривой, в противном случае можно эту вершину пропустить.
И никакого ActiveX?

Получение координат полилинии в AutoCAD

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

Конечно можно их переписать. Но если их сотня или тысяча?

В AutoCAD есть команда, выдающая всю информацию об объектах. В том числе и координаты вершин полилиний. На чертеже нужно выбрать нужный объект и набрать СПИСОК.

Программа выдаст информацию об объекте. Теперь координаты точек можно выделить и скопировать.

Как извлечь координаты в AutoCAD?

Щелкните вкладку «Главная» > панель «Отображение» > «Создать графику». Выберите видовой экран, содержащий точки для экспорта. Выберите отраслевую модель, щелкните правой кнопкой мыши и нажмите «Экспорт» > «Экспорт координат»..

Как экспортировать текстовый файл из AutoCAD?

Дважды щелкните файл. чертеж файл, чтобы открыть его в AutoCAD. Выберите вкладку «Вставка» в верхней части экрана. Найдите раздел «Связывание и извлечение», затем нажмите кнопку «Извлечь данные».

Как вы показываете координаты?

Получить координаты места

  1. На телефоне или планшете Android откройте приложение «Google Карты».
  2. Коснитесь и удерживайте область карты, на которой нет надписи. Вы увидите красную булавку.
  3. Вы увидите координаты в поле поиска вверху.

Как задать координаты в AutoCAD?

Использование конкретных координат

  1. Щелкните вкладку «Главная»> панель «Рисование»> «Линия». Находить.
  2. Введите значение координат для первой точки, введя значение X, запятую, затем значение Y, например 1.65,4.25, XNUMX.
  3. Нажмите пробел или Enter.
  4. Выполните одно из следующих действий: …
  5. Нажмите пробел или Enter.

Что такое система координат AutoCAD?

AutoCAD позволяет определить размещение точки, используя две разные системы координат. То Декартова (прямоугольная) Система координат использует расстояние «x» (влево/вправо) и расстояние «y» (вверх/вниз).

Как экспортировать файл XYZ из AutoCAD?

Как экспортировать файл CSV из AutoCAD?

  1. Выберите всю таблицу, щелкните правой кнопкой мыши и выберите Экспорт.
  2. В диалоговом окне «Экспорт данных» введите имя файла и нажмите «Сохранить».

Можно ли экспортировать текст из AutoCAD в Excel?

Дважды щелкните mtext, чтобы активировать редактор mtext (форматирование текста), затем выберите все содержимое mtext и скопируйте его с помощью CTRL+C, а затем вставьте в файл Excel. в файле Excel используйте команду «Текст в столбец» на вкладке «Данные» (ALT+Д+Е для быстрого доступа).

Как экспортировать текст из AutoCAD в Word?

Как экспортировать текст из AutoCAD в Word? Да: Откройте текстовый редактор в AutoCAD, Выделите текст, который хотите скопировать, щелкните его правой кнопкой мыши и выберите «Копировать» или нажмите (управление) «C». Откройте новый документ Word и вставьте его. Вы можете отменить этот процесс и вернуться в AutoCAD.

Как ввести координаты на компьютере?

Как ввести координаты в Google Maps на компьютере

  1. Перейдите на maps.google.com.
  2. Введите координаты в строку поиска — используя формат градусов, минут и секунд (DMS), формат градусов и десятичных минут (DMM) или формат десятичных градусов (DD) — затем нажмите Enter или щелкните значок поиска .

Какое число первое в координатах?

Координата x всегда идет первой, за которым следует координата y. Как вы можете видеть в координатной сетке ниже, упорядоченные пары (3,4) и (4,3) — это две разные точки!

Что означают координаты?

Координаты в этом контексте являются точками пересечения в системе координат. Координаты GPS (глобальная система позиционирования) обычно выражаются в виде комбинации широта и долгота. Широта — это градусная мера расстояния от экватора, равная 0 градусов.

Как получить координаты полилинии в автокаде

Несколько способов извлечения значений координат в AutoCAD

При черчении в AutoCAD постоянно приходится сталкиваться с задачей привязки вновь создаваемых объектов к существующей геометрии. Если необходимо привязываться непосредственно к примитивам чертежа, то помогает Объектная привязка (привязка к конечным точкам, середине, центру и пр.) Но если возникает задача неявной привязки к примитивам, то тут есть несколько вариантов.

Рассмотрим несколько возможных способов извлечения значений координат для привязки новых объектов на примере отрисовки окружности, центр которой совпадает с центром прямоугольника

000

1. Дополнительные построения

Самый простой, но самый неэффективный способ. Для его реализации необходимо построить два отрезка — вертикальный и горизонтальный, соединяющие середины боковых граней (или две диагонали)

001

и привязать центр окружности к точке пересечения этих отрезков

002

Можно немного упростить задачу — построить горизонтальную и вертикальные Прямые (опции ГОР и ВЕР)

003

Недостаток этих двух способов — необходимость дополнительных построений и удаления лишних объектов после всех построений.

2. Объектное отслеживание

Самый эффективный способ построения. При включенных опциях Объектная привязка и Объектное отслеживание мы можем «снимать» координаты с существующей геометрии. Для построения нашей окружности необходимо отследить положение середины горизонтали и вертикали прямоугольника и привязаться к полученной точке

004

Максимально просто и максимально эффективно! Никаких лишних построений и вычислений размеров. Но у этого способа есть один существенный недостаток — если объекты, с которых нужно «снять» координаты, находятся далеко друг от друга, то легко не попасть с нужной привязкой, плюс ко всему, если использовать зуммирование или панорамирование чертежа, то состояние отслеживания сбивается (начав отслеживать одну координату нельзя сдвигать чертеж, отслеживание работает лишь на текущем представлении видового экрана). Если возникает такая ситуация, то на помощь придут координатные фильтры

3. Координатные фильтры

Достаточно простой способ извлечения координат. Применяется тогда, когда по каким-то причинам невозможно использовать объектное отслеживание.

Координатные фильтры позволяют при указании точки считать только необходимое значение координаты (X,Y или Z). Для считывания только координаты X необходимо ввести .X, для Y — .Y, для Z — .Z.

Запустим команду построения окружности и на запрос ввода центра введем .X (включаем координатный фильтр по X)

005

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

006

на запрос ТРЕБУЕТСЯ YZ указываем середину вертикали

007

Можно сделать и наоборот — ввести фильтр по Y и указать сначала середину вертикали, потом середину горизонтали

Как нарисовать полилинию в AutoCAD, используя координаты?

В поле по умолчанию введите ‘ХУ =’ затем щелкните вставить поле. Измените категорию поля на объекты, а в именах полей выберите объект. Нажмите кнопку выбора объекта, чтобы определить тип объекта. Выберите круг, больше ничего не выбирайте!

Как вы автоматически рисуете полилинию из точек?

Чтобы создать полилинию, используя доступные точки на чертеже, выполните следующие действия:

  1. Запустите команду 3D полилинии (команда: «3DPOLY»)
  2. Находясь в командной строке, введите «PO» (прозрачная команда «Указать объект») в командной строке. …
  3. Щелкните первую точку, а затем любые последующие точки, чтобы создать нужную линию.
  4. Нажмите клавишу Enter.

Как вы показываете координаты?

Получить координаты места

  1. На телефоне или планшете Android откройте приложение «Google Карты».
  2. Коснитесь и удерживайте область карты, на которой нет надписи. Вы увидите красную булавку.
  3. Вы увидите координаты в поле поиска вверху.

Как задать координаты в AutoCAD?

Использование конкретных координат

  1. Щелкните вкладку «Главная»> панель «Рисование»> «Линия». Находить.
  2. Введите значение координат для первой точки, введя значение X, запятую, затем значение Y, например 1.65,4.25, XNUMX.
  3. Нажмите пробел или Enter.
  4. Выполните одно из следующих действий: …
  5. Нажмите пробел или Enter.

Как создать трехмерную полилинию в САПР?

Как сделать трехмерную полилинию в AutoCAD?

  1. Запустите команду 3D полилинии (команда: «3DPOLY»)
  2. Находясь в командной строке, введите «PO» (прозрачная команда «Указать объект») в командной строке. …
  3. Щелкните первую точку, а затем любые последующие точки, чтобы создать нужную линию.
  4. Нажмите клавишу Enter.

Как нарисовать полилинию?

Нарисуйте полилинию с прямыми и изогнутыми сегментами

  1. Выберите вкладку «Главная» панель «Рисование» «Полилиния». …
  2. Укажите первую точку полилинии.
  3. Укажите конечную точку первого сегмента.
  4. Переключитесь в режим Дуги, введя (Дуга) в командной строке.
  5. Вернитесь в линейный режим, введя L (Линия).
  6. При необходимости укажите дополнительные сегменты.

Как преобразовать 3D-полилинии в 2D-полилинии?

Преобразование 3D-полилиний в 2D

  1. Выберите вкладку «Изменить» панель «Дизайн» «Преобразовать 3D-полилинии в 2D-полилинии» найти.
  2. Выберите ломаную(ые) для преобразования. Нажмите Ввод.

Как получить восточные и северные координаты в AutoCAD?

Как ввести северные и восточные направления в AutoCAD

  1. Выберите вкладку «Главная» и выберите панель «Рисование».
  2. Выберите раскрывающийся вариант «Линия». Нажмите «Создать линию по северу/востоку». Кнопка отмечена линией и значком сетки.
  3. Введите значение «север». …
  4. Введите дополнительные значения северного и восточного направлений, чтобы добавить дополнительные линии.

Как извлечь координаты в AutoCAD?

Щелкните вкладку «Главная» > панель «Отображение» > «Создать графику». Выберите видовой экран, содержащий точки для экспорта. Выберите отраслевую модель, щелкните правой кнопкой мыши и нажмите «Экспорт» > «Экспорт координат»..

Как вы используете координаты UTM?

При чтении координат UTM ваше чтение следует указать широту, а затем долготу (сначала восток, затем север).

Как получить все координаты 3D-полилинии, не взрывая её?

Мне нужно получить все координаты 3D полилинии (не взрывая её). Дело в том, что 3D полилиния имеет такие параметры как smooth. Что делать если полилиния "сглажена"? Как в таком случае получить координаты прямых из которых состоит полилиния?

#2 Ответ от kpblc 20 декабря 2005г. 13:29:37
  • Откуда: С.-Петербург
  • На форуме с 29 ноября 2004г.
  • Сообщений: 8,347
  • Спасибо: 23
Re: Как получить все координаты 3D-полилинии, не взрывая её?

Чтобы получить все координаты всех вершин, вопользуйся

Возвращает одномерный список из координат вершин (3Д-точки для 3dpoly и 2Д-точки для lwpolyline). Если надо получить вершину со строго определенным номером

#3 Ответ от Олег(jr.) 20 декабря 2005г. 13:45:01
  • На форуме с 10 августа 2004г.
  • Сообщений: 917
  • Спасибо: 0
Re: Как получить все координаты 3D-полилинии, не взрывая её?

> Антон
Что-то вроде этого:

#4 Ответ от Антон 20 декабря 2005г. 13:48:55
  • На форуме с 1 апреля 2005г.
  • Сообщений: 70
  • Спасибо: 0
Re: Как получить все координаты 3D-полилинии, не взрывая её?

В том-то всё и дело, что получить координаты вершин относительно просто. А вот как получить реальные координаты полилинии?
kpblc для теста можно начертить 3Д полилинию из 2 линий.

Выдаст ровно 3 координаты.
НО.
Если поставить Properties->fit/smooth->quadratic
То полилиния изменится, а код будет выдавать те же 3 координаты!
В этом и есть суть вопроса — как получить РЕАЛЬНЫЕ координаты полилинии?

#5 Ответ от kpblc 20 декабря 2005г. 13:54:55
  • Откуда: С.-Петербург
  • На форуме с 29 ноября 2004г.
  • Сообщений: 8,347
  • Спасибо: 23
Re: Как получить все координаты 3D-полилинии, не взрывая её?

Стоп. По тормозам. сглаживание полилинии не приводит к изменению координат ее вершин, об этом, по-моему, по всей документации говорится. Она ж вершина, куда ей деваться-то? А есть снять сглаживание, чего будет? Если вершина "съедет", как можно будет это объяснить? Так что вершина сидит как вкопанная, чего ей еще делать-то?
Или вопрос задан некорректно, и надо на самом деле определять не вершины, а некоторые точки, ближайшие к указанной?

#6 Ответ от Александр Ривилис 20 декабря 2005г. 13:58:10
  • Откуда: Украина / Киев
  • На форуме с 15 апреля 2005г.
  • Сообщений: 8,657
  • Спасибо: 155
Re: Как получить все координаты 3D-полилинии, не взрывая её?

> Антон
Что такое "реальные координаты полилинии"? Если ты ее "скруглил", то у тебя уже нет реальных вершин этой полилинии и единственный способ — это выполнить ее апроксимацию, т.е. в зависимости от параметра получать точку на полилинии.

#7 Ответ от Антон 20 декабря 2005г. 13:59:46
  • На форуме с 1 апреля 2005г.
  • Сообщений: 70
  • Спасибо: 0
Re: Как получить все координаты 3D-полилинии, не взрывая её?

Вопрос задан совершенно корретный:
"Как получить координаты прямых из которых состоит полилиния?"
Если полилинию взорвать — она, независимо от сглаживания, распадётся на набор прямых, который меня и интересует. Вопрос в том как найти координаты этих прямых без взрывания полилинии.

#8 Ответ от kpblc 20 декабря 2005г. 14:04:22
  • Откуда: С.-Петербург
  • На форуме с 29 ноября 2004г.
  • Сообщений: 8,347
  • Спасибо: 23
Re: Как получить все координаты 3D-полилинии, не взрывая её?

Все, теперь я перегрелся. Суть вопроса дошла.
Хотя с другой стороны, все равно вопрос не до конца не понятен (все равно, правда, я помочь не смогу) — как минимум шаг получения координат надо знать да направление, по которому получать эти координаты для каждого сегмента полилинии.
—
ИМХО
—
Пока писал, новые посты появились. Антон, ты уж определись, чего тебе надобно. Если ты знаешь начальную и конечную координату отрезка, ты сможешь получить координаты любой точки, принадлежащей этому отрезку.

#9 Ответ от Евгений Елпанов 20 декабря 2005г. 14:10:47
  • Откуда: Москва
  • На форуме с 2 июля 2004г.
  • Сообщений: 2,538
  • Спасибо: 10
Re: Как получить все координаты 3D-полилинии, не взрывая её?
#10 Ответ от Антон 20 декабря 2005г. 14:37:43
  • На форуме с 1 апреля 2005г.
  • Сообщений: 70
  • Спасибо: 0
Re: Как получить все координаты 3D-полилинии, не взрывая её?

Евгений, я проверил Ваш код, но. Увы и ах. К сожалению он выдаёт набор точек на полилинии. Причем где-то посередине полилинии, а не от начала и до конца. Всё равно спасибо, вопрос остаётся открытым.

#11 Ответ от Антон 20 декабря 2005г. 14:44:25
  • На форуме с 1 апреля 2005г.
  • Сообщений: 70
  • Спасибо: 0
Re: Как получить все координаты 3D-полилинии, не взрывая её?

Извиняюсь. Сам дурак! Евгений Вы — Гений! Ваш код работает. Спасибо

#12 Ответ от Олег(jr.) 20 декабря 2005г. 15:23:07
  • На форуме с 10 августа 2004г.
  • Сообщений: 917
  • Спасибо: 0
Re: Как получить все координаты 3D-полилинии, не взрывая её?

> Антон
Ты рано радуешься, я тоже в свое время делал код
исходя из vlax-curve-getPointAtParam, посмотри
внимательно разницу для замкнутых и разомкнутых полилиний

#13 Ответ от Антон 20 декабря 2005г. 15:27:21
  • На форуме с 1 апреля 2005г.
  • Сообщений: 70
  • Спасибо: 0
Re: Как получить все координаты 3D-полилинии, не взрывая её?

Для теста написал следующий код:

По-моему всё работает.
Программа взрывает 3Дполилинию

#14 Ответ от VH 20 декабря 2005г. 17:43:17
  • На форуме с 14 июня 2001г.
  • Сообщений: 1,381
  • Спасибо: 7
Re: Как получить все координаты 3D-полилинии, не взрывая её?

AutoCAD Help: Developer Documentation/DXF Reference/ENTITIES Section/VERTEX:

Vertex group codes
100 Subclass marker (AcDbVertex)
100 Subclass marker (AcDb2dVertex or AcDb3dPolylineVertex)
10 Location point (in OCS when 2D, and WCS when 3D)
.
70 Vertex flags:
1 = Extra vertex created by curve-fitting
2 = Curve-fit tangent defined for this vertex. A curve-fit tangent direction of 0 may be omitted from DXF output but is significant if this bit is set
4 = Not used
8 = Spline vertex created by spline-fitting
16 = Spline frame control point
32 = 3D polyline vertex
64 = 3D polygon mesh
128 = Polyface mesh vertex
.

то есть все вершины 3D-Полилинии, у которых группа 70 содержит значение 40, являются точками на сглаженной кривой и располагаются как раз ". на концах прямых (то есть отрезков — VH.). ".
С помощью (entsel) выбрать 3D-Полилинию. С помощью (entnext) выбирать последовательно вершины. С помощью (entget) получать сведения об очередной вершине. С помощью (assoc) выбрать группу 70 и с помощью (logand) проанализировать ее значение. Ежели в состав значения входят и 32 и 8 (в сумме 40) — это "вершина" на сглаженной кривой, в противном случае можно эту вершину пропустить.
И никакого ActiveX?

Аutocad 2011 "извлечение данных" из полилинии

Не сочтите некрофилом, но помогите разобраться поподробнее, пожалуйста.
Точки я научился ставить по полилинии, а как таблицу с координатами получить ?

И у меня почему то дикие координаты.
Сделал новую пользовательскую систему (верх Х вправо y) в точке с координатой 0;0.
Но всё равно в "Редактор точек " координаты видимо пишутся из системы мировой МСК.

Пишутся :
Восточное положение
Северное положение

А
Восточное положение в координатах сетки
и Северное положение в координатах сетки
не пишутся

по аналогии с тем, как я поступал по Вашему совету с кодом COORN в таких случаях, но теперь я использую Ecoor и сам конечно же не могу разобраться с Lisp.
обычно это сильно не беспокоило, но сейчас такая задача, что надо работать со своими чертежами, а они обычно 1:1, но в файл надо выводить в метрах.

И ещё, если не трудно посмотрите пожалуйста, что можно сделать, чтоб последняя точка на замкнутом POLYLINE не отрисовывалась в чертеж, но в списке присутствовала и в файл выводилась как первая точка?
Спасибо!

ECoor.LSP (26.1 Кб, 480 просмотров)

так пока всё работает, с этим вопросом решено, спасибо!

С новым вариантом ECoor.LSP проблема! Скрипт завершается (похоже аварийно) после ввода step. Т.е., что вводится — значения не имеет, просто ломается на этой процедуре.

ps. ну с этим я тоже вроде разобрался, там в строчках: (rtos (cadr ln) 2 12) — это можно отрегулировать и по аналогии с первым вариантом ECoor.LSP, если без двух последних аргументов, то используются текущие значения LUNITS и LUPREC. Если так, то этот вопрос тоже снят.

VVA, да в отчёт надо выводить все точки полилиний, но в случае если полилиния замкнута (т.е. координаты первой и последней точек совпадают), в отчете последняя точка тоже присутствует, но не как №4 (в случае с треугольником), а как №1 и со своими координатами (или координатами №1, что собственно без разницы). Другими словами, в отчете должно всё выглядеть так же как и в самом первом варианте ECoor.lsp, с той только разницей, что в колонке "N" для последней точки должно использоваться имя первой точки, они должны выглядеть как будто бы это одна и та же точка. По сути первый вариант скрипта делает всё правильно, надо только в отчете переименовать последнюю точку на первую. Ну и в чертеже сейчас выглядит всё так как надо.

ps/ для наглядности привожу результат исполнения последнего варианта ECoor.LSP

VVA, да, спасибо большое, всё работает! А со своими чертежами, так вообще — красота, скрипт теперь можно считать совсем близким к идеальному.
Но, Владимир, я наверное сразу невнятно обрисовал задачу. Мне хотелось

Моя проблема состояла в том, что сейчас вот пришлось разбираться с чужим планом, который во-первых был нарисован в 1000 раз мельче моих и во-вторых "грязный". Все многоугольники нарисованы так, что количество сегментов полилинии равно количеству сторон (если честно, я сам не сразу увидел), т.е. не как обычная замкнутая поллиния, а такая которая если даже не замкнута выглядит в чертеже как многоугольник (замкнутая полилиния). И если даже точки у неё "дотянуты", но их всё равно на одну больше, чем должно быть, а координаты двух последних совпадают с первой. К примеру для прямоугольного треугольника, где a,b =10, в свойствах полилинии получается такое:

в этом случае и старый скрипт делал всё правильно в отчете, за исключением нумерации последней вершины.

Потому я и попросил тебя, чтоб ты научил скрипт приводить такие (кадастровые) варианты к виду:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *