 |
CLIP Score: 29.51
from AIDL import *
def cabinet(
width: float = 18 * inches,
depth: float = 12 * inches,
height: float = 36 * inches,
shelf_thickness: float = 0.75 * inches,
back_thickness: float = 0.25 * inches
):
"""
Model a simple rectangular cabinet with back, two sides, top, bottom, and two shelves.
"""
# Define the root structure
cabinet = Solid()
# Back of the cabinet
back = Solid()
cabinet.back = back
back.panel = Rectangle((0,0), width, height)
# Two sides of the cabinet
left_side = Solid(shift=(-width/2 + shelf_thickness/2, 0))
right_side = Solid(shift=(width/2 - shelf_thickness/2, 0))
cabinet.left_side = left_side
cabinet.right_side = right_side
left_side.panel = Rectangle((0,0), depth, height)
right_side.panel = Rectangle((0,0), depth, height)
# Top and Bottom of the cabinet
top = Solid(shift=(0, height/2-shelf_thickness/2))
bottom = Solid(shift=(0, -height/2+shelf_thickness/2))
cabinet.top = top
cabinet.bottom = bottom
top.panel = Rectangle((0,0), width, depth)
bottom.panel = Rectangle((0,0), width, depth)
# Shelves in the cabinet
shelf1 = Solid(shift=(0, height/4))
shelf2 = Solid(shift=(0, -height/4))
cabinet.shelf1 = shelf1
cabinet.shelf2 = shelf2
shelf1.panel = Rectangle((0,0), width, depth - back_thickness)
shelf2.panel = Rectangle((0,0), width, depth - back_thickness)
return cabinet
with AIDL_2D:
model = cabinet()
print(model.Solve())
model.Render()
|
Please write an AIDL program to generate a cabinet
Creating a cabinet in AIDL will involve defining various parts such as the sides, top, bottom, back, and shelves. Each of these parts can be modeled as Solid structures. For simplicity, let's create a basic rectangular cabinet with a back, two sides, a top, a bottom, and two shelves.
Here is how we can define the cabinet:
```python
from AIDL import *
def cabinet(
width: float = 18 * inches,
depth: float = 12 * inches,
height: float = 36 * inches,
shelf_thickness: float = 0.75 * inches,
back_thickness: float = 0.25 * inches
):
"""
Model a simple rectangular cabinet with back, two sides, top, bottom, and two shelves.
"""
# Define the root structure
cabinet = Solid()
# Back of the cabinet
back = Solid()
cabinet.back = back
back.panel = Rectangle((0,0), width, height)
# Two sides of the cabinet
left_side = Solid(shift=(-width/2 + shelf_thickness/2, 0))
right_side = Solid(shift=(width/2 - shelf_thickness/2, 0))
cabinet.left_side = left_side
cabinet.right_side = right_side
left_side.panel = Rectangle((0,0), depth, height)
right_side.panel = Rectangle((0,0), depth, height)
# Top and Bottom of the cabinet
top = Solid(shift=(0, height/2-shelf_thickness/2))
bottom = Solid(shift=(0, -height/2+shelf_thickness/2))
cabinet.top = top
cabinet.bottom = bottom
top.panel = Rectangle((0,0), width, depth)
bottom.panel = Rectangle((0,0), width, depth)
# Shelves in the cabinet
shelf1 = Solid(shift=(0, height/4))
shelf2 = Solid(shift=(0, -height/4))
cabinet.shelf1 = shelf1
cabinet.shelf2 = shelf2
shelf1.panel = Rectangle((0,0), width, depth - back_thickness)
shelf2.panel = Rectangle((0,0), width, depth - back_thickness)
return cabinet
with AIDL_2D:
model = cabinet()
print(model.Solve())
model.Render()
```
### Explanation:
1. **Root Structure:** We create a root `Solid` structure called `cabinet`.
2. **Back Panel:** A single rectangle representing the back of the cabinet.
3. **Side Panels:** Two `Solid` structures, left and right, each shifted and representing the side panels.
4. **Top and Bottom Panels:** Two `Solid` structures, top and bottom, each representing the top and bottom panels of the cabinet.
5. **Shelves:** Two `Solid` structures, each representing a shelf. They are shifted to desired positions within the cabinet.
This basic structure gives you a solid starting point for a cabinet. You can expand upon this by adding more features, such as doors, handles, and more complex internal structures, based on your specific requirements.
Let me know if you need any modifications or additional details!
|