Spaces:
Sleeping
Sleeping
| import matplotlib.pyplot as plt | |
| def visualize_results(simulator, length, width, thickness, stress, deformation): | |
| """ | |
| Generates 2D visualizations for simulation results. | |
| Parameters: | |
| simulator (str): Name of the simulator (e.g., 'Python-Based Solver'). | |
| length (float): Length of the object. | |
| width (float): Width of the object. | |
| thickness (float): Thickness of the object. | |
| stress (float): Stress value. | |
| deformation (float): Deformation value. | |
| Returns: | |
| str: Path to the 2D visualization image. | |
| """ | |
| # Generate 2D bar chart | |
| fig, ax = plt.subplots(figsize=(6, 4)) | |
| ax.bar(["Stress", "Deformation"], [stress, deformation], color=["red", "blue"]) | |
| ax.set_title(f"Simulation Results ({simulator})") | |
| ax.set_ylabel("Magnitude") | |
| ax.grid(True, linestyle="--", alpha=0.6) | |
| # Save the chart | |
| output_path = "results_2d.png" | |
| plt.savefig(output_path) | |
| plt.close(fig) | |
| return output_path, None | |
| def visualize_end_product(simulation_type, length, width, thickness, deformation): | |
| """ | |
| Visualize the end product based on the parameters. | |
| Parameters: | |
| simulation_type (str): 'plate' or 'beam'. | |
| length (float): Length of the product (mm). | |
| width (float): Width of the product (mm). | |
| thickness (float): Thickness of the product (mm). | |
| deformation (float): Deformation (mm). | |
| Returns: | |
| str: Path to the saved image of the visualization. | |
| """ | |
| fig, ax = plt.subplots(figsize=(6, 4)) | |
| if simulation_type == "plate": | |
| # Draw the plate | |
| rect = plt.Rectangle((0, 0), length, width, color="lightblue", alpha=0.8) | |
| ax.add_patch(rect) | |
| # Add deformation as text | |
| ax.text( | |
| length / 2, width / 2, | |
| f"Deformation: {deformation:.2f} mm", | |
| color="red", fontsize=10, ha="center" | |
| ) | |
| elif simulation_type == "beam": | |
| # Draw the beam | |
| rect = plt.Rectangle((0, 0), length, thickness, color="lightgreen", alpha=0.8) | |
| ax.add_patch(rect) | |
| # Add deformation as text | |
| ax.text( | |
| length / 2, thickness / 2, | |
| f"Deflection: {deformation:.2f} mm", | |
| color="red", fontsize=10, ha="center" | |
| ) | |
| else: | |
| raise ValueError("Invalid simulation type.") | |
| # Add dimensions | |
| ax.set_xlim(-10, length + 10) | |
| ax.set_ylim(-10, max(width, thickness) + 10) | |
| ax.set_title(f"Visualization of {simulation_type.capitalize()} End Product") | |
| ax.set_xlabel("Length (mm)") | |
| ax.set_ylabel("Width/Thickness (mm)") | |
| ax.grid(True, linestyle="--", alpha=0.6) | |
| # Save the visualization | |
| output_path = f"{simulation_type}_end_product.png" | |
| plt.savefig(output_path) | |
| plt.close(fig) | |
| return output_path | |