Есть весьма экзотическая задача: cсуммировать высотные отметки 2-х поверхностей и получить 3-ю поверхность с этими отметками. Т.е., если у нас есть поверхность со средней отметкой 100 и поверхность со средней отметкой 110, то третья поверхность должна иметь отметку 210.
В чистом виде в Civil 3D нет такой функции, есть возможность создать композитную поверхность, но она дает не сумму, а разницу, т.е. вместо 210 мы получим 10. Поэтому придется использовать другой способ. Я решил сделать это путем извлечения координат точек (X,Y одинаковые, Z разные) из 2-х поверхностей, суммирования этих точек и построение третьей поверхности по полученным точкам.
Данный способ имеет ряд ограничений:
1.Поверхности должны иметь одинаковую границу, т.е. в плане должны быть ограничены одним контуром;
2.Слегка теряется точность, т.е. суммарная поверхность может потерять сложные элементы рельефа, как, например, подпорная стенка.
Перед началом работ рекомендую создать 2 одинаковых файла- один для осуществления работ с первой поверхностью. Второй- для второй поверхности.
Начнем с создания файла точек по каждой из суммируемых поверхностей. Причем этот файл точек должен содержать точки, которые имеют одинаковый X и Y. Для того, чтобы сумма бралась в одной точке. Поэтому расстановка точек по вершинам поверхностей не подходит (обе поверхности могут иметь разный рельеф, и, соответственно, вершины расположены в разных координатах). Нужно использовать пользовательскую сетку простановки точек.
Для этого сначала создадим группу точек под названием Поврехность1 настроив её так, чтобы все точки с описанием 1 попадали в неё (вкладка Включить, поставить галочку и единичку на против По совпадению исходных описаний).
Рисунок 1. Настройка автоматического задания описания точек |
Теперь, для того чтобы задать пользовательскую стеку точек, нам необходимо нарисовать рамку вокруг поверхностей. Это позволит нам без труда задавать нужные параметры нашей сетке, рамка может быть обычным прямоугольником AutoCAD.
Наконец-то можем начать создавать точки по сетке, команда так и называется- По стеке, рисунок 2.
Рисунок 2. Расположение команды создания точек по сетке |
1.Укажите базовую точку сетки: Укажите левый нижний угол рамки. ВНИМАНИЕ! Указание другой базовой точки у второй поверхности приведет к тому, что сумма поверхностей будет не верной;
2.Поворот сетки <0.0000 (град)>: Здесь ничего менять не нужно, поэтому можно просто нажать Enter;
3.Шаг сетки по X <5.0000>: Этот параметр определяет точность суммарной поверхности (шаг расстановки точек), чем меньше шаг сетки, тем выше будет точность;
4.Шаг сетки по X <5.0000>: То же самое только, уже по Y;
5.Укажите местоположение правого верхнего угла для сетки: Это диагональ нашей рамки-прямоугольника, которая должна проходить от базовой точки (левый нижний угол) до правого верхнего угла;
6.Изменить размер или угол поворота ячеек сетки [Да/Нет] Если вас все параметры устраивают, выбирайте Нет;
После этого Civil задумается, проставит точки и снова запросит Укажите базовую точку сетки:, команда зациклена, поэтому жмите Esc.
Сразу же надо обновить группу точек Поврехность1 и, нажав правой кнопкой мыши на эту группу, выберете Экспорт точек… Для экспорта выберете подходящий формат, рекомендую в качестве разделителя использовать пробел и тип файла txt.
Теперь то же самое сделайте для второй поверхности и, как я уже писал выше, лучше это сделать в другом файле.
Прежде чем приступать к следующей части, рекомендую прочитать вот эту запись об особенностях взаимодействия Civil 3D и Excel.
В результате, мы имеем 2 текстовых файла. Откройте один из них в Excel и скопируйте данные о высотных отметках из второго в него же, в соседний столбец. Затем, в новом столбце по формуле типа: =D1+F1 получите сумму и протащите эту формулу на все остальные строки, тем самым мы получим необходимую суммарную отметку.
Но теперь у нас получились лишние столбцы, как на Рисунке 3.
Рисунок 3. Полученные данные в Excel |
Эти лишние столбцы - данные об отметках родительских поверхностей, теперь они нам не нужны и их лучше удалить. Т.к. удаление этих столбцов приведет к обнулению суммы (на них завязана формула), то предлагаю сначала сохранить файл в txt, закрыть его. Затем открыть, привязка на формулу тем самым исчезнет, и мы можем спокойно удалить лишние столбцы.
Теперь уже сохраняем это всё в txt файл и создаем по нему нашу суммарную поверхность.
Здравствуйте, подскажите пожалуйста как создать композитную поверхность, показывающую разность отметок 2х поверхностей. Заранее благодарю.
ОтветитьУдалитьОтличный метод. Я искал как построить результирующую поверхность
ОтветитьУдалитьhttp://forum.dwg.ru/showthread.php?p=1730581#post1730581
От себя добавлю - в эксель надо копировать все координаты обоих групп точек и сравнить X-Y, потому что во второй поверхности у меня где-то закралась лишняя точка и результат изначально был неправильный.
А не проще вычесть из нулевой поверхности одну из тех, которые надо сложить. Получить поверхность с отрицательными значениями высот, а потом из другой вычесть эту отрицательную поверхность - как раз получится сумма)
ОтветитьУдалитьЭтот комментарий был удален автором.
УдалитьЭтот комментарий был удален автором.
УдалитьМетод рабочий! Только нужно добавить ещё одну операцию - экспорт в XML с последующим импортом (LANDXMLIN), т.к. с поверхностями объёма Civil операций совершать не даёт.
Удалить