27. Работа с геометрией объектов — Документация НИМФА Руководство пользователя 5.0

# 27. Работа с геометрией объектов

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

> 1. вручную;
> 2. с помощью специальных инструментов.

## 27.1. Инструменты для работы с геометрией

Переход к инструментам для работы с геометрией объектов осуществляется с помощью команды «Работа с геометрией» меню объектов. Данная команда содержит подменю, где представлены все инструменты для работы с геометрией (Рис. 24.4.7.1).

Рисунок 27.1.1 - Команда меню для перехода к инструментам редактирования геометрии объектов

Ниже приведено подробное описание всех инструментов для работы с геометрией.

### 27.1.1. Заменить геометрию

Опция для замены геометрии доступна только для полигональных объектов. На (Рис. 27.1.1.1) представлен диалог для замены геометрии выбранного объекта.

Рисунок 27.1.1.1 - Диалог для замены геометрии объекта

Слева в области отображения диалога представлена текущая геометрия объекта. Чтобы загрузить новую геометрию объекта, нужно нажать кнопку «Открыть» и в открывшемся диалоге выбрать *.bln файл, в котором содержится геометрия объекта. Справа в области отображения будет представлена геометрия объекта из файла (Рис. 27.1.1.2).

Рисунок 27.1.1.2 - Диалог после загрузки новой геометрии из файла

Чтобы изменить текущую геометрию объекта на выбранную из файла, следует нажать кнопку «Применить».

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

Рисунок 27.1.1.3 - Информационное сообщение о том, что в файле содержится геометрия более чем для одного объекта

При изменении геометрии свойства объектов сохраняются для всех объектов, кроме контура области моделирования . Параметры контура области моделирования, а следовательно и его разбиение необходимо задать заново. Для объектов типа «ГУ на кровле или подошве» , производится обнуление параметров, заданных в узлах.

### 27.1.2. Заменить геометрию на геометрию контура

Производит замену геометрии выбранного объекта типа «Зона со свойствами» на геометрию контура области моделирования .

### 27.1.3. Разделить объект на сегменты

Данная опция доступна для полигональных и полилинейных объектов. На (Рис. 27.1.3.1) представлен диалог для деления выбранного объекта на сегменты.

Рисунок 27.1.3.1 - Диалог для деления объекта на сегменты

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

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

Для граничных условий, где в узлах значения заданы с помощью 2D карты, необходимо, чтобы полилиния ГУ была разбита с ребром меньшим, чем габариты ячейки в 2D карте. Иначе не все влияние граничного условия будет учтено при моделировании.

### 27.1.4. Установить существующее разбиение по отрезкам как нужное

Данная опция доступна для следующих объектов:

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

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

### 27.1.5. Упростить геометрию объекта

Данная опция доступна для полигональных и полилинейных объектов. На (Рис. 27.1.5.1) представлен диалог для упрощения геометрии объекта.

Рисунок 27.1.5.1 - Диалог для упрощения геометрии объекта

В данном диалоге необходимо выбрать:

> - «Операция» - способ упрощения геометрии:

>   - «Убрать лишние точки» - убрать лишние точки так, чтобы сохранить особенности геометрии;

>     Исходное разбиение контура | Разбиение контура после упрощения
>     --- | ---

>   - «Огрубить» - подменить исходный контур на переразбитый с заданным размером ребра;

> - «Размер ребра» - размер ребра для разбиения контура. Данное поле доступно для операции огрубления контура.

Чтобы завершить процедуру упрощения геометрии, нужно нажать кнопку «Применить операцию». После процедуры упрощения геометрии объектов, параметры, заданные в них, сохраняются для всех типов объектов, кроме контура области моделирования .

### 27.1.6. Посмотреть геометрию объекта

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

Рисунок 27.1.6.1 - Диалог для просмотра геометрии объекта

### 27.1.7. Удалить двойников с типом - <Тип_объекта>

Нередко после операции импорта объектов из файлов в 2D редакторе возникают так называемые двойники - объекты с одинаковой геометрией. Удалить двойников можно с помощью опции «Удалить двойников с типом - <Тип_объекта>». Данная опция доступна для полигональных объектов. Если двойники существуют в 2D редакторе, то на экране появится диалог (Рис. 27.1.7.1).

Рисунок 27.1.7.1 - Диалог для удаления объектов с одинаковой геометрией

В диалоге будет указано, сколько двойников найдено. Для подтверждения удаления двойников нужно нажать кнопку «Удалить». Если двойники не были обнаружены, на экране отобразится информационное сообщение (Рис. 27.1.7.2).

Рисунок 27.1.7.2 - Информационное сообщение об отсутствии объектов с одинаковой геометрией

## 27.2. Ручное редактирование геометрии

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

> 1. командой «Войти в режим редактирования геометрии» ;

>    Рисунок 27.2.1 - Команда меню для перехода в режим редактирования геометрии

> 2. клавишей «E».

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

Примечание

После перехода в режим редактирования геометрии активной остается только область редактирования геометрии 2D редактора.

### 27.2.1. Выбор ребер и вершин

В режиме ручного редактирования геометрии при выборе вершин и ребер формируются два списка:

> - список выбранных вершин
> - список выбранных ребер

Изменяя содержимое одного списка (выбирая вершину или ребро), содержимое другого списка меняться не будет.

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

Множественный выбор вершин и ребер производится одним из способов:

> 1. зажать «Ctrl» и поочередно мышкой выбрать вершины или ребра;
> 2. зажать левую клавишу мыши и рамкой выделить вершины или ребра. При выборе рамкой учитывается установленный в ленте приоритет выбора (Рис. 27.2.1.1). Если выбрано «Ребро», то рамкой будут выбраны ребра, если выбраны «Узел» или «Нет», то будут выбраны вершины, попавшие в рамку.

Рисунок 27.2.1.1 - Список для установки приоритета выбора примитивов

Примечание

Снять выбор с вершин можно, нажав в пустое место сцены

### 27.2.2. Ручное перемещение вершин

Выбранные вершины можно перемещать. Для этого:

1. Нужно произвести выбор вершин
2. Зажать левую кнопку мыши на одной из выбранных вершин.
3. Произвести движение курсора в сцене в нужное место
4. Отжать левую кнопку мыши

После этого все выбранные вершины будут перемещены в заданную позицию.

Примечание

Напрямую произвести сдвиг объекта в редакторе нельзя

### 27.2.3. Редактирование вершин

Вершины в режиме ручного редактирования геометрии отображаются как желтые квадратики, которые соединены черной линией (ребрами), а выбранные вершины - как зеленые квадратики (Рис. 27.2.3.1). Изменить геометрию объекта можно, изменив координаты его вершин, удалив или добавив новые вершины и пр.

Рисунок 27.2.3.1 - Вершины в режиме ручного редактирования геометрии полигона

Ниже приведено описание всех опций меню для работы с вершинами выбранного объекта (полигона или полилинии).

#### 27.2.3.1. Выбрана вершина

Данная опция отображает номер выбранной вершины. После редактирования номера вершин обновляются, так что при следующем редактировании они все идут по порядку от первой к последней.

Опция служит исключительно для информативных целей.

#### 27.2.3.2. Уточнить координаты

Опция открывает диалог для уточнения координат выбранной вершины (Рис. 27.2.3.2).

Рисунок 27.2.3.2 - Диалог для уточнения координат выбранной вершины

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

#### 27.2.3.3. Копировать координаты в буфер

Опция производит копирование координат выбранной вершины в буфер обмена.

#### 27.2.3.4. Вставить координаты из буфера <x,y>

Опция производит замену текущих координат выбранной вершины на координаты из буфера обмена.

#### 27.2.3.5. Начать деление полигона

Данная опция включает режим разбиения полигона. Начало разбиения полигона производится из выбранной вершины.

#### 27.2.3.6. Разбить полилинию на две в вершине

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

#### 27.2.3.7. Задать значение в вершине

Опция открывает диалог для задания значения в выбранной вершине. Данная опция доступна для полилиний типа «Боковое ГУ» и Внутреннее «ГУ» с уже заданными свойствами.

Диалог для бокового ГУ | Диалог для внутреннего ГУ
--- | ---

Для внутреннего граничного условия это задание абсолютной отметки рельефа, если тип внутреннего ГУ - «береговая линия» или «А.О. рельефа». Для «фильтрационного барьера» такой опции в меню не появляется.

Для бокового ГУ - это значение той величины, которая была задана в свойствах граничного условия, на определенное время. Перезадание значений в узлах линии ГУ не дает эффекта в расчете только в случае если задан тип значения «Зависит от времени».

#### 27.2.3.8. Посмотреть координаты

Опция открывает таблицу для просмотра координат выбранных вершин полигона или полилинии (Рис. 27.2.3.3). Данная опция доступна, если выбрано несколько вершин.

Рисунок 27.2.3.3 - Таблица для просмотра координат выбранных вершин

#### 27.2.3.9. Разбить полигон по условному ребру (пунктир)

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

Усл. ребро для разбиения | Полигоны после разбиения по усл. ребру
--- | ---

Если до деления у полигона были заданы параметры, то после деления обеим частям полигона будут присвоены такие же параметры. В том числе сохранится заданное имя. Чтобы различать такие полигоны, нужно изменить имя вручную. Если было произведено деление контура области моделирования , на ребрах которого было задано детальное разбиение, то после деления полигона оно «затрется».

#### 27.2.3.10. Изменить <X,Y> координаты вершин

С помощью данной опции производится массовое изменение координат выбранных вершин. Опция имеет подменю с командами:

> - «Установить» - задать новые координаты;
> - «Переместить» - произвести сдвиг на заданное число.

Задать новые координаты | Переместить на заданное число
--- | ---

#### 27.2.3.11. Удалить вершины

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

Рисунок 27.2.3.4 - Промежуточная геометрия полигона

Удалить выбранные вершины также можно клавишей «Delete».

#### 27.2.3.12. Ограничения

Данная опция имеет подменю с командами:

> - «Добавить вершины» - добавить выбранные вершины к точкам ограничений;
> - «Удалить вершины» - удалить выбранные вершины из точек ограничений.

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

Точки ограничений в окне редактирования геометрии обозначаются серыми кружочками (Рис. 27.2.3.5) и отображаются, если выбран контур области моделирования.

Рисунок 27.2.3.5 - Точки ограничений

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

> - необходимо сформировать дополнительные речные узлы в сегменте реки помимо узлов начала и конца сегмента.

> - необходимо выделить особенности геометрии контура (например, острые углы);

> - необходимо отделить участки границы контура области моделирования с одинаковым разбиением;

> - необходимо отделить участки границы контура области моделирования с заданными на них однородными значениями параметров (например, боковое ГУ, заданное на участке границы контура); так же необходимо чтобы участок с ГУ полностью накладывался на точки разбиения. Иначе в этих точках граничное условие будет взято по-умолчанию.

>   ГУ не совпадает с точками разбиения | ГУ совпадает с точками разбиения
>   --- | ---

> - необходимо согласовать пересечение линий с заданным сеточным размером, а также линий для задания внутреннего ГУ с границей контура области моделирования. В таком случае точки ограничений должны быть установлены и на линиях, и на границе контура.

>   Для этого можно автоматизировать добавление точек ограничений в местах пересечений линий с заданным сеточным размером и линий для задания внутреннего ГУ с границей контура области моделирования. Сделать это можно с помощью команды («Подготовить контур обл. моделирования»), расположенной в ленте 2D редактора (Рис. 27.2.3.6).

>   Рисунок 27.2.3.6 - Команда для подготовки контура в ленте 2D редактора

### 27.2.4. Редактирование ребер

Ребра в режиме ручного редактирования геометрии отображаются в виде черной линии, соединяющей вершины (узлы), а выбранные ребра в виде сиреневой линии (Рис. 27.2.4.1).

Рисунок 27.2.4.1 - Ребра в режиме ручного редактирования геометрии полигона

Ниже приведено описание всех опций меню для работы с ребрами выбранного объекта (полигона или полилинии).

#### 27.2.4.1. Выбрано ребро для разбиения

Опция отображает номер выбранного ребра. После редактирования номера ребер обновляются, так что при следующем редактировании они все идут по порядку от первого к последнему.

Опция служит исключительно для информативных целей.

Примечание

- первое ребро соединяет первую и вторую точки полилинии(полигона)
- последнее ребро соединяет предпоследнюю и последнюю точку полилинии и последнюю и первую точку полигона

#### 27.2.4.2. Отменить выбор

С помощью данной опции производится отмена статуса «выбрано» с выбранных ребер.

#### 27.2.4.3. Разбить ребро в установленной точке

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

#### 27.2.4.4. Начать разбиение полигона из точки на ребре

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

#### 27.2.4.5. Создать объект «Боковое ГУ»

Данная опция доступна только для контура области моделирования . Создает объекты типа «Боковое ГУ» на выбранных ребрах контура области моделирования.

#### 27.2.4.6. Детальное разбиение

Опция открывает диалог для детального разбиения выбранных ребер. (Рис. 27.2.4.2). Опция доступна только для контура области моделирования , у которого предварительно было задано разбиение. Так же нельзя задать детальное разбиение для несвязных множеств ребер.

Рисунок 27.2.4.2 - Диалог для задания детального разбиения на ребрах контура обл. моделирования

##### 27.2.4.6.1. Секция «Обычное разбиение»

В диалоге в секции «Обычное разбиение»

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

##### 27.2.4.6.2. Секция «Обычное Прогрессия»

В секции «Прогрессия»

- Использовать геом прогрессию

  - «Нет» - при выборе данной опции выбранное множество ребер будет разбито на ребра с длиной примерно равной заданной в поле «Характерный размер»
  - «Да» - при выборе данной опции выбранное множество ребер будет разбито на ребра с переменной длиной, вычисляемой по геом. прогрессии .

- q - знаменатель прогрессии.

  Задается в диапазоне от 0.5 до 1.5.

- Ограничить мин. длину ребра

  - «Нет» - при выборе такой опции размер ребра не ограничивается
  - «Да» - при выборе данной опции, если получаемый по формуле геом.прогрессии размер ребра меньше значения заданного в поле «Мин. длина ребра (Ограничитель)», то он становится равен

- Мин. длина ребра (Ограничитель) - в данном поле задается . Данное ограничение используется при q<1 ( когда длина каждого нового ребра меньше предыдущей)

- Сумма получаемых ребер - поле информационное (не редактируемое)

  - если q>1 сумма вычисляется как .
  - если q<1 сумма вычисляется как .

- Мин. получаемая длина ребра - поле информационное (не редактируемое) В данном поле отображается длина самого маленького ребра в разбиении

- Число получаемых ребер - поле информационное (не редактируемое) В данном поле отображается сколько всего получается ребер при данном разбиении для покрытия выбранного множества ребер.

Примечание

- не всегда при q<1 сразу можно получить нужное разбиение, в таком случае надо либо увеличить q, использовать ограничитель длины или изменить характерный размер ребра
- После нажатия кнопки «Задать», если разбиение возможно применить к выбранному множеству ребер - выбранное множество ребер ограничивается точками ограничений
- Детальное разбиение перестает работать если переопределить свойства контура области моделирования

#### 27.2.4.7. Выбрать все ребра с данной прогрессией

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

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

### 27.2.5. Команды завершения редактирования

Данные команды всегда доступны в меню редактирования геометрии (Рис. 27.2.5.1).

Рисунок 27.2.5.1 - Команды завершения редактирования геометрии в меню

#### 27.2.5.1. Сохранить изменения геометрии

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

#### 27.2.5.2. Отменить изменения геометрии

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

#### 27.2.5.3. Замкнуть полилинию

Данная опция производит замыкание полилинии. Геометрический тип объекта при этом не меняется.

Опция недоступна для полилиний типа:

> - сегмент реки
> - прямоугольный контур
> - профиль
> - разрез

## 27.3. Действия с полигонами и полилиниями

При подготовке концептуальной модели иногда возникает необходимость в делении и объединении полигонов и полилиний. Описание инструментов деления и объединения полигонов и полилиний представлено ниже.

### 27.3.1. Деление полигонов

Деление полигонов производится с помощью команд меню режима ручного редактирования геометрии .

#### 27.3.1.1. Режим ручного деления полигона

Режим ручного деления включается одной из команд:

> - «Начать деление полигона» - в случае, если деление полигона начинается из выбранной вершины полигона;
> - «Начать деление полигона из точки на ребре» - в случае, если выбрано ребро и деление полигона начинается из точки, установленной на выбранном ребре.

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

a) | б) | в)

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

Отменить деление полигона и выйти из режима ручного деления можно с помощью команды «Отменить деление полигона». Данная команда появится в меню, если ранее был включен режим деления.

#### 27.3.1.2. Деление полигона по условному ребру

Данная опция появится в меню, если выбраны две не соседние вершины полигона. Она производит деление полигона по условному ребру, соединяющему выбранные вершины. Условное ребро для наглядности отображается пунктирной линией (Рис. 27.3.1.1).

Рисунок 27.3.1.1 - Деление полигона по условному ребру

#### 27.3.1.3. Деление полигона линией из файла

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

Деление полигона линией из файла производится командой «Разделить полигон линией из файла». Линия деления должна содержаться в *.shp файле.

### 27.3.2. Объединение полигонов

Объединение полигонов производится с помощью команды меню «Объеденить полигоны». Данная команда отображается в меню, если в окне редактирования геометрии выбраны два полигона (Рис. 27.3.2.1).

Рисунок 27.3.2.1 - Команда меню для объединения полигонов

Команда открывает диалог для объединения полигонов (Рис. 27.3.2.2).

Рисунок 27.3.2.2 - Диалог для объединения полигонов

В области отображения диалога синим и красным цветом представлены объединяемые полигоны. Черной сплошной линией изображена граница полигона, который получится после объединения (финальный полигон). В списке «Тип объекта» нужно выбрать тип, который будет присвоен финальному полигону. Чтобы объединить полигоны, нужно нажать кнопку «Объединить».

Если у объединяемых полигонов совпадает тип, финальный полигон будет иметь такой же тип. На (Рис. 27.3.2.3) представлен вид диалога для объединения полигонов одинакового типа.

Рисунок 27.3.2.3 - Диалог для объединения полигонов одинакового типа

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

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

### 27.3.3. Объединение полилиний

Объединять можно только полилинии типа «Линия с заданным сеточным размером» . Объединение полилиний производится с помощью команды меню «Объединить полилинии» (Рис. 27.3.3.1).

Рисунок 27.3.3.1 - Команда меню для объединения полилиний

Команда открывает диалог для объединения полилиний (Рис. 27.3.3.2).

Рисунок 27.3.3.2 - Диалог для объединения полилиний

В области отображения диалога черной линией изображена граница полигона, который получится после объединения выбранных полилиний. В списке «Тип объекта» нужно выбрать тип, который будет присвоен полигону после объединения полилиний. Если в поле диалога «Удалить полилинии после объединения» установить галочку, то после создания полигона полилинии будут удалены из окна редактирования геометрии. Чтобы объединить полилинии, нужно нажать кнопку «Объединить».