1 背景

import pythoncom
import win32com.client
import math wincad = win32com.client.Dispatch("AutoCAD.Application") #强制打开cad,该句发生报错信息
doc = wincad.ActiveDocument
doc.Utility.Prompt("Hello! Autocad from pywin32com.\n")
msp = doc.ModelSpace
print(doc.Name)

报错信息如下:

IDispatch = pythoncom.CoCreateInstance(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
pywintypes.com_error: (-2147221005, '无效的类字符串', None, None)

2 解决核心思路

应该是cad版本太多造成的,导致python调用cad的时候无法找到具体的cad版本,一般是【wincad = win32com.client.Dispatch("AutoCAD.Application") 】这个语句造成的,原因是电脑上装了多cad版本造成的。查询版本如下方法:

win+r输入regedit进入注册表,查看HKEY_CLASSES_ROOT中的AutoCAD.Application版本号,如下图所示。

【方法1】源代码不变,卸载删除电脑上其他版本cad,只保留一个,这个方法具有风险,因为注册表可能删除不干净。

【方法2】源代码修改如下,指定版本即可。

 

import pythoncom
import win32com.client
import math wincad = win32com.client.Dispatch("AutoCAD.Application.17") #指定版本cad2008
doc = wincad.ActiveDocument
doc.Utility.Prompt("Hello! Autocad from pywin32com.\n")
msp = doc.ModelSpace
print(doc.Name)

不同版本代号如下链接所示:https://www.cnblogs.com/issacnew/p/17904032.html

3 参考链接:

https://blog.csdn.net/qq_29766669/article/details/127455156 (决python调用cad报错OSError: [WinError -2147221005] 无效的类字符串的问题)

解决方案 | pywintypes.com_error: (-2147221005, '无效的类字符串', None, None) --Python连接CAD报错真正解决思路!的更多相关文章

  1. Base64 报错 的解决办法 (Base-64 字符数组或字符串的长度无效。, 输入的不是有效的 Base-64 字符串,因为它包含非 Base-64 字符、两个以上的填充字符,或者填充字符间包含非法字符。)

    Base64 报错 的解决办法, 报错如下:1. FormatException: The input is not a valid Base-64 string as it contains a n ...

  2. 【spring boot】spring boot 前台GET请求,传递时间类型的字符串,后台无法解析,报错:Failed to convert from type [java.lang.String] to type [java.util.Date]

    spring boot 前台GET请求,传递时间类型的字符串,后台无法解析,报错:Failed to convert from type [java.lang.String] to type [jav ...

  3. Qt类声明中Q_OBJECT的作用与报错解决

    2017-06-22 周四 大雨 北京 院里 新建作图类,继承自QCUstomPlot类 因为需要同时作8张图,都要单坐标缩放的功能,因此想干脆新建一个类,继承自QCUstomPlot,把需要的功能都 ...

  4. subprocess.Popen 运行windows命令出现“句柄无效”报错的解决方法

    在框架开发中遇到 subprocess执行多了,就会好句柄无效的问题,终于找到解决方案:如下,修改subprocess中的一点代码就好,也不知道这是不是Python 的bug因为,Python27时没 ...

  5. Visual Studio 下C#编译器在解析属性名时如果增加一个get_[您的另一个已经包含在类中属性名]的属性会报错,微软大哥这是什么鬼?

    假设在在我们的vs环境新建一个类 copy以下代码,表面看好像一切都没有问题. using System; using System.Collections.Generic; using System ...

  6. Django | 模型类变更后生成迁移文件,报错:You are trying to add a non-nullable field 'BookName' to BookInfo without a default....

    报错: You are trying to add a non-nullable field 'BookName' to BookInfo without a default; we can't do ...

  7. sun.misc.BASE64Encoder等类报错的解决方法

    一.引言: sun.misc.BASE64Encoder等类不属于JDK标准库范畴,但在JDK中包含了该类,可以直接使用.但是在eclipse中直接使用却报错.本文就介绍一下针对这样的类如何处理. 二 ...

  8. JSON.parse 解析json字符串时,遇换行符报错

    Json字符串转换成Json对象时候,有两种方式: 假设d是json字符串: 1,eval('(' + d + ')'). 2,JSON.parse(d): 但是以上方式有隐患,如果Json字符串有换 ...

  9. 类中调用界面ActiveX控件报错当前线程不在单线程单元中因此无法实例化 ActiveX 控件的解决办法

    解决办法是Form类中定义一个静态的ActiveX对象,在formload中将界面上的ActiveX对象赋值给新定义的对象,类中访问该静态对象即可. public static AxClientDri ...

  10. VS2019 字符串对指针char*赋值编译器报错原因及解决方法

    2019-05-26   21:55:08 前几天在敲代码时,将字符串“Hellow world!”赋值给指针char*类型指针时编译器报错的问题 网上搜索后发现 char*是历史遗留问题,如果程序修 ...

随机推荐

  1. 计算机组成原理—中央处理器CPU

    文章目录 CPU的功能与架构 CPU的组成 运算器 控制器 指令执行过程 指令流程 指令执行方案 数据通路 单总线结构 专用通路结构 硬布线控制器设计 硬布线执行流程 硬布线CU内部 怎么设计微操作的 ...

  2. OpenNESS & OpenVINO Demo 部署

    目录 文章目录 目录 部署架构 部署 Edge Controller 基础配置 配置 Proxy 配置防火墙 Install necessary package Install MySQL Insta ...

  3. kafka集群(zookeeper)

    部署环境准备 kafka集群部署 ip地址 主机名 安装软件 10.0.0.131 mcwkafka01 zookeeper.kafka 10.0.0.132 mcwkafka02 zookeeper ...

  4. 安卓开发封装处理Retrofit协程请求中的异常

    上篇文章讲解了怎么使用Kotlin的协程配合Retrofit发起网络请求,使用也是非常方便,但是在处理请求异常还不是很人性化.这篇文章,我们将处理异常的代码进行封装,以便对异常情况返回给页面,提供更加 ...

  5. 实用!!!!springBoot加入微信扫码支付功能,有一说一还是挺有意思的

    基于springboot微服务加入微信支付的功能 在线微信支付开发文档: https://pay.weixin.qq.com/wiki/doc/api/index.html native扫码支付方式: ...

  6. js实现 StringBuilder

    function StringBuilder() { this._stringArray = new Array(); } StringBuilder.prototype.append = funct ...

  7. CF527E Data Center Drama 题解

    目录 题目 题意 题解 思路 详解 注意事项 代码 AC 记录 尾声 题目 CF527E Data Center Drama · 戳这里 题意 给定一张 $n$ 个点 $m$ 条边的连通无向图. 你需 ...

  8. django多表关联实战

    定义模型类: from django.db import models from django.contrib.auth.models import User ''' ---------- Djang ...

  9. Native如何使用Tunnel Mode

    mAudioSessionId = AudioSystem::newAudioUniqueId(AUDIO_UNIQUE_ID_USE_SESSION); mHwSync = AudioSystem: ...

  10. 算法金 | 再见,支持向量机 SVM!

    大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 今日 170+/10000 一.SVM概述 定义与基本概念 支持向量机(SVM)是一种 ...