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

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

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

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

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

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

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

Повторить команду "Выделить/По стилю кривой"

Автор ТрындецЪ, 12.09.18, 11:53:02

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

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

ТрындецЪ

Как повторить программно команду "Выделить/По стилю кривой"?
Нужно выделить или собрать в группу все геометрические объекты в 2D, имеющие одинаковый стиль кривой.
Может есть какой-то специальный итератор для этого?
Из доступных моим познаниям способов, есть только способ перебора всех объектов  (Objects = iDrawingContainer.Objects( 0 )) с опросом у каждого его стиля кривой. Но выполнение этого алгоритма занимает много времени.


ТрындецЪ

Спасибо!
А если у меня это всё в скрытом режиме будет происходить, как мне стиль линии команде подсунуть?

Да наверно никак.
В скрытом режиме перебор должен летать.

ТрындецЪ

#4
Цитата: Sabahs от 12.09.18, 12:36:05
В скрытом режиме перебор должен летать.
Ну, это не про Python  :-)))

Upd: в скрытом режиме iApplication.ExecuteKompasCommand(35718, True) возвращает True. Видимо, вызов команды срабатывает. Может, всё-таки можно стиль линии как-то подсунуть?

333

Создаешь итератор по объектам вида
и у кривых спрашиваешь ksGetObjectStyle
+ Благодарностей: 1

Вират Лакх

Для видимого режима, чтобы после вызова диалогового окна ksCMSelectByCurveStyle выбрать основную линию и продолжить работу, нужно программно нажать Enter.
А перед этим убедиться, что окно компаса активно.

from win32gui import SetForegroundWindow
from win32com.client import Dispatch
...
SetForegroundWindow(KompasObject.ksGetHWindow())
KompasObject.ksExecuteKompasCommand(35718, True)
Dispatch("WScript.Shell").SendKeys('{ENTER}')