cadquery
Sketch
Workplane
Assembly

Sketch.constrain()

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

Sketch.constrain 示例