 |
CLIP Score: 27.08
from AIDL import *
def sunglasses(lens_radius_x: float = 1.5*inches, lens_radius_y: float = 1*inch, bridge_length: float = 1*inch, arm_length: float = 5*inches, arm_width: float = 0.25*inch):
"""
Model a simple pair of sunglasses. Each lens is an ellipse, connected by a rectangular bridge.
Each side arm is a long rectangle connected to the outer side of each lens.
"""
sunglasses = Assembly()
# Create the left lens
left_lens = Solid(shift=(-lens_radius_x - bridge_length/2, 0))
left_lens.shape = Circle((0, 0), max(lens_radius_x, lens_radius_y))
# Create the right lens
right_lens = Solid(shift=(lens_radius_x + bridge_length / 2, 0))
right_lens.shape = Circle((0, 0), max(lens_radius_x, lens_radius_y))
# Create the bridge
bridge = Solid()
bridge.shape = RoundedRectangle((0,0), bridge_length, lens_radius_y/2, lens_radius_y/8)
# Create the left arm
left_arm = Solid(shift=(-lens_radius_x - 2 * bridge_length, -lens_radius_y))
left_arm.shape = Rectangle((0,0), arm_length*1.5, arm_width, axis_aligned=False)
# Create the right arm
right_arm = Solid(shift=(lens_radius_x + 2 * bridge_length, -lens_radius_y))
right_arm.shape = Rectangle((0,0), arm_length*1.5, arm_width, axis_aligned=False)
# Add components to the assembly
sunglasses.left_lens = left_lens
sunglasses.right_lens = right_lens
sunglasses.bridge = bridge
sunglasses.left_arm = left_arm
sunglasses.right_arm = right_arm
return sunglasses
with AIDL_2D:
model = sunglasses()
print(model.Solve())
model.Render()
|
Please write an AIDL program to generate a sunglasses
Sure, let's create an AIDL program for generating sunglasses. A pair of sunglasses typically consists of the following parts:
1. Two lenses
2. A bridge connecting the lenses
3. Two side arms
For simplicity, we'll model the lenses as ellipses, the bridge as a rectangle, and the side arms as long rectangles.
Here's a basic outline:
```python
from AIDL import *
def sunglasses(lens_radius_x: float = 1.5*inches, lens_radius_y: float = 1*inch, bridge_length: float = 1*inch, arm_length: float = 5*inches, arm_width: float = 0.25*inch):
"""
Model a simple pair of sunglasses. Each lens is an ellipse, connected by a rectangular bridge.
Each side arm is a long rectangle connected to the outer side of each lens.
"""
sunglasses = Assembly()
# Create the left lens
left_lens = Solid(shift=(-lens_radius_x - bridge_length/2, 0))
left_lens.shape = Circle((0, 0), max(lens_radius_x, lens_radius_y))
# Create the right lens
right_lens = Solid(shift=(lens_radius_x + bridge_length / 2, 0))
right_lens.shape = Circle((0, 0), max(lens_radius_x, lens_radius_y))
# Create the bridge
bridge = Solid()
bridge.shape = RoundedRectangle((0,0), bridge_length, lens_radius_y/2, lens_radius_y/8)
# Create the left arm
left_arm = Solid(shift=(-lens_radius_x - 2 * bridge_length, -lens_radius_y))
left_arm.shape = Rectangle((0,0), arm_length*1.5, arm_width, axis_aligned=False)
# Create the right arm
right_arm = Solid(shift=(lens_radius_x + 2 * bridge_length, -lens_radius_y))
right_arm.shape = Rectangle((0,0), arm_length*1.5, arm_width, axis_aligned=False)
# Add components to the assembly
sunglasses.left_lens = left_lens
sunglasses.right_lens = right_lens
sunglasses.bridge = bridge
sunglasses.left_arm = left_arm
sunglasses.right_arm = right_arm
return sunglasses
with AIDL_2D:
model = sunglasses()
print(model.Solve())
model.Render()
```
This program:
- Creates an assembly for the sunglasses.
- Defines the lenses as circles.
- Defines a bridge as a rounded rectangle.
- Defines the arms as rectangles oriented sideways.
Feel free to adjust the dimensions or add more detailed features like curvature to the lenses or more detailed shapes for the arms and bridge. Let me know if you need any more customization or specific features added!
|