由于工作需要输出线路塔位坐标,在CAD手动导出太过于繁琐,所以就有了如下程序:
import pyautocad as cad
acad = cad.Autocad(create_if_not_exists=True)
acad.prompt("Hello, Autocad form python,By s0rjor\n")
print(acad.doc.Name)
# print(dir(acad.model.AddCircle))
#转角塔桩号标识
def zjt():
for obj in acad.get_selection(['Circle', 'Line']):
if obj.ObjectName == 'AcDbPolyline':
print(obj.Coordinates)
for i in range(int(len(obj.Coordinates) / 2)):
print(i)
p = cad.APoint(obj.Coordinates[(i+1)*2],obj.Coordinates[(i+1)*2+1])
print(i)
k = i + 1
text = acad.model.AddText('BTJ%s' % k, p, 25)#添加文字
#直线塔桩号标识
def zxt():
j=1
for obj in acad.get_selection('Circle'):
print(obj.Center)#获取圆心坐标
p = cad.APoint(obj.Center[0], obj.Center[1])
text = acad.model.AddText('ABZ%s' % j, p, 25)
j = j+1
def output():
for obj in acad.get_selection('Text'):
print(obj.TextString+','+str(obj.InsertionPoint[0])+', '+str(obj.InsertionPoint[1]))
事前需要将直线塔坐标用圆圈标识出来,圆心坐标为塔位坐标。
程序输出结果如下: