diff --git a/CHANGELOG.md b/CHANGELOG.md index 7301023..6a0d2e2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Security - N/A +## [26.0.5] + +### Added +- N/A + +### Changed +- `MeshGenerator.cad_mesh_grading_factor` now accepts `float` values in range 0.0 to 1.0 instead of enum/integer-coded options + +### Deprecated +- N/A + +### Removed +- `GradingFactor` enum - incorrectly restricted the API to discrete values when the COM API accepts continuous float values from 0.0 to 1.0 + +### Fixed +- Fixed `MeshGenerator.cad_mesh_grading_factor` to properly accept float/double values matching the COM API signature instead of restricting to enum values + +### Security +- N/A + ## [26.0.4] ### Added diff --git a/docs/source/components/enums/grading_factor.rst b/docs/source/components/enums/grading_factor.rst deleted file mode 100644 index 159f4b3..0000000 --- a/docs/source/components/enums/grading_factor.rst +++ /dev/null @@ -1,4 +0,0 @@ -GradingFactor -============= - -.. autoclass:: moldflow.common::GradingFactor diff --git a/src/moldflow/__init__.py b/src/moldflow/__init__.py index d43f07a..b86ab31 100644 --- a/src/moldflow/__init__.py +++ b/src/moldflow/__init__.py @@ -68,7 +68,6 @@ from .common import DuplicateOption from .common import EdgeDisplayOptions from .common import EntityType -from .common import GradingFactor from .common import GeomType from .common import ImportUnitIndex from .common import ImportUnits diff --git a/src/moldflow/common.py b/src/moldflow/common.py index d55b5cd..94791fe 100644 --- a/src/moldflow/common.py +++ b/src/moldflow/common.py @@ -393,15 +393,6 @@ class TriClassification(Enum): PRESERVE_ALL = 2 -class GradingFactor(Enum): - """ - Enum for GradingFactor - """ - - SLOW = 0 - FAST = 1 - - class GeomType(Enum): """ Enum for GeomType diff --git a/src/moldflow/mesh_generator.py b/src/moldflow/mesh_generator.py index 25e6813..2d02a69 100644 --- a/src/moldflow/mesh_generator.py +++ b/src/moldflow/mesh_generator.py @@ -13,7 +13,6 @@ NurbsAlgorithm, CoolType, TriClassification, - GradingFactor, GeomType, Mesher3DType, CADContactMesh, @@ -732,15 +731,16 @@ def cad_mesh_grading_factor(self) -> float: return self.mesh_generator.CadMeshGradingFactor @cad_mesh_grading_factor.setter - def cad_mesh_grading_factor(self, value: GradingFactor | int) -> None: + def cad_mesh_grading_factor(self, value: float) -> None: """ Set the CAD mesh grading factor option. """ process_log( __name__, LogMessage.PROPERTY_SET, locals(), name="cad_mesh_grading_factor", value=value ) - value = get_enum_value(value, GradingFactor) - self.mesh_generator.CadMeshGradingFactor = value + check_type(value, (int, float)) + check_range(value, 0, 1, True, True) + self.mesh_generator.CadMeshGradingFactor = float(value) @property def cad_mesh_minimum_curvature_percentage(self) -> float: diff --git a/tests/api/unit_tests/test_unit_mesh_generator.py b/tests/api/unit_tests/test_unit_mesh_generator.py index 3dda457..813f46a 100644 --- a/tests/api/unit_tests/test_unit_mesh_generator.py +++ b/tests/api/unit_tests/test_unit_mesh_generator.py @@ -12,7 +12,6 @@ NurbsAlgorithm, CoolType, TriClassification, - GradingFactor, Mesher3DType, CADContactMesh, ) @@ -134,8 +133,9 @@ def test_functions_no_args( ("cad_auto_size_scale", "CadAutoSizeScale", 50, (int, float)), ("cad_sliver_remove", "CadSliverRemove", True, bool), ("cad_sliver_remove", "CadSliverRemove", False, bool), - ("cad_mesh_grading_factor", "CadMeshGradingFactor", 0, int), - ("cad_mesh_grading_factor", "CadMeshGradingFactor", 1, int), + ("cad_mesh_grading_factor", "CadMeshGradingFactor", 0.0, (int, float)), + ("cad_mesh_grading_factor", "CadMeshGradingFactor", 0.5, (int, float)), + ("cad_mesh_grading_factor", "CadMeshGradingFactor", 1.0, (int, float)), ( "cad_mesh_minimum_curvature_percentage", "CadMeshMinimumCurvaturePercentage", @@ -312,8 +312,9 @@ def test_get_properties( ("cad_auto_size_scale", "CadAutoSizeScale", 50, (int, float)), ("cad_sliver_remove", "CadSliverRemove", True, bool), ("cad_sliver_remove", "CadSliverRemove", False, bool), - ("cad_mesh_grading_factor", "CadMeshGradingFactor", 0, int), - ("cad_mesh_grading_factor", "CadMeshGradingFactor", 1, int), + ("cad_mesh_grading_factor", "CadMeshGradingFactor", 0.0, (int, float)), + ("cad_mesh_grading_factor", "CadMeshGradingFactor", 0.5, (int, float)), + ("cad_mesh_grading_factor", "CadMeshGradingFactor", 1.0, (int, float)), ( "cad_mesh_minimum_curvature_percentage", "CadMeshMinimumCurvaturePercentage", @@ -450,7 +451,7 @@ def test_set_properties( + [("use_auto_size", x) for x in ["abc", -1, 1.0, 1, 1.5, None]] + [("cad_auto_size_scale", x) for x in ["abc", True, None]] + [("cad_sliver_remove", x) for x in ["abc", -1, 1.0, 1, 1.5, None]] - + [("cad_mesh_grading_factor", x) for x in ["abc", True, 1.5, None]] + + [("cad_mesh_grading_factor", x) for x in ["abc", True, None]] + [("cad_mesh_minimum_curvature_percentage", x) for x in ["abc", True, None]] + [("use_fallbacks", x) for x in ["abc", -1, 1.0, 1, 1.5, None]] + [("max_edge_length_in_thickness_direction", x) for x in ["abc", True, None]] @@ -505,7 +506,6 @@ def test_set_properties_invalid_value( "property_name, invalid_value", [("nurbs_mesher", x) for x in [-1, 10, 5]] + [("cad_contact_mesh_type", x) for x in ["abc", "Something"]] - + [("cad_mesh_grading_factor", x) for x in [-1, 10, 5]] + [("source_geom_type", x) for x in ["Hello", "abc"]] + [("cool_type", x) for x in [-1, 10, 5]] + [("tri_classification_opt", x) for x in [-1, 10, 5]], @@ -552,14 +552,6 @@ def test_gel_false(self, mock_mesh_generator, mock_object): ("tri_classification_opt", "TriClassificationOpt", x.value, x.value, int) for x in TriClassification ] - + [ - ("cad_mesh_grading_factor", "CadMeshGradingFactor", x, x.value, int) - for x in GradingFactor - ] - + [ - ("cad_mesh_grading_factor", "CadMeshGradingFactor", x.value, x.value, int) - for x in GradingFactor - ] + [("mesher_3d", "Mesher3D", x, x.value, str) for x in Mesher3DType] + [("mesher_3d", "Mesher3D", x.value, x.value, str) for x in Mesher3DType] + [("source_geom_type", "SourceGeomType", x, x.value, str) for x in GeomType] diff --git a/version.json b/version.json index a0e2533..1d65ba4 100644 --- a/version.json +++ b/version.json @@ -1,5 +1,5 @@ { "major": "26", "minor": "0", - "patch": "4" + "patch": "5" }