Найти - Пользователи
Полная версия: Соответсвие VBA Nothing в win32com?
Начало » Python для новичков » Соответсвие VBA Nothing в win32com?
1
vkopey
Использую модуль 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
Неужели никто не работал с pywin32 ?
reclosedev
Что-то не так с самим АПИ или не те параметры передаете, None должно вроде подойти. Для чего скрипт (какая программа), есть ссылка на документацию?

Так пробовали?
Part.Extension.SelectByID2("Part1-4@Assem1", "COMPONENT")
vkopey
Part.Extension.SelectByID2("Part1-4@Assem1", "COMPONENT")
не помогло.

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

Может создать объект типа ICallout
и вставить его вместо None ?
Но как это сделать ?
reclosedev
Да, странно. В примерах на 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)()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB