天天看點

使用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 不知道原因  (這方面文檔很少,是以不知道怎麼查)

最後,如果有不懂得地方,或者我哪些沒有做好,都可以聯系我,感謝