python处理cad_python3读取autocad图形文件.py实例

废话不多说,看代码吧!

'''

待完善。

此代码实现了,根据标注文本的

属性,数值,位置,及 容差,

去判断 设计 和 实测两图中的同一位置的尺寸。

如果是同一位置的尺寸,则进行比较,

并把结果存成表格,到运行此代码的当前目录。

此代码运行时,要读取的 dwg文件 必须处于打开状态。

且 不能在 移动(pan) 模式。

启动代码:

python dwg_measurements_comparison4.py [8]

其中,8代表,判定两图尺寸为同一尺寸的最大距离,

单位:米(图上单位)。自己决定具体是多少。

注意:

启动此代码后,首先要在cad软件中打开 对比图,

当该图读完后,提示切换到实测图时,请在cad软件中切换。

切换完成后,回车,即可。

包的安装:

pip install pyautocad

注:

1.该操作会自动安装 comtypes模块。

2.如要使用tables 命令,要另外安装xlrd 和 tablib

'''

from pyautocad import Autocad

import sys

from pyautocad.contrib.tables import Table

import re

acad = Autocad(create_if_not_exists=True)

def getDescription_Measurement_TextPositions():

'''

此函数用于读取 实测图 的尺寸标注的 属性,尺寸,尺寸位置。

并返回结果。

目前实测图带属性,对比图不带。

'''

print('正在读取 ', acad.doc.Name, ' ...')

description_measurement_textPositions = []

for obj in acad.iter_objects('Dimension'):

description_measurement_textPositions.append(

(obj.GetXData("MyDimDist")[1][1],

round(obj.Measurement,2),

obj.TextPosition)

)

return description_measurement_textPositions

def getMeasurement_TextPositions():

'''

此函数用于读取 对比图 的尺寸,尺寸位置。

并返回结果。

'''

print('正在读取 ', acad.doc.Name, ' ...')

measurements_textPositions = []

for a in acad.iter_objects('Dimension'):

measurements_textPositions.append((round(a.Measurement,2), a.TextPosition))

return measurements_textPositions

def isTheSameMeasurement(point1,point2,tolerance):

'''

point1, 类似这样(82.37, (81953.97462829649, 276686.2885731713, 0.0)),

82.37,代表标注的尺寸,后边代表,该尺寸在图上显示的位置坐标。

point2, 类似这样('车间二;长', 82.44, (81951.56923143109, 276679.78271

你可能感兴趣的:(python处理cad)