Добро пожаловать!

Войдите или зарегистрируйтесь сейчас!

Войти

Точки на 3д полилинии

Тема в разделе "ПЕСОЧНИЦА", создана пользователем Игорь Владимирович, 5 авг 2019.

  1. Игорь Владимирович

    Регистрация:
    2 мар 2017
    Сообщения:
    24
    Симпатии:
    3
    Доброго времени суток.
    Подскажите, кто знает, как проставить точки (можно и точки COGO) в местах пересечения перпендикулярного отрезка от оси 3д полилинии к другой 3д полилинии.

    На скрине №1 показал чего бы я хотел добиться в итоге.
    №1.jpg
    На скрине №2 показал, что получается если пробовать размечать 3д полилинии командой "разметить" с равным шагом. 3д полилинии не параллельны, соответственно разной длины.
    №2.jpg
    На скрине №3 показал вершины 3д полилиний. Они не подходят под мой шаг поэтому проставить точки по вершинам тоже не то.
    №3.jpg

    Приложу исходный файл для примера в автокад2000.
     

    Вложения:

    #1
  2. ivsem

    Форумчанин

    Регистрация:
    26 мар 2009
    Сообщения:
    2.475
    Симпатии:
    1.051
    Адрес:
    Киев
    Включи привязки Node Узел и Perpendicular Нормаль. Командой Copy Копировать (режим Multiple Несколько) копируй точки с оси на другие 3D полилинии.
     
    #2
  3. Игорь Владимирович

    Регистрация:
    2 мар 2017
    Сообщения:
    24
    Симпатии:
    3
    Этим методом мне надо каждую точку поправлять, так как ширина везде разная, а при копировании точки автоматически не привязываются на место пересечения отрезка перпендикулярного 3д полилинии. Или я сделал что-то не так? Я бы хотел максимально упростить процесс.
     
    #3
  4. ivsem

    Форумчанин

    Регистрация:
    26 мар 2009
    Сообщения:
    2.475
    Симпатии:
    1.051
    Адрес:
    Киев
    Конечная цель какая? Построить поперечники по дороге через 25 метров?
     
    #4
  5. ivsem

    Форумчанин

    Регистрация:
    26 мар 2009
    Сообщения:
    2.475
    Симпатии:
    1.051
    Адрес:
    Киев
    Написал программку. Нужно указать на оси вершину до точки и вершину после точки. Программа создаст пользовательскую систему координат. Далее совмещая на глаз ось координат с центром точки на оси садим четыре точки. И так по кругу. Выход из программы на запрос точки просто нажать Enter. Повторный запуск- набрать число 11 и нажать Enter.
     

    Вложения:

    • CopyPoint01.lsp
      Размер файла:
      1,1 КБ
      Просмотров:
      8
    #5
    config нравится это.
  6. Хитрый_глаз -(o)-

    Форумчанин

    Регистрация:
    9 дек 2016
    Сообщения:
    106
    Симпатии:
    32
    Адрес:
    Иркутск
    Хех, когда сам ломал голову над такой проблемой и решил)) Я так понял, есть факт съёмка и для оформления поперечников(без гемора) нужны точки в местах пересечения бровок и оси дороги с линией сечения поперечника?
     
    #6
    Игорь Владимирович нравится это.
  7. Игорь Владимирович

    Регистрация:
    2 мар 2017
    Сообщения:
    24
    Симпатии:
    3
    Всё верно, нужны поперечники шагом 25 метров, думаю как максимально автоматизировать процесс)

    Как я понял этот лисп создаёт пользовательскую СК от точки до точки по осевой линии чтобы было проще найти перпендикуляр на дугах, но с этим у меня проблем нет.
    --- Сообщения объединены, 6 авг 2019, Оригинальное время сообщения: 6 авг 2019 ---
    Да, есть участок ад, проекта нет, есть начало и есть конец, делаем съемку по факту ~25 шагов, потом эту съемку обрабатываем, получаем 3д полилинии, их размечаем с нужным шагом, отметки поперечников в ведомость) Но просто размечать, то получается то, что имеем на скрине №2, а мне надо точки перпендикулярно осевой)
     
    #7
  8. Хитрый_глаз -(o)-

    Форумчанин

    Регистрация:
    9 дек 2016
    Сообщения:
    106
    Симпатии:
    32
    Адрес:
    Иркутск
    Я делал так, строил сечения с нужным шагом(в вашем случае 25м и лучше сделать их по длине с запасом), разбивал до полилинии--в свойствах ставил уровень 0(важно!), то же и для 3д полилиний бровок и оси(лучше перенести все в новый чертеж)--далее в МЕНЮГЕО есть функция работа с полилиниями/проставить точки в местах пересечения(по моему так)--получаем точки автокада--преобразовываем в точки COGO--теперь точки COGO поднимаем на факт съемку(обязательно проверить присвоились ли отметки, я включал отображение отметок и смотрел) и добавляем в поверхность::biggrin24.gif:: После этого поперечники строятся красиво без "каши" и отметки показываются только на оси и бровках. Я надеюсь суть понятна)))

    P.S. Так же для автоматизации строил отдельные поверхности для отображения уклонов и расстояний на поперечниках, в ручную редактировал только подвал поперечников и то через блок(2 минуты), но это уже другая история)))
     
    #8
    Игорь Владимирович и FOXXX591 нравится это.
  9. Игорь Владимирович

    Регистрация:
    2 мар 2017
    Сообщения:
    24
    Симпатии:
    3
    Первая часть сообщения понятна точно, а вот с поднятием точек COGO на факт съёмку и добавлением в поверхность возникли вопросы, так как таким не занимался ещё)
    А может есть способ через цивил ещё упростить как-то? То есть у меня есть облако точек автокад с фактической съёмкой, преобразовать сразу в точки COGO и построить из этого облака поверхность, а на этой поверхности построить поперечники? Цивил плохо знаю)
     
    #9
    Ohr нравится это.
  10. Хитрый_глаз -(o)-

    Форумчанин

    Регистрация:
    9 дек 2016
    Сообщения:
    106
    Симпатии:
    32
    Адрес:
    Иркутск
    Именно с этого и нужно начинать. По другому поперечники и не построите. Еще для построения нужна трасса(именно цивил), можно создать из объекта(ось дороги). Без поверхности и оси дороги поперечники не построить в цивиле.

    Это и есть самый простой способ, по моему мнению.

    Безымянный.png

    Выбрал нужные точки--поднять на поверхность--выбрал поверхность
     
    #10
    Игорь Владимирович нравится это.
  11. Хитрый_глаз -(o)-

    Форумчанин

    Регистрация:
    9 дек 2016
    Сообщения:
    106
    Симпатии:
    32
    Адрес:
    Иркутск
    Перечитал повнимательней ваше сообщение. Конечная цель это создать ведомость отметок в ексель?
     
    #11
  12. Игорь Владимирович

    Регистрация:
    2 мар 2017
    Сообщения:
    24
    Симпатии:
    3
    Да, в конечном итоге я предоставляю для ПТО ведомость с отметками бровок, кромок, оси. Так же ширины покрытия от оси лево/право и ширина обочин. Пока что я нашёл 1 способ как быстро выгрузить точки автокад из чертежа в эксель. Я накладываю, допустим, на бровку полилинию, через МенюГео, Работа с точками, Точки - "Выбрать примитивы "point" лежащие на полилинии " выделяются все точки на этой полилинии, далее выгружаю их в файл. Если выгружать совсем все точки, то соответственно получается "каша" и там не разберёшь где отметки бровок, оси и кромок.
    Вот с аннотациями ширин и их выгрузкой пока не думал)
     
    #12
    VFM нравится это.
  13. FOXXX591

    Форумчанин

    Регистрация:
    19 окт 2012
    Сообщения:
    3.272
    Симпатии:
    2.574
    Адрес:
    г.Смоленск
    Для опытных цивилистов самый простой способ это построить коридор по фактической съёмке и воспользоваться потом ведомостью параметров земляного полотна.
    В вашем случае проще воспользоваться стандартной ведомостью точек из вкладки Панель инструментов. Там будет пикетаж, расстояние от оси и отметка точки. Только в Экселе потом придется повозиться сортируя их.
     
    #13
    Игорь Владимирович нравится это.
  14. ivsem

    Форумчанин

    Регистрация:
    26 мар 2009
    Сообщения:
    2.475
    Симпатии:
    1.051
    Адрес:
    Киев
    Написал программу Poperechnik01.fas, наносит 3D точки на поперечник. Перед запуском программы нужно изменить цвет боковых плиний на 52 и расчленить их (осевую не расчленять !).
    Далее запустить программу, ввести шаг, выбрать осевую полилинию.
    Бегущие цифры в командной строке показывают сколько осталось обработать поперечников. На моем компе обработка вашего примера заняла 3 минуты.
    Повторный запуск- набрать число 11 и нажать Enter.
    Программа наносит 3D точки только на осевую полинию и отрезки цвета 52 пересекающие поперечник!
    Обработать начало и конец осевой полилинии можно ранее выложенной программой CopyPoint01.lsp.
    Тестирование и выявление ошибок возлагается на пользователя.
    01.jpg
     

    Вложения:

    #14
    Последнее редактирование: 7 авг 2019
  15. Игорь Владимирович

    Регистрация:
    2 мар 2017
    Сообщения:
    24
    Симпатии:
    3
    Для тех кто столкнётся с такой же задачей как я, давайте по этапам:

    1. Что имеем в исходных данных: 5 3д полилиний с примерными вершинами в 25 метров. Ось, две кромки, две бровки. Именно 3д полилиний, так как обычная полилиния не даст отметку, соответственно.
    2. Для начала я меняю цвет кромок и бровок на 52.
    цвет 52.png
    3. Пользуюсь командой "РАСЧЛЕНИТЬ" на 2 кромки и 2 бровки. Соответственно получаю отрезки вместо 3д полилиний.
    РАСЧЛЕНИТЬ.png
    4. Запускаю программу, ввожу шаг 25 метров, выбираю ось (не расчлененную 3д полилинию) и получаю точки с отметкой на кромках и бровках перпендикулярно осевой.
    точки.png
    Спасибо @ivsem за проделанную работу и экономию времени для других ::cool24.gif::
    У меня всё сработало на отлично::rolleyes24.gif::
     
    #15
  16. ivsem

    Форумчанин

    Регистрация:
    26 мар 2009
    Сообщения:
    2.475
    Симпатии:
    1.051
    Адрес:
    Киев
    Мне кажется, в программу, для облегчения дальнейшей работы, нужно добавить нумерацию точек и вывод в текстовый файл N,X,Y,Z.
    Возможно и номер поперечника может потребоваться.
    --- Сообщения объединены, 7 авг 2019, Оригинальное время сообщения: 7 авг 2019 ---
    3D полилиний может быть сколько угодно ( бровка кювета, подошва, подошва, бровка кювета)
    На всех расчлененных полилиния цвета 52 ( отрезках) будут поставлены точки. Не расчлененные полилинии будут пропущены.
     
    #16
    Игорь Владимирович нравится это.
  17. Хитрый_глаз -(o)-

    Форумчанин

    Регистрация:
    9 дек 2016
    Сообщения:
    106
    Симпатии:
    32
    Адрес:
    Иркутск
    Тут еще проще с расстояниями, если ты разобрался как правильно без "каши" вытащить точки в ексель. Они же приходят с координатами, в екселе задаёшь функцию для вычисления расстояния. Вспоминаем геометрию, а точнее формулу Пифагора для прямоугольного треугольника: Безымянный.png Безымянный 2.png
    где А(х1;y1) это точка на оси дороги, В(х2;y2) это точка на бровке(кромке), отсюда преобразовываем формулу: с=КОРЕНЬ((х12)2+(у12)2), вместо х1 х2 у1 у2 указанны ячейки с координатами. Первый раз главное правильно все забить, а дальше сохранишь как шаблон и на следующие объекты останется только менять координаты точек, расстояние будет вычисляться автоматически. Мог бы скинуть свой шаблон, но сейчас нет с собой((
     
    #17
    Игорь Владимирович нравится это.
  18. Игорь Владимирович

    Регистрация:
    2 мар 2017
    Сообщения:
    24
    Симпатии:
    3
    #18
  19. Хитрый_глаз -(o)-

    Форумчанин

    Регистрация:
    9 дек 2016
    Сообщения:
    106
    Симпатии:
    32
    Адрес:
    Иркутск
    Главное следи что бы точки правильно с автокада приходили, хотя по формуле сразу видно будет, расстояния станут огромными! Ещё в екселе можно рассчитывать поперечные уклоны)))
    --- Сообщения объединены, 7 авг 2019, Оригинальное время сообщения: 7 авг 2019 ---
    Конечно рабочий)) только у меня цель другая была))
     
    #19
  20. ivsem

    Форумчанин

    Регистрация:
    26 мар 2009
    Сообщения:
    2.475
    Симпатии:
    1.051
    Адрес:
    Киев
    #20

Поделиться этой страницей

  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление