import itasca as it
import json
it.command("python-reset-state false")
with open("dcdAllIds.txt", "r") as f:
content = f.readline()
TargetZone = json.loads(content)
all_gps_infos = []
for level_zone in TargetZone:
level_gp_infos = []
for single_zone_id in level_zone:
zone = it.zone.find(single_zone_id)
eight_gps = zone.gridpoints()
single_zone_all_gps_infos = []
for gp_obj in eight_gps:
single_gp_infos = {}
gp_id = gp_obj.id()
gp = it.gridpoint.find(gp_id)
gp_x = gp.pos_x()
gp_y = gp.pos_y()
gp_z = gp.pos_z()
single_gp_infos["gp_id"] = gp_id
single_gp_infos["x"] = round(gp_x,4)
single_gp_infos["y"] = round(gp_y,4)
single_gp_infos["z"] = round(gp_z,4)
single_zone_all_gps_infos.append(single_gp_infos)
level_gp_infos.append(single_zone_all_gps_infos)
all_gps_infos.append(level_gp_infos)
#with open("dcdAllGpsInfos.txt","w") as f:
#f.write(str(all_gps_infos))
all_target_gp = []
for level_all_gps in all_gps_infos:
level_gp = []
for sigle_zone_gps in level_all_gps:
#设置临时的z
temp_z = sigle_zone_gps[0]['z']
#判断z是否是最大的,排除z小值的4个点
for gp_1 in sigle_zone_gps:
if gp_1['z'] > temp_z:
temp_z = gp_1['z']
#创造一个列表,保存四个z大值的点
first_list = []
for gp_2 in sigle_zone_gps:
if gp_2['z'] == temp_z:
first_list.append(gp_2)
temp_x = first_list[0]['x']
for gp_3 in first_list:
if gp_3['x'] > temp_x:
temp_x = gp_3['x']
second_list = []
for gp_4 in first_list:
if gp_4['x'] == temp_x:
second_list.append(gp_4)
#选取最优点,即右上角的点
if second_list[0]['y'] > second_list[1]['y']:
level_gp.append(second_list[0]['gp_id'])
else:
level_gp.append(second_list[1]['gp_id'])
all_target_gp.append(level_gp)
with open("targetGp.txt", "w") as f:
f.write(str(all_target_gp))
Flac3D-获得zone中的八个gridpoint,并获得指定的gridpoint
最新推荐文章于 2024-07-19 16:36:18 发布