@@ -1231,3 +1231,83 @@ def test_pointing_to_axis(self):
12311231 assert go .is_vector_equal (x , [0.7053456158585983 , 0.07053456158585983 , 0.7053456158585983 ])
12321232 assert go .is_vector_equal (y , [0.19470872568244801 , 0.9374864569895649 , - 0.28845737138140465 ])
12331233 assert go .is_vector_equal (z , [- 0.681598176590997 , 0.3407990882954985 , 0.6475182677614472 ])
1234+
1235+ def test_project_sheet_success_with_single_object (self ):
1236+ """Test project sheet method with a single object."""
1237+ EXPECTED_POSITIONS = [
1238+ [5.0 , - 5.0 , 11.0 ],
1239+ [5.0 , - 5.0 , 10.0 ],
1240+ [- 5.0 , - 5.0 , 11.0 ],
1241+ [- 5.0 , - 5.0 , 10.0 ],
1242+ [- 5.0 , 10.0 , 10.0 ],
1243+ [5.0 , 10.0 , 10.0 ],
1244+ [5.0 , 11.0 , 11.0 ],
1245+ [- 5.0 , 11.0 , 11.0 ],
1246+ [5.0 , 10.0 , - 10.0 ],
1247+ [- 5.0 , 10.0 , - 10.0 ],
1248+ [- 5.0 , 11.0 , - 11.0 ],
1249+ [5.0 , 11.0 , - 11.0 ],
1250+ ]
1251+ rect = self .aedtapp .modeler .create_rectangle (Plane .XY , [- 5 , - 5 , 15 ], [10 , 20 ], "sheet_project_operation" )
1252+ box = self .aedtapp .modeler .create_box ([- 10 , - 10 , - 10 ], [20 , 20 , 20 ], "box_project_operation" )
1253+
1254+ assert self .aedtapp .modeler .project_sheet (rect , box , 1 , keep_originals = False )
1255+
1256+ obj = self .aedtapp .modeler .get_object_from_name ("sheet_project_operation" )
1257+ assert obj is not None , "Expected object not found"
1258+ assert 12 == len (obj .vertices ), "Object has not the number of expected vertices"
1259+ positions = [vertex .position for vertex in list (obj .vertices )]
1260+ assert sorted (EXPECTED_POSITIONS ) == sorted (positions ), "Object has not the expected vertices positions"
1261+ self .aedtapp .modeler .delete (self .aedtapp .modeler .object_names )
1262+
1263+ def test_project_sheet_success_with_multiple_objects (self ):
1264+ """Test project sheet method with multiple objects."""
1265+ EXPECTED_POSITIONS = [
1266+ [5.0 , - 5.0 , 11.0 ],
1267+ [5.0 , - 5.0 , 10.0 ],
1268+ [- 5.0 , - 5.0 , 11.0 ],
1269+ [- 5.0 , - 5.0 , 10.0 ],
1270+ [- 5.0 , 10.0 , 10.0 ],
1271+ [5.0 , 10.0 , 10.0 ],
1272+ [5.0 , 11.0 , 11.0 ],
1273+ [- 5.0 , 11.0 , 11.0 ],
1274+ [5.0 , 10.0 , - 10.0 ],
1275+ [- 5.0 , 10.0 , - 10.0 ],
1276+ [- 5.0 , 11.0 , - 11.0 ],
1277+ [5.0 , 11.0 , - 11.0 ],
1278+ [- 2.0 , 2 , 13.0 ],
1279+ [- 2.0 , - 2 , 13.0 ],
1280+ [- 2.0 , - 2 , 11.0 ],
1281+ [- 2.0 , 2 , 11.0 ],
1282+ [2.0 , - 2 , 13.0 ],
1283+ [2.0 , 2 , 13.0 ],
1284+ [2.0 , - 2 , 11.0 ],
1285+ [2.0 , 2 , 11.0 ],
1286+ [- 1.0 , 1.0 , 10.0 ],
1287+ [- 1.0 , - 1.0 , 10.0 ],
1288+ [1.0 , 1.0 , 10.0 ],
1289+ [1.0 , - 1.0 , 10.0 ],
1290+ [1.0 , - 1.0 , 12.0 ],
1291+ [- 1.0 , - 1.0 , 12.0 ],
1292+ [1.0 , 1.0 , 12.0 ],
1293+ [- 1.0 , 1.0 , 12.0 ],
1294+ ]
1295+ rect = self .aedtapp .modeler .create_rectangle (Plane .XY , [- 5 , - 5 , 15 ], [10 , 20 ], "sheet_project_operation" )
1296+ box_0 = self .aedtapp .modeler .create_box ([- 10 , - 10 , - 10 ], [20 , 20 , 20 ], "box_project_operation_0" )
1297+ box_1 = self .aedtapp .modeler .create_box ([- 1 , - 1 , 10 ], [2 , 2 , 2 ], "box_project_operation_1" )
1298+
1299+ assert self .aedtapp .modeler .project_sheet (rect , [box_0 , box_1 ], 1 , keep_originals = False )
1300+
1301+ obj = self .aedtapp .modeler .get_object_from_name ("sheet_project_operation" )
1302+ assert obj is not None , "Expected object not found"
1303+ assert 28 == len (obj .vertices ), "Object has not the number of expected vertices"
1304+ positions = [vertex .position for vertex in list (obj .vertices )]
1305+ assert sorted (EXPECTED_POSITIONS ) == sorted (positions ), "Object has not the expected vertices positions"
1306+ self .aedtapp .modeler .delete (self .aedtapp .modeler .object_names )
1307+
1308+ def test_project_sheet_failure (self ):
1309+ rect = self .aedtapp .modeler .create_rectangle (Plane .XY , [- 5 , - 5 , 15 ], [10 , 20 ], "sheet_project_operation" )
1310+ box_0 = self .aedtapp .modeler .create_box ([- 10 , - 10 , - 10 ], [20 , 20 , 20 ], "box_project_operation_0" )
1311+
1312+ assert not self .aedtapp .modeler .project_sheet (rect , box_0 , 5 , "10deg" )
1313+ self .aedtapp .modeler .delete (self .aedtapp .modeler .object_names )
0 commit comments