尝试在 CadQuery Python 中对螺栓进行建模:
import cadquery as cq
from math import sqrt, tan, radians
# Параметры модели
head_diameter = 10.0 # Диаметр по вершинам (описанная окружность)
head_height = 5.0 # Высота головки
shaft_diameter = 5.0 # Диаметр стержня
shaft_length = 20.0 # Длина стержня
# Расчетные параметры
R = head_diameter / 2 # Радиус описанной окружности
r = R * sqrt(3)/2 # Радиус вписанной окружности
chamfer_size = (R - r) / tan(45) # Размер фаски для угла 45°
#1. Создаем шестигранную головку
bolt_head = (
cq.Workplane("XY")
.polygon(6, 2*R) # Создаем шестигранник
.extrude(head_height) # Выдавливаем на высоту головки
.translate((0, 0, -1 * (head_height/2)))
)
bolt_head = bolt_head.edges("Z").chamfer(1)
# 2. Создаем стержень
bolt_shaft = (
cq.Workplane("XY")
.circle(shaft_diameter/2)
.extrude(-shaft_length)
)
# 3. Объединяем компоненты
bolt = bolt_head.union(bolt_shaft)
我不是 cadquery 方面的专家,所以我必须深入研究一下 api。我得出的结论是,解决你的问题最简单的方法是多次减去固体物体。下面是一个例子(当然没有精确的尺寸):
采取了稍微不同的路线。但具有尺寸和控制。感谢 strawdog 提出的可以实现的想法!!!