Форум сайта python.su
3
Использую модуль 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)
Офлайн
3
Неужели никто не работал с pywin32 ?
Офлайн
173
Что-то не так с самим АПИ или не те параметры передаете, None должно вроде подойти. Для чего скрипт (какая программа), есть ссылка на документацию?
Так пробовали?
Part.Extension.SelectByID2("Part1-4@Assem1", "COMPONENT")
Офлайн
3
Part.Extension.SelectByID2("Part1-4@Assem1", "COMPONENT")
Офлайн
173
Да, странно. В примерах на 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)()
Офлайн