Добрый день!
Прошу подсказать. Например, мне нужно изменить порядок отрисовки объектов а чертеже. Я попробовал следующий код:
-   
- 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. В общем не получается.