Сообщество программистов Autodesk в СНГ

ADN Club => Inventor API => Тема начата: JaJaBanx от 05-01-2017, 18:05:07

Название: IPictureDisp python
Отправлено: JaJaBanx от 05-01-2017, 18:05:07
Добрый день, пишу надстройку для Inventor на python 2.7, столкнулся с проблемой при добавлении кнопки. Не знаю как получить картинку с типом IPictureDisp. Может кто то сталкивался с такой проблемой и знает решение?

P.S.
Для реализации COM сервера использую библиотеку pywin32.
Вот есть рабочий образец, с обработчиками событий, но без кнопок((
https://github.com/S-Rx/PythonInventorAddIn
Название: Re: IPictureDisp python
Отправлено: mikazakov от 05-01-2017, 20:34:37
Не знаю как получить картинку с типом IPictureDisp.
IPictureDisp-это коварный объект, его проблема в том , что если пытаться его пропихивать из процесса в процесс, то он будет генерить ошибку. Видимо микрософт забыла сделать для него "заглушки" и пр. Хотя IPictureDisp это просто обертка для С++ интерфейса IDisp. Я не знаю как работает питон, но даже в вижуал студио, чтобы не ловить ошибок нужно отлаживать в одном процессе с инвентором. Если экзешник внешний относительно инвентора, то увы картинку в ивде IPictureDisp не пропихнет в инвентор.

Я когда то писал мануал для вижуал студио, можете почитать тут:
http://mihakazakov.wixsite.com/inventor-api/publications
Название: Re: IPictureDisp python
Отправлено: JaJaBanx от 06-01-2017, 13:10:21
Спасибо за ответ, и спасибо за мануалы на русском)) я их себе уже сохранил. Надстройка работает в одном процессе с инвентором и в передаче переменной этого типа проблем возникнуть не должно, проблема в создании переменной этого типа. Интернеты на эту тему молчат.
Название: Re: IPictureDisp python
Отправлено: mikazakov от 09-01-2017, 10:21:56
проблема в создании переменной этого типа.
если можно юзать WiAPI32, то функция для получения IDispathc:

OleCreatePictureIndirect

Во втором мануале в разделе с++ этот пример разобран, где считывается png с прозрачностью и конвертируется в IDispatch. Ну можно конечно MSDN почитать на тему этой функции.
Честно скажу на кой фиг этот питон нужен, есть же нормальные компилируемые языки программирования. А эти все интрепритаторы типа VBA, питона и пр. только тормазов и непоняток добавляют