Spaces:
Build error
Build error
| import win32com.client # For SolidWorks API | |
| import pyansys # For ANSYS APDL integration | |
| import os | |
| import numpy as np | |
| import pandas as pd | |
| # SolidWorks Automation | |
| def create_solidworks_model(material, thickness, length, width): | |
| swApp = win32com.client.Dispatch("SldWorks.Application") | |
| swApp.Visible = True | |
| model = swApp.NewDocument("C:\\ProgramData\\SOLIDWORKS\\SOLIDWORKS 2020\\templates\\part.prtdot", 0, 0, 0) | |
| swModel = swApp.ActiveDoc | |
| swPart = swModel.Extension.SelectByID2('Face1', 'FACE', 0, 0, 0, False, 0, None, 0) | |
| # Create a rectangle for the part (simple example) | |
| swModel.CreateRectangle2(length, width, thickness) | |
| # Save the model | |
| model.SaveAs(f"C:\\Users\\OM\\Desktop\\press_tool_{material}.SLDPRT") | |
| # ANSYS APDL Automation | |
| def run_ansys_simulation(model_file): | |
| # Initialize ANSYS API using pyansys | |
| solution = pyansys.Mapdl() | |
| # Define material properties (for example: steel) | |
| solution.prep7() | |
| solution.mp('EX', 1, 2.1e11) # Young's modulus in Pa | |
| solution.mp('NUXY', 1, 0.3) # Poisson's ratio | |
| # Import the model created by SolidWorks | |
| solution.import_model(model_file) | |
| # Set boundary conditions, loads, and run the simulation | |
| solution.solve() | |
| # Extract results (e.g., stress, displacement) | |
| stress_results = solution.post_processing.stress() | |
| # Return results as a dataframe for easy analysis | |
| result_data = pd.DataFrame(stress_results) | |
| return result_data | |
| # Main execution | |
| def main(): | |
| # Example parameters for a tool | |
| material = 'steel' | |
| thickness = 5 # mm | |
| length = 100 # mm | |
| width = 50 # mm | |
| # Create model in SolidWorks | |
| create_solidworks_model(material, thickness, length, width) | |
| # Path to the model file | |
| model_file = f"C:\\Users\\OM\\Desktop\\press_tool_{material}.SLDPRT" | |
| # Run simulation in ANSYS | |
| results = run_ansys_simulation(model_file) | |
| # Output results | |
| results.to_excel(f"C:\\Users\\OM\\Desktop\\simulation_results.xlsx") | |
| print("Simulation completed. Results saved.") | |
| if __name__ == "__main__": | |
| main() | |