cadquery
Sketch
Workplane
Assembly

NearestToPointSelector()

NearestToPointSelector()cadquery 库中的一种选择器,可用于查找与给定点最接近的地方的形状。此选择器可用于在 CAD 模型中查找特定形状的位置,并进行精确定位。

参数

  • point: 三维点,被查询的点坐标。
  • max_distance: 最大距离,可选参数。如果指定了此参数,则仅找到距离点少于此最大距离的最接近的形状。否则,它将找到最接近的任何形状,忽略距离因素。

方法

NearestToPointSelector() 仅有一个 select() 方法,返回距离最近的 Shape 对象。如果没有找到符合条件的形状,则返回 None

def select(shapes: List[Shape]) -> Shape

用法示例

以下示例演示了如何在 CAD 模型中查找距离给定点最近的形状:

import cadquery as cq

# 创建一个立方体
c = cq.Workplane().box(1, 1, 1)

# 查找距离 (0.5, 0.5, 0.5) 最近的形状
selector = cq.NearestToPointSelector((0.5, 0.5, 0.5))
nearest_shape = selector.select(c.vals())

# 输出距离最近的形状
if nearest_shape:
    print(nearest_shape)
else:
    print("No shape found!")

在上面的示例中,我们首先创建了一个立方体。然后我们使用 NearestToPointSelector() 创建了一个选择器,并指定了要查询的点 (0.5, 0.5, 0.5)。最后,我们使用 select() 方法选择并输出距离最近的形状。如果找不到任何形状,则输出 “No shape found!”。

注意事项

  • NearestToPointSelector() 仅能找到特定的一个形状,如果要查找多个距离最近的形状,则需要编写相应的代码。
  • 如果指定了 max_distance 参数,则选择器将忽略距离大于此最大距离的所有形状。如果未指定此参数,则选择器将查找最接近的任何形状。
  • NearestToPointSelector() 接受 Point 对象作为输入,并且要传入 Shape 类型的列表进行选择。若需查找点以外的其它形态,则可使用其他选择器来过滤模型。