@@ -341,6 +341,138 @@ def return_shape_tuple(current_shape_array ,start_row):
341
341
tmp_grid_array = sorted (tmp_grid_array , reverse = False , key = lambda x : x [2 ]) # sort for top
342
342
master_grid_array .append (tmp_grid_array )
343
343
344
+ '''Added automatic horizontal axis placement function at Ver 2.2.2 '''
345
+ # Remove items containing '_AIR_' in the second element
346
+ master_grid_array = [[item for item in sublist if '_AIR_' not in item [1 ]] for sublist in master_grid_array ]
347
+
348
+ updated_master_grid_array = []
349
+ device_name_array = []
350
+
351
+ for tmp_master_grid_array in master_grid_array :
352
+ # print('###############')
353
+ # print(tmp_master_grid_array)
354
+ for tmp_tmp_master_grid_array in tmp_master_grid_array :
355
+ # print(tmp_tmp_master_grid_array)
356
+ device_name_array .append (tmp_tmp_master_grid_array [1 ])
357
+ # print('###############')
358
+ # print(device_name_array)
359
+
360
+ vertical_key_array = []
361
+ used_device_array = []
362
+ for tmp_device_name_array in device_name_array :
363
+ flag_no_match = True
364
+ target = tmp_device_name_array
365
+ result = None
366
+
367
+ for sublist in master_grid_array :
368
+ for item in sublist :
369
+ if item [1 ] == target :
370
+ result = item
371
+ break
372
+ if result :
373
+ break
374
+
375
+ for sublist in master_grid_array :
376
+ for item in sublist :
377
+ if item [1 ] not in used_device_array :
378
+ # print('###used_device_array### ', item[1],used_device_array)
379
+ if result [2 ] < item [2 ] + item [4 ] and result [2 ] > item [2 ]:
380
+ # print('@@left type@@ ', item)
381
+ flag_no_match = False
382
+ if result not in vertical_key_array and result [1 ] not in used_device_array :
383
+ vertical_key_array .append (result )
384
+ used_device_array .append (item [1 ])
385
+
386
+ if result [2 ] + result [4 ] > item [2 ] and result [2 ] + result [4 ] < item [2 ] + item [4 ]:
387
+ # print('@@right type@@ ', item)
388
+ flag_no_match = False
389
+ if result not in vertical_key_array and result [1 ] not in used_device_array :
390
+ vertical_key_array .append (result )
391
+ used_device_array .append (item [1 ])
392
+
393
+ if result [2 ] < item [2 ] and result [2 ] + result [4 ] > item [2 ] + item [4 ]:
394
+ # print('@@big type@@ ', item)
395
+ flag_no_match = False
396
+ if result not in vertical_key_array and result [1 ] not in used_device_array :
397
+ vertical_key_array .append (result )
398
+ used_device_array .append (item [1 ])
399
+
400
+ if result [2 ] > item [2 ] and result [2 ] + result [4 ] < item [2 ] + item [4 ]:
401
+ # print('@@small type@@ ', item)
402
+ flag_no_match = False
403
+ if result not in vertical_key_array and result [1 ] not in used_device_array :
404
+ vertical_key_array .append (result )
405
+ used_device_array .append (item [1 ])
406
+
407
+ if result [2 ] == item [2 ] and result [2 ] + result [4 ] == item [2 ] + item [4 ] and result [1 ] != item [1 ]:
408
+ #print('@@equal type@@ ', item)
409
+ flag_no_match = False
410
+ if result not in vertical_key_array and result [1 ] not in used_device_array :
411
+ vertical_key_array .append (result )
412
+ used_device_array .append (item [1 ])
413
+
414
+ if flag_no_match == True and result [1 ] not in used_device_array :
415
+ vertical_key_array .append (result )
416
+
417
+ #print('####vertical_key_array####')
418
+ #print(vertical_key_array, len(vertical_key_array))
419
+
420
+ # Remove duplicates by converting lists to tuples, adding to a set, and converting back to lists
421
+ vertical_key_array = [list (t ) for t in set (tuple (item ) for item in vertical_key_array )]
422
+ vertical_key_array_2 = []
423
+ for tmp_vertical_key_array in vertical_key_array :
424
+ vertical_key_array_2 .append (
425
+ [tmp_vertical_key_array [0 ], '_AIR_' , tmp_vertical_key_array [2 ], tmp_vertical_key_array [3 ],
426
+ tmp_vertical_key_array [4 ], tmp_vertical_key_array [5 ], tmp_vertical_key_array [6 ], tmp_vertical_key_array [7 ],
427
+ tmp_vertical_key_array [2 ] + int (tmp_vertical_key_array [4 ] * 0.5 )])
428
+
429
+ vertical_key_array_2 = sorted (vertical_key_array_2 , key = lambda x : x [8 ])
430
+ #print('####vertical_key_array_2 ####')
431
+ #print(vertical_key_array_2)
432
+
433
+ for tmp_master_grid_array in master_grid_array :
434
+ # print('####### tmp_master_grid_array ########')
435
+ # print(tmp_master_grid_array)
436
+
437
+ import copy
438
+ updated_vertical_key_array_2 = copy .deepcopy (vertical_key_array_2 )
439
+
440
+ for i , tmp_vertical_key_array_2 in enumerate (vertical_key_array_2 ):
441
+ for tmp_tmp_master_grid_array in tmp_master_grid_array :
442
+
443
+ if tmp_tmp_master_grid_array not in updated_vertical_key_array_2 :
444
+ if tmp_vertical_key_array_2 [2 ] + tmp_vertical_key_array_2 [4 ] >= tmp_tmp_master_grid_array [2 ] and \
445
+ tmp_vertical_key_array_2 [2 ] <= tmp_tmp_master_grid_array [2 ]:
446
+ updated_vertical_key_array_2 [i ] = tmp_tmp_master_grid_array
447
+ break
448
+ elif tmp_vertical_key_array_2 [2 ] >= tmp_tmp_master_grid_array [2 ] and tmp_vertical_key_array_2 [2 ] + \
449
+ tmp_vertical_key_array_2 [4 ] <= tmp_tmp_master_grid_array [2 ] + tmp_tmp_master_grid_array [4 ]:
450
+ updated_vertical_key_array_2 [i ] = tmp_tmp_master_grid_array
451
+ break
452
+ elif tmp_vertical_key_array_2 [2 ] + tmp_vertical_key_array_2 [4 ] >= tmp_tmp_master_grid_array [2 ] + \
453
+ tmp_tmp_master_grid_array [4 ] and tmp_vertical_key_array_2 [2 ] <= tmp_tmp_master_grid_array [
454
+ 2 ] + tmp_tmp_master_grid_array [4 ]:
455
+ updated_vertical_key_array_2 [i ] = tmp_tmp_master_grid_array
456
+ break
457
+ elif tmp_vertical_key_array_2 [2 ] <= tmp_tmp_master_grid_array [2 ] and tmp_vertical_key_array_2 [2 ] + \
458
+ tmp_vertical_key_array_2 [4 ] >= tmp_tmp_master_grid_array [2 ] + tmp_tmp_master_grid_array [4 ]:
459
+ updated_vertical_key_array_2 [i ] = tmp_tmp_master_grid_array
460
+ break
461
+ elif tmp_vertical_key_array_2 [2 ] == tmp_tmp_master_grid_array [2 ] and tmp_vertical_key_array_2 [4 ] == \
462
+ tmp_tmp_master_grid_array [4 ]:
463
+ updated_vertical_key_array_2 [i ] = tmp_tmp_master_grid_array
464
+ break
465
+
466
+ # print(updated_vertical_key_array_2,len(updated_vertical_key_array_2))
467
+ updated_master_grid_array .append (updated_vertical_key_array_2 )
468
+
469
+ print (updated_master_grid_array )
470
+
471
+ master_grid_array = copy .deepcopy (updated_master_grid_array )
472
+ print ('--- master_grid_array ---' )
473
+ print (master_grid_array )
474
+ '''Addition completed(ver 2.2.2)'''
475
+
344
476
# make the tuple format
345
477
tuple_grid_array = {}
346
478
tuple_grid_array [start_row , 1 ] = master_grid_array [0 ][0 ][0 ]
0 commit comments