|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
09.02.2021, 12:45 | #1 | |
Как добавить объекты в текущий набор выделенных объектов на чертеже на VBA?
Регистрация: 14.12.2008
Сообщений: 1,079
|
||
Просмотров: 14172
|
|
||||
Регистрация: 14.12.2008
Сообщений: 1,079
|
|
|||
|
||||
Регистрация: 18.12.2010
Сообщений: 5,057
|
|
|||
|
||||
Регистрация: 14.12.2008
Сообщений: 1,079
|
Начертил 5 линий и 3 из них выделил.
Затем запустил функцию: Код:
Почему моя функция выдает отчет что текущий набор объектов состоит из 2 линий? А должен состоять из 5 линий. Заметил такую особенность: выделяю 3 линии и запускаю мою функцию, и функция выделяет в качестве текущих выделенных линий только 2 линии, которые я добавлял в набор текущих выделенных линий при предыдущем запуске функции. Получается АвтоКАД запомнил прошлые 2 линии в качестве текущих, а новые выделенные линии на экране не стал считать текущим набором выделенных линий. Появляется вопрос: после какого действия выделенные объекты попадают в текущий набор выделенных объектов? Попробуйте сами запустить мою программу. АвтоКАД не хочет записывать выделенные объекты в текущий набор выделенных объектов без дополнительного действия. Если функция не запускается, настройте библиотеки для вышей версии АутоКАД (Tools->References) Последний раз редактировалось МишаИнженер, 01.03.2021 в 13:00. Причина: Добавление файла |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
МишаИнженер, от Вашего кода кровь из глаз пошла, все совсем плохо и с кодом и с пониманием базовых механизмов языка.
И хотя, я не совсем понимаю что Вы хотите сделать, но мне кажется, что Вам следует гуглить фразу "autocad vba pickfirstselectionset" ну или посмотреть сайт который Вам ранее уже указывали: http://entercad.ru/acadauto.en/ex_pi...lectionset.htm |
|||
|
||||
Регистрация: 14.12.2008
Сообщений: 1,079
|
У меня все работает. Не понимаю что вас не устраивает. Скачайте файл Excel из сообщения #7 и запустите функцию сами.
Добавил метод "PickfirstSelectionSet" Жалко что этот метод "только для чтения" PickfirstSelectionSet SelectionSet object; read only В итоге функция не выполняет требуемых действий: не добавляет выделенные объекты к текущему набору выделенных объектов К настроить работу функции, чтобы она выполняла свою задачу? (Запустите функцию из файла Excel из прикрепленного файла) Последний раз редактировалось МишаИнженер, 01.03.2021 в 13:17. |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
Господь с Вами, меня все устраивает, мне с этим не работать, хвала Дионису, я так мимо пробегая посмотрел, этого хватило.
Может стоит создать свой набор, куда добавлять выбранные заранее объекты? |
|||
|
||||
Регистрация: 14.12.2008
Сообщений: 1,079
|
Вроде так и делаю. Однако в этот набор добавляются объекты выделенные при работе функции. А объекты выделенные до работы функции почему-то не выделяются после завершения работы функции.
Почему так происходит? Модернизировал функцию. Теперь выделенные "до" и "вовремя" объекты просто выделяются (подсвечиваются) на экране как буд-то выбранные. Однако многие программисты на VBA знают что "подсвеченный" и "выбранный" объекты это совсем разные вещи. "Подсвеченные" объекты это просто мистика и мишура, их нельзя дальше использовать ни в каких действиях. В этом можно убедиться если попробовать запустить функцию "Создать блок" и попытаться выбрать объекты из чертежа с ключом "т" ("текущий" набор объектов) При этом выделятся последние выбранные объекты полученные при работе функции. А выбранные объекты до работы функции забываются и не выделяются. Как сделать чтобы выбранные объекты до работы функции попали в текущий набор выделенных объектов? Где хранится текущий набор выделенных объектов? В каком словаре? Последний раз редактировалось МишаИнженер, 01.03.2021 в 13:40. |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
МишаИнженер, Вас в гугле забанили? Первые же ссылки по фразе Autocad VBA add to PickfirstSelectionSet
Приводят на форум, где это решено: https://forums.augi.com/showthread.p...-active-in-GUI |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
|
|||
|
||||
Регистрация: 14.12.2008
Сообщений: 1,079
|
Часто приходится выделять множество объектов очень труднодоступных и в большом количестве. Поэтому нужен инструмент позволяющий выделять объекты с помощью фильтров по слою, по цвету и весу линий. Спасибо Вохе за интересную ссылку. Там есть очень интересные решения!
|
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
|
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Непонятно как добавить в макрос выбор всех объектов | NemoSUN | Программирование | 10 | 29.09.2020 10:28 |
Скрипт для получения Oject ID объекта и поиска объектов по Object ID на чертеже | modest-bp | AutoCAD | 2 | 19.04.2020 14:39 |
Количество объектов на чертеже | Protreck | AutoCAD | 15 | 03.07.2019 13:02 |
Какой командой можно взорвать все прокси объекты на чертеже | akot404 | AutoCAD | 1 | 25.06.2016 10:20 |
Autolisp. Как добавить в набор динамические блоки с определенными именем? | vladimirr_b | LISP | 10 | 23.02.2016 13:53 |