 |
CLIP Score: 25.63
from AIDL import *
def sunglasses():
"""
Create a simple model of sunglasses with frames, lenses, bridge, and temples.
"""
# Main structure
sunglasses = Assembly()
# Substructures for each part
frames = Solid()
lenses = Solid()
bridge = Solid()
temples = Assembly()
sunglasses.frames = frames
sunglasses.lenses = lenses
sunglasses.bridge = bridge
sunglasses.temples = temples
# Geometry for the frames
left_frame = RoundedRectangle(center=(-1*inch, 0), width=2.5*inches, height=1.5*inches, corner_radius=0.2*inch)
right_frame = RoundedRectangle(center=(1*inch, 0), width=2.5*inches, height=1.5*inches, corner_radius=0.2*inch)
frames.left_frame = left_frame
frames.right_frame = right_frame
# Geometry for the lenses (coinciding with the frames)
left_lens = RoundedRectangle(center=(-1*inch, 0), width=2.3*inches, height=1.3*inches, corner_radius=0.2*inch)
right_lens = RoundedRectangle(center=(1*inch, 0), width=2.3*inches, height=1.3*inches, corner_radius=0.2*inch)
lenses.left_lens = left_lens
lenses.right_lens = right_lens
# Geometry for the bridge
bridge_rect = Rectangle(center=(0, -0.1*inch), width=0.5*inch, height=0.2*inch)
bridge.bridge_rect = bridge_rect
# Geometry for the temples
left_temple = Solid(shift=(-1.75*inch, 0))
right_temple = Solid(shift=(1.75*inch, 0))
left_temple_piece = Rectangle(center=(-0.5*inch, 0), width=3*inches, height=0.3*inch)
right_temple_piece = Rectangle(center=(0.5*inch, 0), width=3*inches, height=0.3*inch)
left_temple.left_temple_piece = left_temple_piece
right_temple.right_temple_piece = right_temple_piece
temples.left_temple = left_temple
temples.right_temple = right_temple
# Optional: Add nose pads for more realistic design
nose_pads = Solid()
left_nose_pad = Circle(center=(-0.3*inch, -0.3*inch), radius=0.1*inch)
right_nose_pad = Circle(center=(0.3*inch, -0.3*inch), radius=0.1*inch)
nose_pads.left_nose_pad = left_nose_pad
nose_pads.right_nose_pad = right_nose_pad
sunglasses.nose_pads = nose_pads
return sunglasses
with AIDL_2D:
model = sunglasses()
print(model.Solve())
model.Render()
|
Please write an AIDL program to generate a sunglasses
Sure, let's proceed step-by-step to create a sunglasses model using AIDL. A pair of sunglasses generally consists of several parts:
1. **Frames** (includes the rims around the lenses)
2. **Lenses**
3. **Bridge** (connecting the two lenses)
4. **Temples/Arms** (the parts that rest on the ears)
5. **Nose Pads** (optional, for better comfort)
We'll start by writing the base structures and then filling in the geometry. Let's proceed.
1. **Define the main structure:**
2. **Add sub-structures for each part:**
3. **Create geometry for each subpart:**
Here's the AIDL program to generate a basic model of sunglasses:
```python
from AIDL import *
def sunglasses():
"""
Create a simple model of sunglasses with frames, lenses, bridge, and temples.
"""
# Main structure
sunglasses = Assembly()
# Substructures for each part
frames = Solid()
lenses = Solid()
bridge = Solid()
temples = Assembly()
sunglasses.frames = frames
sunglasses.lenses = lenses
sunglasses.bridge = bridge
sunglasses.temples = temples
# Geometry for the frames
left_frame = RoundedRectangle(center=(-1*inch, 0), width=2.5*inches, height=1.5*inches, corner_radius=0.2*inch)
right_frame = RoundedRectangle(center=(1*inch, 0), width=2.5*inches, height=1.5*inches, corner_radius=0.2*inch)
frames.left_frame = left_frame
frames.right_frame = right_frame
# Geometry for the lenses (coinciding with the frames)
left_lens = RoundedRectangle(center=(-1*inch, 0), width=2.3*inches, height=1.3*inches, corner_radius=0.2*inch)
right_lens = RoundedRectangle(center=(1*inch, 0), width=2.3*inches, height=1.3*inches, corner_radius=0.2*inch)
lenses.left_lens = left_lens
lenses.right_lens = right_lens
# Geometry for the bridge
bridge_rect = Rectangle(center=(0, -0.1*inch), width=0.5*inch, height=0.2*inch)
bridge.bridge_rect = bridge_rect
# Geometry for the temples
left_temple = Solid(shift=(-1.75*inch, 0))
right_temple = Solid(shift=(1.75*inch, 0))
left_temple_piece = Rectangle(center=(-0.5*inch, 0), width=3*inches, height=0.3*inch)
right_temple_piece = Rectangle(center=(0.5*inch, 0), width=3*inches, height=0.3*inch)
left_temple.left_temple_piece = left_temple_piece
right_temple.right_temple_piece = right_temple_piece
temples.left_temple = left_temple
temples.right_temple = right_temple
# Optional: Add nose pads for more realistic design
nose_pads = Solid()
left_nose_pad = Circle(center=(-0.3*inch, -0.3*inch), radius=0.1*inch)
right_nose_pad = Circle(center=(0.3*inch, -0.3*inch), radius=0.1*inch)
nose_pads.left_nose_pad = left_nose_pad
nose_pads.right_nose_pad = right_nose_pad
sunglasses.nose_pads = nose_pads
return sunglasses
with AIDL_2D:
model = sunglasses()
print(model.Solve())
model.Render()
```
This program creates a simple model of sunglasses with frames, lenses, the bridge, temples (arms), and optional nose pads. Each part is modeled using basic geometries and corresponding structures.
Please let me know if you need any adjustments or additional features for your sunglasses model!
|