.. _selector_reference: ************************* CadQuery String Selectors ************************* .. automodule:: cadquery CadQuery selector strings allow filtering various types of object lists. Most commonly, Edges, Faces, and Vertices are used, but all objects types can be filtered. String selectors are used as arguments to the various selection methods: * :py:meth:`CQ.faces` * :py:meth:`CQ.edges` * :py:meth:`CQ.vertices` * :py:meth:`CQ.solids` * :py:meth:`CQ.shells` .. note:: String selectors are shortcuts to concrete selector classes, which you can use or extend. See :ref:`classreference` for more details If you find that the built-in selectors are not sufficient, you can easily plug in your own. See :ref:`extending` to see how. .. _filteringfaces: Filtering Faces ---------------- All types of filters work on faces. In most cases, the selector refers to the direction of the **normal vector** of the face. .. warning:: If a face is not planar, selectors are evaluated at the center of mass of the face. This can lead to results that are quite unexpected. The axis used in the listing below are for illustration: any axis would work similarly in each case. ========= ==================================== ====================================== ========================== Selector Selector Class Selects # objects returned ========= ==================================== ====================================== ========================== +Z :py:class:`DirectionSelector` Faces with normal in +z direction 0 or 1 \|Z :py:class:`ParallelDirSelector` Faces parallel to xy plane 0..many -X :py:class:`DirectionSelector` Faces with normal in neg x direction 0..many #Z :py:class:`PerpendicularDirSelector` Faces perpendicular to z direction 0..many %Plane :py:class:`TypeSelector` Faces of type plane 0..many >Y :py:class:`DirectionMinMaxSelector` Face farthest in the positive y dir 0 or 1 Y :py:class:`DirectionMinMaxSelector` Edges farthest in the positive y dir 0 or 1 Y :py:class:`DirectionMinMaxSelector` Vertices farthest in the positive y dir 0 or 1