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