Sketch.constrain()
是CADquery中的一个方法,用于在草图中定义约束。在草图中,约束用于定义各个元素之间的关系,以确保形状的正确性和准确性。CADquery使用Geometric Constraint Solver (GCS)来自动计算约束值。
Sketch.constrain(constraint_type, *args, value=None, angle=None)
constraint_type
: 约束的类型,决定了后面要提供哪些参数。可用的约束类型包括:
Distance
: 距离约束
ent1
, ent2
, distance
ent1
: 约束距离的第一个实体ent2
: 约束距离的第二个实体distance
: 约束的距离Radius
: 半径约束
ent
, radius
ent
: 要约束的实体radius
: 约束的半径Angle
: 角度约束
ent1
, ent2
, angle
ent1
: 角度的第一个实体ent2
: 角度的第二个实体angle
: 约束的角度Parallel
: 平行约束
ent1
, ent2
ent1
: 平行的第一个实体ent2
: 平行的第二个实体Perpendicular
: 垂直约束
ent1
, ent2
ent1
: 垂直的第一个实体ent2
: 垂直的第二个实体Horizontal
: 水平约束
ent
ent
: 要水平约束的实体Vertical
: 竖直约束
ent
ent
: 要垂直约束的实体*args
: 根据约束类型不同,提供不同数量的参数。
value
: 约束的值,可选参数。一般用于Distance
约束。
angle
: 约束的角度,可选参数。一般用于Angle
约束。
该方法没有返回值,会直接在草图中添加约束。
以下示例演示如何在草图中添加约束:
# 导入CADquery库
import cadquery as cq
# 创建一个草图
sketch = cq.Workplane("XY").rect(10, 10).vertices().toPending()
# 添加约束
sketch.constrain("Distance", sketch.vertices()[0], sketch.vertices()[1], value=7.07)
sketch.constrain("Radius", sketch.vertices()[0], 2)
# 将草图转换为实体
result = sketch.extrude(1)
# 显示实体
show_object(result)
运行上述代码的结果如下,其中蓝色的直线是距离为7.07的约束线,绿色的圆圈是以第一个点为圆心,半径为2的半径约束: