AutoCAD LT 2024连接失败求助:Python代码调用报错问题排查
Python连接AutoCAD LT 2024时出现“类未注册”错误
我在使用Python脚本连接或启动AutoCAD LT 2024时遇到了问题,以下是相关代码片段:
try: app = comtypes.client.GetActiveObject("AutoCAD.Application") logging.info('AutoCAD Already Open..!!!') except: app = comtypes.client.CreateObject("AutoCAD.Application") logging.info('AutoCAD Opening..!!!')
运行后出现如下错误:
pywintypes.com_error: (-2147221164, 'Class not registered', None, None)
我怀疑问题出在AutoCAD类的注册环节,希望能获得各位的见解、建议或代码修改方案。目前正在测试comtypes.client和pywin32库。
解决建议
1. 使用AutoCAD LT专属的COM ProgID
AutoCAD LT的COM对象标识符和标准版AutoCAD不同,2024版本对应的ProgID是AutoCADLT.Application.24,修改代码如下:
import comtypes.client import logging logging.basicConfig(level=logging.INFO) try: app = comtypes.client.GetActiveObject("AutoCADLT.Application.24") logging.info('AutoCAD LT Already Open..!!!') except: try: app = comtypes.client.CreateObject("AutoCADLT.Application.24") logging.info('AutoCAD LT Opening..!!!') except Exception as e: logging.error(f"启动AutoCAD LT失败: {e}")
2. 重新注册AutoCAD LT的COM组件
若ProgID正确仍报错,手动注册COM组件:
- 以管理员身份打开命令提示符
- 切换到AutoCAD LT 2024安装目录(通常为
C:\Program Files\Autodesk\AutoCAD LT 2024) - 执行命令:
regsvr32 acadlt.tlb
3. 确保Python与AutoCAD LT位数匹配
Python的32/64位版本必须和AutoCAD LT 2024完全一致,位数不匹配会导致COM对象无法被识别。可通过python --version查看Python位数,AutoCAD LT位数在「帮助→关于」中查看。
4. 换用pywin32库尝试
如果comtypes仍有问题,改用pywin32测试:
import win32com.client import logging logging.basicConfig(level=logging.INFO) try: app = win32com.client.GetActiveObject("AutoCADLT.Application.24") logging.info('AutoCAD LT Already Open..!!!') except: try: app = win32com.client.Dispatch("AutoCADLT.Application.24") logging.info('AutoCAD LT Opening..!!!') except Exception as e: logging.error(f"启动AutoCAD LT失败: {e}")
内容的提问来源于stack exchange,提问作者akash gohil
相关产品推荐
相关产品推荐

