由于工作需要,在项目中遇到一个棘手的问题,如何将(mssql)数据库中的BLOB文件转成cad可见图形
(可能每个项目需求不一样,解决方式不同)
1.试试用新学的python 来操作,当然java也可以
(这个链接数据库,写入某个字段的内容就贴出来了,毕竟是做python与cad的)
2.生成后的文件内容
3.不是我们期待的普通图形,是cad的一些坐标点什么的,那我们就可以找到坐标点来操作
查看文本内容后,我们看到的是开头标识符T , TEXT , LINE , JZMJ (还有其他的图形包含 ARC , ARRORW , PL , DIMQJ)还有一部分 就不一一写了(主要是目前就只用到几个常用的开头标识符)
转换一下(在cad命令行中输入) 可以知道 PL LINE RULEDIM 为直线,有两个坐标点
如: p1 = (0,0) p2 = (0,10) 就可以生成一条直线
4 . 那么从上面的内容中可以看到,我们找到坐标点,
如:LINE_宋体_1_120_-1__18_1_0__clBlack_0_0_3_13580_-7520_7280_-7520_0_0_13580_-7520_
p1 = (13580,-7520)
p2 = (7280,-7520)
5 . 找到坐标之后发现一个规律 可以将这一行 截取(“_”),生成数组下标为 [14] ,[15], [16], [17]
(个人使用的是2017版)
1.首先导入pyautocad库,并且看看自己python的comtypes是否安装
2.先插入一条测试线 看看能否成功
from pyautocad import Autocad,APoint
p1 = APoint(10,20)
p2 = APoint(10,80)
acad = Autocad(create_if_not_exists = True)
acad.model.AddLine(p1,p2)
3.提示错误:
_ctypes.COMError: (-2147352567, '发生意外。', ('无法获取 Document 对象', 'AutoCAD', 'C:\\Program Files\\Autodesk\\AutoCAD 2017\\HELP\\OLE_ERR.CHM', -2145320900, None))
4.这个错误一般是cad没有新建一个窗口
5.新建一个画图窗口就可以运行上面测试代码了
6.介绍几个常用命令:
AddLine(p1,p2)
添加直线
点一,点二
AddText(text,p1,fontSize)
添加文本
文本内容,点一,字体高度
AddArc(center,radius,sDrgress,eDrgress)
添加圆弧
圆心 , 半径 ,开始弧 , 结束弧
SaveAs(filepath ,1)
保存当前画好的图形
文件绝对路径 , 后面默认写1 不知道原因 (这方面文档很少,所以不知道怎么查)
最后,如果有不懂得地方,或者我哪些没有做好,都可以联系我,感谢