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

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

Войти

Лисп для создания плавной полилинии

Тема в разделе "Civil 3D", создана пользователем S__J, 15 мар 2019.

  1. Мимокрокодил

    Форумчанин

    Регистрация:
    29 янв 2013
    Сообщения:
    1.189
    Симпатии:
    607
    Это не правильно для автокада. Тут все с точностью до наоборот. Нижняя линия - это сплайн, верхняя - сглаженная полилиния. Верхняя проходит через образующие точки, сплайн - нет.
    --- Сообщения объединены, 17 мар 2019, Оригинальное время сообщения: 17 мар 2019 ---
    Команда в автокаде: _pedit или ПОЛРЕД.
     

    Вложения:

    #21
  2. Deleted member 51242

    Deleted member 51242 Только чтение

    Я так делаю:
    1. рисую сплайн
    2. преобразовываю сплайн в полилинию
    3. делаю прополку полилинии (менюгео).
    (если бы все эти действия объединить в 1 лисп было бы классно)
     
    #22
  3. 1958

    Форумчанин

    Регистрация:
    21 авг 2013
    Сообщения:
    639
    Симпатии:
    699
    Адрес:
    СССР, город хлебный
    Мой лисп именно это и делает. ::biggrin24.gif::
    Только вместо прополки надо указать нужную длину сегмента полилинии.
     
    #23
    Последнее редактирование: 18 мар 2019
  4. ivsem

    Форумчанин

    Регистрация:
    26 мар 2009
    Сообщения:
    2.475
    Симпатии:
    1.051
    Адрес:
    Киев
    На первой картинке программой lin.lsp отрисована полилиния с шагом 1 метр. Увеличение длины сегмента полностью прополку не заменит.
    Нужна еще и "угловая прополка".
    001.jpg 002.jpg 003.jpg
     
    #24
    Последнее редактирование: 18 мар 2019
  5. 1958

    Форумчанин

    Регистрация:
    21 авг 2013
    Сообщения:
    639
    Симпатии:
    699
    Адрес:
    СССР, город хлебный
    Да, конечно. Но, для себя такой задачи я не ставил. У меня длина сегмента устанавливается жестко - setq linLen (* sf 0.25), где sf - масштабный коэффициент съемки (1:500 - 0.5, 1:1000 - 1.0, 1:2000 - 2.0 ...).
    Если делать угловую прополку, то каков диапазон углов? ± сколько минут (или секунд, радиан) отклонения от 180° оптимально по вашему мнению?
     
    #25
  6. ivsem

    Форумчанин

    Регистрация:
    26 мар 2009
    Сообщения:
    2.475
    Симпатии:
    1.051
    Адрес:
    Киев
    Как по мне, угловая прополка - действительно эффективное средство резкого и по делу уменьшения количества вершин в полилинии. Позволяет убрать вершины на прямолинейных участках и оставить вершины на криволинейных.
    Очень да же не плохо было бы добавить сие действо в вашу программу lin.lsp. Диапазон углов можно определить только эмперическим путем обработки большого количества разнообразных линий.
    Можно программно определить максимальный угол в полилинии и для начала поделить его скажем на 3 и применить к полилинии.
    Поставить в программе метки для отмены прополки, и повторый запус прополки с другим значением угла. Это позволит в цикле быстренько добиться наиболее приемлемого результата.
     
    #26
  7. 1958

    Форумчанин

    Регистрация:
    21 авг 2013
    Сообщения:
    639
    Симпатии:
    699
    Адрес:
    СССР, город хлебный
    Т.е. получается, что требуется участие человека для оценки достижения нужного результата.
    Уж лучше:
    чтобы исключить человеческий фактор. У каждого свой критерий "красивости" и "плавности".
    --- Сообщения объединены, 19 мар 2019, Оригинальное время сообщения: 19 мар 2019 ---
    Кстати:
    , где коэффициент 0.25 подобран из моего видения
    ::biggrin24.gif::
     
    #27
  8. X-Y-H

    X-Y-H Администратор
    Команда форума Форумчанин

    Регистрация:
    18 май 2007
    Сообщения:
    21.794
    Симпатии:
    7.072
    Адрес:
    Россия
    Как то у меня не так работает
    Ищу аналог команды по RP из KAI-2001. Как на нижней части рисунка. Отрисовка 2D полилиний с автоматически добавляемыми узлами, располагаемыми по дугам (‘сглаженная полилиния’). Отрисовка выполняется отрезками или дугами. Для оцифровки горизонталей и других плавных контуров.
    upload_2023-5-24_15-38-14.png
     
    #28

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

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