MCPcopy
hub / github.com/CadQuery/cadquery / interpPlate

Method interpPlate

cadquery/cq.py:3878–3952  ·  view source on GitHub ↗

Returns a plate surface that is 'thickness' thick, enclosed by 'surf_edge_pts' points, and going through 'surf_pts' points. Using pushPoints directly with interpPlate and combine=True, can be very resource intensive depending on the complexity of the shape. In this case set

(
        self: T,
        surf_edges: Union[
            Sequence[VectorLike], Sequence[Union[Edge, Wire]], "Workplane"
        ],
        surf_pts: Sequence[VectorLike] = [],
        thickness: float = 0,
        combine: CombineMode = False,
        clean: bool = True,
        degree: int = 3,
        nbPtsOnCur: int = 15,
        nbIter: int = 2,
        anisotropy: bool = False,
        tol2d: float = 0.00001,
        tol3d: float = 0.0001,
        tolAng: float = 0.01,
        tolCurv: float = 0.1,
        maxDeg: int = 8,
        maxSegments: int = 9,
    )

Source from the content-addressed store, hash-verified

3876 return Compound.makeCompound(toFuse)
3877
3878 def interpPlate(
3879 self: T,
3880 surf_edges: Union[
3881 Sequence[VectorLike], Sequence[Union[Edge, Wire]], "Workplane"
3882 ],
3883 surf_pts: Sequence[VectorLike] = [],
3884 thickness: float = 0,
3885 combine: CombineMode = False,
3886 clean: bool = True,
3887 degree: int = 3,
3888 nbPtsOnCur: int = 15,
3889 nbIter: int = 2,
3890 anisotropy: bool = False,
3891 tol2d: float = 0.00001,
3892 tol3d: float = 0.0001,
3893 tolAng: float = 0.01,
3894 tolCurv: float = 0.1,
3895 maxDeg: int = 8,
3896 maxSegments: int = 9,
3897 ) -> T:
3898 """
3899 Returns a plate surface that is 'thickness' thick, enclosed by 'surf_edge_pts' points, and going
3900 through 'surf_pts' points. Using pushPoints directly with interpPlate and combine=True, can be
3901 very resource intensive depending on the complexity of the shape. In this case set combine=False.
3902
3903 :param surf_edges: list of [x,y,z] ordered coordinates or list of ordered or unordered edges, wires
3904 :param surf_pts: list of points (uses only edges if [])
3905 :param thickness: value may be negative or positive depending on thickening direction (2D surface if 0)
3906 :param combine: should the results be combined with other solids on the stack (and each other)?
3907 :param clean: call :meth:`clean` afterwards to have a clean shape
3908 :param degree: >= 2
3909 :param nbPtsOnCur: number of points on curve >= 15
3910 :param nbIter: number of iterations >= 2
3911 :param anisotropy: = bool Anisotropy
3912 :param tol2d: 2D tolerance
3913 :param tol3d: 3D tolerance
3914 :param tolAng: angular tolerance
3915 :param tolCurv: tolerance for curvature
3916 :param maxDeg: highest polynomial degree >= 2
3917 :param maxSegments: greatest number of segments >= 2
3918 """
3919
3920 # convert points to edges if needed
3921 edges: List[Union[Edge, Wire]] = []
3922 points = []
3923
3924 if isinstance(surf_edges, Workplane):
3925 edges.extend(cast(Edge, el) for el in surf_edges.edges().objects)
3926 else:
3927 for el in surf_edges:
3928 if isinstance(el, (Edge, Wire)):
3929 edges.append(el)
3930 else:
3931 points.append(el)
3932
3933 # Creates interpolated plate
3934 f: Face = Face.makeNSidedSurface(
3935 edges if not points else [Wire.makePolygon(points, False, True)],

Callers 4

testCleanMethod · 0.80
testNoCleanMethod · 0.80
test_interpPlateMethod · 0.80

Calls 8

eachpointMethod · 0.95
extendMethod · 0.80
appendMethod · 0.80
makeNSidedSurfaceMethod · 0.80
makePolygonMethod · 0.80
thickenMethod · 0.80
edgesMethod · 0.45
movedMethod · 0.45

Tested by 3

testCleanMethod · 0.64
testNoCleanMethod · 0.64
test_interpPlateMethod · 0.64