cadquery
Sketch
Workplane
Assembly

LengthNthSelector()

LengthNthSelector() 是一个能够通过一系列向量的长度来选择对象的选择器。

语法

LengthNthSelector(lengths, nth)

参数

  • lengths:一个列表或元组,包含一系列向量的长度。
  • nth:一个整数,表示选择列表中的第几个向量。

用法示例

import cadquery as cq

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

# 根据长度选择对象
selected_obj = cylinder.faces(">Z").edges(">Y").wires().edges(
    LengthNthSelector([10, 15, 20, 25, 30], 2))

# 显示选择的对象
show_object(selected_obj)

在上面的示例中,我们首先创建了一个圆柱体对象,然后使用 faces(">Z")edges(">Y") 选择出其上表面中所有与 Y 轴正方向平行的边缘,接着选择这些边缘上的所有线段,最后使用 LengthNthSelector() 选择其中长度为 20 的线段。

方法说明

LengthNthSelector() 方法适用于选择一系列向量中长度为指定值的向量。该方法接受两个参数:

  • lengths 参数:包含一系列向量的长度的列表或元组。这些长度会被用来进行比较和匹配。在实现时,该方法会将对象的向量按长度从小到大排列,只有排在第 nth 个位置的向量长度与列表中对应的值相同才会被选择。
  • nth 参数:表示选择列表中的第几个向量。这个值应该是一个整数,不得大于向量列表的长度。

需要注意的是,该方法仅适用于向量列表中长度互不相同的情况。如果列表中存在长度相同的向量,可能会出现选择错误的情况。

参考资料