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

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


Последний раз редактировалось VVA, 08.09.2023 в 13:25. Причина: ссылка на иконки для темной темы
Просмотров: 378016
 
Непрочитано 02.09.2009, 23:50
#241
kozko


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


А кто может из этого набора вытащить отдельно ЛИСПы PL-JOIN3D иConvTo3d. Запуская на 2010 почти все коды у меня работают, кроме вышеобозначенных.
kozko вне форума  
 
Автор темы   Непрочитано 03.09.2009, 11:19
#242
VVA

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


kozko, Я проверил на 2010 RUS - работает. В чем выражается "неработа" этих кодов?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 08.10.2009, 11:27
#243
Tonic


 
Регистрация: 26.06.2007
Воронеж
Сообщений: 151


VVA, неплохо было бы ещё добавить функцию разбиения полилинии в указанных точках. Т.е. что-то вроде (PL-RAZ pline point_list) - в результате из одной полилинии получается 2 (или 3, если 2 точки, и т.д.). Возвращался бы список полилиний. Иногда бывает нужно.
Tonic вне форума  
 
Непрочитано 10.12.2009, 12:28
#244
kheylan


 
Регистрация: 24.05.2009
Екатеринбург
Сообщений: 86


VVA,
может вы и видели этот набор команд PlineTools (DeliCAD) для работы с полилинией. Может вас заинтересуют ряд идей в этом пакете, чтобы дополнить свой набор, мне очень понравились операции с частью полилинии.
Недостаток PlineTools, что он на 30 запусков.
Вложения
Тип файла: rar PlineTools.rar (217.6 Кб, 157 просмотров)
kheylan вне форума  
 
Непрочитано 17.12.2009, 14:32
#245
Игорь Костюкович


 
Регистрация: 31.07.2009
Минск
Сообщений: 40


Отличный набор функций. Полезный. Но...
В работе часто нужно присоединить какие-либо данные к только что созданной полилинии. Пока что приходится создавать полилинию стандартными командами AutoCAD'а и затем запускать самописную функцию для присоединения данных. Было бы очень удобно делать это заодно, из одной функции. Т.е. нужна функция, которая бы имитировала для пользователя стандартную команду _pline и возвращала указатель созданной полилинии или nil, если полилинию создать не удалось...
PS: К сожалению сам временем не располагаю, посему подкидываю идею сообществу.
PPS: очень вероятно, что эта задача уже реализована...
__________________
Там всё есть для счастья, меня там только нет,
Так это значит, что я там - буду!

Последний раз редактировалось Игорь Костюкович, 18.12.2009 в 09:39.
Игорь Костюкович вне форума  
 
Автор темы   Непрочитано 17.12.2009, 15:35
#246
VVA

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


Игорь Костюкович, Привет Игорь Могу предложить программу Алексея LISP. Расширенный вариант отрисовки Нужно только немного модифицировать функцию _kpblc-draw, чтобы возвращала результат или не модифицировать, а перед вызовом запомнить последний примитив и сравнить с последним примитивом после вызова.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 17.12.2009, 15:51
#247
Neznayka


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


Игорь Костюкович, а почему нельзя гиперссылкой присоединить какие-либо данные . Ведь с 2009 года все на ура извлекается из гиперссылок в таблицы.
Neznayka вне форума  
 
Непрочитано 18.12.2009, 09:37
#248
Игорь Костюкович


 
Регистрация: 31.07.2009
Минск
Сообщений: 40


VVA, спасибо, но... Слишком "расширенный" вариант. Из-за нехватки времени даже свой код писать некогда, не то что разобирать чужой. Автору - kpblc - отдельное спасибо.

Neznayka, хотя бы потому, что я понятия не имею, что такое гиперссылка. С таблицами не работаю. Пользую AutoCAD Map, там есть готовые механизмы присоединения к примитиву данных и хранения их в dwg - объектные данные (данные объекта). Именно с ними и работаю...
__________________
Там всё есть для счастья, меня там только нет,
Так это значит, что я там - буду!
Игорь Костюкович вне форума  
 
Автор темы   Непрочитано 18.12.2009, 17:32
#249
VVA

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


Цитата:
Сообщение от Игорь Костюкович Посмотреть сообщение
Т.е. нужна функция, которая бы имитировала для пользователя стандартную команду _pline и возвращала указатель созданной полилинии или nil, если полилинию создать не удалось...
Тогда что-то типа такого
Код:
[Выделить все]
(defun mypline( / ocmd ret)
  ;;;Имитация работы команды pline
  ;;;Возвращает имя примитива вновь созданной полилинии
  ;;;или nil в случае ошибки
  (vl-load-com)
  (setq ocmd (getvar "CMDECHO"))
  (if (vl-catch-all-error-p
        (vl-catch-all-apply
          (function
            (lambda()
              (setvar "CMDECHO" 1)
              (command "_.pline")
              (while (> (getvar "CMDACTIVE") 0)
                (command pause)
                )
              )
            )
          )
        )
    (setq ret nil)
    (setq ret (entlast))
    )
  (setvar "CMDECHO" ocmd)
  ret
  )
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 20.12.2009, 07:52
#250
Nikolay 2


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


Цитата:
Сообщение от VVA Посмотреть сообщение
Тогда что-то типа такого
А к этой функции можно как-то присоединить какие-либо данные?
Nikolay 2 вне форума  
 
Непрочитано 20.12.2009, 13:42
#251
nikе

конструктор Лего
 
Регистрация: 21.10.2005
Краснодар
Сообщений: 204


->VVA
Будь добр, сделай чтоб и в Bricscad работала твоя замечательная программа!!!
nikе вне форума  
 
Непрочитано 21.12.2009, 09:19
#252
Игорь Костюкович


 
Регистрация: 31.07.2009
Минск
Сообщений: 40


VVA, спасибо, именно то, что нужно. Серьёзно не тестировал (снова ссылаюсь на недостаток времени), но основное своё назначение функция выполняет на 100%. С меня

Nikolay 2, присоединять данные к функции? У меня изначально стояла задача присоединения данных к примитиву. В данном случае примитиву, созданному приведенной выше функцией...
__________________
Там всё есть для счастья, меня там только нет,
Так это значит, что я там - буду!
Игорь Костюкович вне форума  
 
Непрочитано 21.12.2009, 14:32
#253
Nikolay 2


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


Цитата:
Сообщение от Игорь Костюкович Посмотреть сообщение
У меня изначально стояла задача присоединения данных к примитиву. В данном случае примитиву, созданному приведенной выше функцией...
Да, я конечно это имел ввиду, не правильно выразился... И как же присоединить?
Nikolay 2 вне форума  
 
Непрочитано 11.02.2010, 02:09
#254
KAI

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


Володя, вылетела из головы эта ветка. Написал предложения в http://dwg.ru/dnl/607.
__________________
Лень - великий двигатель прогресса!
KAI вне форума  
 
Автор темы   Непрочитано 11.02.2010, 10:25
#255
VVA

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


Прочитал. Пример попросил здесь
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 11.02.2010, 10:44
#256
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,915
<phrase 1=


VVA, а можно ввести такую фичу, есть несколько отрезков которые разбросаны по чертежу, требуется объединить их в одну полилинию.
ps можно ввести запрос на создание нового объекта и поворачивать ли исходные объекты при построении нового объекта.
Draw.dwg
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 28.04.2010, 09:24
#257
KickeR


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


Помогите пожалуйста!
Нужна команда на основе rectangle, которая бы рисовала прямоугольник, но не по крайним 2 точкам, а по 2 точкам соединиющим центры противоположных сторон прямоугольника, с возможностью задать ширину этого прямоугольника. Еще поясню: забиваю эту команду, ставлю точку по оси, задаю ширину прямоугольника, ставлю вторую точку по оси и бац готова стенка! Еще желательно, присоеденить функцию прорисовки линии по которой эти две точки соединяются.
Примногоблагодарен за ранее!

Спасибо, zenon'у. Со всем разобрался.

Последний раз редактировалось KickeR, 28.04.2010 в 14:42.
KickeR вне форума  
 
Непрочитано 28.04.2010, 09:37
#258
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,915
<phrase 1=


_mline и справку прочесть по команде
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 28.04.2010, 09:48
#259
KickeR


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


УДАЛИТЕ

Последний раз редактировалось KickeR, 28.04.2010 в 14:40. Причина: нашел нужную инфу
KickeR вне форума  
 
Автор темы   Непрочитано 28.04.2010, 10:28
#260
VVA

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


В добавок к mline можно лиспом OFF2 или MOFF2 из этой темы LISP. Подобие в обе стороны
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Новые команды для работы с полилинией

Опции темы Поиск в этой теме
Поиск в этой теме:

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