""" NX CAD Hooks ============ Direct manipulation of NX CAD parts via NX Open Python API. This submodule contains hooks for CAD-level operations on NX parts: geometry, expressions, features, and part management. Modules ------- part_manager Open, close, save, and query NX part files. Functions: - open_part(path) -> Open an NX part file - close_part(path) -> Close an open part - save_part(path) -> Save a part - save_part_as(path, new_path) -> Save with new name - get_part_info(path) -> Get part metadata expression_manager Get and set NX expressions (design parameters). Functions: - get_expressions(path) -> Get all expressions - get_expression(path, name) -> Get single expression - set_expression(path, name, value) -> Set single expression - set_expressions(path, dict) -> Set multiple expressions geometry_query Query geometric properties (mass, volume, area, bodies). Functions: - get_mass_properties(path) -> Get mass, volume, area, centroid - get_bodies(path) -> Get body count and types - get_volume(path) -> Get total volume - get_surface_area(path) -> Get total surface area - get_material(path) -> Get material name feature_manager Suppress and unsuppress features for design exploration. Functions: - get_features(path) -> List all features - get_feature_status(path, name) -> Check if suppressed - suppress_feature(path, name) -> Suppress a feature - unsuppress_feature(path, name) -> Unsuppress a feature - suppress_features(path, names) -> Suppress multiple - unsuppress_features(path, names) -> Unsuppress multiple Example ------- >>> from optimization_engine.hooks.nx_cad import geometry_query >>> result = geometry_query.get_mass_properties("C:/model.prt") >>> if result["success"]: ... print(f"Mass: {result['data']['mass']:.4f} kg") ... print(f"Material: {result['data']['material']}") NX Open APIs Used ----------------- - Session.Parts.OpenActiveDisplay() - Open parts - Part.Close(), Part.Save(), Part.SaveAs() - Part operations - Part.Expressions, ExpressionCollection.Edit() - Expressions - MeasureManager.NewMassProperties() - Mass properties - Part.Bodies - Body collection - Feature.Suppress(), Feature.Unsuppress() - Feature control - Session.UpdateManager.DoUpdate() - Model update """ from . import part_manager from . import expression_manager from . import geometry_query from . import feature_manager from . import model_introspection __all__ = [ 'part_manager', 'expression_manager', 'geometry_query', 'feature_manager', 'model_introspection', ]