26 lines
1.3 KiB
Python
26 lines
1.3 KiB
Python
import cadquery as cq
|
|
|
|
# Create a simple block with a hole through it that we can split.
|
|
# 1. Establishes a workplane that an object can be built on.
|
|
# 1a. Uses the X and Y origins to define the workplane, meaning that the
|
|
# positive Z direction is "up", and the negative Z direction is "down".
|
|
# 2. Creates a plain box to base future geometry on with the box() function.
|
|
# 3. Selects the top-most face of the box and establishes a workplane on it
|
|
# that new geometry can be built on.
|
|
# 4. Draws a 2D circle on the new workplane and then uses it to cut a hole
|
|
# all the way through the box.
|
|
c = cq.Workplane("XY").box(1, 1, 1).faces(">Z").workplane() \
|
|
.circle(0.25).cutThruAll()
|
|
|
|
# 5. Selects the face furthest away from the origin in the +Y axis direction.
|
|
# 6. Creates an offset workplane that is set in the center of the object.
|
|
# 6a. One possible improvement to this script would be to make the dimensions
|
|
# of the box variables, and then divide the Y-axis dimension by 2.0 and
|
|
# use that to create the offset workplane.
|
|
# 7. Uses the embedded workplane to split the object, keeping only the "top"
|
|
# portion.
|
|
result = c.faces(">Y").workplane(-0.5).split(keepTop=True)
|
|
|
|
# Displays the result of this script
|
|
show_object(result)
|