|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
25.12.2017, 14:24 | #1 | |
СПДС 10 VBA. Как выделить/подсветить набор объектов СПДС, входящих в коллекцию?
Инженер
С-Пб
Регистрация: 02.10.2008
Сообщений: 3,686
|
||
Просмотров: 6467
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,846
|
Попробуй создать временный набор, в который перекинешь все объекты из коллекции.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер Регистрация: 02.10.2008
С-Пб
Сообщений: 3,686
|
То есть поштучно проходить набор spds_col_tmp, каждый член коего впихивать в переменную as object, а ее уже добавлять в коллекцию AcadSelectionSet? Я так и думал, в принципе, просто надеялся, что есть способ "одним махом - семерых сотен побивахом".. Объектов обрабатываемых предпологается много, хотелось бы обрабатывать их побыстрее..
__________________
...Не пытайся гнуть ты ложку, Не вяжи её узлом. Ложка - ложка понарошку, А по правде, - это лом! |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,846
|
А коллекция случаем в лиспе не как вариант получается? Может, так сработает?
Код:
Код:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. Последний раз редактировалось Кулик Алексей aka kpblc, 25.12.2017 в 16:09. |
|||
|
||||
Инженер Регистрация: 02.10.2008
С-Пб
Сообщений: 3,686
|
Я, честно говоря, на лиспе говорю еще хуже, чем Мутко на аглицком, да и понимаю в нем мало.. скобки только.. ну, что их должно быть одинаково "(" и ")"! Чего этот код делает?
__________________
...Не пытайся гнуть ты ложку, Не вяжи её узлом. Ложка - ложка понарошку, А по правде, - это лом! |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,846
|
Теоретически то же самое, что и раньше. Просто можно передавать любое имя своего набора или напрямую указатель на созданную коллекцию. В самом начале работы загружаешь лисповой код:
Код:
Код:
P.S. Попробовал передавать в лисп напрямую значения переменных из VBA (не поленился, поставил VBA Enabler) - мимо. Так что код исправляю.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер Регистрация: 02.10.2008
С-Пб
Сообщений: 3,686
|
Цитата:
__________________
...Не пытайся гнуть ты ложку, Не вяжи её узлом. Ложка - ложка понарошку, А по правде, - это лом! |
|||
|
||||
Цитата:
соедствами МсСом можно то же подсветить, но подозреваю тебе не это надо
__________________
Мастерская СПДС |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,846
|
Наверное, то, что через VBA невозможно подсветить примитив, указав его grips'ы. В лучшем случае - Highlight.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер Регистрация: 02.10.2008
С-Пб
Сообщений: 3,686
|
Цитата:
Код:
..попытка переписать объекты в AcadSelectionSet не удалась.. Если массив Ssobjs объявлять ака AcadEntity, то ругаемси на несовпадение типов в "Set Ssobjs(I) = spds_col_tmp.Item(I)", если As Object или Variant, - то в "objSelSet.ddItems Ssobjs" "объект не поддерживает данное свойство али метод".. Код:
понимание пришло.. Но, конечно, жаль, что нельзя использовать Query и Select от SPDS.. там было бы проще организовать выделение объектов с нужными свойствами..
__________________
...Не пытайся гнуть ты ложку, Не вяжи её узлом. Ложка - ложка понарошку, А по правде, - это лом! Последний раз редактировалось AlexV, 25.12.2017 в 18:20. |
|||
|
||||
не жаль у AcadSelectionSet возможностей больше
в плане выборки объектов по фильтрам... Query ищет только по листу или модели а AcadSelectionSet может по всему документу.... недостаток всего один из него недоступны свойства спдс... но в этом случае они и не нужны
__________________
Мастерская СПДС |
||||
|
||||
Инженер Регистрация: 02.10.2008
С-Пб
Сообщений: 3,686
|
Цитата:
Код:
Я опасался, что будет тормозить по-сравнению с Query, - ан нет, работает с той же скоростью, пара секунд на обработку порядка 3000 объектов. Прояснить бы еще пару моментов.. Не совсем пока понятно, как работает фильтр, и как зависит его работа от расположения имен и значений свойств в массивах varData, intType. Со строковыми значениями - все окей, - все нужные значения задаешь через запятую.. А вот числовые, вроде диаметра - непонятно - можно ли задать несколько вариантов значений, либо диапазон.. Потом, логику работы фильтра недовкурил - то он взаимоисключает объекты (то бишь, если задана "форма П" и "диаметр 16", то он ищет строго п-шки 16 диаметра. Если же задать несколько вариантов значений формы (sForm_St) - то в выборку попадают объекты с разным значением диаметра, хотя задано так же D=16. А еще - хотелось фильтрацию осуществлять по критериям, заданным пользователем - соответственно, с разным количеством их в запросе. И не понятно пока - на каждый случай писать отдельную функцию с нужным количеством значений в массивах intType(..) As Integer, varData(..) As Variant? Динамическими их жеж вроде нельзя объявить..
__________________
...Не пытайся гнуть ты ложку, Не вяжи её узлом. Ложка - ложка понарошку, А по правде, - это лом! Последний раз редактировалось AlexV, 26.12.2017 в 11:23. |
|||
|
||||
Цитата:
Код:
(entGET(CAR(entSEL))) (не спрашивай меня, что это такое, сам не знаю)))) ввести это в ком строку АК и кликнуть по интересующему объекту, АК вывалит в консоль Код:
дальше надеюсь понятно. Что интересно, этот код будет работать даже без спдса, достаточно загруженного mcsEnabler.dbx СПДС энаблера ----- добавлено через ~8 мин. ----- имелось в виду, что из vb через объектную модель АК, ты не сможешь прочитать внутреннее свойство объекта СПДС или его изменить. только через МсСОМ а вот лисп может, но я его не умею(((
__________________
Мастерская СПДС |
||||
|
||||
Инженер Регистрация: 02.10.2008
С-Пб
Сообщений: 3,686
|
Цитата:
__________________
...Не пытайся гнуть ты ложку, Не вяжи её узлом. Ложка - ложка понарошку, А по правде, - это лом! |
|||
|
||||
Цитата:
Код:
__________________
Мастерская СПДС |
||||
|
||||
Инженер Регистрация: 02.10.2008
С-Пб
Сообщений: 3,686
|
Цитата:
А вот создание спецификаций и "массовое изменение свойств" придется через МсСОМ делать..
__________________
...Не пытайся гнуть ты ложку, Не вяжи её узлом. Ложка - ложка понарошку, А по правде, - это лом! |
|||
|
||||
похоже, что нет
------------- Цитата:
Код:
Теперь у меня вопрос))) Собрал я по фильтру селсетом объекты (пусть это будут отрезки) по всему документу (с модели и листов) и вот например, надо мне посчитать суммарные длины отрезков на каждом листе и в модели по отдельности. Есть "гуманный" способ определения принадлежности объекта пространству модели или листа? На бэйсике
__________________
Мастерская СПДС Последний раз редактировалось doctorraz, 27.12.2017 в 16:38. |
||||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ACAD+СПДС Железобетон (nanoCAD СПДС Железобетон) | swell{d} | Прочее. Программное обеспечение | 104 | 04.12.2015 09:30 |
СПДС GraphiCS. Глюки с отметками уровней при растяжении объектов. | VAV | ПО от CSoft | 4 | 16.10.2014 11:35 |
AutoCAD 2012 + СПДС 7.0.938 - пропадает панель масштаба СПДС | prog_mike | Прочее. Программное обеспечение | 8 | 18.11.2011 13:27 |
Civil 3D и СПДС GraphiCS: правильное отображение отметок уровня (да и, в-общем, всех объектов) | qwer | Вертикальные решения на базе AutoCAD | 2 | 07.11.2011 22:00 |
СПДС 7.0 не подгружается под автокад 2011 | solovey_9lo | Вертикальные решения на базе AutoCAD | 3 | 18.05.2011 06:29 |