Civil 3D, InfraWorks и Инфраструктура – Русский – только для чтения
Делитесь знаниями, задавайте вопросы, читайте самые популярные темы по Civil 3D, Map 3D.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Команда MAPCLEAN не удаляет дублирующиеся вершины

14 REPLIES 14
SOLVED
Reply
Message 1 of 15
a.zemlyanskaya
2145 Views, 14 Replies

Команда MAPCLEAN не удаляет дублирующиеся вершины

Полдня сегодня бьюсь с полилиниями, у которых последняя вершина совпадает с первой. 

По идее, maplean позволяет от этого избавиться, но почему-то у меня не работает. 

Может, я какую-то опцию забываю включить?

 

удалить.JPG

 

Команда запускается, но в командной строке пишет "0 ошибок обнаружено" и дублирующиеся вершины остаеются

 

 

14 REPLIES 14
Message 2 of 15

Это тоже, кстати, предмет и действие не самого Civil, а Map 3D 🙂

 

Не удалит MAPCLEAN такие совпадающие вершины. В том числе с помощью Удалить повторяющиеся - имеются в виду целые дублирующиеся элементы, а не сегменты элементов. Например, удалит дублирующиеся блоки или тексты, или полилинии и т.п.

И никакими другими операциями не удалит.

MAPCLEAN ведь наоборот создана бороться в т.ч. с несовпадающими вершинами, с незамыканиями!

 

А Вашу задачу, думаю, решить можно только программированием или какими-то командами, которые преобразуют полилинии с совпадающими первыми-последними вершинами в полилинии Closed, удаляя последний сегмент.

Например:

1. Преобразовать все такие полилинии в ОБЛАСТЬ (REGION) одноименной командой. Преобразуются только с совпадающими концами.

2. РАСЧЛЕНИТЬ все REGION'ы.

3. Получившиеся отрезки сшить с помощью СОЕДИНИТЬ (JOIN).

4. Снять признак Closed с полученных полилиний.

 

Чем, собственно, вызвана задача? Люди обычно целенаправленно добиваются совпадения первых и последних вершин. Тратят на это много времени и сил. А тут вдруг наоборот?

 


-- Alexander, private person, pacifist, english only with translator 🙂 --

Object-modeling _ odclass-odedit.com _ Help

Message 3 of 15
Anonymous
in reply to: a.zemlyanskaya

Я пользуюсь лиспом от сюда.

http://dwg.ru/dnl/607

 

 

Message 4 of 15
Anonymous
in reply to: АлексЮстасу

"Чем, собственно, вызвана задача? Люди обычно целенаправленно добиваются совпадения первых и последних вершин. Тратят на это много времени и сил. А тут вдруг наоборот?"

Плохо если замкнутый полигон и в одной из точек 2 вершины.

Message 5 of 15
АлексЮстасу
in reply to: Anonymous


ValeryBrelovsky написано:
Плохо если замкнутый полигон и в одной из точек 2 вершины.

Как это? Именно и только совпадение начала и конца является действительным, настоящим признаком замкнутости.

Я, наоборот, за отмену автокадовского признака замкнутости.  Это совершенно искусственный  признак. Этот признак только создает неопределенность, причем неосновательную.

Объясняю себе введение в Автокад этого признака желанием облегчить жизнь пользователю. Но в конечном итоге это только усложняет дело.


-- Alexander, private person, pacifist, english only with translator 🙂 --

Object-modeling _ odclass-odedit.com _ Help

Message 6 of 15
АлексЮстасу
in reply to: Anonymous


ValeryBrelovsky написано:

Я пользуюсь лиспом от сюда.

http://dwg.ru/dnl/607

 


Я специально вчера смотрел возможности этой команды - не нашел среди них подходящей для этой задачи.

pl-VxOpt удаляет все совпадающие вершины, кроме первой и последней.


-- Alexander, private person, pacifist, english only with translator 🙂 --

Object-modeling _ odclass-odedit.com _ Help

Message 7 of 15
Anonymous
in reply to: АлексЮстасу

То что вы не нашли это не значит что нет такой возможности. А PL-VxRdc -Удаление вершин полилиний, которые лежат на одной прямой пробовали. По поводу вершин и понятие замкнутости. Возможности объектной привязки позволяют совместить точки.

Прилагаю файл с 3 четырёхугольниками. 1 не замкнут и имеет 5 вершин 2 замкнут и имеет 5 вершин и 3 замкнут обработан функцией PL-VxRdc  и имет 4 вершины. и 4 обработаный pl-VxOpt  имеет 4 вершины. Это выполняется, если полигон замкнут, если полигон не замкнут, то ни какая программа не удалит первую или последнюю точку.

Message 8 of 15
Anonymous
in reply to: АлексЮстасу

"Я, наоборот, за отмену автокадовского признака замкнутости.  Это совершенно искусственный  признак. Этот признак только создает неопределенность, причем неосновательную.

Объясняю себе введение в Автокад этого признака желанием облегчить жизнь пользователю. Но в конечном итоге это только усложняет дело."

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

Message 9 of 15
АлексЮстасу
in reply to: Anonymous


ValeryBrelovsky написано:

То что вы не нашли это не значит что нет такой возможности. А PL-VxRdc -Удаление вершин полилиний, которые лежат на одной прямой пробовали.


Гм... Сегодня как раз PL-VxOpt вдруг срабатывает - удаляет последнюю вершину (сегмент), и придает признак замкнутости.

А PL-VxRdc здесь ни при чем - первая и последняя вершина не лежат на одной прямой.


-- Alexander, private person, pacifist, english only with translator 🙂 --

Object-modeling _ odclass-odedit.com _ Help

Message 10 of 15
Anonymous
in reply to: АлексЮстасу

Значит мы говорим о разных вещах. И тем более, что автор темы вообще молчит по этому поду.

Message 11 of 15
АлексЮстасу
in reply to: Anonymous


ValeryBrelovsky написано:

"Мне нужно знать что полигон замкнут и меня не устраивает две вершины в одной точке.


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

Признак замкнутости - тоже явный костыль. Вместо него, чтобы знать, совпадают ли начала и концы ("полигон замкнут"), в Автокаде и, особенно, в AutoCAD Map 3D должна быть команда найти такие случаи, и должна быть команда находить случаи несовпадения ("свободные концы", "free endpoints").

Drawing cleanup создан специально для того, чтобы подготавливать топологически корректные чертежи. Что предполагает и отсутствие дублирования элементами или их частями друг друга. При этом в общем случае множества полигонов  (допустим, границ земельных участков) вообще нельзя представить в виде замкнутых полилиний - у смежных полигонов границы начнут дублироваться. И признак замкнутости при этом не только в общем некорректен, но и будет прямо вредным.

Почему в Drawing cleanup при всей его мощности и удобствах нет возможности находить "висячие концы" - большая загадка. Ведь это необходимый инструмент при формировании границ площадных объектов. Как написал про Автодеск один не наш пользователь - "видимо, разработчики стремятся не гневить Бога, претендуя на совершенство". 🙂

В сумме это приводит к тому, что формировать средствами Автокада площадные объекты занимает избыточно много времени и сил. И провоцирует на костыльные подходы - на нетопологические решения (например, представлять каждый площадной объект замкнутой полилинией), на создание пользователями своих приложений или на использование средств чужого ПО.

 


-- Alexander, private person, pacifist, english only with translator 🙂 --

Object-modeling _ odclass-odedit.com _ Help

Message 12 of 15
Anonymous
in reply to: АлексЮстасу

Всё что вы написали мне это не нужно.

Message 13 of 15
a.zemlyanskaya
in reply to: Anonymous

Ничего себе, целая дискуссия!

Валерий приложил чертеж, где как раз проиллюстрирована ситуация, которая мне мешала: четырехугольник имеет 5 вершин, где 5 совпадает с 1, а мне надо было из него получить четырехугольник с 4 вершинами. При этом в этом конкретном случае меня не интересовало свойство замкнутости (я, кстати, тоже до конца не понимаю резон этого параметра, то есть для каких случаев он вообще нужно).

 

Александр, вы спросили, в чем моя задача. Мне нужно было получить точки COGO по полилинии (координаты углов земельного участка), по участку с 5 вершинами у меня таких точек получалось на одну больше чем нужно. 

 

Согласна полностью со всем, что вы написали по поводу того, что полилиния не является контуром площадной фигуры и что если нужны фигуры, то надо использовать полигоны. Но в данном случае у меня на входе DXF-файл с кадастровым планом территории, в котором участки представлены вот такими полилиниями с лишней вершиной. Я вот сейчас думаю над тем, как оптимизировать работу с этим неуклюжим DXF, но это уж другая отдельная тема. 

 

А что касается mapclean, то вот мне на dwg.ru подсказали, что надо просто другую опцию использовать, не "убрать повторы", а "упростить полилинии". Под носом решение-то было!

Message 14 of 15


a.zemlyanskaya написано:

А что касается mapclean, то вот мне на dwg.ru подсказали, что надо просто другую опцию использовать, не "убрать повторы", а "упростить полилинии". Под носом решение-то было!


Точно! Проглядел в буквальном смысле! Вашу задачу одинаково решает и Упрощать объекты из MAPCLEAN, и PL-VxOpt из PlTools. Обе удаляли последний сегмент, но добавляли признак замкнутости. А я в свойства не смотрел - просто видел, что внешне ничего не изменилось, и думал, что не делается! 🙂 


a.zemlyanskaya написано:

Ничего себе, целая дискуссия!

 

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


Потому что тема для меня больная - вроде бы сделать в Автокаде все можно, но реализовано костыльно или неудобно, сложно, или неполно.

 

"Магистральный путь" в Map, видимо, такой:
- создать топологически корректные границы, т.е. убрать все дубликаты, создать все узлы на пересечениях и т.п.,
- создать по этим границам топологическую полигональную модель. К центроидам привязать информацию об участках.
- эту модель можно либо прямо передавать в другие форматы, либо из нее можно выгружать замкнутые полилинии всех участков, создавать надписи и пр.

 


-- Alexander, private person, pacifist, english only with translator 🙂 --

Object-modeling _ odclass-odedit.com _ Help

Message 15 of 15
Anonymous
in reply to: a.zemlyanskaya


a.zemlyanskaya написано:Мне нужно было получить точки COGO по полилинии (координаты углов земельного участка), по участку с 5 вершинами у меня таких точек получалось на одну больше чем нужно.

Алла, попробуй мой способ: сначала создать участки из полилиний (ничего не исправляя), а потом по участкам создать точки Автоматически. В этом случае не создаются точки COGO с дублирующимися координатами. Если использовать стиль участков с каким-нибудь заполнением, то ошибки будет видно, там заполнение не появится. И без MAPCLEAN можно обойтись, кучу времени сэкономишь.

 

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

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report