Advertisement
bobbuban

Untitled

Apr 17th, 2024
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.20 KB | None | 0 0
  1. from shapely.geometry import LineString, Point
  2. import win32com.client
  3. import pythoncom
  4. from shapely.geometry.polygon import Polygon
  5.  
  6.  
  7. # Циклы
  8. acad = win32com.client.Dispatch("AutoCAD.Application")
  9. acadModel = acad.ActiveDocument.ModelSpace
  10. doc_profile = acad.ActiveDocument
  11.  
  12. def ADouble(xyz):
  13. return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_R8, (xyz))
  14.  
  15. def variants(object):
  16. return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_DISPATCH, (object))
  17.  
  18. def APointWIN(x, y, z = 0):
  19. return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_R8, (x, y, z))
  20.  
  21.  
  22. doc_profile.Layers.Add('Литологические границы')
  23. hatch_layer = doc_profile.Layers.Add('Литология')
  24.  
  25. all_cycles = [[1092.9860000000003, 954.2999999999998, 0.0, 1093.3410000000003, 954.2999999999998, 0.0, 1093.6830000000004, 954.2999999999998, 0.0, 1094.1220000000005, 954.2999999999998, 0.0, 1094.4710000000005, 954.2999999999998, 0.0, 1094.9670000000006, 954.2999999999998, 0.0, 1095.4580000000005, 954.2999999999998, 0.0, 1095.8110000000006, 954.2999999999998, 0.0, 1096.2650000000006, 954.2999999999998, 0.0, 1096.8600000000006, 954.2999999999998, 0.0, 1097.1840000000007, 954.2999999999998, 0.0, 1097.9200000000008, 954.2999999999998, 0.0, 1098.1890000000008, 954.2999999999998, 0.0, 1098.3930000000007, 954.2999999999998, 0.0, 1099.2550000000008, 954.2999999999998, 0.0, 1099.5350000000008, 954.2999999999998, 0.0, 1100.4810000000007, 954.2999999999998, 0.0, 1101.4670000000008, 954.2999999999998, 0.0, 1101.7680000000007, 954.2999999999998, 0.0, 1104.1040000000007, 955.1099999999998, 0.0, 1104.9860000000008, 955.0399999999997, 0.0, 1105.8060000000007, 954.9599999999997, 0.0, 1105.8240000000008, 954.9599999999997, 0.0, 1106.6560000000009, 954.8799999999997, 0.0, 1106.671000000001, 954.8799999999997, 0.0, 1107.5880000000009, 954.7799999999996, 0.0, 1108.546000000001, 954.6699999999996, 0.0, 1108.554000000001, 954.6699999999996, 0.0, 1109.502000000001, 954.5499999999996, 0.0, 1109.5090000000012, 954.5499999999996, 0.0, 1110.3910000000012, 954.4399999999996, 0.0, 1111.1500000000012, 954.3399999999996, 0.0, 1111.1510000000012, 954.3399999999996, 0.0, 1111.3510000000012, 954.2999999999996, 0.0, 1111.4780000000012, 954.2999999999996, 0.0, 1111.9060000000013, 954.2999999999996, 0.0, 1111.9520000000014, 954.2999999999996, 0.0, 1112.5510000000013, 954.2999999999996, 0.0, 1113.1980000000012, 954.2999999999996, 0.0, 1113.8280000000013, 954.2999999999996, 0.0, 1114.1910000000014, 954.2999999999996, 0.0, 1114.8180000000013, 954.2999999999996, 0.0, 1115.3200000000013, 954.2999999999996, 0.0, 1115.8570000000013, 954.2999999999996, 0.0, 1116.9120000000014, 954.2999999999996, 0.0, 1117.4710000000014, 954.2999999999996, 0.0, 1120.4600000000014, 954.2999999999996, 0.0, 1120.9370000000015, 954.2999999999996, 0.0, 1121.5040000000015, 954.2999999999996, 0.0, 1124.2580000000014, 954.2999999999996, 0.0, 1124.307337528498, 954.3095904483035, 0.0, 1124.307337528498, 950.3095904483035, 0.0, 1113.6211368068919, 950.2999999999996, 0.0, 1100.7586032371594, 950.2999999999998, 0.0, 1088.7556103237937, 950.2999999999998, 0.0, 1078.3628227542015, 949.7623375056054, 0.0, 1068.578652529347, 949.0834807441953, 0.0, 1057.8792670141918, 948.1787363587277, 0.0, 1048.1451395248105, 941.998569762405, 0.0, 1036.960636632246, 940.3, 0.0, 1022.2870059096047, 940.3, 0.0, 1011.6435029548023, 940.3, 0.0, 1011.6435029548023, 944.3, 0.0, 1012.17, 944.3, 0.0, 1012.6289999999999, 944.3, 0.0, 1012.7829999999999, 944.3, 0.0, 1013.0039999999999, 944.3, 0.0, 1013.1229999999999, 944.3, 0.0, 1013.2789999999999, 944.3, 0.0, 1013.3359999999999, 944.3, 0.0, 1013.4759999999999, 944.3, 0.0, 1013.5189999999999, 944.3, 0.0, 1013.6469999999999, 944.3, 0.0, 1013.6869999999999, 944.3, 0.0, 1016.8839999999999, 944.3, 0.0, 1016.9839999999999, 944.3, 0.0, 1017.3419999999999, 944.3, 0.0, 1017.4419999999999, 944.3, 0.0, 1017.9079999999999, 944.3, 0.0, 1018.0099999999999, 944.3, 0.0, 1018.5049999999999, 944.3, 0.0, 1018.9569999999999, 944.3, 0.0, 1019.0449999999998, 944.3, 0.0, 1019.3879999999998, 944.3, 0.0, 1020.0259999999998, 944.3, 0.0, 1020.1009999999999, 944.3, 0.0, 1020.9089999999999, 944.3, 0.0, 1020.9819999999999, 944.3, 0.0, 1021.8449999999999, 944.3, 0.0, 1037.875, 944.3, 0.0, 1037.996, 944.3, 0.0, 1038.1360000000002, 944.3, 0.0, 1038.2980000000002, 944.3, 0.0, 1038.4760000000003, 944.3, 0.0, 1045.4970000000003, 944.3, 0.0, 1045.5200000000002, 944.3, 0.0, 1045.9490000000003, 944.3, 0.0, 1045.9670000000003, 944.3, 0.0, 1046.2680000000003, 944.3, 0.0, 1046.7740000000003, 944.79, 0.0, 1046.8040000000003, 944.8, 0.0, 1046.8270000000002, 944.8199999999999, 0.0, 1048.0470000000003, 945.9499999999999, 0.0, 1048.1280000000002, 945.9899999999999, 0.0, 1048.208, 946.0299999999999, 0.0, 1049.0690000000002, 946.7999999999998, 0.0, 1049.1800000000003, 946.8499999999998, 0.0, 1049.7140000000004, 947.3199999999998, 0.0, 1049.8400000000004, 947.3799999999998, 0.0, 1050.0830000000003, 947.5899999999998, 0.0, 1050.2130000000004, 947.6399999999998, 0.0, 1050.3380000000004, 947.6899999999997, 0.0, 1050.6450000000004, 947.9599999999997, 0.0, 1050.7730000000004, 947.9999999999997, 0.0, 1051.0490000000004, 948.2499999999997, 0.0, 1051.2300000000005, 948.4099999999996, 0.0, 1051.3440000000005, 948.5099999999996, 0.0, 1051.4790000000005, 948.5499999999996, 0.0, 1051.5850000000005, 948.6399999999996, 0.0, 1051.7110000000005, 948.6699999999996, 0.0, 1051.8080000000004, 948.7699999999996, 0.0, 1051.9260000000004, 948.7899999999996, 0.0, 1052.0340000000003, 948.7999999999996, 0.0, 1052.1260000000004, 948.7999999999996, 0.0, 1052.2370000000005, 948.9299999999996, 0.0, 1052.3130000000006, 948.9199999999996, 0.0, 1052.3790000000006, 948.9099999999996, 0.0, 1052.5060000000005, 949.0699999999996, 0.0, 1052.5720000000006, 949.0499999999996, 0.0, 1052.6880000000006, 949.2099999999996, 0.0, 1052.7530000000006, 949.1899999999996, 0.0, 1052.8520000000005, 949.3299999999996, 0.0, 1052.9140000000004, 949.2999999999996, 0.0, 1052.9720000000004, 949.2699999999996, 0.0, 1058.9780000000005, 952.8299999999996, 0.0, 1059.0270000000005, 952.8299999999996, 0.0, 1059.1930000000004, 952.8199999999996, 0.0, 1059.3600000000004, 952.7999999999996, 0.0, 1059.4080000000004, 952.7999999999996, 0.0, 1059.5800000000004, 952.7799999999996, 0.0, 1059.6270000000004, 952.7799999999996, 0.0, 1059.8020000000004, 952.7499999999997, 0.0, 1059.8470000000004, 952.7599999999996, 0.0, 1059.8900000000003, 952.7599999999996, 0.0, 1060.0660000000003, 952.7299999999997, 0.0, 1060.1070000000002, 952.7399999999997, 0.0, 1060.2880000000002, 952.7099999999997, 0.0, 1060.3260000000002, 952.7099999999997, 0.0, 1060.5260000000003, 952.6799999999997, 0.0, 1060.8160000000003, 952.6299999999998, 0.0, 1060.8540000000003, 952.6299999999998, 0.0, 1061.1780000000003, 952.5699999999998, 0.0, 1086.1120000000003, 954.2999999999998, 0.0, 1086.3210000000004, 954.2999999999998, 0.0, 1086.8400000000004, 954.2999999999998, 0.0, 1087.4220000000005, 954.2999999999998, 0.0, 1087.5420000000004, 954.2999999999998, 0.0, 1088.1680000000003, 954.2999999999998, 0.0, 1088.3060000000003, 954.2999999999998, 0.0, 1088.9650000000004, 954.2999999999998, 0.0, 1089.0730000000003, 954.2999999999998, 0.0, 1089.7530000000004, 954.2999999999998, 0.0, 1090.3070000000005, 954.2999999999998, 0.0, 1090.3510000000006, 954.2999999999998, 0.0, 1090.3550000000005, 954.2999999999998, 0.0, 1090.5360000000005, 954.2999999999998, 0.0, 1090.5570000000005, 954.2999999999998, 0.0, 1090.7420000000004, 954.2999999999998, 0.0, 1090.9280000000003, 954.2999999999998, 0.0, 1091.0040000000004, 954.2999999999998, 0.0, 1091.2660000000003, 954.2999999999998, 0.0, 1091.3860000000002, 954.2999999999998, 0.0, 1091.6670000000001, 954.2999999999998, 0.0, 1091.8180000000002, 954.2999999999998,
  26. 0.0, 1091.9540000000002, 954.2999999999998, 0.0, 1092.2340000000002, 954.2999999999998, 0.0, 1092.4320000000002, 954.2999999999998, 0.0, 1092.6900000000003, 954.2999999999998, 0.0, 1092.9860000000003, 954.2999999999998, 0.0], [1057.8792670141918, 928.1787363587277, 0.0, 1068.578652529347, 921.0834807441953, 0.0, 1078.3628227542015, 921.7623375056054, 0.0, 1088.7556103237937, 918.2999999999998, 0.0, 1100.7586032371594, 914.2999999999998, 0.0, 1113.6211368068919, 922.2999999999996, 0.0, 1124.307337528498, 926.3095904483035, 0.0, 1124.307337528498, 918.3095904483035, 0.0, 1113.6211368068919, 914.2999999999996, 0.0, 1100.7586032371594, 906.2999999999998, 0.0, 1088.7556103237937, 910.2999999999998, 0.0, 1078.3628227542015, 913.7623375056054, 0.0, 1068.578652529347, 913.0834807441953, 0.0, 1057.8792670141918, 920.1787363587277, 0.0, 1048.1451395248105, 905.998569762405, 0.0, 1036.960636632246, 916.3, 0.0, 1022.2870059096047, 908.3, 0.0, 1011.6435029548023, 920.3, 0.0, 1011.6435029548023, 924.3, 0.0, 1022.2870059096047, 912.3, 0.0, 1036.960636632246, 924.3, 0.0, 1048.1451395248105, 913.998569762405, 0.0, 1057.8792670141918, 928.1787363587277, 0.0], [1057.8792670141918, 928.1787363587277, 0.0, 1048.1451395248105, 925.998569762405, 0.0, 1057.8792670141918, 932.1787363587277, 0.0, 1068.578652529347, 929.0834807441953, 0.0, 1057.8792670141918, 928.1787363587277, 0.0], [1124.307337528498, 946.3095904483035, 0.0, 1124.307337528498, 930.3095904483035, 0.0, 1113.6211368068919, 926.2999999999996, 0.0, 1100.7586032371594, 930.2999999999998, 0.0, 1088.7556103237937, 930.2999999999998, 0.0, 1078.3628227542015, 929.7623375056054, 0.0, 1068.578652529347, 929.0834807441953, 0.0, 1057.8792670141918, 932.1787363587277, 0.0, 1068.578652529347, 937.0834807441953, 0.0, 1078.3628227542015, 941.7623375056054, 0.0, 1088.7556103237937, 946.2999999999998, 0.0, 1100.7586032371594, 942.2999999999998, 0.0, 1113.6211368068919, 942.2999999999996, 0.0, 1124.307337528498, 946.3095904483035, 0.0], [1113.6211368068919, 942.2999999999996, 0.0, 1100.7586032371594, 942.2999999999998, 0.0, 1088.7556103237937, 946.2999999999998, 0.0, 1078.3628227542015, 941.7623375056054, 0.0, 1068.578652529347, 937.0834807441953, 0.0, 1057.8792670141918, 944.1787363587277, 0.0, 1048.1451395248105, 937.998569762405, 0.0, 1036.960636632246, 940.3, 0.0, 1048.1451395248105, 941.998569762405, 0.0, 1057.8792670141918, 948.1787363587277, 0.0, 1068.578652529347, 949.0834807441953, 0.0, 1078.3628227542015, 949.7623375056054, 0.0, 1088.7556103237937, 950.2999999999998, 0.0, 1100.7586032371594, 950.2999999999998, 0.0, 1113.6211368068919, 950.2999999999996, 0.0, 1124.307337528498, 950.3095904483035, 0.0, 1124.307337528498, 946.3095904483035, 0.0, 1113.6211368068919, 942.2999999999996, 0.0], [1100.7586032371594, 930.2999999999998, 0.0, 1113.6211368068919, 926.2999999999996, 0.0, 1124.307337528498, 930.3095904483035, 0.0, 1124.307337528498, 926.3095904483035, 0.0, 1113.6211368068919, 922.2999999999996, 0.0, 1100.7586032371594, 918.2999999999998, 0.0, 1088.7556103237937, 918.2999999999998, 0.0, 1078.3628227542015, 921.7623375056054, 0.0, 1088.7556103237937, 930.2999999999998, 0.0, 1100.7586032371594, 930.2999999999998, 0.0], [1022.2870059096047, 928.3, 0.0, 1011.6435029548023, 924.3, 0.0, 1011.6435029548023, 932.3, 0.0, 1022.2870059096047, 940.3, 0.0, 1036.960636632246, 940.3, 0.0, 1048.1451395248105, 937.998569762405, 0.0, 1036.960636632246, 936.3, 0.0, 1022.2870059096047, 928.3, 0.0], [1048.1451395248105, 925.998569762405, 0.0, 1036.960636632246, 924.3, 0.0, 1022.2870059096047, 912.3, 0.0, 1011.6435029548023, 924.3, 0.0, 1022.2870059096047, 924.3, 0.0, 1036.960636632246, 932.3, 0.0, 1048.1451395248105, 937.998569762405, 0.0, 1057.8792670141918, 932.1787363587277, 0.0, 1048.1451395248105, 925.998569762405, 0.0], [1057.8792670141918, 928.1787363587277, 0.0, 1048.1451395248105, 913.998569762405, 0.0, 1036.960636632246, 924.3, 0.0, 1048.1451395248105, 925.998569762405, 0.0, 1057.8792670141918, 928.1787363587277, 0.0], [1057.8792670141918, 932.1787363587277, 0.0, 1048.1451395248105, 937.998569762405, 0.0, 1057.8792670141918, 944.1787363587277, 0.0, 1068.578652529347, 937.0834807441953, 0.0, 1057.8792670141918, 932.1787363587277, 0.0], [1022.2870059096047, 924.3, 0.0, 1011.6435029548023, 924.3, 0.0, 1022.2870059096047, 928.3, 0.0, 1036.960636632246, 936.3, 0.0, 1048.1451395248105, 937.998569762405, 0.0, 1036.960636632246, 932.3, 0.0, 1022.2870059096047, 924.3, 0.0], [1100.7586032371594, 914.2999999999998, 0.0, 1088.7556103237937, 918.2999999999998, 0.0, 1100.7586032371594, 918.2999999999998, 0.0, 1113.6211368068919, 922.2999999999996, 0.0, 1100.7586032371594, 914.2999999999998, 0.0], [1022.2870059096047, 940.3, 0.0, 1011.6435029548023, 932.3, 0.0, 1011.6435029548023, 936.3, 0.0, 1022.2870059096047, 940.3, 0.0], [1068.578652529347, 929.0834807441953, 0.0, 1078.3628227542015, 929.7623375056054, 0.0, 1088.7556103237937, 930.2999999999998, 0.0, 1078.3628227542015, 921.7623375056054, 0.0, 1068.578652529347, 921.0834807441953, 0.0, 1057.8792670141918, 928.1787363587277, 0.0, 1068.578652529347, 929.0834807441953, 0.0], [1011.6435029548023, 936.3, 0.0, 1011.6435029548023, 940.3, 0.0, 1022.2870059096047, 940.3, 0.0, 1011.6435029548023, 936.3, 0.0]]
  27.  
  28.  
  29. layer_points = [[[1011.7435029548024, 940.6999999999999, 'EARTH'], [1011.7435029548024, 936.6999999999999, 'SUGLINOK'], [1011.7435029548024, 932.6999999999999, 'GRAVIY_30-50', 'SUGLINOK'], [1011.7435029548024, 924.6999999999999, 'GRAVIY_30-50', 'PESOK'], [1011.7435029548024, 920.6999999999999, 'BAZALT']], [[1022.3870059096047, 940.6999999999999, 'EARTH'], [1022.3870059096047, 928.6999999999999, 'GRAVIY_30-50', 'PESOK'], [1022.3870059096047, 924.6999999999999, 'SHEBEN_30-50', 'GLIBA_20', 'SUGLINOK'], [1022.3870059096047, 912.6999999999999, 'GRAVIY_30-50', 'GALKA_20', 'SUGLINOK'], [1022.3870059096047, 908.6999999999999, 'BAZALT']], [[1037.0606366322459, 940.6999999999999, 'EARTH'], [1037.0606366322459, 936.6999999999999, 'GRAVIY_30-50', 'PESOK'], [1037.0606366322459, 932.6999999999999, 'SHEBEN_30-50', 'GLIBA_20', 'SUGLINOK'], [1037.0606366322459, 924.6999999999999, 'GRAVIY_30-50', 'GALKA_20', 'SUGLINOK'], [1037.0606366322459, 916.6999999999999, 'BAZALT']], [[1048.2451395248104, 942.398569762405, 'EARTH'], [1048.2451395248104, 938.398569762405, 'SUGLINOK'], [1048.2451395248104, 926.398569762405, 'GRAVIY_30-50', 'GALKA_20', 'SUGLINOK'],
  30. [1048.2451395248104, 914.398569762405, 'SHEBEN_30-50', 'SUGLINOK'], [1048.2451395248104, 906.398569762405, 'BAZALT']], [[1057.9792670141917, 948.5787363587277, 'EARTH'], [1057.9792670141917, 944.5787363587277, 'SUGLINOK'], [1057.9792670141917, 932.5787363587277, 'GRAVIY_30-50', 'SHEBEN_30-50', 'SUGLINOK'], [1057.9792670141917, 928.5787363587277, 'GRAVIY_30-50', 'PESOK'], [1057.9792670141917, 920.5787363587277, 'BAZALT']], [[1068.678652529347, 949.4834807441953, 'EARTH'], [1068.678652529347, 937.4834807441953, 'SUGLINOK'], [1068.678652529347, 929.4834807441953, 'GALKA_30-50', 'GRAVIY_20', 'SUGLINOK'], [1068.678652529347, 921.4834807441953, 'GRAVIY_30-50', 'SHEBEN_30-50', 'GALKA_20', 'SUGLINOK'], [1068.678652529347, 913.4834807441953, 'BAZALT']], [[1078.4628227542014, 950.1623375056054, 'EARTH'], [1078.4628227542014, 942.1623375056054, 'SUGLINOK'], [1078.4628227542014, 930.1623375056054, 'GALKA_30-50', 'GRAVIY_20', 'SUGLINOK'], [1078.4628227542014, 922.1623375056054, 'GRAVIY_30-50', 'SHEBEN_30-50', 'GALKA_20', 'SUGLINOK'], [1078.4628227542014, 914.1623375056054, 'BAZALT']], [[1088.8556103237936, 950.6999999999998, 'EARTH'], [1088.8556103237936, 946.6999999999998, 'SUGLINOK'], [1088.8556103237936, 930.6999999999998, 'GALKA_30-50', 'GRAVIY_20', 'SUGLINOK'], [1088.8556103237936, 918.6999999999998, 'GRAVIY_30-50', 'SHEBEN_20', 'GALKA_20', 'GLIBA_20', 'SUGLINOK'], [1088.8556103237936, 910.6999999999998,
  31. 'BAZALT']], [[1100.8586032371593, 950.6999999999998, 'EARTH'], [1100.8586032371593, 942.6999999999998, 'SUGLINOK'], [1100.8586032371593, 930.6999999999998, 'GALKA_30-50', 'GRAVIY_20', 'SUGLINOK'], [1100.8586032371593, 918.6999999999998, 'GRAVIY_30-50', 'SHEBEN_20', 'GALKA_20', 'GLIBA_20', 'SUGLINOK'], [1100.8586032371593, 914.6999999999998, 'SHEBEN_20', 'GRAVIY_20', 'PESOK'], [1100.8586032371593, 906.6999999999998, 'BAZALT']], [[1113.7211368068918, 950.6999999999996, 'EARTH'], [1113.7211368068918, 942.6999999999996, 'SUGLINOK'], [1113.7211368068918, 926.6999999999996, 'GALKA_30-50', 'GRAVIY_20', 'SUGLINOK'], [1113.7211368068918, 922.6999999999996, 'GRAVIY_30-50', 'SHEBEN_20', 'GALKA_20', 'GLIBA_20', 'SUGLINOK'], [1113.7211368068918, 914.6999999999996, 'BAZALT']], [[1124.207337528498, 950.7095904483035, 'EARTH'], [1124.207337528498, 946.7095904483035, 'SUGLINOK'], [1124.207337528498, 930.7095904483035, 'GALKA_30-50', 'GRAVIY_20', 'SUGLINOK'], [1124.207337528498, 926.7095904483035, 'GRAVIY_30-50', 'SHEBEN_20', 'GALKA_20', 'GLIBA_20', 'SUGLINOK'], [1124.207337528498, 918.7095904483035, 'BAZALT'], [1124.207337528498, 918.7095904483035, 'BAZALT']]]
  32.  
  33. polygons = [Polygon(zip(cycle[::3], cycle[1::3])) for cycle in all_cycles]
  34. added_areas = set()
  35.  
  36. priority_order = {
  37. 'GLIBA': 0,
  38. 'VALUN': 1,
  39. 'SHEBEN': 2,
  40. 'GALKA': 3,
  41. 'DRESVA': 4,
  42. 'GRAVIY': 5,
  43. 'PESOK': 6,
  44. 'SUPES': 7,
  45. 'IL': 8,
  46. 'SUGLINOK': 9,
  47. 'GLINA': 10
  48. }
  49.  
  50. def get_priority(text):
  51. for keyword, priority in priority_order.items():
  52. if keyword in text:
  53. return priority
  54. return float('inf')
  55.  
  56.  
  57. for idx, points in enumerate(layer_points):
  58. for point in points:
  59. point_coords = point[:2]
  60. hatch_texts = point[2:]
  61.  
  62. hatch_texts_sorted = sorted(hatch_texts, key=get_priority)
  63.  
  64. point_shapely = Point(*point_coords)
  65. for i, polygon in enumerate(polygons):
  66. if polygon.contains(point_shapely) and i not in added_areas:
  67.  
  68.  
  69. out_loop = [acadModel.AddPolyline(ADouble(all_cycles[i]))]
  70. for loop in out_loop:
  71. loop.Layer = 'Литологические границы'
  72.  
  73. for text in hatch_texts_sorted:
  74. hatch = acadModel.AddHatch(0, text, True)
  75. hatch.AppendOuterLoop(variants(out_loop))
  76. hatch.Evaluate()
  77. hatch.Layer = 'Литология'
  78.  
  79.  
  80. match text:
  81. case 'ALEVRO':
  82. hatch.PatternScale = 0.4
  83.  
  84. case 'SUPES' | 'GLINA' | 'BAZALT':
  85. hatch.PatternScale = 5
  86.  
  87. case 'IZVEST' | 'PESOK' | 'GALKA_20' | 'GALKA_30-50' | 'GALKA_60-100' | 'VALUN_20' | 'VALUN_30-50' | 'VALUN_60-100':
  88. hatch.PatternScale = 10
  89.  
  90. case 'SUGLINOK' | 'GRAVIY_20' | 'GRAVIY_30-50' | 'GRAVIY_60-100' | 'SHEBEN_20' | 'SHEBEN_30-50' | 'SHEBEN_60-100' | 'GLIBA_20' | 'GLIBA_30-50' | 'GLIBA_60-100' | 'DRESVA_20' | 'DRESVA_30-50' | 'DRESVA_60-100':
  91. hatch.PatternScale = 20
  92. case _:
  93. pass
  94.  
  95.  
  96. for inner_i, inner_polygon in enumerate(polygons):
  97. if inner_i != i and inner_polygon.within(polygon):
  98. inner_loop = [acadModel.AddPolyline(ADouble(all_cycles[inner_i]))]
  99. for inner in inner_loop:
  100. inner.Layer = 'Литологические границы'
  101. hatch.AppendInnerLoop(variants(inner_loop))
  102. hatch.Layer = 'Литология'
  103. added_areas.add(i)
  104. break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement