• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Получить все выделенные объекты (API5)

Автор koprus77, 21.02.16, 21:08:21

« назад - далее »

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

koprus77

Мне нужно получить список выделенных объектов. Для 3d документа я получаю интерфейс ksSelectionMng от моего ksDocument3d. Но у ksDocument2d нет такого интерфейса, есть только ksSelectionMngNotify, но его возможности не позволяют получить ни количество, ни список выделенных объектов.  Какой подход стоит применить для 2d документов?

Используйте API7.
ISelectionManager - интерфейс менеджера выделенных объектов.

koprus77

Где можно почитать, про API7? А то я с API5 более-менее разобрался, а в API7 чет все по другому.

Лично я, книг по API7 не видел, т.ч. остаётся SDK и форум.

chelkar

Цитата: koprus77 от 21.02.16, 21:08:21
Но у ksDocument2d нет такого интерфейса, есть только ksSelectionMngNotify, но его возможности не позволяют получить ни количество, ни список выделенных объектов.  Какой подход стоит применить для 2d документов?
Есть два варианта.
1. Изучить работу ksIterator и с его помощью ходить по группе селектированных объектов.
2. Попробовать через  IKompasDocument2D1::SelectionManager, но не уверен что его хватит для работы.

Slaviation

Фрагмент кода на Python:

iIterator = iKompasObject.GetIterator
iIterator.ksCreateIterator( 127, 0 ) # SELECT_GROUP_OBJ
obj = iIterator.ksMoveIterator( "F" )
if obj <> 0:
    #что-нибудь делай с найденным объектом
    pass
    while obj <> 0:
        obj = iIterator.ksMoveIterator( "N" )
        if obj <> 0:
            #что-нибудь делай с найденным объектом
            pass
else:
    iKompasObject.ksMessage("No selected items")
iIterator.ksDeleteIterator()
+ Благодарностей: 2