天天看点

使用python来操作autocad,并且将坐标点转换成cad可见对象

由于工作需要,在项目中遇到一个棘手的问题,如何将(mssql)数据库中的BLOB文件转成cad可见图形

(可能每个项目需求不一样,解决方式不同)

  •  第一步 . 需要转换的图形类型
使用python来操作autocad,并且将坐标点转换成cad可见对象
  • 第二步 . 那我们先查询这个字段
使用python来操作autocad,并且将坐标点转换成cad可见对象
  • 第三步 试试将这个写入一个文本中  看看是那种图形 (data:image/*;base64)  *号 为图片格式后缀   

                 1.试试用新学的python 来操作,当然java也可以

                        (这个链接数据库,写入某个字段的内容就贴出来了,毕竟是做python与cad的)

                 2.生成后的文件内容

使用python来操作autocad,并且将坐标点转换成cad可见对象

                 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]

  • 第四步  打开CAD (任意版本的cad都可以)              
    使用python来操作autocad,并且将坐标点转换成cad可见对象

        (个人使用的是2017版)

  • 第五步  使用python操作CAD  

                    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没有新建一个窗口

使用python来操作autocad,并且将坐标点转换成cad可见对象

                    5.新建一个画图窗口就可以运行上面测试代码了

                    6.介绍几个常用命令:

                            AddLine(p1,p2)  

                                添加直线

                                        点一,点二                  

                            AddText(text,p1,fontSize)

                                 添加文本

                                        文本内容,点一,字体高度 

                            AddArc(center,radius,sDrgress,eDrgress)

                                  添加圆弧

                                          圆心 , 半径 ,开始弧 , 结束弧

                            SaveAs(filepath ,1)

                                    保存当前画好的图形

                                           文件绝对路径 , 后面默认写1 不知道原因  (这方面文档很少,所以不知道怎么查)

最后,如果有不懂得地方,或者我哪些没有做好,都可以联系我,感谢