Справка DIGIMINE

Найти/изменить близкорасположенные точки полилиний

Найти/изменить близкорасположенные точки полилиний

Previous topic Next topic  

Найти/изменить близкорасположенные точки полилиний

Previous topic Next topic  

 

Иногда в файлах-чертежах имеются полилинии, точки которых находятся близко друг к другу или имеют сопадающие координаты X и Y и разные координаты Z.

Во многих случаях такие случаи являются нежелательными.

 

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

Корректировка может быть как автоматической, так и полуавтоматической или ручной.

 

Работа производится с полилиниями текущего основного файла-чертежа.

 

Для вызова диалога "Корректировка близких точек полилиний основного файла-чертежа" курсор помещается в любое место рабочего графического окна и нажимается левая или правая клавиша мыши.

 

 

 

 

Исходный файл чертеж - для информации выводится название текущего основного файла-чертежа.

 

Считать близкими точки, между которыми расстояние 2D (в плане) меньше ... - вводится расстояние, по которому программа определяет, является ли точка полилинии близкой к другой точке или отрезку другой полилинии.

 

Не проводить автоматического усреднения, если разница отметок (Z) больше ... - если разница отметок между близкими точками больше заданного значения, то автоматическая корректировка координат таких точек не производится. Корректировка возможна только с предварительным вводом нужных координат новой точки.

 

Разновидности близких точек

 

Точки внутри полилиний - точка полилинии находящаяся близко к соседней точке этой же полилинии.

 

Точки начал / концов полилиний относительно точек начал / концов других полилиний - точка начала или конца полилинии, находящаяся близко к точке начала или конца другой полилинии.

 

Точки внутри полилиний относительно точек начал / концов других полилиний - точка начала или конца полилинии, находящаяся близко к точке внутри другой полилинии (не считая точек начала или конца другой полилинии).

 

Точки начал / концов полилиний относительно отрезков других полилиний - точка начала или конца полилинии, находящаяся близко к отрезку другой полилинии.

 

 

Если отмечено несколько разновидностей близких точек, то сначала все полилинии проверяются на наличие той разновидности близких точек, которая является верхней в списке среди отмеченных разновидностей близких точек.

Проверка производится начиная с полилинии, имеющей наибольший номер и заканчивая полилинией с номером 1.

Затем все полилинии проверяются на наличие следующей разновидности близких точек и т.д.

 

Близкой считается точка, расстояние от которой до другой точки или до отрезка другой полилинии меньше заданного значения. Расстояние вычисляется только по координатам X и Y, без использования координаты Z.

 

 

 

Провести автоматическую корректировку близких точек - программа последовательно ищет близкие точки и производит их корректировку, если это возможно.

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

 

 

Рассмотрим корректировку для разных видов близких точек.

 

Точки внутри полилиний.

Если в полилинии есть несколько пар близких точек то берутся две самых близкие точки.

Если полилиния состоит всего из двух близких точек (короткая полилиния), то полилиния удаляется полностью.

Если разница координат Z двух близких точек больше заданного значения, то автоматическое редактирование не производится, производится переход к другой полилинии.

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

Если одна из найденных близких точек является точкой начала или конца, то точке замены присваиваются координаты точки начала/конца, иначе координаты точки замены будут  равны средним координатам найденных двух точек.

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

 

 

Точки начал / концов полилиний относительно точек начал / концов других полилиний.

Для проверяемой точки начала или конца текущей проверяемой полилинии близкими могут оказаться несколько точек начал/концов из разных полилиний.

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

Если разница Z меньше или равна заданной, то по всем найденным точкам вычисляются средние координаты точки, на которую заменить найденные близкие точки, и производится замена координат всех найденных близких точек.

 

 

Точки внутри полилиний относительно точек начал / концов других полилиний.

Для проверяемой точки внутри полилинии близкими могут оказаться несколько точек начал/концов из разных полилиний.

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

Если разница Z меньше или равна заданной, то по всем найденным близким точкам вычисляются средние координаты точки, на которую заменить найденные близкие точки. Координаты точки внутри полилинии и точки начала / конца полилинии (начал / концов полилиний) заменяются на вычисленную среднюю точку. Полилиния, внутри которой находится проверяемая точка, разделяется на две самостоятельные полилинии.

 

 

Точки начал / концов полилиний относительно отрезков других полилиний.

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

Если разница Z больше заданной, то автоматическая корректировка не производится, производится переход к другой полилинии (а если проверялась точка начала, то к точке конца той же полилинии).

Если разница Z меньше или равна заданной, то в отрезок полилинии вставляется вычисленная точка пересечения, а затем эта полилиния разделяется на две самостоятельные полилинии. Проверяемой точке начала или конца текущей проверяемой полилинии также присваиваются координаты вычисленной точки пересечения. Если имеются точки начала / конца других полилиний, в точности совпадающие с проверяемой точкой, то всем таким точкам начала / конца других полилиний также присваиваются координаты вычисленной точки пересечения.

 

 

Знаков после точки - задается количество знаков после точки, выводимое в элементах диалога с координатами или расстояниями.

 

 

Начать поиск близких точек - начать поиск близких точек в соответствии с заданными выше параметрами.

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

 

Информация об ошибке включает в себя следующие элементы :

- сообщение о текущем обрабатываемом виде близких точек;

- сообщение о найденных близких точках полилиний;

- кнопки с описанием возможных дальнейших действий пользователя;

- предлагаемые координаты точки, на которую заменить найденные близкие точки;

- таблица с подробной информацией о близких точках / полилиниях, включая координаты точек.

Кроме того, программа производит центрирование рабочего графического окна в текущую проверяемую точку или в точку пересечения на отрезке и отмечает эту точку значком .

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

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

 

 

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

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

 

 

Точки внутри полилиний.

Найдены две близких точки внутри одной полилинии.

Можно выбрать один из двух вариантов действий - либо "Координаты точек не менять, искать следующие близкие точки", либо "Две близких точки заменить на одну точку с заданными координатами, затем искать следующие близкие точки".

 

 

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

 

 

 

Точки начал / концов полилиний относительно точек начал / концов других полилиний.

Начало полилинии 1238 близко (2D расстояние = 0.024515м) к концу полилинии 1237.

Действия - примерно как в предыдущем случае.

 

 

 

Здесь близкими являются 3 точки, причем разница между максимальным и минимальным значением Z превышает заданное значение 0.2м.

Поэтому программа не заполняет элемент диалога "Z=" с предлагаемой координатой Z.

 

Для заполнения элемента диалога "Z=" можно выполнить одно из трех действий :

1. Ввести значение координаты Z вручную.

2. Сделать активной клетку с каким-либо значением Z в таблице и произвести двойное нажатие на левую клавишу мыши - выбранное значение перепишется из клетки таблицы в элемент диалога "Z=".

3. Выделить несколько подряд идущих значений Z в таблице, нажать правую клавишу мыши и выбрать пункт всплывающего меню "Вычислить и записать среднее значение Z" :

После того, как элемент со значением Z заполнен, можно производить изменение координат близких точек.

 

 

 

 

Точки внутри полилиний относительно точек начал / концов других полилиний.

В дополнению к тому, что было описано выше, здесь можно видеть, что имеется не 2 и 3 возможных вариантов действия.

Действие по первой кнопке (без редактирования) совпадает с предыдущими случаями.

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

 

 

 

Точки начал / концов полилиний относительно отрезков других полилиний.

В отличие от описанных выше случаев, программа предлагает заменить точку начала полилинии не на среднюю точку, а на точку, лежащую на отрезке (на красной полилинии).

 

 

 

 

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

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

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

 

 

 

 

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

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

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