Major additions: - Training data export system for AtomizerField neural network training - Bracket stiffness optimization study with 50+ training samples - Intelligent NX model discovery (auto-detect solutions, expressions, mesh) - Result extractors module for displacement, stress, frequency, mass - User-generated NX journals for advanced workflows - Archive structure for legacy scripts and test outputs - Protocol documentation and dashboard launcher 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
40 lines
988 B
Python
40 lines
988 B
Python
"""
|
|
Extract total structural mass
|
|
Auto-generated by Atomizer Phase 3 - pyNastran Research Agent
|
|
|
|
Pattern: generic_extraction
|
|
Element Type: General
|
|
Result Type: unknown
|
|
API: model.<result_type>[subcase]
|
|
"""
|
|
|
|
from pathlib import Path
|
|
from typing import Dict, Any
|
|
import numpy as np
|
|
from pyNastran.op2.op2 import OP2
|
|
|
|
|
|
def extract_generic(op2_file: Path):
|
|
"""Generic OP2 extraction - needs customization."""
|
|
from pyNastran.op2.op2 import OP2
|
|
|
|
model = OP2()
|
|
model.read_op2(str(op2_file))
|
|
|
|
# TODO: Customize extraction based on requirements
|
|
# Available: model.displacements, model.ctetra_stress, etc.
|
|
# Use model.get_op2_stats() to see available results
|
|
|
|
return {'result': None}
|
|
|
|
|
|
if __name__ == '__main__':
|
|
# Example usage
|
|
import sys
|
|
if len(sys.argv) > 1:
|
|
op2_file = Path(sys.argv[1])
|
|
result = extract_generic(op2_file)
|
|
print(f"Extraction result: {result}")
|
|
else:
|
|
print("Usage: python {sys.argv[0]} <op2_file>")
|