Создание рельефа в автокад
Каркасные модели
Создается каркасная модель командами построения двумерных графических примитивов, к которым относятся отрезки, точки, круги, дуги и т.д., но задавать нужно трехмерные координаты точек X, Y, Z. Трехмерные координаты вводятся с клавиатуры или указываются курсором мыши с обязательным использованием объектной привязки.
Поверхности
Поверхности представляются не только ребрами, они же в свою очередь представляются непрозрачными гранями. Поверхность может быть представлена ??сеткой, то есть рядом последовательно расположенных граней, имеющих общие ребра. Поверхностная модель характеризуется объемом. В отличие от каркасной модели поверхностные модели более наглядно характеризуют объект, позволяют скрывать невидимые части объекта. Средствами AutoCad можно создать поверхности таких типов:
- Команда 3DFACE строит трехмерную грань, задается тремя или четырьмя ребрами.
- Команда 3DMESH строит сетку из четырехугольников, вершины которых нужно задать.
- Команда PFACE строит многогранную сетку, для которой задаются вершины и указываются грани к которым они относятся.
- Команда EDGESURF строит поверхность Кунса, ограниченную четырьмя криволинейными или прямыми ребрами.
- Команда RULESURF образует сетку, соединяющий два криволинейные или прямые ребра.
- Команда REVSURF образует поверхность вращения путем вращения двумерного объекта вокруг оси.
- Команда TABSURF образует поверхность путем перемещения двумерного объекта в заданном направлении.
- Команда 3D открывает диалоговое окно, в котором выбирается один из стандартных трехмерных примитивов (параллелепипед, сфера, призма и т. др.).
Команды создания поверхностей находятся в меню Draw >Modeling> Surfaces или вызываются нажатием соответствующих кнопок панели инструментов Surfaces. Другой способ создания поверхностей сложной формы заключается в применении теоретико-множественных операций в области, образованных командой Region.
Трехмерная грань (3DFACE)
Способы ввода команды:
Кромка (EDGE)
Способы ввода команды:
Команда управляет видимостью ребер граней. Запросы команды: Specify edge of 3dface to toggle visibility or [Display] позволяют выбрать ребра, которые должны быть невидимыми, скрытыми. Для изменения видимости ребер служит опция Display, которая позволяет выполнить противоположное действие и выбрать ребра, для отображения на экране.
Трехмерная грань (3DMESH)
Способы ввода команды:
Команда 3DMESH строит произвольную незамкнутую сетку с четырехугольников, вершины которых нужно задать. Использование команды позволяет построить сетку достаточно сложной конфигурации. Команда выдает запрос на размер сетки в направлениях М (Enter size of mesh in M ??direction), который ближе к горизонтальному направлении и N (Enter size of mesh in N direction), который ближе к вертикальному направлении. В ответ нужно ввести число в диапазоне от 2 до 256. Далее выдаются запросы относительно координат точек. Необходимо учитывать, что точки сетки имеют такую ??нумерацию и расположение:
00 | 01 | 02 | …. | 0n |
10 | 11 | 12 | …. | 1n |
20 | 21 | 22 | …. | 2n |
30 | 31 | 32 | …. | 3n |
…. | …. | …. | …… | |
m0 | m1 | m2 | …… | mn |
Многогранная сетка (PMESH)
Способы ввода команды:
Команда строит многогранную сетку какого угодно вида с произвольным количеством вершин. Сначала вводятся координаты вершин: Command: PFACE Specify location for vertex 1: 40,50,0 Specify location for vertex 2 or <define faces>: 100,150,60 Specify location for vertex 3 or <define faces>: 80,50,150 Specify location for vertex 4 or <define faces>: 400,70,90 Specify location for vertex 5 or <define faces>: 120,50,70 Specify location for vertex 6 or <define faces>: После нажатия клавиши ENTER команда предлагает определить какие вершины принадлежат каждой из граней: Face 1, vertex 1: Enter a vertex number or [Color / Layer] 1 Face 1, vertex 2: Enter a vertex number or [Color / Layer] <next face> * Cancel * Поверхность Кунса (EDGESURF) Способы ввода команды:
Поверхность образуется на четырехугольнике, стороны которого могут быть прямыми, дугами или полилиниями. Размер сетки определяется системными переменными SURFTAB1 и SURFTAB2, которые определяют количество прямолинейных сегментов, заменяющих криволинейные стороны. По умолчанию значение системных переменных равно 6.
Поверхность соединения (RULESURF)
Способы ввода команды:
Команда RULESURF образует сетку, соединяющий две кромки. Кромками могут выступать отрезки, дуги, полилинии. Они должны быть одновременно незапертой или одновременно замкнутыми. Число прямолинейных сегментов вдоль криволинейных кромок определяется системной переменной SURFTAB1. Вид поверхности зависит от выбора точек, указывающих кромки. Выбор соответствующих точек на кромках приводит к созданию не само перекрывающей поверхности, а показав точки на противоположных концах, построим само перекрывающую поверхность.
Поверхность перемещения (TABSURF)
Способы ввода команды:
Команда TABSURF образует поверхность путем перемещения двумерного объекта в заданном направлении. Объект перемещения задается отрезком, дугой, полиллинией. Направление перемещения задается отрезком или незамкнутой полилинией. Создание поверхности сопровождается диалогом:
Select object for path curve: | Выбрать объект перемещения. |
Select object for direction vector: | Выбрать направление перемещения. |
Зеленым цветом отмечена направляющая
Поверхность вращения (REVSURF)
Способы ввода команды:
Способы ввода команды:
- Набрать с клавиатуры команду 3D
- Вызов меню: Draw> Surfaces> 3D Surfaces
Команда 3D открывает диалоговое окно, в котором выбирается один из стандартных трехмерных примитивов (Параллелепипед, сфера, призма и т.д.). В зависимости от типа выбранного примитива система выдает запросы для уточнения исходных данных, необходимых для определения положения и размера примитива.
В следующем уроке мы продолжим рассказывать о методах построения 3D примитивов, а конкретно о построении твердых тел.
Программа генерирует 3д сеть, грубо аппроксимирующую поверхность рельефа. Исходные данные: "облако" точек в Автокаде.
Программа является DVB для AutoCAD 2006 для winXP. При другой конфигурации не тестировалась.
Инструкции по установке
1) распаковать архив Rmaster в папку программы Автокад
2) в Автокаде загрузить приложение(Главное меню>>Инструменты>>Загрузить приложение) \RMaster\rm.dvb
3) выполнить макрос \RMaster\rm.dvb!Initialization.RM_Initialize
4) в появившемся диалоговом окне можно во вкладке “Setup” нажать кнопку “Make” для создания новой панели инструментов и кнопки запуска Relief Master.
Порядок использования:
1) указать углы будущей 3д сети
2) указать размер ячейки сети
3) выбрать точки
4) создать 3д сеть
5) выбрать созданную 3д сеть и построить на ней горизонтали
Версия 1.3 доступна для скачивания
Добавилось:
- проекция точки (x, y) на 3д сеть
- проекция полилинии на 3д сеть
- конвертация polygon mesh в polyface mesh
Версия 1.3.1
- получение облака точек из однострочного текста
- построение дополнительных горизонталей между существующими
- дополнительные опции построение поверхности рельефа
Версия 1.4
- горизонтали - цельные 2д полилинии
- можно подписывать высотные отметки нескольких выбранных горизонталей разом
Версия 1.4.1
- исправлена проблема с горизонталями на плоских участках
Версия 1.5
- добавлен инструмент интерактивного создания 3д сети с 3-мя новыми алгоритмами сглаживания поверхности (усреднение отметок, минимизация дисперсии отметок, минимизация общей протяженности участка сети)
Версия 1.6
- улучшен инструмент интерактивного создания 3д сети (добавлен прогноз продолжительности расчета, добавлена возможность останавливать/возобновлять расчеты сети)
Версия 1.7
- оптимизирован алгоритм минимизации общей протяженности участка сети (в зависимости от настроек расчет может происходить в 2 раза быстрее)
Если смотреть на хранение данных о рельефе без привязки к программам, то это хранение может быть интересно только историкам, а в реальном строительстве геоподоснова теряет свою реальность еще на стадии создания. Архивные данные почти всегда не соответствуют натуре. Геодезисты порой просто халтурят и упрощают себе работу надписями типа "изрыто". Вот как такую надпись перевести в математическую модель?
Не привязываться к программам имеет смысл только изходя из того, что они устаревают и заменяются другими, которые старые форматы файлов и макросы не переваривают. Но всегда, я подчеркиваю, всегда математика находит себе выход в программу. Ее только в программе можно хоть как-то использовать. Создав объемную модель рельефа в любом формате файла вы всегда прочтете этот файл, даже если умрут фирмы, которые писали ПО для вас. Это ПО у вас на компе никто не сотрет, руки коротки. И компьютер вы выбросите только тогда, кода купите другой, который может все ваши файлы читать.
3D солиды придумали не в AutoDesk. Есть описание их структуры и рельеф там можно делать как сеть сплайнов, причем в трех плоскостях.
все разбито не на треугольники, а на квадратики (хотя можно и треугольниками, больше сплайнов потребуется), где каждая грань - участок сплайна.
Но эти все сложности не нужны. Надо упрощать, а не усложнять, тем более, что исходный материал -
Если вы понимаете, что математику тоже прийдется хранить в файле, и что DWG или DXF ничем не хуже, то как найти точку на сплайне ближайшую к вектору Z с координатами такими-то, затем к другому сплайну и затем нахождение искомой точки, родим с божей помощью.
Есть два сплайна. Задаем точность и переводим описание сплайна в 3D полилинию или кучу отдельных линий. Находим ближайшую по XY к XY вектора Z и вычисляем на этой линии XYZ точку кратчайшего расстояния.
Проделываем то же самое с другим сплайном.
Имеем две точки и координаты нашего вектора Z. Находим точку на отрезке между двумя точками на сплайнах ближайшую к вектору Z. Z этой точки и есть искомый Z на нашем векторе.
Надеюсь понятно?
AUTODESK.AUTOCAD.RASTER.DESIGN.V2011. Но вёравно он не строит модель местности. Нужно полученные линии тобишь горизонтали разнести по высотам в ручную. Есть программы которые по эти горизонталям построят рельеф местности и дадут возможность ткнув в любую точку получить x,y,z к примеру autocad_civil_3d_2011.
И уже на самое последнее в autocad_civil_3d_2011 и 2010 имеется функция Import Google Earth &Surface. Во! И я о том же. Использовать чей-то продукт и затачивать под него архив не значит ангажировать конкретного производителя ПО. На 14 каде до сих пор многие работают (так архивы сделаны) Хотя в этот формат можно и на более продвинутых кадах все записывать (денег на ПО жалко).
Когда архив разросся, его влом на другой формат переделывать, но если перевести описание чего-то в математическую модель и хранить в текстовом формате (он кажется вечным), то все равно надо писать прогу перегоняющую текст в формат современных ПО. Если все хранится не в тексте, то все равно писать конвертер придется. Так какая разница в чем хранить? Все одно, что понос, что золотуха. Геодезисты порой просто халтурят и упрощают себе работу надписями типа "изрыто" А Рука ми раз водители ни когда не халтурят?
Надпись изрыто, лишь говорит о том, что горизонтали там проводить не стоит, а отметка дона для общего понимания, т.к. на 2 метра вправо она (отметка) может быть уже на 0.5 метра выше, а на 2 метра влево на 0.5 метра ниже, потому, что там "изрыто". Кстати, ещё бывают "Навалы грунта" они вам тоже не понравятся __________________
Почему все вдруг становятся умными, когда уже не надо? Я не говорю о тех ситуациях, когда в самом деле нет смысла описывать данный участок, но когда геодезисту просто было влом попасть на охраняемую территорию и он на ровном месте, без ям и куч написал "изрыто", чему я много раз сам был свидетелем, поскольку теплотрассами часто озабочен, то уж сами понимаете.
Один раз было в Москве, почти в центре. Строение задом примыкает к крутому склону и участок за строением порос колючими кустами, так на геоподоснове там написано "изрыто" пришлось самим отметки снимать. )) ой люди добрые, да чтоб ж вы все такие прикладники, Поймите же, мне нужно "сделать рельеф" в моей собственной программе, дя того чтоб она проводила расчеты так как нужно, а вы мне про автокады, цивилы и прочее. Да, они умеют, но математика там есть, и я хочу знать какая. Мне не нужен рельеф с точностью до кинутой горстьи песка, мне нужно описать примерно на участке метров максимум 300х300, взял карту 1:2000, перерисовал ручками с нее изолинии и отметки высот, программа пощаманила-пошаманила и смогла выдавать z=f(x,y). И всего то! Можна чтоб не очень точно но зато универсально. Тогда есть программа MathCAD, которая обрабатывает функции и строит поверхность и графики.
В результате программа на области карты должна построить некую гладкую функцию вида z=f(x,y) |
а будет ли такая функция? Для сложного рельефа придется разные участки описывать разными сложными функциями. Проще просто хранить набор треугольников
а также алгоритм быстрого поиска попадания точки P(x,y) в ккакой то из треугольников триангуляции. |
А здесь все такие. Здесь все понимают то, что является "военной тайной" для программистов - самое сложное это получить по растровой "карте" правильные горизонтали и отметки точек. Вот эта часть задачи практически, в подавляющем большинстве случаев, нерешаема.
Потому народ и ссылается на программы, в которых это реализовано. Реализовывалось, между прочим, на наших глазах в течение лет двадцати, прежде чем стали хорошие результаты появляться.
Карта я пишу в кавычках, потому что это понятие для "бабушек на скамейке". Если работаете действительно с картой, т.е. отображением поверхности планеты с учетом её формы, задача и теоретически нерешаема. Надо говорить про план, т.е. представление местности из предположения, что земля плоская и покоится на спинах слонов.
А когда есть идеализированная модель местности, где можно горизонтали представить в виде "некую гладкую функцию вида z=f(x,y)", остальное - дело техники программирования.
Геодезические алгоритмы триангуляции изложены в учебниках по геодезии. Без привязки вообще к программирования. Есть и старая книжка "Решение массовых геодезических задач на микроЭВМ" (еще 1991 год). Там достаточно подробно. В доступной плоской форме.
Создание поверхности по горизонталям
Имеется чертеж, в котором отображены горизонтали. Горизонтали являются полилиниями и лежат каждая на своей отметке.
Для добавления горизонталей необходимо в коллекции Поверхности развернуть целевую поверхность, подменю Определение, выбрать Горизонтали, и с помощью правой кнопки мыши вызвать команду Добавить. Появляется окно, в котором указываем условия добавления горизонталей.
Выбрав при помощи рамки все горизонтали, получаем поверхность.
Создание поверхности по 3D граням
Иногда в чертежах остаются 3 D грани, по ним тоже можно восстановить ЦМР.
Для добавления горизонталей необходимо в коллекции Поверхности развернуть целевую поверхность, подменю Определение, выбрать Объекты чертежа, и с помощью правой кнопки мыши вызвать команду Добавить.
Чтобы точно восстановить ЦМР важно не забыть про галочку Сохранять конфигурацию ребер. После выбора 3 D граней получаем поверхность Civil 3D.
Подобным же образом можно строить поверхности по точкам AutoCAD, блокам и т. д.
Читайте также: