|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
12.10.2008, 11:21 | #1 | |
Определение высот рельефа по близлежащим точкам
проектировшик
СССР
Регистрация: 01.01.2007
Сообщений: 5,143
|
||
Просмотров: 22018
|
|
||||
Регистрация: 22.09.2005
здесь могла быть ваша реклама
Сообщений: 1,280
|
Поскольку приходится работать на чужих компах и в разных местах, вырабатываю сам себе алгоритм работы без использования громоздких софтов. Стараюсь максимально использовать "голый" ACad. И минимизировать количество приложений.
Я бысделал так: 1) Просто поднять все точки на высоту (легче всего делать при помощи команд ToolPack, или просто вбить руками высоты в окне Properties). 2) Потом объединить все точки с известными высотами при помощи 3d_face (тоже можно сделать руками и без софта). 3) Потом останется только построить профиль... Опять же ToolPack... Вот и всё... |
|||
|
||||
Вот к примеру у вас дуга (одна граница рельефа). Сама дуга в 2D. Текстом указана отметка ее начала и другим текстом - конца. напротив дуги - линия (вторая граница рельефа), в той же плоскости, то бишь, тоже 2D и тоже имеет текстовые отметки. Между этими двумя объектами находится поворот трассы, тоже 2 2D линии. Надо построить профиль по этой трассе.
Задаем дискретизацию (делим трассу на кучу точек), одинаковую для обеих границ рельефа. Определяем высоты для каждой точки границ. Из каждой n-ной точки одной границы проводим прямую к такой же точке другой границы и замеряем пересечение с трассой. В точках трассы делаем дополнительную разбивку границ рельефа так, чтобы прямые из точки на одной границе к другой проходили через точку на трассе. Вычисляем высоты точек рельефа на трассе и вычерчиваем кривую профиля. Ну это так, общие правила. Рисуете направление трассы (2D или 3D полилиния, рисуете одну границу рельефа, другую, включаете макрос, устанавливаете на границах рельефа отметки высот, указываете на линию направления и давите ентер. Глубина или высота трассы определяется во втором этапе, когда вы уже видите сам профиль. Последний раз редактировалось Supermax, 13.10.2008 в 18:18. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
> dextron3 : А потом мужественно преодолеваешь проблемы, созданные собственноручно
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
AutoLISP, AutoCAD Регистрация: 15.10.2008
Санкт-Петербург
Сообщений: 2
|
Было похожее реализовано на лиспе. В те времена работали только с Кредо или в "голом" акаде. Вот в акаде и решили малехо автоматизировать. До сих пор пользуются. Наже кусочек описания меню.
____Интерполяция____ - заголовок группы команд Отметка по 2 точкам – вычисление и отрисовка отметки точки методом интерполяции, лежащей между двумя точками с известными отметками Отметка по 3 точкам – вычисление и отрисовка отметки точки методом интерполяции, лежащей в треугольнике тремя точками с известными отметками По прямой – вычисление и отрисовка отметок точек с шагом 1см методом интерполяции, лежащих на прямой между двумя точками с известными отметками По кривой c шагом 10см – вычисление и отрисовка отметок точек с шагом 10см методом интерполяции, лежащих на ломаной линии между двумя точками с известными отметками По кривой – вычисление и отрисовка отметок точек с шагом 1см методом интерполяции, лежащих на ломаной линии между двумя точками с известными отметками То же, вверх – вычисление и отрисовка отметок точек с шагом 1см методом интерполяции, лежащих на ломаной линии между двумя точками по отметке первой точки с запросом уклона ко второй точке. Отметки повышаются от первой точки ко второй. По запросу отрисовка уклона и расстояния. То же, вниз – вычисление и отрисовка отметок точек с шагом 1см методом интерполяции, лежащих на ломаной линии между двумя точками по отметке первой точки с запросом уклона ко второй точке. Отметки понижаются от первой точки ко второй. По запросу отрисовка уклона и расстояния. ____Расчет___ - заголовок группы команд На поперечнике - по h – расчет отметки второй точки и уклона на поперечнике в плане методом подбора по отметкам первой и второй точек. Применяется, если задана отметка первой точки и надо подобрать отметку второй точки, отслеживая при этом значение уклона. На поперечнике - по i – расчет отметки второй точки и уклона на поперечнике в плане методом подбора по отметке первой точки и уклону ко второй. Применяется, если задана отметка первой точки и надо подобрать уклон ко второй точке, отслеживая при этом ее отметку. По лотку – расчет отметки второй точки и уклона на поперечнике в плане методом подбора по отметкам первой и второй точек. Применяется, если задана отметка первой точки и надо подобрать отметку второй точки, отслеживая при этом значение уклона. Используется для работы с уклонами по лотку проезжей части. Водораздел – расчет и отрисовка отметки водораздела между двумя точками лотка проезжей части (между дождеприемными колодцами) и уклонов к водоразделу с двух сторон. |
|||
|
||||
Регистрация: 04.04.2008
Москва
Сообщений: 97
|
Всем привет.
Вот мой вариант решения данной проблемы. Две маленькие проги на Lisp, которые написал для своих нужд: интерполяция координаты Z на прямой и на плоскости. Эти проги были написаны с использованием материалов найденых на этом форуме. Отдельное спасибо их авторам! Алгоритм поиска Z на линии: 1. указываем 1-ую точку 2. указываем координату Z в этой точке 3. указываем 2-ую точку 4. указываем координату Z в этой точке 5. указываем исследуемую точку на получившейся прямой 6. в командной строке получаем 3D координаты исследуемой точки Алгоритм поиска Z на плоскости (плоскость строится по трём точкам): 1. указываем 1-ую точку 2. указываем координату Z в этой точке 3. указываем 2-ую точку 4. указываем координату Z в этой точке 5. указываем 3-ю точку 6. указываем координату Z в этой точке 7. указываем исследуемую точку на получившейся плоскости 8. в командной строке получаем 3D координаты исследуемой точки Простые маханизмы позволяют быстро узнать нужные значения. Эти простенькие проги поместил на кнопки в панели инструменов. Иконки прилагаю |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
dwg.ru/art/11
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Добрый день, хочу возобновить данную тему, так как она замолчала и я не нашел ответа на свои вопросы.
Задача: построить продольный профиль по оси водовода. Исходные данные: план с отметками поверхности земли (xyz) и трасса водовода. Характерные точки трассы не попадают в имеющиеся отметки топосъемки. База: ACAD 2010. Комментарии: Каким образом мне справиться с этой задачей?! Нашел лисп по построению профиля. Но так как точки трассы не совпадают с отметками съемки, то и пикеты уходят в сторону. А как получить точку с координатами (xyz) именно на моей трассе не понятно. Я хочу сделать так: по своей трассе водовода определить характерные точки с отметкой Z. Затем применив лисп построить профиль. Жду помощи. Все необходимо могу закинуть.
__________________
«Если хочешь иметь то, чего никогда не имел, делай то, чего никогда не делал» |
||||
|
||||
Регистрация: 14.06.2009
Бат-Ям
Сообщений: 295
|
Для каждой задачи есть свой инструмент. В сивилкаде это в два щелчка решается. А тут придётся нудно интерполировать. Те програмы которые выкложены выше вам не продходят? Тогда опишите что конкретно нужно. Что у вас точки, блоки. Они на высоте Z или нет. Как профиль делаете?
|
|||
|
||||
Victor, проги по интерполяции норм пригодились, нудно, но определил отметку Z в характерных точках трассы и забил ее в акад (вручную было бы куда хуже). Только лисп по интерполяции на линии в конце выдает ошибку. Пользовался лиспом по интерполяцией на плоскости.
У меня топосъемка. Есть точки с координатами xyz. Профиль делал раньше обычным топорным способом. Вручную вычислял превышение отметок и расстояния и так до победного конца. Но почитал форумы и понял что эта задача уже давно автоматизирована. Решил потратить время, но разобраться в этом вопросе. Я пробил трассу, нашел Z, вбил в акад. Теперь хочу применить лисп по построению профиля (прикрепил). Подскажите если есть иной способ построения, кроме Цивилкада.
__________________
«Если хочешь иметь то, чего никогда не имел, делай то, чего никогда не делал» Последний раз редактировалось Homo(v)sapiens, 14.10.2011 в 09:12. |
||||
|
||||
Регистрация: 14.06.2009
Бат-Ям
Сообщений: 295
|
Хотите чтобы я разбирался с чужим лиспом? Все буковки на русском у меня выглядят как буковки на иврите.
Разбирайтесь сами. Могу свой предложить. Распаковать, затащить в модель, запуск p2pr. Клик по линии трассы, клик полинии профиля, клик по тексту - начальная высота профиля. Длина линии профиля д.б. равна или длинее линии тассы. Начала линии трассы и профиля д.б. в начале!!! Лисп ищет точки ближе 10см от трассы и переносит на профиль. |
|||
|
||||
Посмотри команду 3d bort здесь Аппроксимация 3d полилинии
Кратко суть ее работы такова: 1. Рисуем 3d полилинию с вершинами в интересующих нас точках. 2. Там где знаем, задаем координату Z 3. После применения команды 3DB в вершинах с 0 координатами Z рассчитывается пропорционально длине сегментов. Еще можно почитать здесь Интерполяция отметок вершин полилинии между двумя заданными точками Там же есть ссылка на ToolPac'овскую команду PSL Еще кое-что есть здесь Изменение отметки Z вершин полилинии
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 16.10.2011 в 14:48. |
||||
|
||||
Victor, наверное, то что вы написали поможет, но я не понял ничего. Краткость - сестра таланта, но вы не могли бы немножко подробнее написать алгоритм: как и что делать с вашим лиспом и как правильно учесть критерии ваши, чтобы он корректно работал. Спасибо.
VVA, руки дошли и до вашего лиспа, очень помог, благодарен.
__________________
«Если хочешь иметь то, чего никогда не имел, делай то, чего никогда не делал» Последний раз редактировалось Homo(v)sapiens, 14.10.2011 в 12:15. |
||||
|
||||
Регистрация: 14.06.2009
Бат-Ям
Сообщений: 295
|
3 клика. Линия тассы, линия профиля, текст с начальной высотой профиля.
Начало - попробуй объясни - клик на полилинии, клик в свойствах в строке Vetrtex(Вершина). Появляеся крестик на полилинии. Крестик д.б. в начале трассы и в начале профиля. |
|||
|
||||
AutoLISP, AutoCAD Регистрация: 15.10.2008
Санкт-Петербург
Сообщений: 2
|
Уже лет десять как используется, если не дольше. Посмотрите для методического интересу, как вариант "подхода" к профилям, если нет исходной и проектной трехмерных поверхностей.
PS. Только заметил, что уже писал вэтой теме. Я делал так: намечаешь точки на плане трассы, где нужны отметки; интерполяцией наносишь отметки в этих точках; заносишь отметки точек и расстояния между ними в текстовый файл; отрисовываешь профиль с шапкой, занесением отметок, расстояний, уклонов; рисуешь по отметкам и гор.проложениям от точек привязки колодцы, если есть, врезаешь междй ними трубц по отметкам и/или уклонам; наносишь по отметкам и привязкам пересекаемые коммуникации. Все это делалось спец.командами в акаде(см.описание во вложении и описание команд интерполяции выше в моем сообщении). Или используешь специализированные проектные комплексы. Простые и гениальные решения бывают только при выполнении курсовых. Для работы приходится осваивать сложные программы. И сложные алгоритмы И еще мысыль: писать самодельный лисп для каждой функции можно, нужно и продуктивно если ты полон сил, энергии, можешь мало спать. Именно так и рождается АРМ Да, еще это должно нравиться! Последний раз редактировалось SIB, 18.10.2011 в 13:38. |
|||