Доброго времени суток. Подскажите, кто знает, как проставить точки (можно и точки COGO) в местах пересечения перпендикулярного отрезка от оси 3д полилинии к другой 3д полилинии. На скрине №1 показал чего бы я хотел добиться в итоге. На скрине №2 показал, что получается если пробовать размечать 3д полилинии командой "разметить" с равным шагом. 3д полилинии не параллельны, соответственно разной длины. На скрине №3 показал вершины 3д полилиний. Они не подходят под мой шаг поэтому проставить точки по вершинам тоже не то. Приложу исходный файл для примера в автокад2000.
Включи привязки Node Узел и Perpendicular Нормаль. Командой Copy Копировать (режим Multiple Несколько) копируй точки с оси на другие 3D полилинии.
Этим методом мне надо каждую точку поправлять, так как ширина везде разная, а при копировании точки автоматически не привязываются на место пересечения отрезка перпендикулярного 3д полилинии. Или я сделал что-то не так? Я бы хотел максимально упростить процесс.
Написал программку. Нужно указать на оси вершину до точки и вершину после точки. Программа создаст пользовательскую систему координат. Далее совмещая на глаз ось координат с центром точки на оси садим четыре точки. И так по кругу. Выход из программы на запрос точки просто нажать Enter. Повторный запуск- набрать число 11 и нажать Enter.
Хех, когда сам ломал голову над такой проблемой и решил)) Я так понял, есть факт съёмка и для оформления поперечников(без гемора) нужны точки в местах пересечения бровок и оси дороги с линией сечения поперечника?
Всё верно, нужны поперечники шагом 25 метров, думаю как максимально автоматизировать процесс) Как я понял этот лисп создаёт пользовательскую СК от точки до точки по осевой линии чтобы было проще найти перпендикуляр на дугах, но с этим у меня проблем нет. --- Сообщения объединены, 6 авг 2019, Оригинальное время сообщения: 6 авг 2019 --- Да, есть участок ад, проекта нет, есть начало и есть конец, делаем съемку по факту ~25 шагов, потом эту съемку обрабатываем, получаем 3д полилинии, их размечаем с нужным шагом, отметки поперечников в ведомость) Но просто размечать, то получается то, что имеем на скрине №2, а мне надо точки перпендикулярно осевой)
Я делал так, строил сечения с нужным шагом(в вашем случае 25м и лучше сделать их по длине с запасом), разбивал до полилинии--в свойствах ставил уровень 0(важно!), то же и для 3д полилиний бровок и оси(лучше перенести все в новый чертеж)--далее в МЕНЮГЕО есть функция работа с полилиниями/проставить точки в местах пересечения(по моему так)--получаем точки автокада--преобразовываем в точки COGO--теперь точки COGO поднимаем на факт съемку(обязательно проверить присвоились ли отметки, я включал отображение отметок и смотрел) и добавляем в поверхность После этого поперечники строятся красиво без "каши" и отметки показываются только на оси и бровках. Я надеюсь суть понятна))) P.S. Так же для автоматизации строил отдельные поверхности для отображения уклонов и расстояний на поперечниках, в ручную редактировал только подвал поперечников и то через блок(2 минуты), но это уже другая история)))
Первая часть сообщения понятна точно, а вот с поднятием точек COGO на факт съёмку и добавлением в поверхность возникли вопросы, так как таким не занимался ещё) А может есть способ через цивил ещё упростить как-то? То есть у меня есть облако точек автокад с фактической съёмкой, преобразовать сразу в точки COGO и построить из этого облака поверхность, а на этой поверхности построить поперечники? Цивил плохо знаю)
Именно с этого и нужно начинать. По другому поперечники и не построите. Еще для построения нужна трасса(именно цивил), можно создать из объекта(ось дороги). Без поверхности и оси дороги поперечники не построить в цивиле. Это и есть самый простой способ, по моему мнению. Выбрал нужные точки--поднять на поверхность--выбрал поверхность
Да, в конечном итоге я предоставляю для ПТО ведомость с отметками бровок, кромок, оси. Так же ширины покрытия от оси лево/право и ширина обочин. Пока что я нашёл 1 способ как быстро выгрузить точки автокад из чертежа в эксель. Я накладываю, допустим, на бровку полилинию, через МенюГео, Работа с точками, Точки - "Выбрать примитивы "point" лежащие на полилинии " выделяются все точки на этой полилинии, далее выгружаю их в файл. Если выгружать совсем все точки, то соответственно получается "каша" и там не разберёшь где отметки бровок, оси и кромок. Вот с аннотациями ширин и их выгрузкой пока не думал)
Для опытных цивилистов самый простой способ это построить коридор по фактической съёмке и воспользоваться потом ведомостью параметров земляного полотна. В вашем случае проще воспользоваться стандартной ведомостью точек из вкладки Панель инструментов. Там будет пикетаж, расстояние от оси и отметка точки. Только в Экселе потом придется повозиться сортируя их.
Написал программу Poperechnik01.fas, наносит 3D точки на поперечник. Перед запуском программы нужно изменить цвет боковых плиний на 52 и расчленить их (осевую не расчленять !). Далее запустить программу, ввести шаг, выбрать осевую полилинию. Бегущие цифры в командной строке показывают сколько осталось обработать поперечников. На моем компе обработка вашего примера заняла 3 минуты. Повторный запуск- набрать число 11 и нажать Enter. Программа наносит 3D точки только на осевую полинию и отрезки цвета 52 пересекающие поперечник! Обработать начало и конец осевой полилинии можно ранее выложенной программой CopyPoint01.lsp. Тестирование и выявление ошибок возлагается на пользователя.
Для тех кто столкнётся с такой же задачей как я, давайте по этапам: 1. Что имеем в исходных данных: 5 3д полилиний с примерными вершинами в 25 метров. Ось, две кромки, две бровки. Именно 3д полилиний, так как обычная полилиния не даст отметку, соответственно. 2. Для начала я меняю цвет кромок и бровок на 52. 3. Пользуюсь командой "РАСЧЛЕНИТЬ" на 2 кромки и 2 бровки. Соответственно получаю отрезки вместо 3д полилиний. 4. Запускаю программу, ввожу шаг 25 метров, выбираю ось (не расчлененную 3д полилинию) и получаю точки с отметкой на кромках и бровках перпендикулярно осевой. Спасибо @ivsem за проделанную работу и экономию времени для других У меня всё сработало на отлично
Мне кажется, в программу, для облегчения дальнейшей работы, нужно добавить нумерацию точек и вывод в текстовый файл N,X,Y,Z. Возможно и номер поперечника может потребоваться. --- Сообщения объединены, 7 авг 2019, Оригинальное время сообщения: 7 авг 2019 --- 3D полилиний может быть сколько угодно ( бровка кювета, подошва, подошва, бровка кювета) На всех расчлененных полилиния цвета 52 ( отрезках) будут поставлены точки. Не расчлененные полилинии будут пропущены.
Тут еще проще с расстояниями, если ты разобрался как правильно без "каши" вытащить точки в ексель. Они же приходят с координатами, в екселе задаёшь функцию для вычисления расстояния. Вспоминаем геометрию, а точнее формулу Пифагора для прямоугольного треугольника: где А(х1;y1) это точка на оси дороги, В(х2;y2) это точка на бровке(кромке), отсюда преобразовываем формулу: с=КОРЕНЬ((х1-х2)2+(у1-у2)2), вместо х1 х2 у1 у2 указанны ячейки с координатами. Первый раз главное правильно все забить, а дальше сохранишь как шаблон и на следующие объекты останется только менять координаты точек, расстояние будет вычисляться автоматически. Мог бы скинуть свой шаблон, но сейчас нет с собой((
Главное следи что бы точки правильно с автокада приходили, хотя по формуле сразу видно будет, расстояния станут огромными! Ещё в екселе можно рассчитывать поперечные уклоны))) --- Сообщения объединены, 7 авг 2019, Оригинальное время сообщения: 7 авг 2019 --- Конечно рабочий)) только у меня цель другая была))