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

Вернуться   Форум 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
Просмотров: 15347
Размер:	30.3 Кб
ID:	21079  


Последний раз редактировалось VVA, 08.09.2023 в 13:25. Причина: ссылка на иконки для темной темы
Просмотров: 367928
 
Непрочитано 31.10.2016, 16:00
#541
Папаё

архитектор
 
Регистрация: 17.03.2015
респ. Коми
Сообщений: 55


Ребят, подскажите как в PL-JOIN задать допуск?
(есть макрос Кулика Алексея с допуском 10, но при загрузке его у меня в 16-ом выдает ошибку. Код:^C^C(defun c:mypljoin( / selset _pedit) (if (setq selset (ssget "_:L" '((0^M;. "ARC,*LINE")))) (progn (setq _pedit (getvar "PEDITACCEPT")) (setvar^M;"PEDITACCEPT" 1) (command "_.pedit" "_m" selset "" "_j" 10.0 "") (setvar^M;"PEDITACCEPT" _pedit))));mypljoin )
__________________
архитектор
дома, эскизы
санаторий, дымоходы
Папаё вне форума  
 
Непрочитано 31.10.2016, 16:06
1 | #542
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Что-то я не помню такого макроса...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 31.10.2016, 17:13
#543
Папаё

архитектор
 
Регистрация: 17.03.2015
респ. Коми
Сообщений: 55


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Что-то я не помню такого макроса...
Здравствуйте Алексей) Этот макрос 10 лет назад на www.caduser.ru.
__________________
архитектор
дома, эскизы
санаторий, дымоходы
Папаё вне форума  
 
Непрочитано 31.10.2016, 19:37
#544
Linkshunter

проектирование а/дорог
 
Регистрация: 03.07.2013
СПб
Сообщений: 376


Цитата:
Сообщение от Папаё Посмотреть сообщение
подскажите как в PL-JOIN задать допуск?
использую это(в 15м).
...единственное, не пересекающиеся полилинии не соединяет
Вложения
Тип файла: lsp pedit2.lsp (202 байт, 48 просмотров)
Linkshunter вне форума  
 
Автор темы   Непрочитано 31.10.2016, 23:00
1 | #545
VVA

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


Цитата:
Сообщение от Папаё Посмотреть сообщение
Ребят, подскажите как в PL-JOIN задать допуск?
в файле pltools.lsp найти фрагмент
Цитата:
(defun C:PL-JOIN ( / ssnab count en *error* ss)
(setq *error* pltool-err)
(or *pl-activedoc* (setq *pl-activedoc* (vla-get-activedocument (vlax-get-acad-object))))
(vla-StartUndoMark *pl-activedoc*)
(pl:error-save-sysvar '(("PEDITACCEPT" 1)("CMDECHO" 0)))
(setq ssnab (ssget "_I"))
(while (not ssnab)(setq ssnab (ssget)))
;;;И 3d полилинии
;(setq ssnab(3dpljn ssnab 1e-6 "AcDb3dPolyline"))
(setq count 0)
(while (setq en (ssname ssnab count))
(if (member '(100 . "AcDb3dPolyline")(entget en))
(ssdel en ssnab)
(setq count (1+ count))
)
)
(setq en (entlast) count 0 ss (ssadd))
(if (> (sslength ssnab) 1)
(if (and (getvar "PEDITACCEPT") (= (getvar "PEDITACCEPT") 1))
(vl-cmdf "_pedit" "_Multiple" ssnab "" "_Join" 0 "")
(vl-cmdf "_pedit" "_Multiple" ssnab "" "_Y" "_Join" 0 ""))

)
Допуск выделен красным
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 31.10.2016, 23:17
#546
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Папаё, чуть ниже нормальный код макроса был. Хотя VVA уже ответил
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 01.11.2016, 18:18
#547
Linkshunter

проектирование а/дорог
 
Регистрация: 03.07.2013
СПб
Сообщений: 376


Цитата:
Сообщение от Linkshunter Посмотреть сообщение
использую это(в 15м).
..да, еще иногда удобнее стд.командами "сопряжение" и "фаска" когда требуются вариации соединения
Linkshunter вне форума  
 
Непрочитано 07.11.2016, 02:27
#548
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
нормальный код
нормальный код не предполагает вмешательство несведущего человека в себя
gomer вне форума  
 
Непрочитано 07.11.2016, 08:34
#549
Valery Brelovsky

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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Что-то я не помню такого макроса...
Ну, что Вы Алексей, я по сей день им пользуюсь.
Valery Brelovsky вне форума  
 
Непрочитано 07.11.2016, 08:47
#550
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Цитата:
Сообщение от Valery Brelovsky Посмотреть сообщение
Ну, что Вы Алексей, я по сей день им пользуюсь.
С ^M в середине? Эт вряд ли

----- добавлено через 39 сек. -----
Offtop:
Цитата:
Сообщение от gomer Посмотреть сообщение
нормальный код не предполагает вмешательство несведущего человека в себя
Но это никого не останавливает Все равно лезем и начинаем читать инструкцию, когда понимаем: все, доломали
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 31.01.2017, 11:53
#551
barabaka


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


А никто не встречал команды, которая бы делила полилинию на не равные части? Скажем, ставишь на полилинии базовую точку (в любом месте линии) и остальные точки ставятся на указаном растоянии от базовой точки с учетом дуг, изломов полилинии и т.д. Растояния для каждой новой точки что б задавались отдельно
barabaka вне форума  
 
Непрочитано 31.01.2017, 12:11
#552
wepp

Инжиниринг
 
Регистрация: 16.09.2011
Тюмень
Сообщений: 224


Цитата:
Сообщение от barabaka Посмотреть сообщение
А никто не встречал команды, которая бы делила полилинию на не равные части? Скажем, ставишь на полилинии базовую точку (в любом месте линии) и остальные точки ставятся на указаном растоянии от базовой точки с учетом дуг, изломов полилинии и т.д. Растояния для каждой новой точки что б задавались отдельно
Посмотри здесь, делин: http://forum.dwg.ru/showthread.php?t=4217
wepp вне форума  
 
Непрочитано 31.01.2017, 12:36
#553
barabaka


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


О, почти оно))) Только не отмечает базовую точку. Спасибо))
barabaka вне форума  
 
Непрочитано 09.07.2017, 09:45
#554
Luba Haikin


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


Здравствуйте. Нужна помощь. Аutocad map 3d 2018, после установки pltools перестает работать приложение к автокаду. Выдает ошибку: bad argument type: lentityp ((0. "BLOCK"). В предыдущих версиях все работало.
Luba Haikin вне форума  
 
Автор темы   Непрочитано 10.07.2017, 14:30
#555
VVA

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


Luba Haikin, Какую конкретно команду вызываешь? Приложи пример с файла или опиши что делаешь.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 20.01.2018, 02:15
#556
DMS-chiii


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


Сегменты разными типами линий как то можно реализовать?
DMS-chiii вне форума  
 
Непрочитано 20.01.2018, 20:12
#557
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Цитата:
Сообщение от DMS-chiii Посмотреть сообщение
Сегменты разными типами линий как то можно реализовать?
В AutoCAD - напрямую невозможно.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 21.01.2018, 10:40
#558
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Цитата:
Сообщение от DMS-chiii Посмотреть сообщение
Сегменты разными типами линий как то можно реализовать?
Как то можно, но вот нужно ли...
Boxa вне форума  
 
Непрочитано 21.01.2018, 15:11
#559
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Цитата:
Сообщение от Boxa Посмотреть сообщение
Как то можно, но вот нужно ли...
задача то нужная: например, в электрических/слаботочных сетях есть разные условные обозначения для кабеля в гофротрубе, открыто, на подвесе и т.д. Но как написал выше Алексей, в стандартном примитиве полилинии это не реализуемо.
Сергей812 вне форума  
 
Непрочитано 21.01.2018, 16:55
#560
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Сергей812, согласен, в стандартном примитиве это не реализуемо, но вопрос то был "как то" , "как то" можно, но сложно.
Boxa вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Новые команды для работы с полилинией

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

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