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

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

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

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

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

=========== Доступные команды PLTOOLS=================
Редакция 17.06.2014
PL-JOIN -Объединение выбранных полилиний
PL-VFI -вставка вершин в выбранной полилинии в местах пересечения с
указанными полилиниями, линиями, дугами
PL-JOIN3D -Объединение 3D полилиний
PL-A2L -Замена линейного сегмента в полилинии дуговым сегментом.
PL-L2A -Замена дугового сегмента в полилинии линейным сегментом.
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
Просмотров: 8860
Размер:	30.3 Кб
ID:	21079  


Последний раз редактировалось VVA, 20.07.2015 в 19:42. Причина: Реверс дуговых сегментов полилинии
Просмотров: 287522
 
Автор темы   Непрочитано 22.02.2019, 19:26
#601
VVA

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


подгрузи через menuload файл pltools.mnu или pltools.mns. После строки "Предыдущая версия" появится стока "Файлы частичной адаптации"

__________________
Как использовать код на Лиспе читаем здесь
VVA на форуме  
 
Непрочитано 08.04.2019, 08:05
#602
Svetlana2020


 
Регистрация: 06.04.2019
Сообщений: 5
Отправить сообщение для Svetlana2020 с помощью Skype™


Уважаемые профи, подскажите, можно ли сделать, чтобы PLTOOLS прореживала вершины сглаженной полилинии? Файл с деталью прикрепляю. Если убрать сглаживание и выполнить прореживание - все ок, но потом после применения сглаживания деталь принимает причудливые формы (острые углы портятся). Но по задаче требуется оставить сглаживание, проредить вершины, затем полилиния разобьется на отрезки и дуги, и режется на станке. Без дуг решение не подходит.
Вложения
Тип файла: dwg
DWG 2013
list_rez.dwg (119.8 Кб, 6 просмотров)
Svetlana2020 вне форума  
 
Непрочитано 08.04.2019, 08:09
1 | #603
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Svetlana2020 Посмотреть сообщение
Файл с деталью прикрепляю.
Файла нет.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 08.04.2019, 11:59
#604
koMon


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


Цитата:
Сообщение от Svetlana2020 Посмотреть сообщение
прореживала вершины сглаженной полилинии
а что было до полилинии, сплайн?
koMon вне форума  
 
Непрочитано 08.04.2019, 12:26
#605
Svetlana2020


 
Регистрация: 06.04.2019
Сообщений: 5
Отправить сообщение для Svetlana2020 с помощью Skype™


Цитата:
Сообщение от koMon Посмотреть сообщение
а что было до полилинии, сплайн?
Абсолютно верно, до полилинии был сплайн, который был преобразован в полилинию. А сплайн пришел из Corel, источника бед, как обычно.

Последний раз редактировалось Svetlana2020, 08.04.2019 в 12:37.
Svetlana2020 вне форума  
 
Непрочитано 08.04.2019, 12:39
#606
koMon


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


Цитата:
Сообщение от Svetlana2020 Посмотреть сообщение
был сплайн
можно сплайн посмотреть?!
koMon вне форума  
 
Непрочитано 08.04.2019, 12:45
#607
Svetlana2020


 
Регистрация: 06.04.2019
Сообщений: 5
Отправить сообщение для Svetlana2020 с помощью Skype™


Прикрепляю ту же деталь из сплайнов
Вложения
Тип файла: dwg
DWG 2013
list_rez_spline.dwg (34.2 Кб, 3 просмотров)
Svetlana2020 вне форума  
 
Непрочитано 08.04.2019, 13:07
1 | #608
koMon


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


дуги и отрезки
Вложения
Тип файла: dwg
DWG 2013
list_rez_spline_.dwg (37.6 Кб, 5 просмотров)
koMon вне форума  
 
Непрочитано 08.04.2019, 13:37
#609
Svetlana2020


 
Регистрация: 06.04.2019
Сообщений: 5
Отправить сообщение для Svetlana2020 с помощью Skype™


Цитата:
Сообщение от koMon Посмотреть сообщение
дуги и отрезки
А как сделать так мало дуговых секторов? Секрет в чем?
Svetlana2020 вне форума  
 
Автор темы   Непрочитано 08.04.2019, 14:03
#610
VVA

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


Svetlana2020, 2 варианта
LISP. Как преобразовать выделенные сплайны в полилинии?
и
spline to plyline (flatten)
__________________
Как использовать код на Лиспе читаем здесь
VVA на форуме  
 
Непрочитано 08.04.2019, 20:48
#611
Svetlana2020


 
Регистрация: 06.04.2019
Сообщений: 5
Отправить сообщение для Svetlana2020 с помощью Skype™


Цитата:
Сообщение от koMon Посмотреть сообщение
дуги и отрезки
Немного уточнить можно? Конвертировали SP в PLINE чем? Затем прополку вершин делали?
Svetlana2020 вне форума  
 
Непрочитано 09.04.2019, 10:48
#612
koMon


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


Цитата:
Сообщение от Svetlana2020 Посмотреть сообщение
А как сделать так мало дуговых секторов? Секрет в чем?
нет секрета. написал конвертер сплайна в дуги и линии. на лиспе
Цитата:
Сообщение от Svetlana2020 Посмотреть сообщение
Немного уточнить можно? Конвертировали SP в PLINE чем? Затем прополку вершин делали?
никакой прополки, см. выше. да и едва ли какая прополка поможет с таким безобразием, которое получается штатно при конвертации сплайна в плинию.
koMon вне форума  
 
Непрочитано 29.05.2019, 09:59
#613
yuger_ser


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


Всем привет

PLTools многократно облегчает работу. Есть идея по созданию команды которая может быть очень полезна. Смысл в следующем:

Объединить в одну команду ConvTo2d + PL-JOIN + _Wipeout ( по контуру полилинии ) + срытие маскировки на задний план + объедение всего объекта в блок (желательно с вводом имени блока).

Господа эксперты, как такое возможно сделать?
yuger_ser вне форума  
 
Непрочитано 29.05.2019, 14:08
#614
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Днепройт
Сообщений: 3,998


Offtop:
Цитата:
Сообщение от yuger_ser Посмотреть сообщение
Объединить в одну команду ConvTo2d + PL-JOIN + _Wipeout ( по контуру полилинии ) + срытие маскировки на задний план + объедение всего объекта в блок (желательно с вводом имени блока).

Господа эксперты, как такое возможно сделать?
Не эксперт, но отвечу: можно с помощью макроса, можно на LISP; теоретически можно на VBA или с помощью "тяжелой артиллерии" типа .net или ARX (но тогда без PLTOOLS, которые изначально на LISP). А что Вы уже сделали в этом направлении, что получилось, что не получается?
__________________
Да здравствует фикус! (С)
kp+ вне форума  
 
Непрочитано 30.05.2019, 09:06
#615
yuger_ser


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


Цитата:
Сообщение от kp+ Посмотреть сообщение
Offtop:
Не эксперт, но отвечу: можно с помощью макроса, можно на LISP; теоретически можно на VBA или с помощью "тяжелой артиллерии" типа .net или ARX (но тогда без PLTOOLS, которые изначально на LISP). А что Вы уже сделали в этом направлении, что получилось, что не получается?
Пробовал создать макрос, но наткнулся на ряд проблем. Команда ConvTo2D криво преобразовывает примитывы в полилинии, либо не замкнутый контур, либо вообще обрезает дугу. Есть идея заменить команду на создание области при помощи команды КПОЛИ и далее взорвать ее и PL-JOIN. Еще одна проблема это создание макроса для выбора объектов. Существует ли подробный макрос для команды _qselect?
yuger_ser вне форума  
 
Непрочитано 30.05.2019, 15:47
#616
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Днепройт
Сообщений: 3,998


Цитата:
Сообщение от yuger_ser Посмотреть сообщение
Пробовал создать макрос
В студию.

Цитата:
Сообщение от yuger_ser Посмотреть сообщение
Есть идея заменить команду на создание области при помощи команды КПОЛИ и далее взорвать ее и PL-JOIN
Месье знает толк... Лучше тогда использовать стандартную _pedit с соответствующими опциями. Там можно задать и допуск для объединения, и замыкание результирующей полилинии.

Цитата:
Сообщение от yuger_ser Посмотреть сообщение
Еще одна проблема это создание макроса для выбора объектов. Существует ли подробный макрос для команды _qselect?
Не знаю, по каким признакам Вы собираетесь выбирать объекты, но есть выбор с помощью фильтра (опция 'filter). Там, правда, выскакивает окошко, но настройки фильтра можно сохранить заранее.
__________________
Да здравствует фикус! (С)
kp+ вне форума  
 
Непрочитано 30.05.2019, 16:24
#617
yuger_ser


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


Вот такой макрос получился. Правда все ровно пару кликов приходится сделать вначале. Также его можно допилить созданием блока в конце.

^C^C-слой;с;Редактор1;;_rectang;\\-слой;с;Редактор2;;КПОЛИ;\;(sssetfirst nil (ssget "_x" '((0 . "LWPOLYLINE")(8 . "Редактор1"))));_.erase;_.erase;\;(sssetfirst nil (ssget "_x" '((0 . "REGION")(8 . "Редактор2"))));слойотд;расчленить;все;_ai_selall;CONVTO2D;_ai_selall;pl-join;_ai_selall;_wipeout;п;д;(sssetfirst nil (ssget "_x" '((0 . "WIPEOUT")(8 . "Редактор2"))));_draworder;А;(command "_.-layer" "_m" "0" "");_laycur;все;;СЛОЙОТДОТМ;(command "_.-layer" "_m" "0" "");^C^C(command "слойудал" "И" "редактор2" "" "д");(command "слойудал" "И" "редактор1" "" "д");

С простыми объектами работает на ура. С объектами посложнее ругается на замкнутость полилинии. С сложными объектами также ругается на замкнутость и создает много ненужных областей и примитивов которые необходимо чистить.
yuger_ser вне форума  
 
Непрочитано 31.05.2019, 10:28
#618
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Днепройт
Сообщений: 3,998


Цитата:
Сообщение от yuger_ser Посмотреть сообщение
Вот такой макрос получился
Месье действительно знает толк... Что мешало написать сразу все на LISP'е?
__________________
Да здравствует фикус! (С)
kp+ вне форума  
 
Непрочитано 31.05.2019, 11:58
#619
yuger_ser


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


Цитата:
Сообщение от kp+ Посмотреть сообщение
Месье действительно знает толк... Что мешало написать сразу все на LISP'е?
Мешает отсутствие опыта написания LISP'ов. Посоветуйте полезный справочник или литературу.
yuger_ser вне форума  
 
Непрочитано 31.05.2019, 12:28
1 | #620
Сергей812


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


Н.Н.Полещук. "AutoLISP и Visual LISP в среде AutoCAD" - академическая справка по сути, не смотря на год - актуальна до сих пор)
А потом поисковик. Нет такого ресурса - чтобы открыли и сразу готовые решения в виде кода получили, все собирается из справки, форумов и работы головой.
Сергей812 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Новые команды для работы с полилинией

Tekla Structures. Видеокурс. ЖЕЛЕЗОБЕТОН
Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

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