feat: add adaptive isogrid tool — project foundations
- Python Brain: density field, constrained Delaunay triangulation, pocket profiles, profile assembly, validation modules - NX Hands: skeleton scripts for geometry extraction, AFEM setup, per-iteration solve (require NX environment to develop) - Atomizer integration: 15-param space definition, objective function - Technical spec, README, sample test geometry, requirements.txt - Architecture: Python Brain + NX Hands + Atomizer Manager
This commit is contained in:
28
tools/adaptive-isogrid/src/nx/build_interface_model.py
Normal file
28
tools/adaptive-isogrid/src/nx/build_interface_model.py
Normal file
@@ -0,0 +1,28 @@
|
||||
"""
|
||||
NXOpen script — Build Interface Model (Model A) for Assembly FEM.
|
||||
|
||||
ONE-TIME: Creates spider elements (RBE2/RBE3) at each hole + edge BC nodes.
|
||||
Exports interface_nodes.json for the iteration script.
|
||||
|
||||
NOTE: Skeleton — requires NX environment for development.
|
||||
See docs/technical-spec.md Section 4.2 for full pseudocode.
|
||||
"""
|
||||
|
||||
|
||||
def build_interface_model(geometry_json_path, fem_part):
|
||||
"""
|
||||
Build Model A: spider elements at each hole + edge BC nodes.
|
||||
|
||||
For each hole:
|
||||
- Center node (master)
|
||||
- N circumference nodes (~1 per 2mm of circumference)
|
||||
- RBE2 (rigid) or RBE3 (distributing) spider
|
||||
|
||||
For plate boundary:
|
||||
- Edge nodes at ~3mm spacing
|
||||
|
||||
Exports interface_nodes.json with all node IDs and coordinates.
|
||||
"""
|
||||
raise NotImplementedError(
|
||||
"Develop inside NX Simcenter. See docs/technical-spec.md Section 4.2."
|
||||
)
|
||||
Reference in New Issue
Block a user