2 jiangxinhuan jiangxinhuan 于 2018.05.16 22:01 提问

利用pyautocad在dwg中插入一个块

代码如下:

from pyautocad import Autocad,APoint

acad = Autocad(create_if_not_exists = True)
acad.prompt("hello, cad\n")
p1 = APoint(0,0)
acad.model.InsertBlock(p1,"D:\python\MyPyAutoCADProjects\lightingbox.dwg")
print acad.doc.Name

文件路径没有错,运行错误,错误提示如下:

hello, cad

Traceback (most recent call last):
File "D:\python\MyPyAutoCADProjects\insertBlock.py", line 10, in
acad.model.InsertBlock(p1,"D:\python\MyPyAutoCADProjects\lightingbox.dwg")
File "C:\Python27\lib\site-packages\comtypes\client\lazybind.py", line 163, in caller
return self._comobj._invoke(descr.memid, descr.invkind, 0, *args)
File "C:\Python27\lib\site-packages\comtypes\automation.py", line 664, in _invoke
dp, var, None, argerr)
COMError: (-2147352562, '\xce\xde\xd0\xa7\xb5\xc4\xb2\xce\xca\xfd\xca\xfd\xc4\xbf\xa1\xa3', (None, None, None, 0, None))

弄了一个晚上了,求大神指点迷津。

1个回答

oyljerry
oyljerry   2018.05.16 22:24
已采纳

com错误,应该是你传的参数dwg文件可能有问题

jiangxinhuan
jiangxinhuan   2018.05.16 22:26

解决了,把后面的几个选填的参数补齐就可以了。
acad.model.InsertBlock(p1,"D:\python\MyPyAutoCADProjects\lightingbox.dwg",1,1,1,0)
真是醉了

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
python环境下用pyautocad包调用cad新建一个dwg并且插入2个块,目前是同一个点
python环境下用pyautocad包调用cad新建一个dwg并且插入2个块,目前是同一个点 from pyautocad import Autocad,APoint acad = Autocad(create_if_not_exists = True) acad.prompt("hello, cad\n") p1 = APoint(0,0) acad.model.InsertBlock(...
pyautocad+openpyxl简单的处理一下cad文件
from pyautocad import Autocad import openpyxl wb=openpyxl.load_workbook('./cads.xlsx') sheet=wb.get_sheet_by_name('Sheet1') data=[] pset=[] acad=Autocad(create_if_not_exists=True) acad.prompt('he
利用teigha制作dwg无单位块工具开发
本篇文章是利用teigha这个库来执行cad的dwg文件相关操作。利用该库读取了dwg数据库,然后对数据库复制块,设置块的单位为无。开发这样功能工具的缘由,来源于dwg文件是由arcgis转换过来的,其中带有投影信息,在进行坐标转换的时候出现由于投影信息的缘故,使文件数据库dwg文件的单位为英寸,导致了坐标转换出现了很大的偏差。而我们有相当数量这样的文件,为此急需开发这样的小工具。 而如果是使用...
c# cad中插入另一个dwg的图块
1.在cad2012环境下: 须引用objectarx开发包 PromptPointResult ppr = ed.GetPoint("请选择插入点:");    Point3d pt = ppr.Value; //这里获得插入点   utility.WriteToEditor(pt.ToString());    blockPath = "b_sample.dwg"; usin
关于AutoCAD的dwg文件操作学习
由于工作需要最近在研究AutoCAD的.dwg文件的读取问题。在网上查了很多的资料和信息。理解渐有清晰。对于在网上看到的资料现在此记录连接,以备以后不时之需。但博客初写,不知是否算是原创,而其他类型也不甚合适,暂且如此。下面是感兴趣的链接,记录如下: 1、《基于OpenDWG Toolkit访问AutoCAD DWG图形文件》,此文有相对清晰的整体概述。连接:http://www.doc88.c
读写dwg文件
用于读写AutoCAD数据格式dwg的dll类,提供了对dwg格式的支持
在CAD中如何用VBA插入一个外部参照块
在CAD中如何用VBA插入一个外部参照块 VBA 代码
使用python来操作autocad,并且将坐标点转换成cad可见对象
由于工作需要,在项目中遇到一个棘手的问题,如何将(mssql)数据库中的BLOB文件转成cad可见图形 (可能每个项目需求不一样,解决方式不同)    第一步 . 需要转换的图形类型                    第二步 . 那我们先查询这个字段                    第三步 试试将这个写入一个文本中  看看是那种图形 (data:image/*;base64...
接pyautocad的实例
import openpyxl from pyautocad import Autocad,APoint import sys reload(sys) sys.setdefaultencoding("utf-8") wb=openpyxl.load_workbook("a.xlsx") sheet=wb.get_sheet_by_name("Sheet1") data=[] px=[] py=[]
插入块参照后,将块内对象坐标换算为其当前dwg中的坐标
//以下代码通过选择一个块参照,将块内的圆对象的坐标转换为该圆在当前dwg中的坐标并输出。相当于炸开块参照后再读取圆对象坐标的效果 ads_name ObjName; ads_point pnt; AcDbObjectId objId; if (RTNORM != acedEntSel(_T(""),ObjName,pnt)) { return; }