在Python中加载AutoCad DWG文件

时间:2019-05-28 07:20:36

标签: python autocad arcpy autocad-plugin

需要使用Python渲染AutoCad DWG文件。 我的第一个问题是

1:-是否可以在python中渲染/加载dwg文件并在python环境中查看文件/图像?

2:-我该怎么做?我尝试使用arcpy,但由于它是ArcGIS的专有软件,因此无法直接导入库吗?有哪些替代方案?

我什至在互联网上浏览了很多资源,但没有发现任何有用的信息。 还尝试过comtypes.client来导入和查看它。

import array
import comtypes.client
acad = comtypes.client.GetActiveObject("AutoCAD.Application")
doc = acad.ActiveDocument
ms = doc.ModelSpace
doc.Import("sample.dwg", array.array('d', [0, 0, 0]), 1.0)

我遇到此错误,我已经下载了AutoCAD软件,但仍然出现此错误。请提出我所缺少的信息以及错误的实际含义。


OSError跟踪(最近一次通话最近)  在       3尝试: ----> 4 acad = comtypes.client.GetActiveObject(“ AutoCAD.Application”)       5除:

〜\ Anaconda3 \ envs \ py36 \ lib \ site-packages \ comtypes \ client__init __。py在GetActiveObject中(程序,接口,动态)     172“”“ -> 173 clsid = comtypes.GUID.from_progid(progid)     174(如果为动态):

〜\ Anaconda3 \ envs \ py36 \ lib \ site-packages \ comtypes \ GUID.py in from_progid(cls,progid)      77 inst = cls() ---> 78 _CLSIDFromProgID(str(progid),byref(inst))      79 return inst

_ctypes / callproc.c在GetResult()

OSError:[WinError -2147221005]无效的类字符串

1 个答案:

答案 0 :(得分:0)

您可以尝试以下操作:

import comtypes.client
import time
try:
        acad = comtypes.client.GetActiveObject("AutoCAD.Application")
except:
        acad = comtypes.client.CreateObject("AutoCAD.Application")
while not acad.GetAcadState().IsQuiescent :
    time.sleep(5)
acad.Visible = True
doc = acad.Documents.Open("C:\\Temp\\Sample.dwg")