fix: NX installation path detection for run-baseline endpoint

- Read nx_install_path from atomizer_spec.json if available
- Auto-detect from common Siemens installation paths
- Fixes issue where NX2512 wasn't found (actual path is DesigncenterNX2512)
This commit is contained in:
2026-01-20 15:23:10 -05:00
parent 5c419e2358
commit 1cdcc17ffd

View File

@@ -4662,8 +4662,31 @@ async def run_baseline_simulation(study_id: str):
# Try to run the solver
try:
from optimization_engine.nx.solver import NXSolver
from pathlib import Path as P
# Try to get NX settings from spec
spec_file = study_dir / "atomizer_spec.json"
nx_install_path = None
if spec_file.exists():
with open(spec_file) as f:
spec_data = json.load(f)
nx_install_path = (
spec_data.get("model", {}).get("nx_settings", {}).get("nx_install_path")
)
# Default to common installation path if not in spec
if not nx_install_path:
for candidate in [
"C:/Program Files/Siemens/DesigncenterNX2512",
"C:/Program Files/Siemens/NX2506",
"C:/Program Files/Siemens/NX2412",
]:
if P(candidate).exists():
nx_install_path = candidate
break
solver = NXSolver(
nx_install_dir=P(nx_install_path) if nx_install_path else None,
nastran_version="2512",
timeout=600,
use_journal=True,