 |
CLIP Score: 25.53
from AIDL import *
def fountain_pen(
total_length: float = 5.5*inches,
body_diameter: float = 0.5*inches,
grip_diameter: float = 0.4*inches,
nib_length: float = 0.6*inches,
cap_length: float = 2.5*inches
):
body_length = total_length - nib_length - cap_length
grip_length = body_length / 4
# Define the structure of the fountain pen
pen = Assembly()
# Define the Body section of the pen
body = Solid(shift=(0, 0))
pen.body = body
# Define the Grip section of the pen
grip = Solid(shift=(0, -body_length))
pen.grip = grip
# Define the Nib section of the pen
nib = Solid(shift=(0, -body_length - grip_length))
pen.nib = nib
# Define the Cap section of the pen
cap = Solid(shift=(0, body_length + cap_length/2))
pen.cap = cap
# Add geometry to the Body
body.wall = RoundedRectangle((0,0), body_diameter, body_length, body_diameter/10)
# Add geometry to the Grip
grip.top = RoundedRectangle((0,0), grip_diameter, grip_length, grip_diameter/10)
# Add geometry to the Nib
nib_section = Triangle(center=(0, nib_length/2), base_width=grip_diameter, height=nib_length)
nib.left_spline = Line(nib_section.left_corner, (0, grip_diameter/2))
nib.right_spline = Line(nib_section.right_corner, (0, grip_diameter/2))
nib.tip = nib_section
# Add geometry to the Cap
cap.wall = RoundedRectangle((0,0), body_diameter, cap_length, body_diameter/10)
return pen
# Instantiate and render the model
with AIDL_2D:
model = fountain_pen()
print(model.Solve())
model.Render()
|
Please write an AIDL program to generate a fountain pen
Sure, let's break down the process step-by-step to create a fountain pen model using AIDL.
### Step 1: Define Parameters
We'll start by defining some basic parameters for our fountain pen such as the total length, body diameter, grip diameter, and cap length.
### Step 2: Define the Structure
Next, we will create the main components of the fountain pen: the body, the grip section, the nib, and the cap.
### Step 3: Add Geometry
For each structural component, we will define the 2D geometries.
### Step 4: Assemble the Model
Finally, we'll assemble all the components together.
Here's the complete AIDL program for a simple fountain pen:
```python
from AIDL import *
def fountain_pen(
total_length: float = 5.5*inches,
body_diameter: float = 0.5*inches,
grip_diameter: float = 0.4*inches,
nib_length: float = 0.6*inches,
cap_length: float = 2.5*inches
):
body_length = total_length - nib_length - cap_length
grip_length = body_length / 4
# Define the structure of the fountain pen
pen = Assembly()
# Define the Body section of the pen
body = Solid(shift=(0, 0))
pen.body = body
# Define the Grip section of the pen
grip = Solid(shift=(0, -body_length))
pen.grip = grip
# Define the Nib section of the pen
nib = Solid(shift=(0, -body_length - grip_length))
pen.nib = nib
# Define the Cap section of the pen
cap = Solid(shift=(0, body_length + cap_length/2))
pen.cap = cap
# Add geometry to the Body
body.wall = RoundedRectangle((0,0), body_diameter, body_length, body_diameter/10)
# Add geometry to the Grip
grip.top = RoundedRectangle((0,0), grip_diameter, grip_length, grip_diameter/10)
# Add geometry to the Nib
nib_section = Triangle(center=(0, nib_length/2), base_width=grip_diameter, height=nib_length)
nib.left_spline = Line(nib_section.left_corner, (0, grip_diameter/2))
nib.right_spline = Line(nib_section.right_corner, (0, grip_diameter/2))
nib.tip = nib_section
# Add geometry to the Cap
cap.wall = RoundedRectangle((0,0), body_diameter, cap_length, body_diameter/10)
return pen
# Instantiate and render the model
with AIDL_2D:
model = fountain_pen()
print(model.Solve())
model.Render()
```
This code models a simple fountain pen with a body, grip, nib, and cap. Adjust the parameters as needed to match specific design requirements.
Feel free to ask any questions or request modifications!
|