Тема: Как получить выделенные пользователем примитивы?
Как определить, какие из примитивов выделены пользователем в данный момент?
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → Delphi → Как получить выделенные пользователем примитивы?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Как определить, какие из примитивов выделены пользователем в данный момент?
Document.SelectionSets
гы
я тоже так думал...
это внутренние сеты - их может быть несколько. и на чертеже они никак себя не проявляют.
а мне надо только то что в данный момент выделено пользователем, то есть то что имеет свойство HighLighted = True
и что то вроде того...
> Yagovdik
Document.ActiveSelectionSet или Document.PickfirstSelectionSet
хм...
что же я неправильно делаю?
только что я:
открыл Автокад 2006
нарисовал там 4 линии и 2 окружности
выделил одну окружность и 2 линии
создал приложение на дельфи с одной кнопкой в обработчик ОнКлик которой поместил следущий код:
Acad := GetAcadApplication(True); AcadDoc := Acad.ActiveDocument; ShowMessage(IntToStr(AcadDoc.ActiveSelectionSet.Count));
получил сообщение со значением 0
попробуйте и вы.
попробуйте и вы.
:) Не могу - не пишу на Delphi. Я указал методы объектной модели.
да дельфи тут не придет
попробуйте на VBA или сях
в том то и дело что это объектная модель
и указанные Вами методы относятся видимо к каким то другим действиям.
к сожалению
> Yagovdik
Вот пример из документации на VBA:
Sub Example_ActiveSelectionSet() Dim sset As AcadSelectionSet ' The following example returns current selection set from current drawing Set sset = ThisDrawing.ActiveSelectionSet End Sub
Вот пример на VisualLisp:
(defun C:ACTSEL ( / app doc sel1 sel2) (vl-load-com) (setq app (vlax-get-acad-object)) (setq doc (vla-get-activedocument app)) (setq sel1 (vla-get-ActiveSelectionSet doc)) (setq sel2 (vla-get-PickfirstSelectionSet doc)) (princ (strcat "\nSelected: " (itoa (vla-get-Count sel1)))) (princ (strcat "\nPicked: " (itoa (vla-get-Count sel2)))) (princ) ) ;_endof defun
> Yagovdik
P.S.: Думаю, что тебе нужен метод Document.PickfirstSelectionSet - это именно выделенные примитивы (они могут еще не попасть в ActiveSelectionSet).
хм.. в натуре Document.PickfirstSelectionSet работает....
Гууут...
Спасибо огромное, Вы мне очень помогли - а то мне приходилось по хайтлайту выделение определять.
> Yagovdik
Угу. Учите матчасть... И русский язык :)
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → Delphi → Как получить выделенные пользователем примитивы?
Форум работает на PunBB, при поддержке Informer Technologies, Inc