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

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

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

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

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

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

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

ksTransferInterface не возвращает объект

Автор Неоненко, 19.02.15, 09:23:18

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

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

Неоненко

ЦитироватьПредлагаю так же получить интерфейс KompasObject (интерфейс API5 КОМПАС) и использовать KompasObject::ТransferInterface.
такой вариант обсуждался выше в теме, не работает

ЦитироватьТест на Python в прицепе. Работает не из под КОМПАС. Запускать на активной детали или сборке.
Насколько я понимаю, у Вас компас запускается пользователем, при запуске компас инициализирует себя должным образом и Вы подключаетесь к уже запущенному процессу.
Если же создавать экземпляр компас в своем приложении TransferInterface не работает.

Slaviation

ЦитироватьНасколько я понимаю, у Вас компас запускается пользователем, при запуске компас инициализирует себя должным образом и Вы подключаетесь к уже запущенному процессу.
Если же создавать экземпляр компас в своем приложении TransferInterface не работает.

Необязательно. Проверил скрипт без запущенного КОМПАС. Компас запускается скриптом. Добавил только строчку api5.LoadDSK() (ниже) чтобы загрузился активный документ. КОМПАС остается невидимым, TransferInterface работает.


module5, api5, const5 = get_kompas_api5()
module7, api7, const7 = get_kompas_api7()
app = api7.Application
api5.LoadDSK()

doc = app.ActiveDocument
doc3D = module7.IKompasDocument3D(doc._oleobj_.QueryInterface(module7.IKompasDocument3D.CLSID, pythoncom.IID_IDispatch))
part7 = doc3D.TopPart

part5 = api5.TransferInterface(part7, const5.ksAPI5Auto, 0)
if part5 != None:
    print part5.name.encode('cp1251')
+ Благодарностей: 1

Неоненко

Спасибо огромное!!! нашла рабочий вариант!!! позже напишу, в чем была моя проблема

не могу сказать, что приведенный код мне помог. Помогла уверенность, что это должно работать