1.读取EXCEL表相应数据
2.插入block块
3.根据表格数据旋转block角度
4.增加文字注释
acad.model.InsertBlock(p3,"D:\\python\\dccz.dwg",1,1,1,0)中后续参数的含义:Scale/X/Y/Z/Rotate
并且rotate中为弧度,非度。以下为实现代码:
#by helix [email protected]
from pyautocad import Autocad, APoint
import pyautocad
import openpyxl
import sys
import math
wb=openpyxl.load_workbook('D:\\python\\地质点.xlsx')
wsheet=wb.worksheets[0]#或者wb.active#获取文档列表get_sheet_by_name(wb.get_sheet_names[0]
acad = Autocad(create_if_not_exists = True)#true表示没有文件则打开一个
for row in wsheet.iter_rows(min_col=1, min_row=2, max_row=wsheet.max_row, max_col=wsheet.max_column):
#读取单元格数据:excel中数据行列索引均为0,与min_col/min_row设置不一致。
# 0 1 2 3 4 5 6
# 点号 x y h 倾向 倾角 备注
print(row[0].value,row[1].value,row[4].value)
p3 = APoint(float(row[1].value),float(row[2].value),0.0)
ratangel = float(row[4].value) #读取的数值为度
acad.model.InsertBlock(p3,"D:\\python\\dccz.dwg",0.5,0.5,0.5,-ratangel* math.pi/180) #此处为弧度,切记!!
acad.model.AddText('产状:%s∠%s' % (ratangel,int(row[5].value)), p3-APoint(-3,1.5), 1.5)#添加文本:标注文字,标注点位置,标注字体高度
acad.model.AddText('描述:%s' % row[6].value,(p3-APoint(-3,3.5)),1.5)