Добрый день!
Прошу подсказать. Например, мне нужно изменить порядок отрисовки объектов а чертеже. Я попробовал следующий код:
acad = Dispatch('autocad.application.23')
doc = acad.ActiveDocument
ent, _ = doc.Utility.GetEntity()
order_dict = doc.ModelSpace.GetExtensionDictionary()
st = order_dict.GetObject("ACAD_SORTENTS")
arr = VARIANT(VT_ARRAY | VT_VARIANT, [ent])
st.MoveToTop(arr)
Но в результате получаю такое сообщение:
com_error Traceback (most recent call last)
<ipython-input-365-c2e46e7e77cf> in <module>
9 arr = VARIANT(VT_ARRAY | VT_VARIANT, [ent])
10
---> 11 st.MoveToTop(arr)
d:\Prorams\Anaconda\lib\site-packages\win32com\client\dynamic.py in MoveToTop(self, Objects)
com_error: (-2147352567, 'Ошибка.', (0, 'AutoCAD.Application', 'Неверный массив объектов', 'D:\\Program Files\\Autodesk\\AutoCAD 2020\\HELP\\OLE_ERR.CHM', -2145320837, -2145320837), None)
Мне понятно, что проблема здесь в упаковке параметров функции. Но вот уже все известные мне варианты перепробовал, результат тот же самый.
Может быть найдется у кого работающий кусок кода, чтобы понять как правильно передать параметры?
Пробовал и объекты в вариант упаковывать и получить через SelectionSets. В общем не получается.