1. ВНИМАНИЕ! В течении пары дней +- будет переезд форума на более защищённый сервер. Возможны перебои в работе.
    Скрыть объявление

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

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

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

    Мимокрокодил Форумчанин

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

    Вложения:

  2. Deleted member 51242

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

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

    1958 Форумчанин

    Мой лисп именно это и делает. ::biggrin24.gif::
    Только вместо прополки надо указать нужную длину сегмента полилинии.
     
    Последнее редактирование: 18 мар 2019
  4. ivsem

    ivsem Форумчанин

    На первой картинке программой lin.lsp отрисована полилиния с шагом 1 метр. Увеличение длины сегмента полностью прополку не заменит.
    Нужна еще и "угловая прополка".
    001.jpg 002.jpg 003.jpg
     
    Последнее редактирование: 18 мар 2019
  5. 1958

    1958 Форумчанин

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

    ivsem Форумчанин

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

    1958 Форумчанин

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

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

    Как то у меня не так работает
    Ищу аналог команды по RP из KAI-2001. Как на нижней части рисунка. Отрисовка 2D полилиний с автоматически добавляемыми узлами, располагаемыми по дугам (‘сглаженная полилиния’). Отрисовка выполняется отрезками или дугами. Для оцифровки горизонталей и других плавных контуров.
    upload_2023-5-24_15-38-14.png
     
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление