cadquery
Sketch
Workplane
Assembly

CenterNthSelector()

概述

CenterNthSelector() 是一个 CADquery 工具,用于选择一个几何对象中心位置的第 n 个实例作为选择目标。

语法

CenterNthSelector(n: int, center_func: Callable[[Workplane], Tuple[float, float, float]], tolerance: float = 0.0001)

参数

  • n: 必需参数,表示要选择实例的索引号,从 0 开始计数。
  • center_func: 必需参数,表示一个函数,用于计算几何对象的中心位置。该函数需要接受一个参数 workplane,表示当前 CADquery 的工作平面,返回一个长度为 3 的元组,表示中心点坐标 (x,y,z)。
  • tolerance: 可选参数,表示精度误差限制,在默认情况下为 0.0001。

返回值

CenterNthSelector() 返回一个函数,该函数接受一个参数 info,表示选择结果的相关信息,返回一个 CADquery 对象。

示例

以下示例演示了如何使用 CenterNthSelector() 方法选择一个圆柱体中心的第一个实例:

import cadquery as cq

# 定义函数以计算几何对象的中心
def find_center(workplane):
    center = workplane.val().Center()
    x, y, z = center.x, center.y, center.z
    return x, y, z

# 创建圆柱体
cyl = cq.Workplane("XY").circle(10).extrude(20)

# 选择中心的第一个实例
result = cyl.eachpoint(CenterNthSelector(0, find_center))

在上面的例子中,我们定义了一个函数 find_center 来计算圆柱体的中心位置。我们选择了 CenterNthSelector(0, find_center),表示选择圆柱体中心的第一个实例。最后,我们将结果存储在 result 变量中。