 |
CLIP Score: 30.87
from AIDL import *
def chair(seat_width: float = 4 * inches, seat_depth: float = 4 * inches, seat_thickness: float = 0.5 * inches,
leg_height: float = 6 * inches, leg_thickness: float = 0.5 * inches,
backrest_height: float = 8 * inches, backrest_thickness: float = 0.5 * inches):
"""
Create a simple chair model consisting of a seat, four legs, and a backrest.
"""
chair = Solid()
# Seat
seat = Solid()
chair.seat = seat
seat.body = Rectangle((0, 0), seat_width, seat_depth, axis_aligned=True)
# Legs
legs = []
leg_positions = [
(-seat_width / 2 + leg_thickness / 2, -seat_depth / 2 + leg_thickness / 2), # Front-left
(seat_width / 2 - leg_thickness / 2, -seat_depth / 2 + leg_thickness / 2), # Front-right
(-seat_width / 2 + leg_thickness / 2, seat_depth / 2 - leg_thickness / 2), # Back-left
(seat_width / 2 - leg_thickness / 2, seat_depth / 2 - leg_thickness / 2) # Back-right
]
for i, (x, y) in enumerate(leg_positions):
leg = Solid(shift=(x, y))
leg.body = Rectangle((0, -leg_height / 2), leg_thickness, leg_height, axis_aligned=True)
legs.append(leg)
seat.__setattr__(f"leg_{i + 1}", leg)
# Backrest
backrest = Solid(shift=(0, seat_depth / 2 - backrest_thickness / 2))
backrest.body = Rectangle((0, backrest_height / 2), seat_width, backrest_thickness, axis_aligned=True)
seat.backrest = backrest
return chair
with AIDL_2D:
model = chair()
print(model.Solve())
model.Render()
|
Please write an AIDL program to generate a chair
Sure! Let's break the chair model into components to follow the recursive and modular structure approach common in AIDL. We'll create a simple chair with a seat, four legs, and a backrest.
Let's outline the steps:
1. Create a `Solid` structure for the chair's seat.
2. Create `Solid` structures for the four legs and attach them to the seat.
3. Create a `Solid` structure for the backrest and attach it to the seat.
```python
from AIDL import *
def chair(seat_width: float = 4 * inches, seat_depth: float = 4 * inches, seat_thickness: float = 0.5 * inches,
leg_height: float = 6 * inches, leg_thickness: float = 0.5 * inches,
backrest_height: float = 8 * inches, backrest_thickness: float = 0.5 * inches):
"""
Create a simple chair model consisting of a seat, four legs, and a backrest.
"""
chair = Solid()
# Seat
seat = Solid()
chair.seat = seat
seat.body = Rectangle((0, 0), seat_width, seat_depth, axis_aligned=True)
# Legs
legs = []
leg_positions = [
(-seat_width / 2 + leg_thickness / 2, -seat_depth / 2 + leg_thickness / 2), # Front-left
(seat_width / 2 - leg_thickness / 2, -seat_depth / 2 + leg_thickness / 2), # Front-right
(-seat_width / 2 + leg_thickness / 2, seat_depth / 2 - leg_thickness / 2), # Back-left
(seat_width / 2 - leg_thickness / 2, seat_depth / 2 - leg_thickness / 2) # Back-right
]
for i, (x, y) in enumerate(leg_positions):
leg = Solid(shift=(x, y))
leg.body = Rectangle((0, -leg_height / 2), leg_thickness, leg_height, axis_aligned=True)
legs.append(leg)
seat.__setattr__(f"leg_{i + 1}", leg)
# Backrest
backrest = Solid(shift=(0, seat_depth / 2 - backrest_thickness / 2))
backrest.body = Rectangle((0, backrest_height / 2), seat_width, backrest_thickness, axis_aligned=True)
seat.backrest = backrest
return chair
with AIDL_2D:
model = chair()
print(model.Solve())
model.Render()
```
In this model:
- The `seat` is constructed as a simple rectangle.
- The `legs` are `Solid` structures shifted to each corner of the seat and extend downwards.
- The `backrest` is a `Solid` structure attached to the back of the seat.
You can customize the dimensions by changing the default parameters. If you have specific feedback on any part or additional requirements, please let me know, and we can tweak the program accordingly.
|