 |
CLIP Score: 26.95
from AIDL import *
def sunglasses(
lens_width: float = 2.5*inches,
lens_height: float = 1*inch,
bridge_width: float = 0.75*inch,
temple_length: float = 5*inches,
temple_width: float = 0.25*inch
):
"""
Create a model of a simple pair of sunglasses.
"""
sunglasses = Solid()
# Define the frame structure
frame = Solid()
sunglasses.frame = frame
# Define the left and right lenses and bridges substructures
left_lens = Solid(shift=(-lens_width-bridge_width/2, 0))
right_lens = Solid(shift=(lens_width+bridge_width/2, 0))
frame.left_lens = left_lens
frame.right_lens = right_lens
# Adding lenses substructures
left_lens.lens_body = Rectangle((0, 0), lens_width, lens_height)
right_lens.lens_body = Rectangle((0, 0), lens_width, lens_height)
# Define the bridge geometry
frame.bridge = Rectangle((0, 0), bridge_width, lens_height / 2)
# Define temples structure
left_temple = Solid(shift=(-lens_width - bridge_width - temple_length/2, -lens_height / 2))
right_temple = Solid(shift=(lens_width + bridge_width + temple_length/2, -lens_height / 2))
frame.left_temple = left_temple
frame.right_temple = right_temple
# Adding the temple geometries
left_temple.arm = Rectangle((0, 0), temple_length, temple_width)
right_temple.arm = Rectangle((0, 0), temple_length, temple_width)
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 to model a simple pair of sunglasses. We'll design the sunglasses with the following main parts:
1. **Frame**: The overall shape of the sunglasses, including the bridge.
2. **Lenses**: The lenses fitted into the frame.
3. **Temples**: The arms of the sunglasses that rest on the ears.
We'll use a combination of rectangular and circular geometry to construct these parts. Let's define a function for our sunglasses model.
```python
from AIDL import *
def sunglasses(
lens_width: float = 2.5*inches,
lens_height: float = 1*inch,
bridge_width: float = 0.75*inch,
temple_length: float = 5*inches,
temple_width: float = 0.25*inch
):
"""
Create a model of a simple pair of sunglasses.
"""
sunglasses = Solid()
# Define the frame structure
frame = Solid()
sunglasses.frame = frame
# Define the left and right lenses and bridges substructures
left_lens = Solid(shift=(-lens_width-bridge_width/2, 0))
right_lens = Solid(shift=(lens_width+bridge_width/2, 0))
frame.left_lens = left_lens
frame.right_lens = right_lens
# Adding lenses substructures
left_lens.lens_body = Rectangle((0, 0), lens_width, lens_height)
right_lens.lens_body = Rectangle((0, 0), lens_width, lens_height)
# Define the bridge geometry
frame.bridge = Rectangle((0, 0), bridge_width, lens_height / 2)
# Define temples structure
left_temple = Solid(shift=(-lens_width - bridge_width - temple_length/2, -lens_height / 2))
right_temple = Solid(shift=(lens_width + bridge_width + temple_length/2, -lens_height / 2))
frame.left_temple = left_temple
frame.right_temple = right_temple
# Adding the temple geometries
left_temple.arm = Rectangle((0, 0), temple_length, temple_width)
right_temple.arm = Rectangle((0, 0), temple_length, temple_width)
return sunglasses
with AIDL_2D:
model = sunglasses()
print(model.Solve())
model.Render()
```
Here’s a breakdown of how the structure is outlined:
1. **Frame**: A rectangular frame connecting the lenses.
2. **Lenses**: Two rectangular lenses shifted left and right from the center, representing the left and right lenses.
3. **Bridge**: A rectangular bridge at the center-top of the lenses, connecting the frame.
4. **Temples**: Rectangular arms shifted left and right from the lenses, representing the temples of the sunglasses.
Note that the program is defined as a function called `sunglasses` that takes several design parameters with reasonable defaults. The function returns the root structure (`sunglasses`), which includes the entire composition.
If you need any adjustments or additional features, feel free to let me know!
|