| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Определение высот рельефа по близлежащим точкам

Определение высот рельефа по близлежащим точкам

Ответ
Поиск в этой теме
Непрочитано 12.10.2008, 11:21 #1
Определение высот рельефа по близлежащим точкам
dextron3
 
проектировшик
 
СССР
Регистрация: 01.01.2007
Сообщений: 5,143

Предыстория:

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

Алгоритм лиспа:

1. Выбираем точки и отметки точек существующие
2. Выводим среднее апроксимированное значение в текстовом виде, согласно тем текстам которые были выделены.
3. Сам лисп общитывает полигон и с помощью тригонометрических функций находит высоту точки находящщейся в том полигоне выбранных точек который задал пользователь, чем больше точек тем точнее высота, но округлять до двух знаков после запятой, вместо запятой естественно должна быть точка


Работа лиспа:

1. Укажите 1. точку
2. Укажите отметку 1й точки
3. Укажите 2ю точку
4. Укажите отметку 2й точки

......

(нажимаем ENTER)

n. Укажите точку встваки апроксимированной отметки


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

если чем могу помочь то помогу...
__________________
инженер проектировшик с опттом программа авто гад образование высшие
Просмотров: 22018
 
Непрочитано 13.10.2008, 11:55
#2
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


Для подобных задач надо использовать специализированное ПО. Писать самодельный ЛИСП для каждой функции просто непродуктивно.
Alaspher вне форума  
 
Непрочитано 13.10.2008, 12:20
#3
bernata


 
Регистрация: 22.09.2005
здесь могла быть ваша реклама
Сообщений: 1,280


Поскольку приходится работать на чужих компах и в разных местах, вырабатываю сам себе алгоритм работы без использования громоздких софтов. Стараюсь максимально использовать "голый" ACad. И минимизировать количество приложений.

Я бысделал так:
1) Просто поднять все точки на высоту (легче всего делать при помощи команд ToolPack, или просто вбить руками высоты в окне Properties).
2) Потом объединить все точки с известными высотами при помощи 3d_face (тоже можно сделать руками и без софта).
3) Потом останется только построить профиль... Опять же ToolPack...
Вот и всё...
bernata вне форума  
 
Автор темы   Непрочитано 13.10.2008, 15:43
#4
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,143


bernata, не непорядок, мне и так дают рельеф объемный, я от него сразу избавляюсь
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 13.10.2008, 16:32
#5
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Вот к примеру у вас дуга (одна граница рельефа). Сама дуга в 2D. Текстом указана отметка ее начала и другим текстом - конца. напротив дуги - линия (вторая граница рельефа), в той же плоскости, то бишь, тоже 2D и тоже имеет текстовые отметки. Между этими двумя объектами находится поворот трассы, тоже 2 2D линии. Надо построить профиль по этой трассе.
Задаем дискретизацию (делим трассу на кучу точек), одинаковую для обеих границ рельефа. Определяем высоты для каждой точки границ. Из каждой n-ной точки одной границы проводим прямую к такой же точке другой границы и замеряем пересечение с трассой. В точках трассы делаем дополнительную разбивку границ рельефа так, чтобы прямые из точки на одной границе к другой проходили через точку на трассе.
Вычисляем высоты точек рельефа на трассе и вычерчиваем кривую профиля.

Ну это так, общие правила. Рисуете направление трассы (2D или 3D полилиния, рисуете одну границу рельефа, другую, включаете макрос, устанавливаете на границах рельефа отметки высот, указываете на линию направления и давите ентер.
Глубина или высота трассы определяется во втором этапе, когда вы уже видите сам профиль.

Последний раз редактировалось Supermax, 13.10.2008 в 18:18.
Supermax вне форума  
 
Непрочитано 13.10.2008, 16:33
#6
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844


> dextron3 : А потом мужественно преодолеваешь проблемы, созданные собственноручно
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 13.10.2008, 20:08
#7
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,143


Supermax, это алгоритм, уж больно сложный... я хотел чтонибудь простого и гениального...
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 13.10.2008, 21:18
#8
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


А ты хочешь сам написать прогу?
Supermax вне форума  
 
Непрочитано 15.10.2008, 01:45
#9
SIB

AutoLISP, AutoCAD
 
Регистрация: 15.10.2008
Санкт-Петербург
Сообщений: 2


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

____Интерполяция____ - заголовок группы команд

Отметка по 2 точкам – вычисление и отрисовка отметки точки методом интерполяции, лежащей между двумя точками с известными отметками

Отметка по 3 точкам – вычисление и отрисовка отметки точки методом интерполяции, лежащей в треугольнике тремя точками с известными отметками

По прямой – вычисление и отрисовка отметок точек с шагом 1см методом интерполяции, лежащих на прямой между двумя точками с известными отметками

По кривой c шагом 10см – вычисление и отрисовка отметок точек с шагом 10см методом интерполяции, лежащих на ломаной линии между двумя точками с известными отметками

По кривой – вычисление и отрисовка отметок точек с шагом 1см методом интерполяции, лежащих на ломаной линии между двумя точками с известными отметками


То же, вверх – вычисление и отрисовка отметок точек с шагом 1см методом интерполяции, лежащих на ломаной линии между двумя точками по отметке первой точки с запросом уклона ко второй точке. Отметки повышаются от первой точки ко второй. По запросу отрисовка уклона и расстояния.

То же, вниз – вычисление и отрисовка отметок точек с шагом 1см методом интерполяции, лежащих на ломаной линии между двумя точками по отметке первой точки с запросом уклона ко второй точке. Отметки понижаются от первой точки ко второй. По запросу отрисовка уклона и расстояния.


____Расчет___ - заголовок группы команд

На поперечнике - по h – расчет отметки второй точки и уклона на поперечнике в плане методом подбора по отметкам первой и второй точек. Применяется, если задана отметка первой точки и надо подобрать отметку второй точки, отслеживая при этом значение уклона.

На поперечнике - по i – расчет отметки второй точки и уклона на поперечнике в плане методом подбора по отметке первой точки и уклону ко второй. Применяется, если задана отметка первой точки и надо подобрать уклон ко второй точке, отслеживая при этом ее отметку.

По лотку – расчет отметки второй точки и уклона на поперечнике в плане методом подбора по отметкам первой и второй точек. Применяется, если задана отметка первой точки и надо подобрать отметку второй точки, отслеживая при этом значение уклона. Используется для работы с уклонами по лотку проезжей части.


Водораздел – расчет и отрисовка отметки водораздела между двумя точками лотка проезжей части (между дождеприемными колодцами) и уклонов к водоразделу с двух сторон.
SIB вне форума  
 
Непрочитано 15.10.2008, 12:18
1 | #10
Mazai


 
Регистрация: 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 координаты исследуемой точки

Простые маханизмы позволяют быстро узнать нужные значения. Эти простенькие проги поместил на кнопки в панели инструменов. Иконки прилагаю
Вложения
Тип файла: lsp Find_Z_OnLine.LSP (7.9 Кб, 602 просмотров)
Тип файла: lsp Find_Z_OnPlane.LSP (8.6 Кб, 521 просмотров)
Тип файла: rar ico.rar (757 байт, 541 просмотров)
Mazai вне форума  
 
Непрочитано 24.10.2008, 17:40 Интерполяция
#11
Самоделкин


 
Регистрация: 17.10.2008
Сообщений: 1


Mazai,помогите пожалуйста. Я имею в виду Ваши программки по интерполяции. Как внедрить эти программы в Автокад?
Самоделкин вне форума  
 
Непрочитано 24.10.2008, 23:49
#12
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844


dwg.ru/art/11
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 13.10.2011, 13:46
#13
Homo(v)sapiens

Гидротехнические сооружения
 
Регистрация: 10.02.2009
Белгород
Сообщений: 164
Отправить сообщение для Homo(v)sapiens с помощью Skype™


Добрый день, хочу возобновить данную тему, так как она замолчала и я не нашел ответа на свои вопросы.
Задача: построить продольный профиль по оси водовода.
Исходные данные: план с отметками поверхности земли (xyz) и трасса водовода. Характерные точки трассы не попадают в имеющиеся отметки топосъемки.
База: ACAD 2010.
Комментарии: Каким образом мне справиться с этой задачей?! Нашел лисп по построению профиля. Но так как точки трассы не совпадают с отметками съемки, то и пикеты уходят в сторону. А как получить точку с координатами (xyz) именно на моей трассе не понятно. Я хочу сделать так: по своей трассе водовода определить характерные точки с отметкой Z. Затем применив лисп построить профиль. Жду помощи. Все необходимо могу закинуть.
__________________
«Если хочешь иметь то, чего никогда не имел, делай то, чего никогда не делал»
Homo(v)sapiens вне форума  
 
Непрочитано 13.10.2011, 21:39
#14
Victor


 
Регистрация: 14.06.2009
Бат-Ям
Сообщений: 295


Для каждой задачи есть свой инструмент. В сивилкаде это в два щелчка решается. А тут придётся нудно интерполировать. Те програмы которые выкложены выше вам не продходят? Тогда опишите что конкретно нужно. Что у вас точки, блоки. Они на высоте Z или нет. Как профиль делаете?
Victor вне форума  
 
Непрочитано 14.10.2011, 09:05
#15
Homo(v)sapiens

Гидротехнические сооружения
 
Регистрация: 10.02.2009
Белгород
Сообщений: 164
Отправить сообщение для Homo(v)sapiens с помощью Skype™


Victor, проги по интерполяции норм пригодились, нудно, но определил отметку Z в характерных точках трассы и забил ее в акад (вручную было бы куда хуже). Только лисп по интерполяции на линии в конце выдает ошибку. Пользовался лиспом по интерполяцией на плоскости.
У меня топосъемка. Есть точки с координатами xyz. Профиль делал раньше обычным топорным способом. Вручную вычислял превышение отметок и расстояния и так до победного конца. Но почитал форумы и понял что эта задача уже давно автоматизирована. Решил потратить время, но разобраться в этом вопросе.
Я пробил трассу, нашел Z, вбил в акад. Теперь хочу применить лисп по построению профиля (прикрепил). Подскажите если есть иной способ построения, кроме Цивилкада.
Вложения
Тип файла: lsp Профиль.lsp (8.4 Кб, 214 просмотров)
__________________
«Если хочешь иметь то, чего никогда не имел, делай то, чего никогда не делал»

Последний раз редактировалось Homo(v)sapiens, 14.10.2011 в 09:12.
Homo(v)sapiens вне форума  
 
Непрочитано 14.10.2011, 10:00
#16
Victor


 
Регистрация: 14.06.2009
Бат-Ям
Сообщений: 295


Хотите чтобы я разбирался с чужим лиспом? Все буковки на русском у меня выглядят как буковки на иврите.
Разбирайтесь сами. Могу свой предложить. Распаковать, затащить в модель, запуск p2pr. Клик по линии трассы, клик полинии профиля, клик по тексту - начальная высота профиля. Длина линии профиля д.б. равна или длинее линии тассы. Начала линии трассы и профиля д.б. в начале!!! Лисп ищет точки ближе 10см от трассы и переносит на профиль.
Вложения
Тип файла: zip p2pr.zip (1.2 Кб, 235 просмотров)
Тип файла: dwg
DWG 2007
pr.dwg (101.4 Кб, 4704 просмотров)
Victor вне форума  
 
Непрочитано 14.10.2011, 10:19
#17
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Посмотри команду 3d bort здесь Аппроксимация 3d полилинии
Кратко суть ее работы такова:
1. Рисуем 3d полилинию с вершинами в интересующих нас точках.
2. Там где знаем, задаем координату Z
3. После применения команды 3DB в вершинах с 0 координатами Z рассчитывается пропорционально длине сегментов.
Еще можно почитать здесь Интерполяция отметок вершин полилинии между двумя заданными точками
Там же есть ссылка на ToolPac'овскую команду PSL
Еще кое-что есть здесь Изменение отметки Z вершин полилинии
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 16.10.2011 в 14:48.
VVA на форуме  
 
Непрочитано 14.10.2011, 11:13
#18
Homo(v)sapiens

Гидротехнические сооружения
 
Регистрация: 10.02.2009
Белгород
Сообщений: 164
Отправить сообщение для Homo(v)sapiens с помощью Skype™


Victor, наверное, то что вы написали поможет, но я не понял ничего. Краткость - сестра таланта, но вы не могли бы немножко подробнее написать алгоритм: как и что делать с вашим лиспом и как правильно учесть критерии ваши, чтобы он корректно работал. Спасибо.

VVA, руки дошли и до вашего лиспа, очень помог, благодарен.
__________________
«Если хочешь иметь то, чего никогда не имел, делай то, чего никогда не делал»

Последний раз редактировалось Homo(v)sapiens, 14.10.2011 в 12:15.
Homo(v)sapiens вне форума  
 
Непрочитано 16.10.2011, 11:39
#19
Victor


 
Регистрация: 14.06.2009
Бат-Ям
Сообщений: 295


3 клика. Линия тассы, линия профиля, текст с начальной высотой профиля.
Начало - попробуй объясни - клик на полилинии, клик в свойствах в строке Vetrtex(Вершина).
Появляеся крестик на полилинии. Крестик д.б. в начале трассы и в начале профиля.
Victor вне форума  
 
Непрочитано 18.10.2011, 13:21
#20
SIB

AutoLISP, AutoCAD
 
Регистрация: 15.10.2008
Санкт-Петербург
Сообщений: 2


Уже лет десять как используется, если не дольше. Посмотрите для методического интересу, как вариант "подхода" к профилям, если нет исходной и проектной трехмерных поверхностей.
PS. Только заметил, что уже писал вэтой теме. Я делал так: намечаешь точки на плане трассы, где нужны отметки; интерполяцией наносишь отметки в этих точках; заносишь отметки точек и расстояния между ними в текстовый файл; отрисовываешь профиль с шапкой, занесением отметок, расстояний, уклонов; рисуешь по отметкам и гор.проложениям от точек привязки колодцы, если есть, врезаешь междй ними трубц по отметкам и/или уклонам; наносишь по отметкам и привязкам пересекаемые коммуникации. Все это делалось спец.командами в акаде(см.описание во вложении и описание команд интерполяции выше в моем сообщении). Или используешь специализированные проектные комплексы. Простые и гениальные решения бывают только при выполнении курсовых. Для работы приходится осваивать сложные программы. И сложные алгоритмы И еще мысыль: писать самодельный лисп для каждой функции можно, нужно и продуктивно если ты полон сил, энергии, можешь мало спать. Именно так и рождается АРМ Да, еще это должно нравиться!
Вложения
Тип файла: rar Кратко о меню КОЛОДЦЫ.rar (121.0 Кб, 660 просмотров)

Последний раз редактировалось SIB, 18.10.2011 в 13:38.
SIB вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Определение высот рельефа по близлежащим точкам

Размещение рекламы