python 给CAD图形标注面积,可批量
##########################
import win32com.client as win32#输出dwg文件
import numpy as np
import math
import win32com.client
import pythoncom
from PyQt5.QtWidgets import QMessageBox
import sys, traceback
from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog, QAction
from PyQt5 import QtCore, QtGui, QtWidgets
import os, sys
import CAD_tool_rcct
def get_tjmj(xy):
list_x = []
list_y = []
for i in range(int(len(xy) / 2)):
list_x.append(xy[2i])
list_y.append(xy[2i + 1])
min_x = min(list_x)
max_x = max(list_x)
min_y = min(list_y)
max_y = max(list_y)
x = min_x + (max_x - min_x) / 4
y = (min_y + max_y) / 2
return x, y, (max_y - min_y) / 6
from pyautocad import Autocad, APoint
def cad_tjmj():
wincad = win32.Dispatch(“AutoCAD.Application”)
doc = wincad.ActiveDocument
msp = doc.ModelSpace
acad1 = Autocad(create_if_not_exists=True)
try:
doc.SelectionSets.Item(“SS1”).Delete()
except:
print(“Delete selection failed”)
slt = doc.SelectionSets.Add(“SS1”) # 创建选择集
slt.SelectOnScreen() # 选择
i = 0
mjs = 0
for item in slt:
try:
xy = item.Coordinates
mj = round(item.area,4)
ss = get_tjmj(xy)
mt = acad1.model.AddText(round(mj,4), APoint(ss[0], ss[1]), “2.5”)
mt.height = ss[2]
i += 1
mjs += mj
except:
pass
doc.Utility.Prompt(“找到%s对象,总面积:%s平方米、合计%s亩\n”%(i, mjs, round(mjs/666.666666,4)))
python 给CAD图形标注面积,可批量
最新推荐文章于 2023-10-21 10:28:59 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)