Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 27, 2012 19:07:09

vkopey
От:
Зарегистрирован: 2010-09-26
Сообщения: 116
Репутация: +  3  -
Профиль   Отправить e-mail  

Соответсвие VBA Nothing в win32com?

Использую модуль win32com для автоматизации SolidWorks. В программе VBA используется значение Nothing.
Что писать вместо него в Питоне?
None, NULL и 0 не катят.

Пример:
Part.Extension.SelectByID2(“Part1-4@Assem1”, “COMPONENT”, 0, 0, 0, False, 0,
None, 0)

Ошибка:
File “<COMObject <unknown>>”, line 2, in SelectByID2
pywintypes.com_error: (-2147352571, ‘\xcd\xe5\xf1\xee\xe2\xef\xe0\xe4\xe5\xed\xe
8\xe5 \xf2\xe8\xef\xee\xe2.’, None, 8)



Отредактировано vkopey (Окт. 30, 2012 23:45:36)

Офлайн

#2 Окт. 30, 2012 23:49:37

vkopey
От:
Зарегистрирован: 2010-09-26
Сообщения: 116
Репутация: +  3  -
Профиль   Отправить e-mail  

Соответсвие VBA Nothing в win32com?

Неужели никто не работал с pywin32 ?



Офлайн

#3 Окт. 31, 2012 06:14:24

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

Соответсвие VBA Nothing в win32com?

Что-то не так с самим АПИ или не те параметры передаете, None должно вроде подойти. Для чего скрипт (какая программа), есть ссылка на документацию?

Так пробовали?

Part.Extension.SelectByID2("Part1-4@Assem1", "COMPONENT")

Офлайн

#4 Ноя. 4, 2012 04:13:41

vkopey
От:
Зарегистрирован: 2010-09-26
Сообщения: 116
Репутация: +  3  -
Профиль   Отправить e-mail  

Соответсвие VBA Nothing в win32com?

Part.Extension.SelectByID2("Part1-4@Assem1", "COMPONENT")
не помогло.

Вот ссылка на документацию:
SelectByID2

Может создать объект типа ICallout
и вставить его вместо None ?
Но как это сделать ?



Офлайн

#5 Ноя. 4, 2012 08:19:23

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

Соответсвие VBA Nothing в win32com?

Да, странно. В примерах на C++, C# - NULL, null.
А comtypes не пробовали?

Еще можно попробовать передавать нулевой указатель с помощью ctypes.

import win32com.client
import ctypes
# не знаю как в win32com получить интерфейсы
# в comtypes было бы так
# comtypes.gen.Solidworks.Interop.sldworks.ICallout
# в win32com может быть так?
ICallout = win32com.client.constants.Interop.sldworks.ICallout
Nothing = ctypes.POINTER(ICallout)()

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version