Новые команды для работы с полилинией - Страница 17
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Новые команды для работы с полилинией

Новые команды для работы с полилинией

Ответ
Поиск в этой теме
Непрочитано 14.09.2006, 13:30 4 |
Новые команды для работы с полилинией
VVA
 
Инженер LISP
 
Минск
Регистрация: 11.05.2005
Сообщений: 6,996

Данный набор программ является коллективным продуктом участников форумов autocad.ru и dwg.ru с моими доработками.
Захотелось собрать все программы для работы с полилиниями воедино и оформить как полагается.

=========== Доступные команды PLTOOLS=================
Редакция 17.06.2014
PL-JOIN -Объединение выбранных полилиний
PL-VFI -вставка вершин в выбранной полилинии в местах пересечения с
указанными полилиниями, линиями, дугами
PL-JOIN3D -Объединение 3D полилиний
PL-L2A -Замена линейного сегмента в полилинии дуговым сегментом.
PL-A2L -Замена дугового сегмента в полилинии линейным сегментом.
PL-DIV -Разбивает выбранный сегмент полилинии на указанное количество
сегментов или через указанное расстояние
PL-DIVAll -Разбивает все сегменты полилинии на указанное количество
сегментов или через указанное расстояние
PL-VxAdd -Добавляет новую вершину к полилинии
ENTREVS -Реверс объекта
ENTREV -Реверс объектов (множественный выбор)
PL-CW -Реверс выбранных полилиний по часовой стрелке
PL-CCW -Реверс выбранных полилиний против часовой стрелки
PL-VxRdc -Удаление вершин полилиний, которые лежат на одной прямой
PL-VxDel -Удаление выбранной вершины
pl-VxOpt -Удаление совпадающих вершин из полилинии
PL-NoArc -Аппроксимация дуговых сегментов полилинии
PL-Clone -Построение полилинии путем копирования ее сегментов
PL-VxMove -Перемещение вершин полилинии
PL-Vx1 -Изменение начала полилинии
ConvTo2d -Преобразование линейных объектов в 2D полилинии
ConvTo3d -Преобразование линейных объектов в 3D полилинии
MPL -Построение средней линии Более продвинутая версия Rollin_Ball.lsp Find MidBoundary between two polylines.
R3P -Прямоугольгик по 3-м точкам
PL-P90 -Рисование перпендикулярных друг к другу сегментов полилинии
PL-CSE -Объединение 2d полилиний по примитиву
PL-SgWidth -Изменить ширину сегмента полилинии

Реверс дуговых сегментов полилинии из #79
На дуговых сегментах полилинии тип линий может быть "вверх тормашками", причем реверс не помогает. Этот артефакт можно побороть, если в полилинии включить "генерацию типа линий".

Панели, лисп и инструкции здесь http://dwg.ru/dnl/607
Иконки для темной темы здесь
Обсуждаем, критикуем, предлагаем

Миниатюры
Нажмите на изображение для увеличения
Название: plrevers.jpg
Просмотров: 16792
Размер:	30.3 Кб
ID:	21079  


Последний раз редактировалось VVA, 08.09.2023 в 13:25. Причина: ссылка на иконки для темной темы
Просмотров: 379008
 
Автор темы   Непрочитано 10.12.2010, 10:14
#321
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


boretskiy.a, Со сплайнами работать не будет. Мой тебе совет: не рисуй горизонтали сплайнами, пожалей проектировщиков, которые будут работать на твоей съемке. Не далее как на прошлой неделе переводил горизонтали-сплайны в горизонтали-полилинии. По поводу первого вопроса в принципе реализовать можно, но мне пока не ясен алгоритм, и пока нет на это свободного времени. Почему бы не воспользоваться для построения горизонталей готовыми решениями: Credo, GeoniCS, Civil ...
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 10.12.2010, 19:25
#322
boretskiy.a

геодезист
 
Регистрация: 26.11.2010
Сообщений: 35


VVA,
Каким образом можно перевести горизонтали-сплайны в горизонтали-полилинии. И, что интересно, Ваш MPL строит полилинию межу двумя сплайнами. Спасибо.
boretskiy.a вне форума  
 
Непрочитано 19.12.2010, 11:28
#323
evg76


 
Регистрация: 25.02.2009
Сообщений: 82


Доброе время суток уважаемые, посмотрел вот команду "PL-VxRdc -Удаление вершин полилиний, которые лежат на одной прямой" не знаю обсуждалось ли у вас тут но есть такой вопрос,я так понял она убивает вершины с отклонением, а если 2 вершины лежат на одной прямой на расстоянии от 0.01 см. до 1 метра то кроме как ручками даную проблему не решить , так ли это? и можно ли решить как нибудь сей вопрос.
evg76 вне форума  
 
Автор темы   Непрочитано 19.12.2010, 12:18
#324
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


evg76, Она убивает вершины, если отклонение меньше указанного. Если вершины лежат на одной прямой, то у них отклонение 0 (т.е. меньше любого указанного). Если вершины не удаляются, значит дело в чем-то другом. Предметно разговор можно будет вести, еслибудет файл с примером.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 20.12.2010, 08:34
#325
evg76


 
Регистрация: 25.02.2009
Сообщений: 82


VVA, но ведь вершины должны удаляться через определенное растояние, тоесть например удать все вершины расстояние между которыми 0.5 м.
evg76 вне форума  
 
Непрочитано 20.12.2010, 08:54
#326
Лиспер


 
Регистрация: 11.10.2010
Сообщений: 979


Это отдельная задача. По идее вершины должны удаляться при условии, что отклонение от прямой менее заданной величины...
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Непрочитано 20.12.2010, 09:22
#327
evg76


 
Регистрация: 25.02.2009
Сообщений: 82


Лиспер, где взять?
evg76 вне форума  
 
Непрочитано 20.12.2010, 09:35
#328
Лиспер


 
Регистрация: 11.10.2010
Сообщений: 979


Что "взять"? Удаление вершин через какое-то количество ед.чертежа? Хорошо, сохрани код как lsp и загрузи его. А потом скажи, какие вершины надо удалить (при условии, что удалять надо вершины с расстоянием между ними менее 100 единиц чертежа).
Код:
[Выделить все]
(entmakex '((0 . "LWPOLYLINE")
            (100 . "AcDbEntity")
            (100 . "AcDbPolyline")
            (90 . 35)
            (70 . 0)
            (43 . 0.0)
            (38 . 0.0)
            (39 . 0.0)
            (10 12665.0 8207.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 13147.0 8693.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 13008.0 8405.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 13226.0 8475.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 13157.0 8331.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 12953.0 8386.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 12913.0 8332.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 12981.0 8267.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 13037.0 8251.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 13108.0 8275.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 13201.0 8280.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 13210.0 8249.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 13093.0 8245.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 13075.0 8204.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 13019.0 8208.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 12974.0 8227.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 12948.0 8251.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 12935.0 8277.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 12913.0 8281.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 12889.0 8281.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 12871.0 8269.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 12874.0 8255.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 12860.0 8243.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 12836.0 8237.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 12820.0 8253.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 12812.0 8270.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 12788.0 8265.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 12788.0 8265.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 12776.0 8240.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 12768.0 8227.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 12748.0 8226.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 12730.0 8226.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 12713.3 8197.0)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 12699.6 8189.15)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (10 12666.4 8208.37)
            (40 . 0.0)
            (41 . 0.0)
            (42 . 0.0)
            (210 0.0 0.0 1.0)
            )
          ) ;_ end of entmakex
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Автор темы   Непрочитано 20.12.2010, 09:57
#329
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Лиспер Посмотреть сообщение
Это отдельная задача. По идее вершины должны удаляться при условии, что отклонение от прямой менее заданной величины...
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 20.12.2010, 11:38
#330
evg76


 
Регистрация: 25.02.2009
Сообщений: 82


Лиспер, ИЛИ СТАРЫЙ СТАЛ или уже все..., как запустить lsp?
evg76 вне форума  
 
Непрочитано 20.12.2010, 11:42
#331
Лиспер


 
Регистрация: 11.10.2010
Сообщений: 979


Я ж написал:
Цитата:
Сообщение от Лиспер Посмотреть сообщение
сохрани код как lsp и загрузи его
Ну и плюс подпись VVA
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Непрочитано 20.12.2010, 11:53
#332
evg76


 
Регистрация: 25.02.2009
Сообщений: 82


ну загрузил я егоЛиспер, а запустить, или еще какието движения надо делать,в моем понимании загрузил, вызвал командой и вперед
evg76 вне форума  
 
Непрочитано 20.12.2010, 11:59
#333
Лиспер


 
Регистрация: 11.10.2010
Сообщений: 979


По идее код сразу после загрузки должен создать полилинию. Двойной клик колесом на графической области сделай
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Непрочитано 20.12.2010, 13:11
#334
evg76


 
Регистрация: 25.02.2009
Сообщений: 82


получилось,
>А потом скажи, какие вершины надо удалить (при условии, что удалять >надо вершины с расстоянием между ними менее 100 единиц чертежа).
а зачем говорить пусть прога сама ищет и удаляет. В моем понимании я считаю так ввел коммаду указал какой диапазон тебя интересует и все. прога сама убила лишние точки. В этом отношеннии была помоему под мапинфо прога грабли.
evg76 вне форума  
 
Непрочитано 20.12.2010, 13:18
#335
Лиспер


 
Регистрация: 11.10.2010
Сообщений: 979


Прекрасно. Введен диапазон - 100. Перечисли вершины (по номерам), которые надо убирать. И объясни почему.
Пойми, помогать могут только программисты, которые физически неспособны знать тонкости всех вариантов применения AutoCAD.
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Непрочитано 20.12.2010, 13:32
#336
evg76


 
Регистрация: 25.02.2009
Сообщений: 82


в данном примере можно убивать почти все точки после 7, объясняю зачем это надо. это относится больше всего к тем ситуациям когда проводишь сколку в с чертежа м 1 :10000 , т.е. в 1 мм - 10 м. и бывает что кликаешь мышкой...( повсякому) а теперь расскажите как на 1 мм увидеть расстояние в 1 метр, вот тогда и надо удалять те точки которые лежат в диапазоне который потом в масштабе карты не увидишь, а еще к точке условные обозначения, прикручиваются вот и получается загромождения ситуации бывает много обрисовал токо одну
evg76 вне форума  
 
Непрочитано 20.12.2010, 13:37
#337
Лиспер


 
Регистрация: 11.10.2010
Сообщений: 979


То есть предлагается оставить вот такую полилинию? Мне кажется, что тут что-то напутано, причем на логическом уровне...
Код:
[Выделить все]
(entmakex
  '((0 . "LWPOLYLINE")
    (100 . "AcDbEntity")
    (48 . 200.0)
    (100 . "AcDbPolyline")
    (62 . 1)
    (90 . 8)
    (70 . 0)
    (43 . 0.0)
    (38 . 0.0)
    (39 . 0.0)
    (10 12665.0 8207.0)
    (40 . 0.0)
    (41 . 0.0)
    (42 . 0.0)
    (10 13147.0 8693.0)
    (40 . 0.0)
    (41 . 0.0)
    (42 . 0.0)
    (10 13008.0 8405.0)
    (40 . 0.0)
    (41 . 0.0)
    (42 . 0.0)
    (10 13226.0 8475.0)
    (40 . 0.0)
    (41 . 0.0)
    (42 . 0.0)
    (10 13157.0 8331.0)
    (40 . 0.0)
    (41 . 0.0)
    (42 . 0.0)
    (10 12953.0 8386.0)
    (40 . 0.0)
    (41 . 0.0)
    (42 . 0.0)
    (10 12913.0 8332.0)
    (40 . 0.0)
    (41 . 0.0)
    (42 . 0.0)
    (10 12665.0 8207.0)
    (40 . 0.0)
    (41 . 0.0)
    (42 . 0.0)
    (210 0.0 0.0 1.0)
    )
  ) ;_ end of entmakex
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Непрочитано 20.12.2010, 14:07
#338
evg76


 
Регистрация: 25.02.2009
Сообщений: 82


ну грубо говоря да, щас если найду файло выложу
evg76 вне форума  
 
Непрочитано 20.12.2010, 14:09
#339
Лиспер


 
Регистрация: 11.10.2010
Сообщений: 979


Offtop: Ни хрена себе погрешности допускаются !
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Непрочитано 20.12.2010, 14:19
#340
evg76


 
Регистрация: 25.02.2009
Сообщений: 82


1. Дело не в погрешностях, дело в масштабе , если ты данный чертеж попробуешь распечатать в масшабе 1см -1000 метров и более , то тебе растояния в 50 метров особую радость на листе формата А4 не будет, сам подумай, а тем более 2 точки на рассотянии 20 см.
2. почему обязательно надо что то доказывать вот люди например под мапинфо такую фишку сотворили http://asgs.narod.ru/downloads/programs/Grab.rar, тяжело что ли сделать такую же под автокад????
evg76 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Новые команды для работы с полилинией