From 1d1905cb15ab09974523efbafdac4736c4618e94 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 11 Dec 2025 16:29:15 +0000 Subject: [PATCH 1/4] Initial plan From 908ceabdd5ae9baa4e563917588857794f1392cf Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 11 Dec 2025 16:40:16 +0000 Subject: [PATCH 2/4] Fix cad_mesh_grading_factor to accept float and remove GradingFactor enum Co-authored-by: sankalps0549 <230025240+sankalps0549@users.noreply.github.com> --- CHANGELOG.md | 20 ++++++++++++++++ .../components/enums/grading_factor.rst | 4 ---- src/moldflow/__init__.py | 1 - src/moldflow/common.py | 9 -------- src/moldflow/mesh_generator.py | 8 +++---- .../unit_tests/test_unit_mesh_generator.py | 23 +++++++------------ version.json | 2 +- 7 files changed, 33 insertions(+), 34 deletions(-) delete mode 100644 docs/source/components/enums/grading_factor.rst 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..ef6b9bb 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), "cad_mesh_grading_factor") + check_range(value, 0, 1, "cad_mesh_grading_factor") + 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..499182d 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,7 @@ 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]] + + [("cad_mesh_grading_factor", x) for x in [-1, -0.1, 1.1, 2]] + [("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 +553,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" } From 94f3e5f16c40583a81c24d38264aa1faecfd6630 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 11 Dec 2025 16:45:22 +0000 Subject: [PATCH 3/4] Fix check_type and check_range calls to use correct signatures Co-authored-by: sankalps0549 <230025240+sankalps0549@users.noreply.github.com> --- src/moldflow/mesh_generator.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/moldflow/mesh_generator.py b/src/moldflow/mesh_generator.py index ef6b9bb..2d02a69 100644 --- a/src/moldflow/mesh_generator.py +++ b/src/moldflow/mesh_generator.py @@ -738,8 +738,8 @@ def cad_mesh_grading_factor(self, value: float) -> None: process_log( __name__, LogMessage.PROPERTY_SET, locals(), name="cad_mesh_grading_factor", value=value ) - check_type(value, (int, float), "cad_mesh_grading_factor") - check_range(value, 0, 1, "cad_mesh_grading_factor") + check_type(value, (int, float)) + check_range(value, 0, 1, True, True) self.mesh_generator.CadMeshGradingFactor = float(value) @property From b45a1d3fa6f6c001443fa0de864530282dc0a923 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 11 Dec 2025 17:14:42 +0000 Subject: [PATCH 4/4] Remove cad_mesh_grading_factor from invalid enum test since it's no longer an enum Co-authored-by: sankalps0549 <230025240+sankalps0549@users.noreply.github.com> --- tests/api/unit_tests/test_unit_mesh_generator.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/api/unit_tests/test_unit_mesh_generator.py b/tests/api/unit_tests/test_unit_mesh_generator.py index 499182d..813f46a 100644 --- a/tests/api/unit_tests/test_unit_mesh_generator.py +++ b/tests/api/unit_tests/test_unit_mesh_generator.py @@ -506,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, -0.1, 1.1, 2]] + [("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]],