簡體   English   中英

Win32Com 通過 Python 連接到 Autocad 失敗

[英]Win32Com connection failure to Autocad via Python

我需要通過 COM 接口連接和控制 AutoCAD。 為此,我使用 Python。 在我對一個非常基本的代碼段(1) 的第一次試驗中,我遇到了一個錯誤。 代碼是:

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

當我嘗試運行它時,我得到了這個:

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)

我安裝了 Python 2.6 和 AutoCAD LT 2009。 我在網上搜索了解決方案,但找不到任何解決方案。 那么你能幫我解決這個問題嗎?


(1)代碼取自@Tom Haws 的博客

AutoCAD LT版本不支持自動化( Autodesk 組中的討論)。

如果您能夠安裝完整的 AutoCAD 版本,我建議您使用comtypes包。 使用win32com您無法向文檔添加實體,因為 AutoCAD 需要類型代碼為VT_ARRAY | VT_I2 or VT_ARRAY | VT_R8 VT_ARRAY | VT_I2 or VT_ARRAY | VT_R8 VT_ARRAY | VT_I2 or VT_ARRAY | VT_R8用於參數,例如InsertionPoint

請參閱comtypes文檔中的示例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM