首页 > 编程语言 >解决方案 | pywintypes.com_error: (-2147221005, '无效的类字符串', None, None) --Python连接CAD报错真正解决思路!

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

时间:2023-12-15 19:35:02浏览次数:47  
标签:None -- doc 报错 版本 import cad

 

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] 无效的类字符串的问题)

标签:None,--,doc,报错,版本,import,cad
From: https://www.cnblogs.com/issacnew/p/17904062.html

相关文章

  • [Vue] props属性
    vue2里组件的一个属性,用来传递组件外部发来的数据传递数据<Studentname="Bob"age=22/>接收数据--3种方法//1.receivingdataonly//组件里的props属性,和data/method同级props:['name','age']//2.datatypelimitedprops:{ name:String, age:Number}/......
  • 每日总结20231215
    代码时间(包括上课)5h代码量(行):100行博客数量(篇):1篇相关事项:1、今天是周五,今天上午的时候必然是多睡懒觉了呀,然后起床之后收拾完去借了一副手套,因为要去扫雪。2、今天中午的时候吃完饭就去扫雪了,那个雪看上去很好扫,结果都是冰,还挺费力的,也可能是好长时间没有锻炼了。3、今天晚......
  • SpringBoot使用Async注解实现异步线程
    1、启动类增加@EnableAsync注解2、yml增加配置spring:task:execution:pool:max-size:8core-size:8keep-alive:60queue-capacity:1000thread-name-prefix:Asnyc-task-calc-3、编写配置类AsyncTaskConfigimp......
  • 植物大战僵尸(阳光)
    #include<iostream>#include<windows.h>usingnamespacestd;intmain(){intvalue=0;intpid=0;cout<<"输入修改进程ID";cin>>pid;HANDLEhProcess=NULL;DWORDaddress1=0x006A9EC0;DWORDaddress2;......
  • 考研保研、夏令营推免的简历模板
      本文介绍在保研夏令营、考研复试等场景中,个人简历的制作模板与撰写注意事项。  这里就将当初我自己的简历分享一下,供大家参考。其实我的简历是那种比较简单、质朴的,通篇就一个颜色,没有太多花里胡哨的部分。我个人感觉,对于读研、升学而言,其实这种简单一些的简历还是比较容易......
  • uniapp nvue 手指缩放
    uniapp nvue中俩个手指按下,每次只会监听到一个 uniapp 中双指缩放,touch.scale为当前的缩放比例<template> <[email protected]="move"@touchmove.stop="moving"> {{touch.scale}} </view></template><script>exportdefault{......
  • 138. Copy List with Random Pointer
    题目Alinkedlistisgivensuchthateachnodecontainsanadditionalrandompointerwhichcouldpointtoanynodeinthelistornull.Returna deepcopy ofthelist.TheLinkedListisrepresentedintheinput/outputasalistof n nodes.Eachnodeisr......
  • 无涯教程-Java - int compareTo(String anotherString)函数
    此方法按字典顺序比较两个字符串。intcompareTo-语法intcompareTo(StringanotherString)这是参数的详细信息-anotherString  - 要比较的字符串。intcompareTo-返回值如果两个字符串相等则值为0,如果大于则>0,小于则<0。intcompareTo-示例publicclassTes......
  • MT6789(MTK6789)安卓核心板定制_性能参数
    MT6789/HelioG99核心板是一款强大的处理器,它是天玑700的简化版,但去掉了5G基带。该核心板采用台积电6nm制程工艺,具有八核CPU,其中包括2个A76核心主频2.2GHz和6个A55核心主频2.0GHz。此外,它还搭载了Mali-G57MC2GPU,提供出色的图形处理性能。MT6789核心板配备了高性能的LPD......
  • 谷歌 | Imagen 2 正式推出、Gemini Pro 开放、Duet AI 上线...
    【信息来源:GoogleCloud。CloudAce是GoogleCloud全球战略合作伙伴。】上周,谷歌发布的Gemini引起了业界的广泛关注。紧接着,本周谷歌继续在人工智能领域展现其创新实力,在其云平台上推出了一系列备受瞩目的AI大模型。这些模型不仅满足了开发者和企业的广泛需求,还为特定行业......