使用Atocad ActiveX的import
method我遇到了一个大问题,该文档说它的签名是:
RetVal = (Document)object.Import((String)FileName, (Variant (three-element array of doubles))InsertionPoint, (Double)ScaleFactor)
我使用以下代码段:
import array
import comtypes.client
acad = comtypes.client.GetActiveObject("AutoCAD.Application")
doc = acad.ActiveDocument
ms = doc.ModelSpace
doc.Import("C:/path/to/the/drawing.dwg", array.array('d', [0, 0, 0]), 1.0)
但是我收到以下错误:
Traceback (most recent call last):
File ".\script.py", line 30, in <module>
doc.Import("C:/path/to/the/drawing.dwg", array.array('d', [0, 0, 0]), 1.0
)
_ctypes.COMError: (-2147024809, 'The parameter is incorrect.', (u'Invalid argument', u'AutoCAD', u'C:\\Program Files\\Au
todesk\\AutoCAD 2015\\HELP\\OLE_ERR.CHM', -2145320901, None))
问题是:哪个参数不正确?!!通常我总是将坐标传递给autocad方法,就像我在第二个参数中所做的那样,它始终有效,你能帮助我吗?
编辑我试图传递[0.0, 0.0, 0.0]
同样的错误
答案 0 :(得分:1)
不确定您是否曾想过它,但只要AutoCAD中有待处理命令,您就会得到COMError。 COMError是因为您的脚本和程序本身都在尝试访问同一个接口。您需要在AutoCAD中手动点击两次转义,它不应该给您错误。如果你找到一种方法让python代码使用COM接口来为你逃生,请告诉我。