Spaces:
Runtime error
Runtime error
| # ansys_utils.py | |
| import subprocess | |
| import os | |
| def run_simulation(step_file_path): | |
| """ | |
| Run ANSYS simulation using the generated STEP file. | |
| This function assumes you have ANSYS installed and accessible via command line. | |
| The process involves: | |
| 1. Running ANSYS APDL commands (which should be in a file or string). | |
| 2. Running simulations. | |
| 3. Retrieving results. | |
| """ | |
| # Here we assume an ANSYS APDL script will be created dynamically | |
| apdl_script = f""" | |
| /PREP7 | |
| ! Load the STEP file into ANSYS | |
| /FREAD, {step_file_path}, STEP | |
| /SOLU | |
| ! Apply boundary conditions, loads, etc. | |
| SOLVE | |
| /POST1 | |
| ! Get results like displacement, stress, etc. | |
| """ | |
| # Save the APDL script to a file | |
| apdl_file = "/tmp/ansys_script.inp" | |
| with open(apdl_file, "w") as f: | |
| f.write(apdl_script) | |
| # Run ANSYS with the APDL script | |
| try: | |
| # Replace this command with the actual command for your ANSYS installation | |
| result = subprocess.run(["ansys", "-b", "-i", apdl_file, "-o", "/tmp/ansys_output.txt"], | |
| stdout=subprocess.PIPE, stderr=subprocess.PIPE) | |
| if result.returncode != 0: | |
| raise Exception(f"Error running ANSYS: {result.stderr.decode()}") | |
| # Retrieve and return results from the output file (for example, displacement or stress) | |
| with open("/tmp/ansys_output.txt", "r") as f: | |
| simulation_results = f.read() | |
| return simulation_results | |
| except Exception as e: | |
| raise Exception(f"Error executing ANSYS simulation: {str(e)}") | |