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的半径约束:
