Python自动化CAD/CAD小工具(三)补充:文本高级筛选代码

Python自动化CAD/CAD小工具(三)补充:文本高级筛选代码
攻城狮
攻城狮
时刻在路上
1 人赞同了该文章

cont_lst变量存储了用户的筛选规则

cont_lst为五个值组成的列表,为[a1, a2, a3, a4, a5]

其中a1为图层名,当框选时其为空(即’')

a2判断是否为框选状态,是为1,否为’’

a3为文本规则,包括三个状态(‘==’, ‘!=’, ‘contain’)

a4存储用户输入的基础文本内容

a5为高级文本筛选规则,值为(0, 1, 2, 3), 分别对应(汉字,字母,纯数字,数字)

if cont_lst[0] != ‘’:
index = layers_names.index(“%s” % cont_lst[0])
doc.ActiveLayer = doc.Layers.Item(index)
try:
doc.SelectionSets.Item(“text”).Delete()
except:
print(“-------创建新的选择集--------”)
slt = doc.SelectionSets.Add(“text”)
filterType = vtlsti([-4, 0, 0, -4, 8])
filterData = vtlstvariant([‘<or’, ‘TEXT’, ‘MTEXT’, ‘or>’, cont_lst[0]])
slt.Select(5, 0, 0, filterType, filterData)
sectionlayer = doc.Layers.Add(‘py标记’)
sectionlayer.color = 1
new_layers_nums = doc.Layers.count
new_layers_names = [doc.Layers.Item(i).Name for i in range(new_layers_nums)]
index = new_layers_names.index(‘py标记’)
doc.ActiveLayer = doc.Layers.Item(index)
if cont_lst[2] == ‘==’:
if cont_lst[3] != ‘’:
for i in slt:
if i.TextString == cont_lst[3]:
mark_pl = doc.ModelSpace.AddPolyLine(
vtlstf([i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[0][1] - 10, 0,
i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[1][1] + 10, 0,
i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[1][1] + 10, 0,
i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[0][1] - 10, 0,
i.GetBoundingBox()[0][0] - 13, i.GetBoundingBox()[0][1] - 10, 0,]))
for i in range(5):
mark_pl.SetWidth(i, 6, 6)
cad_color.SetRGB(255, 0, 0)
mark_pl.TrueColor = cad_color
s = s + 1
elif cont_lst[3] == ‘’ and cont_lst[4] == 0:
for i in slt:
if is_chinese(i.TextString):
mark_pl = doc.ModelSpace.AddPolyLine(
vtlstf([i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[0][1] - 10, 0,
i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[1][1] + 10, 0,
i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[1][1] + 10, 0,
i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[0][1] - 10, 0,
i.GetBoundingBox()[0][0] - 13, i.GetBoundingBox()[0][1] - 10, 0, ]))
for i in range(5):
mark_pl.SetWidth(i, 6, 6)
cad_color.SetRGB(255, 0, 0)
mark_pl.TrueColor = cad_color
s = s + 1
elif cont_lst[3] == ‘’ and cont_lst[4] == 1:
for i in slt:
if i.TextString.encode(‘utf-8’).isalpha():
mark_pl = doc.ModelSpace.AddPolyLine(
vtlstf([i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[0][1] - 10, 0,
i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[1][1] + 10, 0,
i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[1][1] + 10, 0,
i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[0][1] - 10, 0,
i.GetBoundingBox()[0][0] - 13, i.GetBoundingBox()[0][1] - 10, 0, ]))
for i in range(5):
mark_pl.SetWidth(i, 6, 6)
cad_color.SetRGB(255, 0, 0)
mark_pl.TrueColor = cad_color
s = s + 1
elif cont_lst[3] == ‘’ and cont_lst[4] == 2:
for i in slt:
if i.TextString.isdigit():
mark_pl = doc.ModelSpace.AddPolyLine(
vtlstf([i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[0][1] - 10, 0,
i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[1][1] + 10, 0,
i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[1][1] + 10, 0,
i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[0][1] - 10, 0,
i.GetBoundingBox()[0][0] - 13, i.GetBoundingBox()[0][1] - 10, 0, ]))
for i in range(5):
mark_pl.SetWidth(i, 6, 6)
cad_color.SetRGB(255, 0, 0)
mark_pl.TrueColor = cad_color
s = s + 1
elif cont_lst[3] == ‘’ and cont_lst[4] == 3:
for i in slt:
if is_number(i.TextString):
mark_pl = doc.ModelSpace.AddPolyLine(
vtlstf([i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[0][1] - 10, 0,
i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[1][1] + 10, 0,
i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[1][1] + 10, 0,
i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[0][1] - 10, 0,
i.GetBoundingBox()[0][0] - 13, i.GetBoundingBox()[0][1] - 10, 0, ]))
for i in range(5):
mark_pl.SetWidth(i, 6, 6)
cad_color.SetRGB(255, 0, 0)
mark_pl.TrueColor = cad_color
s = s + 1
elif cont_lst[2] == ‘!=’:
if cont_lst[3] != ‘’:
for i in slt:
if i.TextString != cont_lst[3]:
mark_pl = doc.ModelSpace.AddPolyLine(
vtlstf([i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[0][1] - 10, 0,
i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[1][1] + 10, 0,
i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[1][1] + 10, 0,
i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[0][1] - 10, 0,
i.GetBoundingBox()[0][0] - 13, i.GetBoundingBox()[0][1] - 10, 0,]))
for i in range(5):
mark_pl.SetWidth(i, 6, 6)
cad_color.SetRGB(255, 0, 0)
mark_pl.TrueColor = cad_color
s = s + 1
elif cont_lst[3] == ‘’ and cont_lst[4] == 0:
for i in slt:
if not is_chinese(i.TextString):
mark_pl = doc.ModelSpace.AddPolyLine(
vtlstf([i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[0][1] - 10, 0,
i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[1][1] + 10, 0,
i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[1][1] + 10, 0,
i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[0][1] - 10, 0,
i.GetBoundingBox()[0][0] - 13, i.GetBoundingBox()[0][1] - 10, 0, ]))
for i in range(5):
mark_pl.SetWidth(i, 6, 6)
cad_color.SetRGB(255, 0, 0)
mark_pl.TrueColor = cad_color
s = s + 1
elif cont_lst[3] == ‘’ and cont_lst[4] == 1:
for i in slt:
if not i.TextString.encode(‘utf-8’).isalpha():
mark_pl = doc.ModelSpace.AddPolyLine(
vtlstf([i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[0][1] - 10, 0,
i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[1][1] + 10, 0,
i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[1][1] + 10, 0,
i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[0][1] - 10, 0,
i.GetBoundingBox()[0][0] - 13, i.GetBoundingBox()[0][1] - 10, 0, ]))
for i in range(5):
mark_pl.SetWidth(i, 6, 6)
cad_color.SetRGB(255, 0, 0)
mark_pl.TrueColor = cad_color
s = s + 1
elif cont_lst[3] == ‘’ and cont_lst[4] == 2:
for i in slt:
if not i.TextString.isdigit():
mark_pl = doc.ModelSpace.AddPolyLine(
vtlstf([i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[0][1] - 10, 0,
i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[1][1] + 10, 0,
i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[1][1] + 10, 0,
i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[0][1] - 10, 0,
i.GetBoundingBox()[0][0] - 13, i.GetBoundingBox()[0][1] - 10, 0, ]))
for i in range(5):
mark_pl.SetWidth(i, 6, 6)
cad_color.SetRGB(255, 0, 0)
mark_pl.TrueColor = cad_color
s = s + 1
elif cont_lst[3] == ‘’ and cont_lst[4] == 3:
for i in slt:
if not is_number(i.TextString):
mark_pl = doc.ModelSpace.AddPolyLine(
vtlstf([i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[0][1] - 10, 0,
i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[1][1] + 10, 0,
i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[1][1] + 10, 0,
i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[0][1] - 10, 0,
i.GetBoundingBox()[0][0] - 13, i.GetBoundingBox()[0][1] - 10, 0, ]))
for i in range(5):
mark_pl.SetWidth(i, 6, 6)
cad_color.SetRGB(255, 0, 0)
mark_pl.TrueColor = cad_color
s = s + 1
elif cont_lst[2] == ‘contain’:
if cont_lst[3] != ‘’:
for i in slt:
if cont_lst[3] in i.TextString:
mark_pl = doc.ModelSpace.AddPolyLine(
vtlstf([i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[0][1] - 10, 0,
i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[1][1] + 10, 0,
i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[1][1] + 10, 0,
i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[0][1] - 10, 0,
i.GetBoundingBox()[0][0] - 13, i.GetBoundingBox()[0][1] - 10, 0,]))
for i in range(5):
mark_pl.SetWidth(i, 6, 6)
cad_color.SetRGB(255, 0, 0)
mark_pl.TrueColor = cad_color
s = s + 1
elif cont_lst[3] == ‘’ and cont_lst[4] == 0:
for i in slt:
if is_contain_chinese(i.TextString):
mark_pl = doc.ModelSpace.AddPolyLine(
vtlstf([i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[0][1] - 10, 0,
i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[1][1] + 10, 0,
i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[1][1] + 10, 0,
i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[0][1] - 10, 0,
i.GetBoundingBox()[0][0] - 13, i.GetBoundingBox()[0][1] - 10, 0, ]))
for i in range(5):
mark_pl.SetWidth(i, 6, 6)
cad_color.SetRGB(255, 0, 0)
mark_pl.TrueColor = cad_color
s = s + 1
elif cont_lst[3] == ‘’ and cont_lst[4] == 1:
for i in slt:
if is_contain_alpha(i.TextString):
mark_pl = doc.ModelSpace.AddPolyLine(
vtlstf([i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[0][1] - 10, 0,
i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[1][1] + 10, 0,
i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[1][1] + 10, 0,
i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[0][1] - 10, 0,
i.GetBoundingBox()[0][0] - 13, i.GetBoundingBox()[0][1] - 10, 0, ]))
for i in range(5):
mark_pl.SetWidth(i, 6, 6)
cad_color.SetRGB(255, 0, 0)
mark_pl.TrueColor = cad_color
s = s + 1
elif cont_lst[3] == ‘’ and cont_lst[4] == 2:
for i in slt:
if is_contain_digit(i.TextString):
mark_pl = doc.ModelSpace.AddPolyLine(
vtlstf([i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[0][1] - 10, 0,
i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[1][1] + 10, 0,
i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[1][1] + 10, 0,
i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[0][1] - 10, 0,
i.GetBoundingBox()[0][0] - 13, i.GetBoundingBox()[0][1] - 10, 0, ]))
for i in range(5):
mark_pl.SetWidth(i, 6, 6)
cad_color.SetRGB(255, 0, 0)
mark_pl.TrueColor = cad_color
s = s + 1
elif cont_lst[3] == ‘’ and cont_lst[4] == 3:
for i in slt:
if is_contain_digit(i.TextString):
mark_pl = doc.ModelSpace.AddPolyLine(
vtlstf([i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[0][1] - 10, 0,
i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[1][1] + 10, 0,
i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[1][1] + 10, 0,
i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[0][1] - 10, 0,
i.GetBoundingBox()[0][0] - 13, i.GetBoundingBox()[0][1] - 10, 0, ]))
for i in range(5):
mark_pl.SetWidth(i, 6, 6)
cad_color.SetRGB(255, 0, 0)
mark_pl.TrueColor = cad_color
s = s + 1
elif cont_lst[1] == 1:
while 1:
try:
doc.SelectionSets.Item(“square_text”).Delete()
except:
print(“-------创建新的选择集--------”)
old_slt = doc.SelectionSets.Add(“square_text”)
old_slt.SelectOnScreen()
try:
old_slt[0]
except:
doc.Utility.Prompt(“\n命令取消.\n”)
break
slt = []
d = 0
for i in range(old_slt.Count):
if old_slt[i].ObjectName != ‘AcDbText’ and old_slt[i].ObjectName != ‘AcDbMText’:
d = d + 1
else:
slt.append(old_slt[i])
doc.Utility.Prompt(“\n其中文本对象为%d个.\n” % (old_slt.Count-d))

	sectionlayer = doc.Layers.Add('py标记')
	sectionlayer.color = 1
	new_layers_nums = doc.Layers.count
	new_layers_names = [doc.Layers.Item(i).Name for i in range(new_layers_nums)]
	index = new_layers_names.index('py标记')
	doc.ActiveLayer = doc.Layers.Item(index)
	if cont_lst[2] == '==':
		if cont_lst[3] != '':
			for i in slt:
				if i.TextString == cont_lst[3]:
					mark_pl = doc.ModelSpace.AddPolyLine(
						vtlstf([i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[0][1] - 10, 0,
								i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[1][1] + 10, 0,
								i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[1][1] + 10, 0,
								i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[0][1] - 10, 0,
								i.GetBoundingBox()[0][0] - 13, i.GetBoundingBox()[0][1] - 10, 0, ]))
					for i in range(5):
						mark_pl.SetWidth(i, 6, 6)
					cad_color.SetRGB(255, 0, 0)
					mark_pl.TrueColor = cad_color
					s = s + 1
		elif cont_lst[3] == '' and cont_lst[4] == 0:
			for i in slt:
				if is_chinese(i.TextString):
					mark_pl = doc.ModelSpace.AddPolyLine(
						vtlstf([i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[0][1] - 10, 0,
								i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[1][1] + 10, 0,
								i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[1][1] + 10, 0,
								i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[0][1] - 10, 0,
								i.GetBoundingBox()[0][0] - 13, i.GetBoundingBox()[0][1] - 10, 0, ]))
					for i in range(5):
						mark_pl.SetWidth(i, 6, 6)
					cad_color.SetRGB(255, 0, 0)
					mark_pl.TrueColor = cad_color
					s = s + 1
		elif cont_lst[3] == '' and cont_lst[4] == 1:
			for i in slt:
				if i.TextString.encode('utf-8').isalpha():
					mark_pl = doc.ModelSpace.AddPolyLine(
						vtlstf([i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[0][1] - 10, 0,
								i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[1][1] + 10, 0,
								i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[1][1] + 10, 0,
								i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[0][1] - 10, 0,
								i.GetBoundingBox()[0][0] - 13, i.GetBoundingBox()[0][1] - 10, 0, ]))
					for i in range(5):
						mark_pl.SetWidth(i, 6, 6)
					cad_color.SetRGB(255, 0, 0)
					mark_pl.TrueColor = cad_color
					s = s + 1
		elif cont_lst[3] == '' and cont_lst[4] == 2:
			for i in slt:
				if i.TextString.isdigit():
					mark_pl = doc.ModelSpace.AddPolyLine(
						vtlstf([i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[0][1] - 10, 0,
								i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[1][1] + 10, 0,
								i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[1][1] + 10, 0,
								i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[0][1] - 10, 0,
								i.GetBoundingBox()[0][0] - 13, i.GetBoundingBox()[0][1] - 10, 0, ]))
					for i in range(5):
						mark_pl.SetWidth(i, 6, 6)
					cad_color.SetRGB(255, 0, 0)
					mark_pl.TrueColor = cad_color
					s = s + 1
		elif cont_lst[3] == '' and cont_lst[4] == 3:
			for i in slt:
				if is_number(i.TextString):
					mark_pl = doc.ModelSpace.AddPolyLine(
						vtlstf([i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[0][1] - 10, 0,
								i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[1][1] + 10, 0,
								i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[1][1] + 10, 0,
								i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[0][1] - 10, 0,
								i.GetBoundingBox()[0][0] - 13, i.GetBoundingBox()[0][1] - 10, 0, ]))
					for i in range(5):
						mark_pl.SetWidth(i, 6, 6)
					cad_color.SetRGB(255, 0, 0)
					mark_pl.TrueColor = cad_color
					s = s + 1
	elif cont_lst[2] == '!=':
		if cont_lst[3] != '':
			for i in slt:
				if i.TextString != cont_lst[3]:
					mark_pl = doc.ModelSpace.AddPolyLine(
						vtlstf([i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[0][1] - 10, 0,
								i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[1][1] + 10, 0,
								i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[1][1] + 10, 0,
								i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[0][1] - 10, 0,
								i.GetBoundingBox()[0][0] - 13, i.GetBoundingBox()[0][1] - 10, 0, ]))
					for i in range(5):
						mark_pl.SetWidth(i, 6, 6)
					cad_color.SetRGB(255, 0, 0)
					mark_pl.TrueColor = cad_color
					s = s + 1
		elif cont_lst[3] == '' and cont_lst[4] == 0:
			for i in slt:
				if not is_chinese(i.TextString):
					mark_pl = doc.ModelSpace.AddPolyLine(
						vtlstf([i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[0][1] - 10, 0,
								i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[1][1] + 10, 0,
								i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[1][1] + 10, 0,
								i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[0][1] - 10, 0,
								i.GetBoundingBox()[0][0] - 13, i.GetBoundingBox()[0][1] - 10, 0, ]))
					for i in range(5):
						mark_pl.SetWidth(i, 6, 6)
					cad_color.SetRGB(255, 0, 0)
					mark_pl.TrueColor = cad_color
					s = s + 1
		elif cont_lst[3] == '' and cont_lst[4] == 1:
			for i in slt:
				if not i.TextString.encode('utf-8').isalpha():
					mark_pl = doc.ModelSpace.AddPolyLine(
						vtlstf([i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[0][1] - 10, 0,
								i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[1][1] + 10, 0,
								i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[1][1] + 10, 0,
								i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[0][1] - 10, 0,
								i.GetBoundingBox()[0][0] - 13, i.GetBoundingBox()[0][1] - 10, 0, ]))
					for i in range(5):
						mark_pl.SetWidth(i, 6, 6)
					cad_color.SetRGB(255, 0, 0)
					mark_pl.TrueColor = cad_color
					s = s + 1
		elif cont_lst[3] == '' and cont_lst[4] == 2:
			for i in slt:
				if not i.TextString.isdigit():
					mark_pl = doc.ModelSpace.AddPolyLine(
						vtlstf([i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[0][1] - 10, 0,
								i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[1][1] + 10, 0,
								i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[1][1] + 10, 0,
								i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[0][1] - 10, 0,
								i.GetBoundingBox()[0][0] - 13, i.GetBoundingBox()[0][1] - 10, 0, ]))
					for i in range(5):
						mark_pl.SetWidth(i, 6, 6)
					cad_color.SetRGB(255, 0, 0)
					mark_pl.TrueColor = cad_color
					s = s + 1
		elif cont_lst[3] == '' and cont_lst[4] == 3:
			for i in slt:
				if not is_number(i.TextString):
					mark_pl = doc.ModelSpace.AddPolyLine(
						vtlstf([i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[0][1] - 10, 0,
								i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[1][1] + 10, 0,
								i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[1][1] + 10, 0,
								i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[0][1] - 10, 0,
								i.GetBoundingBox()[0][0] - 13, i.GetBoundingBox()[0][1] - 10, 0, ]))
					for i in range(5):
						mark_pl.SetWidth(i, 6, 6)
					cad_color.SetRGB(255, 0, 0)
					mark_pl.TrueColor = cad_color
					s = s + 1
	elif cont_lst[2] == 'contain':
		if cont_lst[3] != '':
			for i in slt:
				if cont_lst[3] in i.TextString:
					mark_pl = doc.ModelSpace.AddPolyLine(
						vtlstf([i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[0][1] - 10, 0,
								i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[1][1] + 10, 0,
								i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[1][1] + 10, 0,
								i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[0][1] - 10, 0,
								i.GetBoundingBox()[0][0] - 13, i.GetBoundingBox()[0][1] - 10, 0, ]))
					for i in range(5):
						mark_pl.SetWidth(i, 6, 6)
					cad_color.SetRGB(255, 0, 0)
					mark_pl.TrueColor = cad_color
					s = s + 1
		elif cont_lst[3] == '' and cont_lst[4] == 0:
			for i in slt:
				if is_contain_chinese(i.TextString):
					mark_pl = doc.ModelSpace.AddPolyLine(
						vtlstf([i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[0][1] - 10, 0,
								i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[1][1] + 10, 0,
								i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[1][1] + 10, 0,
								i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[0][1] - 10, 0,
								i.GetBoundingBox()[0][0] - 13, i.GetBoundingBox()[0][1] - 10, 0, ]))
					for i in range(5):
						mark_pl.SetWidth(i, 6, 6)
					cad_color.SetRGB(255, 0, 0)
					mark_pl.TrueColor = cad_color
					s = s + 1
		elif cont_lst[3] == '' and cont_lst[4] == 1:
			for i in slt:
				if is_contain_alpha(i.TextString):
					mark_pl = doc.ModelSpace.AddPolyLine(
						vtlstf([i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[0][1] - 10, 0,
								i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[1][1] + 10, 0,
								i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[1][1] + 10, 0,
								i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[0][1] - 10, 0,
								i.GetBoundingBox()[0][0] - 13, i.GetBoundingBox()[0][1] - 10, 0, ]))
					for i in range(5):
						mark_pl.SetWidth(i, 6, 6)
					cad_color.SetRGB(255, 0, 0)
					mark_pl.TrueColor = cad_color
					s = s + 1
		elif cont_lst[3] == '' and cont_lst[4] == 2:
			for i in slt:
				if is_contain_digit(i.TextString):
					mark_pl = doc.ModelSpace.AddPolyLine(
						vtlstf([i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[0][1] - 10, 0,
								i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[1][1] + 10, 0,
								i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[1][1] + 10, 0,
								i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[0][1] - 10, 0,
								i.GetBoundingBox()[0][0] - 13, i.GetBoundingBox()[0][1] - 10, 0, ]))
					for i in range(5):
						mark_pl.SetWidth(i, 6, 6)
					cad_color.SetRGB(255, 0, 0)
					mark_pl.TrueColor = cad_color
					s = s + 1
		elif cont_lst[3] == '' and cont_lst[4] == 3:
			for i in slt:
				if is_contain_digit(i.TextString):
					mark_pl = doc.ModelSpace.AddPolyLine(
						vtlstf([i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[0][1] - 10, 0,
								i.GetBoundingBox()[0][0] - 10, i.GetBoundingBox()[1][1] + 10, 0,
								i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[1][1] + 10, 0,
								i.GetBoundingBox()[1][0] + 10, i.GetBoundingBox()[0][1] - 10, 0,
								i.GetBoundingBox()[0][0] - 13, i.GetBoundingBox()[0][1] - 10, 0, ]))
					for i in range(5):
						mark_pl.SetWidth(i, 6, 6)
					cad_color.SetRGB(255, 0, 0)
					mark_pl.TrueColor = cad_color
					s = s + 1
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DK业

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值