vkopey
Окт. 27, 2012 19:07:09
Использую модуль 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:49:37
Неужели никто не работал с
pywin32 ?
reclosedev
Окт. 31, 2012 06:14:24
Что-то не так с самим АПИ или не те параметры передаете, None должно вроде подойти. Для чего скрипт (какая программа), есть ссылка на документацию?
Так пробовали?
Part.Extension.SelectByID2("Part1-4@Assem1", "COMPONENT")
vkopey
Ноя. 4, 2012 04:13:41
Part.Extension.SelectByID2("Part1-4@Assem1", "COMPONENT")
не помогло.
Вот ссылка на документацию:
SelectByID2Может создать объект типа
ICalloutи вставить его вместо None ?
Но как это сделать ?
reclosedev
Ноя. 4, 2012 08:19:23
Да, странно. В примерах на 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)()