Selection sets

Автор Тема: Selection sets  (Прочитано 52913 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн altverАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 146
  • Карма: 2
Selection sets
« : 23-10-2019, 21:54:53 »
Добрый день
Как лиспом можно посчитать наборы, которе скопились в чертеже и как их правильно чистить.
Корифеи сейчас начнут рассказывать про глобльне переменные и обнуление сетов руками...не получается так...
Нашел на форуме лисп CLR_SEL.lsp, который якобы чистит (purge) эти наборы и выводит в ком. строку результат, сколько почитил, однако чистит не все, все равно акад ругается на превышение количества наборов.
Можно получить толковый ответ на эту тему?
Большое спасибо!

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Selection sets
« Ответ #1 : 23-10-2019, 22:22:06 »
altver,
Приветствую на форуме!
Нашел на форуме лисп CLR_SEL.lsp
Хотелось бы на него посмотреть. С идентификацией открытых наборов всё очень плохо. Особенно из lisp.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Отмечено как Решение Александр Ривилис 30-01-2020, 10:14:18

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Selection sets
« Ответ #2 : 24-10-2019, 00:34:43 »
Ничего лучше я не придумал:
Код - Auto/Visual Lisp [Выбрать]
  1. (defun C:CLR_SELS ( / e n acad doc sels)
  2.   (setq n 0)
  3.   (foreach e (atoms-family 0)
  4.     (if (= (type (vl-symbol-value e)) 'PICKSET) (progn
  5.       (set e nil)
  6.       (princ "\n") (princ e)
  7.       (setq n (1+ n))
  8.     ))
  9.   )
  10.   (setq acad (vlax-get-acad-object)
  11.         doc  (vla-get-activedocument acad)
  12.         sels (vla-get-selectionsets doc)
  13.   )
  14.  
  15.   (vlax-for sel sels (vla-clear sel))
  16.  
  17.   (princ "\nОчищено наборов: ") (princ n)
  18.   (princ)
  19. )
  20.  
Только никакие наборы, созданные в ObjectARX и .NET так чистится не будут. И вообще не существует ни в каком виде списка созданных наборов, которые можно было бы закрыть.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн altverАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 146
  • Карма: 2
Re: Selection sets
« Ответ #3 : 24-10-2019, 12:02:35 »
Большое спасибо,  буду пробовать.
Кстати, я обратил вимание на такой факт: 128 наборов мах. это не в чертеже, а сумма наборов во все открытых чертежах. Т.е. если есть открытые файлы  и, ко весму, они тяжелые и не почищены, то на рабочий файл поти ничего не остается.
И еще один факт, по которому я пришл  выводу, что чистится не все: если после сбоя (превышене наборов) перегрузить чертеж, то он очищается и можно продолжать рботать. Может эта инфа поможет в чем-то!
Еще раз спасибо!

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Selection sets
« Ответ #4 : 24-10-2019, 12:04:56 »
И еще один факт, по которому я пришл  выводу, что чистится не все: если после сбоя (превышене наборов) перегрузить чертеж, то он очищается и можно продолжать рботать.
Именно так и это было всегда - еще с DOS-овских версий AutoCAD. Только чертеж конечно не очищается, а очищается список открытых наборов.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Selection sets
« Ответ #5 : 24-10-2019, 12:26:20 »
По большому счету нужно найти источник незакрытых наборов. Чаще всего это какая-то не вполне корректная lisp-программа, которая не чистит набор. Вполне возможно, что она не обрабатывает ситуацию аварийного завершения (например, по нажатию ESC).
С arx/dll-приложениями легче. Вероятность появления проблем с ними меньше, хотя если проблема связанна именно с ними (а такое было в одной из первых версий Express Tools), то исправить это может только автор.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн altverАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 146
  • Карма: 2
Re: Selection sets
« Ответ #6 : 30-10-2019, 22:35:58 »
Больое спасибо!

Оффлайн altverАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 146
  • Карма: 2
Re: Selection sets
« Ответ #7 : 28-01-2020, 22:28:36 »
Добрый день, Александр!
Столкнулся со следующей проблемой:
при помощи следующего кода создаю 128 наборов.

Код - Auto/Visual Lisp [Выбрать]
  1. (setq i 0)
  2.     (repeat 128
  3.         (setq i (1+ i))
  4.         (set (read (strcat "ss" (itoa i))) (ssget "X"))
  5.     )

при помощи следующего кода проверяю колиство наборов в чертеже.

Код - Auto/Visual Lisp [Выбрать]
  1. (setq acada (vlax-get-acad-object)
  2.         doc  (vla-get-activedocument acada)
  3.         sels (vla-get-selectionsets doc)
  4.     )

 Код возвраает 0.
Где ошибка? Что делеся не верно?
Заранее спасибо!
« Последнее редактирование: 28-01-2020, 23:01:55 от Александр Ривилис »

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Selection sets
« Ответ #8 : 28-01-2020, 23:06:05 »
altver,
Не забывайте правило форматирования кода на форуме (у меня в подписи).

А что в этом удивительного? Вообще-то это разные наборы - PICKSET и SelectionSet.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн altverАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 146
  • Карма: 2
Re: Selection sets
« Ответ #9 : 30-01-2020, 08:36:43 »
Спасибо большое!
Вы правы!
Еще вопрос:
а кроме PICKSET и SelectionSet
существуют ли еще другие виды наборов в автокаде?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Selection sets
« Ответ #10 : 30-01-2020, 10:12:42 »
а кроме PICKSET и SelectionSet
существуют ли еще другие виды наборов в автокаде?
Нет.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн altverАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 146
  • Карма: 2
Re: Selection sets
« Ответ #11 : 30-01-2020, 16:12:00 »
Большое спасибо!

Оффлайн altverАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 146
  • Карма: 2
Re: Selection sets
« Ответ #12 : 30-01-2020, 21:29:06 »
Добрый день, Александр.
Ползуемся Вашим лиспом (ответ  на наш  вопрос) чистка наборов. Обнуляем все наборы (setq set nil) и все переменные наборов делаем локальными. Но при обработке сравнительно большого чертежа появляется сообщение "exceeded maximum number of selection sets".
почему не работает очистка?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Selection sets
« Ответ #13 : 30-01-2020, 21:33:46 »
Но при обработке сравнительно большого чертежа появляется сообщение "exceeded maximum number of selection sets".
почему не работает очистка?
Программа никак не зависит от размера чертежа...
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн altverАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 146
  • Карма: 2
Re: Selection sets
« Ответ #14 : 30-01-2020, 21:41:05 »
Да, Вы правы, размер ни причем, однако наборы накапливаются и никакая чистка не помогает...Чистим почти после каждого обнуления наборов...