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,
)
| 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)], |