При разработке плана подготовительных работ на застроенной территории возникает задача по определению объемов срезки асфальтовых покрытий и растительного слоя (особенно если по данным геологии толщина разная). Так же хочется получить поверхность по низу срезаемых слоев для использования в картограмме.
В робуре для решения данной задачи есть несколько способов. Для себя освоил еще один нестандартный способ. Но для сравнения сначала опишу остальные.
Способ первый.
Если нужно просто срезать растительный слой на незастроенной территории то дублируем поверхность, выделяем у нее все точки (просто выделяем всю поверхность и опускаем на нужную величину командой поднять/опустить.
Способ второй. (Основной способ который все используют.)
1.Дублируем поверхность рельефа и делаем ее активной.
2.Рисуем полилинию по контурам срезаемого слоя.
3.Командой создать из примитива превращаем полилинию в структурку и поднимаем ее на поверхность.
4.Копируем структурку по дистанции внутрь (например на 0,1м) и вниз на толщину срезки.
5.Выделяем внешнюю структурку, нажимаем правую кнопку мыши (ПКМ) и внутри нее выделяем все точки поверхности.
6.Опускаем выбранные точки на толщину срезки.
В результате получим поверхность низа срезки.
Минусы данной технологии:
- При уточнении геологии сложно корректировать отдельные участки.
- Отдельно нужно считать площади контуров и объемы
Плюс технологии:
- точность контура срезки
Способ третий.
Еще можно через геомодель построить геологию. Способ можно использовать если проектная поверхность в выемке и требуется разбивка объемов по слоям.
Для варианта, когда нужно срезать растительный слой и асфальт данный способ неоправданно трудозатратен. Придется понатыкать искусственных скважин по периметру и каждой задать толщину и слой грунта.
Ну и наконец четвертый вариант (рекомендуемый).
В топоматике в этот способ не верят т.к. не до конца понимают. Но для меня он стал основным.
1.Полилиниями обвожу контуры покрытий.
2.Командой "создать поверхность из примитивов" (в робуре генплан) получаю полигоны с отметками 0. (Можно по старинке перестраивать поверхность внутри контура.)
Далее можно было бы и использовать эту поверхность, но для конечного результата это невозможно т.к. при построениях появляются контуры которые перекрывают съемку и не нужны для оформления.
3.Копирую нужные полигоны на отдельную поверхность.
Отметки полигонов 0.00.
4.Создаю семантический код для демонтажа с несколькими типами. У каждого типа есть КДО с толщиной срезки, текст с названием работы по демонтажу и тегом для выборки, число с толщиной слоя. Для типов с двумя слоями (если разбираю асфальт и под ними бетонные плиты) два разных текста с работами и разными тэгами. В дальнейшем будет вывод в отдельные таблицы.
5.Присваиваю полигонам семантику и задаю типы.
6.Строю твердотельную модель
7.Создаю ведомость площадей (расширенную), настраиваю шаблон.
В результате получаю таблицу площадей и объемов по каждому слою.
Таблицы вставляю в чертеж оформленный в робуре.
8.Строю поверхность по низу конструкций.
9. Дальше немного магии.
Поясню проблему. Полигоны лежат в нуле. Поверхность по низу конструкций имеет отметки -0,15, -0,4, -0,74. Мне нужно было опустить рельеф на толщину покрытий.
Для этого я хотел использовать функцию разницы поверхностей.
В общем случае эта функция нужна для получения поверхности рабочих отметок. Но в моем случае я рассчитывал с ее помощью опустить поверхность рельефа на толщину слоя.
Но если из отметки рельефа вычесть отрицательную отметку поверхности низа конструкции, то в результате отметки станут еще больше.
Следовательно мне нужно было поменять знак отметок.
Я пробовал разные способы. Менял поверхности местами, вычитал из нулевой поверхности и т.п. Смотрите картинки ниже и подписи к ним.
В результате на С# написал функцию, которая берет все точки текущей поверхности и меняет им знак.
10 Выполняю функцию разность поверхностей
Получилась поверхность с отрицательными отметками.
11 Своей функцией смены знака меняю отметки получившейся поверхности.
12 И наконец делаю поверхность слияния.
Минус получившейся поверхности в отсутствии структурки по периметру контура вырезки. В результате точки вырезки соединяются с внешними точками рельефа. Это можно увидеть по получившимся откосам в сечении.
Исправить это можно только отрисовав полилинию вне контура и подняв ее на поверхность рельефа.
Макрос выложил в телеграм канале. В разделе "Утилиты генплана"
Хотел закончить на этом статью, но есть еще один способ. Топоматик считает его логичным и основным. На практике его применять можно. Это наиболее ленивый способ. Но твердотельная модель строится очень долго.
Пятый вариант
Казалось бы, ведь логично нарисовать полилинию контура, спроецировать на рельеф создав полигон, полигону сделать заполнение (прямо на дублированной поверхности рельефа), присвоить семантику, построить твердотельную модель и поверхность по низу? Логично.
Однако на реальной площадке (у меня было 21 Га с 5500 точек и это только привокзальная территория (остальная часть площадки на порядок больше)) вы будете ждать построения твердотельной модели довольно долго. Я так и не дождался поначалу. (Для одного покрытия проезда минут 7 считал). Мой способ работает на порядок быстрее.
В общем способов много. Можете выбирать что понравится. Удачи.