33 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
import cadquery as cq
 | 
						|
 | 
						|
# These can be modified rather than hardcoding values for each dimension.
 | 
						|
plate_radius = 2.0          # The radius of the plate that will be extruded
 | 
						|
hole_pattern_radius = 0.25  # Radius of circle where the holes will be placed
 | 
						|
thickness = 0.125           # The thickness of the plate that will be extruded
 | 
						|
 | 
						|
# Make a plate with 4 holes in it at various points in a polar arrangement from
 | 
						|
# the center of the workplane.
 | 
						|
# 1.  Establishes a workplane that an object can be built on.
 | 
						|
# 1a. Uses the named plane orientation "front" to define the workplane, meaning
 | 
						|
#     that the positive Z direction is "up", and the negative Z direction
 | 
						|
#     is "down".
 | 
						|
# 2.  A 2D circle is drawn that will become though outer profile of the plate.
 | 
						|
r = cq.Workplane("front").circle(plate_radius)
 | 
						|
 | 
						|
# 3. Push 4 points on the stack that will be used as the center points of the
 | 
						|
#    holes.
 | 
						|
r = r.pushPoints([(1.5, 0), (0, 1.5), (-1.5, 0), (0, -1.5)])
 | 
						|
 | 
						|
# 4. This circle() call will operate on all four points, putting a circle at
 | 
						|
#    each one.
 | 
						|
r = r.circle(hole_pattern_radius)
 | 
						|
 | 
						|
# 5.  All 2D geometry is extruded to the specified thickness of the plate.
 | 
						|
# 5a. The small hole circles are enclosed in the outer circle of the plate and
 | 
						|
#     so it is assumed that we want them to be cut out of the plate.  A
 | 
						|
#     separate cut operation is not needed.
 | 
						|
result = r.extrude(thickness)
 | 
						|
 | 
						|
# Displays the result of this script
 | 
						|
show_object(result)
 |