Excepción: matriz de objetos no válida con comtypes

Intento implementar una operación de copia simple entre dos documentos de Autocad a través de COM en Python.

from pyautocad import Autocad, APoint
from comtypes.client import GetBestInterface
# Get acad application
acad = Autocad(create_if_not_exists=True)
# Create a new document
doc1 = GetBestInterface(acad.Application.Documents.Add())
# add a circle in this document and make it visible
circle = GetBestInterface(doc1.ModelSpace.AddCircle(APoint(0.0, 0.0), 1.0))
doc1.Application.ZoomExtents()
# create another document
doc2 = GetBestInterface(acad.Application.Documents.Add())
# and copy the circle to the new document
doc1.CopyObjects([circle], doc2.ModelSpace)

Esto arroja:

Traceback (most recent call last):
  File "copy_bug.py", line 13, in <module>
    doc1.CopyObjects([circle], doc2.ModelSpace)
  File "Anaconda2\lib\site-packages\comtypes\__init__.py", line 655, in call_with_inout
    rescode = func(self_, *args, **kw)
_ctypes.COMError: (-2145320837, None, (u'Invalid object array', u'AutoCAD.Application', u'C:\\Program Files\\Autodesk\\AutoCAD 2015\\HELP\\OLE_ERR.CHM', -2145320837, None))

Lo mismo se puede lograr en VBA con:

Dim doc1 As AcadDocument
Set doc1 = ThisDrawing.Application.Documents.add
Dim pt(0 To 2) As Double
pt(0) = 0#: pt(1) = 0#: pt(2) = 0#
Dim circ As AcadCircle
Set circ = doc1.ModelSpace.AddCircle(pt, 1)

ThisDrawing.Application.ZoomExtents

Dim doc2 As AcadDocument
Set doc2 = ThisDrawing.Application.Documents.add

Dim arry(0 To 0) As AcadEntity
Set arry(0) = circ
doc1.CopyObjects arry, doc2.ModelSpace

Traté de matrices numpy, intenté lanzar a laIDispatch interfaz, elIAcadEntity interfaz yIAcadObject sin éxito (probablemente un intento tonto).

circle = circle.QueryInterface(IAcadEntity)

También traté de mirar adentrosite-packages\comtypes\automation.py Pero eso está por encima de mi salario. Establecer elself.vt aVT_ARRAY | VT_DISPATCH en_set_value no sirve de nada pero sospecho que el problema está en esa línea porque, si cambiamosDim arry(0 To 0) As AcadEntity aDim arry(0 To 0) As Variant el ejemplo de VBA también arrojaráInvalid object array.

Debo mencionar que no comenté dos líneas ensite-packages\comtypes\automation.py:

# These are not yet implemented:
POINTER(IUnknown): VT_UNKNOWN,
POINTER(IDispatch): VT_DISPATCH,

Entonces ... ¿ayuda?

Respuestas a la pregunta(1)

Su respuesta a la pregunta