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

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

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

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

Данный набор программ является коллективным продуктом участников форумов 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
Просмотров: 15346
Размер:	30.3 Кб
ID:	21079  


Последний раз редактировалось VVA, 08.09.2023 в 13:25. Причина: ссылка на иконки для темной темы
Просмотров: 367889
 
Непрочитано 08.05.2007, 01:16
#81
KAI

геологоразведка, строительство
 
Регистрация: 14.10.2003
Магадан
Сообщений: 311


А я посыплю голову пеплом!
p.s. А что уже начали проектировать газопроводы по дугам! Как я отстал!
__________________
Лень - великий двигатель прогресса!
KAI вне форума  
 
Автор темы   Непрочитано 08.05.2007, 10:23
#82
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


>KAI это для наглядности. А так см. Krieger №18 (сварной шов).
Хотя с приходом пластика не удивлюсь, если в проекте будет написано "Трубу согнуть по месту"
VVA вне форума  
 
Автор темы   Непрочитано 12.12.2007, 17:09
#83
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


>Profan # 76,78
По поводу учета толщины полилинии и DIMSCALE все решается через меню. Добавил панель "Ширина полилинии*Dimscale". Выложил в download. Обновление от 12.12.2007. Ссылка в 1 посте
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 13.11.2009 в 20:23. Причина: орфография
VVA вне форума  
 
Непрочитано 12.12.2007, 18:41
#84
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Хорошо.
Profan вне форума  
 
Непрочитано 27.12.2007, 21:00
#85
plugins


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


В файле новом файле dnl607.rar загружаемом со страницы http://dwg.ru/dnl/607 обновлены только history.txt, pltools.mnu и pltools.mns.
Все остальные файлы к сожалению от 13,03,2007
plugins вне форума  
 
Автор темы   Непрочитано 28.12.2007, 11:11
#86
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Да, пока так и есть. См. #83. Планирую обновления выложить после праздников. Основные отличия - переработаны алгоритмы оптимизации (прополки) полилинии + прополка (PL-VxRdc) восстанавливает дуговые сегменты. В данный момент переписываю алгоритм PL-DIV. Если успею, добавлю новую команду переноса сегмента полилинии по вертикали (а может и по горизонтали) с учем разных вертикальных и горизонтальных масштабов. Написал по заказу дорожников, для работы с профилями
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 28.12.2007, 15:17
#87
plugins


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


Спасибо Вам огромное. Ваши программы увеличивают возможности автокада в несколько раз. Раньше пользовался ToolPack, теперь уже почти год Вашим пакетом. Работает отлично, без каких либо глюков и ошибок. Единственно где были проблемы, так это в программе VxRdc (с дугами, а также очень медленно работает при количестве точек порядка 7000). Проблему с дугами решил для себя заменив фрагмент:

if (or (and (vlax-method-applicable-p pl 'Getbulge)
(zerop (vla-GetBulge pl (1- n))))
(not (vlax-method-applicable-p pl 'Getbulge))
(and (vlax-method-applicable-p pl 'Getbulge)
(not (zerop (vla-GetBulge pl (1- n))))
pang
))

На

if (zerop (vla-GetBulge pl (1- n)))

Очень рад что после праздников может быть будет оптимизация.

Последний раз редактировалось plugins, 28.12.2007 в 15:43.
plugins вне форума  
 
Автор темы   Непрочитано 24.01.2008, 18:54
#88
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Ну вот, свершилось. Выложил новую версию (обновление от 24.01.2008).
Кратко что нового:
Новые команды
PL-CSE -Объединение 2d полилиний по примитиву
PL-SgWidth -Изменить ширину сегмента полилинии

Переписан алгоритм PL-DIV и PL-DIVALL (теперь все делается геометрически)
Переписана и оптимизирована PL-VxRdc (теперь восстанавливает и дуговые сегменты)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 25.01.2008, 09:39
#89
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Для VVA.
При выполнении команды PL-JOIN получил сообщение:
Код:
[Выделить все]
 
ERRNO # 0: no function definition: LIB:SELSET-TO-VLALIST
Хотел объединить 3 отрезка в полилинию. Не получилось. _PEDIT объединяет нормально.
Profan вне форума  
 
Автор темы   Непрочитано 25.01.2008, 14:08
#90
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Спасибо Владимир, Александр (KAI) мне уже сообщил. Обновил сборку (от 25.01.2008). Найденные Александром отсальные глюки (в основном при работе с тяжелыми [2d] полилиниями) устраню на досуге. Постараюсь не добавить новых.
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 25.01.2008 в 14:38. Причина: Склероз и невнимательность
VVA вне форума  
 
Непрочитано 30.01.2008, 16:46
#91
rus22


 
Регистрация: 30.07.2007
Беларусь
Сообщений: 101


(Продублировал с доунлоада)

А есть ли там функция объеденить в полилинию все отрезки на прямой? Или надо добавить?
Например делаем сечение втулки, кольца, итд, чтобы сделать разрез нужно линии объеденить, joynt конечно помогает но было бы проще одним щелчком или с промежуточным подтверждением, чтобы убедиться что не захвачены линии не входящие в этот объект

Загрузил прогу подключил, а то о чем писал один пост назад (объединение нескольких отрезков на одной прямой в одну сплошную полилинию у меня не получилось, команда (привожу дословно) ОБЪЕДИНИТЬ ВЫБРАННОЕ В 2d ПОЛИЛИНИИ , всего лишь ПРЕОБРАЗОВЫВАЕТ их, но НЕОБЪЕДИНЯЕТ!

Никаких ошибок не сообщает. АКАД2007русифицированный(неРУС)
rus22 вне форума  
 
Автор темы   Непрочитано 30.01.2008, 17:07
#92
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Выложи сюда фрагмент чертежа.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 30.01.2008, 23:57
#93
rus22


 
Регистрация: 30.07.2007
Беларусь
Сообщений: 101


Выкладываю
ACAD2007 (русификация)
Кстати стоит SPDS4 на всякий случай...
Вложения
Тип файла: dwg
DWG 2004
Пример PLTOOLS.dwg (47.9 Кб, 3533 просмотров)
rus22 вне форума  
 
Непрочитано 31.01.2008, 09:04
#94
Valery Brelovsky

Инженер дорожник
 
Регистрация: 22.10.2007
Израиль
Сообщений: 1,859


Для объединения в полилинию пользуюсь макросом. Данный макрос позволяет не вязку линий, в данном случае 10 в плане. Само собой, что линии на разных уровнях и с разными координатами по Z начала и конца линии, а также 3D линии.

^C^C(progn(setq ssnab (ssget "_I"))(while (not ssnab)(setq ssnab (ssget)))(command "_pedit" "_Multiple" ssnab "" "_Y" "_Join" 10.00 ""));
Valery Brelovsky вне форума  
 
Непрочитано 31.01.2008, 09:18
#95
Valery Brelovsky

Инженер дорожник
 
Регистрация: 22.10.2007
Израиль
Сообщений: 1,859


Цитата:
Сообщение от rus22 Посмотреть сообщение
Выкладываю
ACAD2007 (русификация)
Кстати стоит SPDS4 на всякий случай...
Посмотрел и ваш пример. Если речь идёт о трёх отрезках так между концами отрезков почти 500 мм. Концы отрезков должны совпадать тогда они объедятся через редактирование полилилнии объединить. Команда _join она продлевает и объединяет если отрезки лежат на одной прямой.
Valery Brelovsky вне форума  
 
Автор темы   Непрочитано 31.01.2008, 09:35
#96
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


>rus22 Можешь воспользаваться макросом #94. В pltools есть справке, а в енй написано
Цитата:
При объединени полилиний значение допуска (fuzz distance) принимается равным 0!.
В твоем случае невязку нужно задавать где-то 500 единиц.
Кстати твой отрезки прекрасно объединила новая команда PL-CSE с значением допуска 500
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 01.02.2008, 06:05
#97
rus22


 
Регистрация: 30.07.2007
Беларусь
Сообщений: 101


Блин сообщение с благодарностью куда-то делось

Спасибо за разъяснение ещё раз
эти функции казались очевидными (объединение строк) в необходимости однако с наскоку не получилось, поэтому может в хелп стоит добавить пару строк, да и вообще комментировать в каких случаях большинство участвовавших каким-либо образом в разработке этого хорошего набора его применяют
rus22 вне форума  
 
Непрочитано 01.02.2008, 06:06
#98
rus22


 
Регистрация: 30.07.2007
Беларусь
Сообщений: 101


>>>>очевидными (объединение строк)

Пардон ошибся - линий с разрывами на одной прямой
rus22 вне форума  
 
Непрочитано 01.02.2008, 17:13
#99
Владимир.

Проектирую
 
Регистрация: 10.01.2005
Сообщений: 3,736


Цитата:
Сообщение от KAI Посмотреть сообщение
А что уже начали проектировать газопроводы по дугам!
Всю жизнь был "радиус естественного изгиба" у подземных трубопроводов
Владимир. вне форума  
 
Непрочитано 13.03.2008, 21:48
#100
Red Nova

ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Регистрация: 23.10.2007
Торонто
Сообщений: 1,980
Отправить сообщение для Red Nova с помощью Skype™


VVA, Только что узнал что PLtools это твоих рук творение. Я без нее давно AutoCAD не представляю. Спасибо большое.
Есть кое что в PLtools, что мне хотелось бы слегка подкорректировать. Когда добавляешь вершину в полилинию почему-то работает только привязка nearest, тогда как очень бывает нужно чтобы работали и другие привязки. Извиняюсь если этот вопрос уже обсуждали. Форум весь я не читал.
Red Nova вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Новые команды для работы с полилинией

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск