1. 程式人生 > 程式設計 >利用Python自動化操作AutoCAD的實現

利用Python自動化操作AutoCAD的實現

1 Python自動繪圖

在這裡我主要運用了pyautocad庫進行AutoCAD的自動化操作,pyautocad是一款功能非常強大的AutoCAD操作處理庫,可以實現Python自動繪圖、CAD影象物件讀取、物件屬性修改等操作。

from pyautocad import Autocad,APoint

# 連線及庫匯入
acad = Autocad(create_if_not_exists = True)
acad.prompt("Hello! Autocad from Python.")
print(acad.doc.Name)

# 定義點
p1=APoint(0,0)
p2=APoint(50,25)
for i in range(0,5):
  text=acad.model.AddText('Hi %s' %i,p1,2.5)  # 將i值插入到%s佔位符的字串中(字串內容,座標位置,字號大小)
  acad.model.AddLine(p1,p2)  # 繪製線段(起始點,終止點)
  acad.model.AddCircle(p1,10)  # 繪製圓(圓心,半徑)
  p1.y+=10  # p1點縱座標加10

利用Python自動化操作AutoCAD的實現

圖1.Python自動繪圖結果.png

如果此時你的計算機上未開啟AutoCAD軟體,在執行該程式碼時會自動開啟AutoCAD並開始繪圖;如果已經打開了AutoCAD軟體,則在執行該程式碼時會預設在已開啟的圖上進行繪圖。

2 讀取CAD影象物件

from pyautocad import Autocad,APoint

# 連線及庫匯入
acad = Autocad(create_if_not_exists = True)
acad.prompt("Hello! Autocad from Python.")
print(acad.doc.Name)

# 遍歷CAD影象的所有文字物件,列印其文字內容及座標位置
dp=APoint(10,0)
for text in acad.iter_objects('Text'):
  print('text: %s at: %s' %(text.TextString,text.InsertionPoint))

# 列印物件的型別名稱
for obj in acad.iter_objects(['Circle','Line','Text']):
  print(obj.ObjectName)

3 修改物件屬性

from pyautocad import Autocad,APoint

# 連線及庫匯入
acad = Autocad(create_if_not_exists = True)
acad.prompt("Hello! Autocad from Python.")
print(acad.doc.Name)

# 遍歷CAD影象物件,修改物件屬性
for text in acad.iter_objects('Text'):
  print('text: %s at: %s' %(text.TextString,text.InsertionPoint))
  # 將文字中的“Hi”字元替換為“OK”
  if 'Hi' in text.TextString:
    print('text: %s at: %s' %(text.TextString,text.InsertionPoint))
    # 修改物件屬性
    text1 = str(text.TextString)
    text1 = text1.replace('Hi','OK')
    text.TextString = text1

將CAD圖中,所有文字中的“Hi”字串替換為“OK”,修改結果如圖2所示。

利用Python自動化操作AutoCAD的實現

圖2.修改物件屬性後

到此這篇關於利用Python自動化操作AutoCAD的實現的文章就介紹到這了,更多相關Python自動化操作AutoCAD內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!