27 lines
642 B
Python
27 lines
642 B
Python
# This example is meant to be used from within the CadQuery module of FreeCAD.
|
|
import numpy as np
|
|
import cadquery
|
|
from Helpers import show
|
|
|
|
# Square side and offset in x and y.
|
|
side = 10
|
|
offset = 5
|
|
|
|
# Define the locations that the polyline will be drawn to/thru.
|
|
# The polyline is defined as numpy.array so that operations like translation
|
|
# of all points are simplified.
|
|
pts = np.array([
|
|
(0, 0),
|
|
(side, 0),
|
|
(side, side),
|
|
(0, side),
|
|
(0, 0),
|
|
]) + [offset, offset]
|
|
|
|
result = cadquery.Workplane('XY') \
|
|
.polyline(pts).extrude(2) \
|
|
.faces('+Z').workplane().circle(side / 2).extrude(1)
|
|
|
|
# Render the solid
|
|
show(result)
|