通过Python将Win32Com连接失败到Autocad

Sha*_*sal 1 python com pywin32 autocad win32com

我需要通过Com接口连接和控制Autocad.为此,我使用Python.在我的第一次试用一个非常基本的片段,我得到一个错误.代码是

import win32com.client
acad = win32com.client.Dispatch("AutoCAD.Application")
doc = acad.ActiveDocument
doc.Utility.Prompt("Hello from Python\n")
Run Code Online (Sandbox Code Playgroud)

当我尝试运行它时,我得到了这个:

Traceback (most recent call last):
  File "C:\Users\SBYSMR10\Desktop\recipe-440493-1.py", line 2, in <module>
    acad = win32com.client.Dispatch("AutoCAD.Application")
  File "C:\Python26\lib\site-packages\win32com\client\__init__.py", line 95, in Dispatch
    dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx)
  File "C:\Python26\lib\site-packages\win32com\client\dynamic.py", line 108, in _GetGoodDispatchAndUserName
    return (_GetGoodDispatch(IDispatch, clsctx), userName)
  File "C:\Python26\lib\site-packages\win32com\client\dynamic.py", line 85, in _GetGoodDispatch
    IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch)
com_error: (-2147221005, 'Invalid class string', None, None)
Run Code Online (Sandbox Code Playgroud)

我安装了Python 2.6和Autocad LT 2009.我在网上搜索了一个解决方案,但找不到任何解决办法.那么你能帮我解决这个问题吗?

提前致谢

rec*_*dev 5

AutoCAD LT版本不支持自动化(Autodesk组中的讨论).

如果您能够安装完整的AutoCAD版本,我建议您使用comtypes包.随着win32com您不能添加实体记录,由于AutoCAD需要与变种的TypeCodes VT_ARRAY | VT_I2 or VT_ARRAY | VT_R8的参数,例如InsertionPoint.

请参阅文档中的示例comtypes