Тема: Как получить выделенные пользователем примитивы?

Как определить, какие из примитивов выделены пользователем в данный момент?

Re: Как получить выделенные пользователем примитивы?

Document.SelectionSets

Re: Как получить выделенные пользователем примитивы?

гы
я тоже так думал...
это внутренние сеты - их может быть несколько. и на чертеже они никак себя не проявляют.
а мне надо только то что в данный момент выделено пользователем, то есть то что имеет свойство HighLighted = True
и что то вроде того...

Re: Как получить выделенные пользователем примитивы?

> Yagovdik
Document.ActiveSelectionSet или Document.PickfirstSelectionSet

Re: Как получить выделенные пользователем примитивы?

хм...
что же я неправильно делаю?
только что я:
открыл Автокад 2006
нарисовал там 4 линии и 2 окружности
выделил одну окружность и 2 линии
создал приложение на дельфи с одной кнопкой в обработчик ОнКлик которой поместил следущий код:

  Acad := GetAcadApplication(True);
  AcadDoc := Acad.ActiveDocument;
 ShowMessage(IntToStr(AcadDoc.ActiveSelectionSet.Count));

получил сообщение со значением 0
попробуйте и вы.

Re: Как получить выделенные пользователем примитивы?

Yagovdik пишет:

попробуйте и вы.

:) Не могу - не пишу на Delphi. Я указал методы объектной модели.

Re: Как получить выделенные пользователем примитивы?

да дельфи тут не придет
попробуйте на VBA или сях
в том то и дело что это объектная модель
и указанные Вами методы относятся видимо к каким то другим действиям. sad
к сожалению

Re: Как получить выделенные пользователем примитивы?

> 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

Re: Как получить выделенные пользователем примитивы?

> Yagovdik
P.S.: Думаю, что тебе нужен метод Document.PickfirstSelectionSet - это именно выделенные примитивы (они могут еще не попасть в ActiveSelectionSet).

Re: Как получить выделенные пользователем примитивы?

хм.. в натуре Document.PickfirstSelectionSet работает....
Гууут...
Спасибо огромное, Вы мне очень помогли - а то мне приходилось по хайтлайту выделение определять.

Re: Как получить выделенные пользователем примитивы?

> Yagovdik
Угу. Учите матчасть... И русский язык :)