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

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


Последний раз редактировалось VVA, 08.09.2023 в 13:25. Причина: ссылка на иконки для темной темы
Просмотров: 379384
 
Непрочитано 10.10.2010, 18:39
#301
Yuzer

Мозговой штурм
 
Регистрация: 26.10.2008
Рідна ненька - Україна, Харків
Сообщений: 5,705


VVA, сполз под стол - мой мир перевернулся))).
Я все напутал - именно эту штуку я и подгрузил (которая 2010х32)! Все это время я попросту пудрил мозги... Просто скачал все разом, а название архива дал "Новые команды для работы с полилинией_1".
Yuzer вне форума  
 
Непрочитано 28.10.2010, 11:16
#302
MeshIN

Изыскания и САПР
 
Регистрация: 05.07.2008
Ижевск
Сообщений: 297


Попробовал установить на Bricscad V10 работает примерно 30% комманд, после обновления до V11 стало работать 90% , из наиболее используемых мной не работает объединение полилиний.
MeshIN вне форума  
 
Автор темы   Непрочитано 28.10.2010, 20:06
#303
VVA

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


Цитата:
Сообщение от MeshIN Посмотреть сообщение
з наиболее используемых мной не работает объединение полилиний
В команде pedit от BriCSCAD нет опции _m (multiple)
Но есть альтернатива: P_ed.lsp из CNC Tools Ссылка на поддержку BricsCAD
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 06.11.2010, 10:53
#304
Yuzer

Мозговой штурм
 
Регистрация: 26.10.2008
Рідна ненька - Україна, Харків
Сообщений: 5,705


Цитата:
Сообщение от Yuzer Посмотреть сообщение
После загрузки приложения копирование с базовой точкой вело себя странно: при вставке объекта было незначительное смещение (точка та же, а объект располагается левее). Сначала грешил на единицы. Выполнил очистку, очистил прокси, поставил значение demandload в 0 - не помогло. При чем интересный факт: после выполнения всех очисток в пространстве листа копирование выполняется нормально, а в модели - глючит. После очистки в модели копируется нормально, а в листе - глючит.
В какой-то момент заметил, что все отрезки стали полилиниями (хз какие я при этом команды тыкал - может из экспресов что-то). Бодался где-то час: создавал новые файлы, копировал содержимое и т.д. Был ли это глюк самого файла или приложения сказать не могу, потому что после удаления файла удалил и приложение.
В новом файле глюков не наблюдал.

Разобрался я в чем проблема с этим копированием. Никак это не связано с приложениями, лиспами и т.п.
Использую в работе аннотативность (только размерный стиль). При задании вьюпорта часто наблюдается, что аннотативные размеры в выставленном масштабе не строятся через ВЭ (проблема решается через перезадание масштаба).
Так вот аналогичная проблема и с копированием, если разблокировать вьюпорт и задать масштаб ВЭ 1:1, а потом вернуть в старый масштаб, к примеру 1:50, то все глюки пропадают - объект вставляется в ту точку, которую выбрал (никаких смещений нет).

Offtop: p.s. Вообще дастает, что список масштабов все время слетает на британские единицы и глюки с вьюпортами+аннотативность. Надеюсь ребята из автодеска прочтут сие...
Yuzer вне форума  
 
Непрочитано 06.11.2010, 16:47
#305
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


Можно добавить в объединение полилиний (PL-JOIN) допуск на расстояние между концами, чтобы сшивать при небольших разрывах? И добавить сшивание только однотипных элементов - с одинаковыми свойствами, включая высоту?
Ведь сшивать вообще все что ни попадя нужно гораздо реже, чем сшивать однородные элементы. Сшивать, используя отключения слоев и т.п. - долго и легко что-то пропустить, т.к. слоев бывает много. А высоты вообще никак не учтешь. В результате можно получить потери данных, ошибки.
АлексЮстасу вне форума  
 
Автор темы   Непрочитано 06.11.2010, 17:01
#306
VVA

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


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Сшивать, используя отключения слоев и т.п. - долго и легко что-то пропустить, т.к. слоев бывает много
Команда обрабатывает предварительный выбор. Мне в этом значительно помогает эта программа: ObjectARX. SelSim - выбор по образцу
Если вводить допуски, то нужна соответствующая настройка или дополнительный запрос. Вообще посмотрю что можно сделать
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 06.11.2010, 17:36
#307
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


Цитата:
Сообщение от VVA Посмотреть сообщение
Команда обрабатывает предварительный выбор. Мне в этом значительно помогает эта программа: ObjectARX. SelSim - выбор по образцу
Если вводить допуски, то нужна соответствующая настройка или дополнительный запрос. Вообще посмотрю что можно сделать
Про SelSim меня агитировать совсем не нужно )
Вы представьте, какое число разнородных элементов может быть в файле. При ручном выборе все равно что-то да пропустишь. А высоты элементов вообще не учтешь.
АлексЮстасу вне форума  
 
Непрочитано 15.11.2010, 23:33
#308
MeshIN

Изыскания и САПР
 
Регистрация: 05.07.2008
Ижевск
Сообщений: 297


Цитата:
Сообщение от VVA Посмотреть сообщение
В команде pedit от BriCSCAD нет опции _m (multiple)
Но есть альтернатива: P_ed.lsp из CNC Tools Ссылка на поддержку BricsCAD



VVA, - это замена или надо дополнять код?
MeshIN вне форума  
 
Автор темы   Непрочитано 16.11.2010, 09:45
#309
VVA

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


MeshIN, Это замена. В команде _pedit BricsCAd нет опции _multiple
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 19.11.2010, 16:41
#310
Djur


 
Регистрация: 07.06.2008
ЗвезДонецк
Сообщений: 131


Доброго здравия Уважаемые!
Возможно ли сделать такое)
- полилиния пересекает какой-то объект, например квадрат, при обрезании полилинии внутри квадрата она не разрывается, а замыкается повторяя контур квадрата по его граням.
или я сильно много хочу?)))
Благодарю с Уважением.
__________________
Любой ПУТЬ прост, если в согласии с Вселенскими законами :) Дукха Самудая Ниродха и Марга
Djur вне форума  
 
Непрочитано 23.11.2010, 13:44
#311
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Опубликовываю сообщение, дабы никто более не наступал на подобные (описанные ниже) грабли.

Хороший набор команд. Добавил его в сеть, для использования юзерами. Всё работает, но со справкой возникли проблемы... Дело в том, что любой chm-файл корректно открывается только с локального диска. Если пытаться открывать его из сети - корректно будет отображаться только древовидная структура документа, а содержимое листов отображаться не будет:



Т.о. в случае сетевой работы использование chm-файлов в качестве справки не годится.
Поскольку исходников справки у меня нет, я конвертнул chm-файл в html-справку (с помощью этой программки), дабы можно было её открывать через браузер IE.

Далее идёт любопытный момент... Интересующее меня содержимое справки лежит в сети по адресу:
\\Hyprostroy\dfs\SystemFolder\tools\AutoCAD tools\AcadPlagins\LISP\Pltools\help\pltools.html

Из консоли автокада открыть его можно так:
(startapp "explorer" "\\\\Hyprostroy/dfs/SystemFolder/tools/AutoCAD tools/AcadPlagins/LISP/Pltools/help/pltools.html")

Обращаю внимание на то, что путь начинается с \\\\. Если попытаться заменить их на // - ничего не получится.

Далее начинается ещё интересней... Если выше приведённую строку, которая нормально работает в консоли автокада, засунуть в кнопку так:

^C^C(startapp "explorer" "\\\\Hyprostroy/dfs/SystemFolder/tools/AutoCAD tools/AcadPlagins/LISP/Pltools/help/pltools.html")

то работать не будет... Не "ест" кнопка \\\\.

Решение предложил Александр Ривилис (за что ему огромное спасибо):

^C^C(startapp "explorer" (strcat (chr 92) (chr 92) "Hyprostroy/dfs/SystemFolder/tools/AutoCAD tools/AcadPlagins/LISP/Pltools/help/pltools.html"))

Теперь справка доступна из сети всем пользователям домена.

_________________________________________________________
п.с. За софтину благодарю (от своего имени и имени пользователей домена) всех тех, кто отмечен разделе "Благодарности".
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 24.11.2010, 00:40
#312
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от hwd Посмотреть сообщение
Не "ест" кнопка \\\\.
А если попробовать скормить
Код:
[Выделить все]
^C^C(startapp "explorer" "//Hyprostroy/dfs/SystemFolder/tools/AutoCAD tools/AcadPlagins/LISP/Pltools/help/pltools.html")
По идее ничем не отличается от решения Александра.
P.S. Проверить работу не могу
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 24.11.2010, 07:42
#313
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
А если попробовать скормить
Код:
[Выделить все]
^C^C(startapp "explorer" "//Hyprostroy/dfs/SystemFolder/tools/AutoCAD tools/AcadPlagins/LISP/Pltools/help/pltools.html")
По идее ничем не отличается от решения Александра.
P.S. Проверить работу не могу
Невнимательно читаешь... Я же написал:
Цитата:
Обращаю внимание на то, что путь начинается с \\\\. Если попытаться заменить их на // - ничего не получится.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 24.11.2010, 09:56
#314
VVA

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


hwd,
Цитата:
Сообщение от hwd Посмотреть сообщение
Обращаю внимание на то, что путь начинается с \\\\. Если попытаться заменить их на // - ничего не получится.
Я в меню пользуюсь тем, что findfile принимает строки с //, а возвращает с \\\\
Так должно сработать
Код:
[Выделить все]
^C^C(startapp "explorer" (findfile "//Hyprostroy/dfs/SystemFolder/tools/AutoCAD tools/AcadPlagins/LISP/Pltools/help/pltools.html"))
По поводу открытия chm по сети правится здесь
Цитата:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]
"MaxAllowedZone"=dword:00000001
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 06.05.2011 в 21:08. Причина: Ссылка на реестр
VVA вне форума  
 
Непрочитано 24.11.2010, 10:23
#315
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от VVA Посмотреть сообщение
Я в меню пользуюсь тем, что findfile принимает строки с //, а возвращает с \\\\
Люботное решение, спасибо, запомню.
В моём случае findfile не всегда подойдёт, поскольку имеется множество различных библиотек, запускаемых загрузчиком при старте (в опциях автокада пути к ним не прописаны). Применительно к данной ситуации для того, чтобы предложенное решение заработало, мне придётся добавить в опции акада новый путь:
\\Hyprostroy\dfs\SystemFolder\tools\AutoCAD tools\AcadPlagins\LISP\Pltools\help,
помимо того, что уже добавлен:
\\Hyprostroy\dfs\SystemFolder\tools\AutoCAD tools\AcadPlagins\LISP\Pltools.
Я стараюсь как можно меньше вносить дополнительных путей,только если это действительно неизбежно (например путь к шрифтам нужно указывать в любом случае...).
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 24.11.2010, 10:39
#316
VVA

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


hwd,
1. Можно указать полный путь.
2. Если часть пути прописана, то в к findfile можно добавить подпапку. Я этим пользуюсь для поиска библиотек блоков
(findfile "help/pltools.html") должно вернуть полный пусть, если \\Hyprostroy\dfs\SystemFolder\tools\AutoCAD tools\AcadPlagins\LISP\Pltools в путях доступа.
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 24.11.2010 в 10:42. Причина: Исменена строка "help/pltools.html"
VVA вне форума  
 
Непрочитано 24.11.2010, 11:14
#317
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от VVA Посмотреть сообщение
Если часть пути прописана, то в к findfile можно добавить подпапку.
Спасибо, это действительно удобная реализация.
Жаль, что в путях настроек нельзя хранить строки в таком виде:
%AppData%\MyCAD
Не распознаёт он системные переменные к сожалению.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 25.11.2010, 14:30
#318
MeshIN

Изыскания и САПР
 
Регистрация: 05.07.2008
Ижевск
Сообщений: 297


Цитата:
Сообщение от VVA Посмотреть сообщение
В команде _pedit BricsCAd нет опции _multiple
Сделал запрос в Bricsys - в ближайших обновлениях функция должна появиться. Будем надеяться что после этого будет работать объединение полилиний.
MeshIN вне форума  
 
Непрочитано 05.12.2010, 12:53 K VVA
#319
boretskiy.a

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


Набор команд класный.

Последний раз редактировалось boretskiy.a, 10.12.2010 в 03:26.
boretskiy.a вне форума  
 
Непрочитано 10.12.2010, 00:22 Редактирование MPL из набора команд для редактирования полилини.
#320
boretskiy.a

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


VVA,
Набор команд класный. Но возможен ли вариант доработки MPL? Хотелось бы чтобы была возможность ввода количества построения полилиний между двумя полилиниями. И еще, если бы это произведение работало со сплайнами, цены бы ему небыло. Спросите для чего? Для использования геодезистами при прорисовке рельефа. Если вариант доработки будет реализован, буду очень благодарен.
boretskiy.a вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Новые команды для работы с полилинией