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

Прикрепление вершин полилинии к существующим блокам.

Discussion in 'Civil 3D' started by Inessar, Jul 21, 2022.

  1. Дано: 1. файл dxf с поля с прорисованными 3d полилиниями, на каждой вершине стоит точка.
    2. Текстовый файл с координатами точек.
    Точки из текстового файла поднимаются в автокаде в виде определенных блоков, точность координат 2 знака после запятой. При прорисовке в поле разрядность 4 знака после запятой, но по факту при прорисовке она бесконечная. Менять разрядность в автокаде или в поле нельзя. Проблема в том, что линии с поля не привязаны к блокам, но при этом вершины и блоки находятся очень близко друг к другу. Как можно существующую полилинию привязать к существующим близлежащим блокам кроме как вручную? Таких точек больше 500 и вручную это делать или заново прорисовывать долго.
    Вставить новые блоки на вершины - не выход, важно сохранить данные.
     
  2. PEMCOH

    PEMCOH Форумчанин

    Если честно, я плохо понял условия задачи... Есть полилинии с точками плюс файл с точками. Что к чему привязывают, что с чем не бьётся, откуда у вас бесконечная разрядность? Что значит разрядность в поле?
    Если точки редактировать нельзя, значит только полилинию. Возможно вам поможет вот это приложение:
     
  3. Есть полилиния и есть блоки, которые стоят очень близко к вершинам полилинии. Нужно привязать вершины существующей полилинии к существующим блокам. Прикладываю файл. Если приблизить, то будет видно, что блоки не сидят на полилинии, хотя координаты у них одинаковые.

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

    Attached Files:

  4. PEMCOH

    PEMCOH Форумчанин

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

    Ещё можно попросить сделать лисп, который вам подойдёт в этой теме:

    https://geodesist.ru/threads/pomogu-besplatno-razrabotat-ljubuju-programmu-na-autolisp.23877/
     
  5. Qvinto

    Qvinto Форумчанин

    https://geodesist.ru/threads/malenkie-besplatnye-lispy.67505/page-5#post-1030870
    --- Сообщения объединены, Jul 21, 2022, Оригинальное время сообщения: Jul 21, 2022 ---
    Только, для дуги вряд ли сработает.
     
  6. АлексЮстасу

    АлексЮстасу Форумчанин

    Можно попробовать использовать _MAPCLEAN (Очистка чертежа). Но сработает, если полилинии предварительно разбить. Зато в _MAPCLEAN их можно сразу же и сшить обратно.
    Причем, блоки можно указать в нижней части окна MAPCLEAN первой закладки - в "Объекты для фиксации в процессе очистки", чтобы блоки оставались на месте.
    Использовать операции "Сводить узлы в один" - для притягивания разбитых полилиний к блокам, и "Удалять псевдоузлы" - для сшивания полилиний.
     
  7. Это привязка блоков к полилинии, они смещаются к центру сегмента. Задача в другом.
    --- Сообщения объединены, Jul 23, 2022 ---
    У меня 3д полилинии. Разбивать - не вариант. К тому же, у меня в чертежах, как правило, много слоев и много объектов, этот вариант геморройный, как и новая прорисовка. Это как решать 2+2 через интеграл. Бессмысленно и беспощадно.
    По сути, задача довольно элементарная, а ее выполнение слищком сложное получается
     
  8. X-Y-H

    X-Y-H Администратор Staff Member

    Inessar, топография программа
     
  9. Marcolic

    Marcolic Форумчанин

    оба ваших: положение блока и вершины не являются верной координатой. Окружность реальное положение
    test.JPG
     
    Qvinto and zvezdochiot like this.
  10. Окружность - это положение точки с округленной координатой. Координаты вершин полилинии и блоков этому не соответствуют. Этот момент не принципиален, если блоки и вершины будут в округленных координатах и тем самым вершины будут привязаны к блокам - это тоже подойдет.
    К сожалению, ваше сообщение мне никак не помогло и не дало новой информации.
     
  11. АлексЮстасу

    АлексЮстасу Форумчанин

    И что катастрофического будет после разбиения 3д полилиний?
    Единственная засада может быть в случаях, когда на блоках будут сходиться отрезки не одной полилинии. Сошьются те, которые окажутся на блоке первыми в списке отрезков. Для двумерных то же самое.
    Похоже, Вы MAPCLEAN никогда не пользовались. Это как раз и есть "2+2".
     
  12. Если я разбиваю 3д полининию, она превращается в линию, которую можно привязать. Проблема вернуть назад 3д полилинии в том варианте, в котором они были.
    Опять же, все ломать и потом заново собирать? В одном слое могут идти несколько линий подряд, которые не нужно соединять в одну. Есть готовые объекты, которые надо слегка откорректировать. То, что Вы предложили, может помочь иногда, но в основном это не решает мою проблему.
    --- Сообщения объединены, Jul 24, 2022, Оригинальное время сообщения: Jul 24, 2022 ---
    Спасибо, попробую вникнуть в программу
     
  13. АлексЮстасу

    АлексЮстасу Форумчанин

    Согласен, это случай, о котором я не подумал.
     
  14. Marcolic

    Marcolic Форумчанин

    что вам мешает использовать текстовый файл с бесконечной разрядностью?
     
  15. Его отсутствие. Что дано, то дано, другого нет и не будет, но есть определенная задача.
     
  16. trir

    trir Форумчанин

    использовать БД через FDO
     
  17. Marcolic

    Marcolic Форумчанин

    Из вашего DFX с помощью бесплатной утилиты PolyVert (lisp) вы можете легко составить список XYZ-координат отдельных вершин (вершинных точек) выбранной полилинии.
     
  18. И что это даст? Какой в этом смысл?
     
  19. Marcolic

    Marcolic Форумчанин

    вы получите одинаковые оригинальные не округленные координаты вершин и "линии с поля" совпадут с положением вершин где "разрядность бесконечная"
     
  20. zvezdochiot

    zvezdochiot Форумчанин

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice