topologicpy.Cell module
- class topologicpy.Cell.Cell
Bases:
objectMethods
Area(cell[, mantissa])Returns the surface area of the input cell.
Box([origin, width, length, height, uSides, ...])Creates a box.
ByFaces(faces[, planarize, ...])Creates a Cell from the input list of Faces.
ByFacesCluster(cluster[, planarize, ...])Creates a cell by merging the faces within the input cluster.
ByOffset(cell[, offset, tolerance, silent, ...])Creates an offset Cell from the input Cell.
ByShell(shell[, planarize, tolerance, silent])Creates a cell from the input shell.
ByShells(externalBoundary[, ...])Creates a cell from the input external boundary (closed shell) and the input list of internal boundaries (closed shells).
ByThickenedFace(face[, thickness, ...])Creates a Cell by thickening the input Face.
ByThickenedShell(shell[, direction, ...])Creates a cell by thickening the input shell.
ByWires(wires[, close, triangulate, ...])Creates a cell by lofting through the input list of wires.
ByWiresCluster(cluster[, close, ...])Creates a cell by lofting through the input cluster of wires.
CHS([origin, radius, height, thickness, ...])Creates a circular hollow section (CHS).
CShape([origin, width, length, height, ...])Creates a C-shape.
Capsule([origin, radius, height, uSides, ...])Creates a capsule shape.
Compactness(cell[, reference, mantissa])Returns the compactness measure of the input cell.
Cone([origin, baseRadius, topRadius, ...])Creates a cone.
ContainmentStatus(cell, vertex[, tolerance])Returns the containment status of the input vertex in relationship to the input cell
CrossShape([origin, width, length, height, ...])Creates a Cross-shape.
Cube([origin, size, uSides, vSides, wSides, ...])Creates a cube.
Cylinder([origin, radius, height, uSides, ...])Creates a cylinder.
Decompose(cell[, tiltAngle, tolerance])Decomposes the input cell into its logical components.
Dodecahedron([origin, radius, direction, ...])Creates a dodecahedron.
Edges(cell)Returns the edges of the input cell.
Egg([origin, height, uSides, vSides, ...])Creates an egg-shaped cell.
ExternalBoundary(cell[, tolerance, silent])Returns the external boundary of the input cell.
Faces(cell[, silent])Returns the faces of the input cell.
Hyperboloid([origin, baseRadius, topRadius, ...])Creates a hyperboloid.
IShape([origin, width, length, height, ...])Creates an I-shape cell.
Icosahedron([origin, radius, direction, ...])Creates an icosahedron.
Inflate(cell, faces[, maxDistance, ...])Inflates the input cell until its faces collide with the input limiting faces.
InternalBoundaries(cell)Returns the internal boundaries of the input cell.
InternalVertex(cell[, tolerance, silent])Creates a vertex that is guaranteed to be inside the input cell.
IsOnBoundary(cell, vertex[, tolerance])Returns True if the input vertex is on the boundary of the input cell.
LShape([origin, width, length, height, ...])Creates an L-shape.
Noperthedron([origin, radius, direction, ...])Creates a Noperthedron.
Octahedron([origin, radius, direction, ...])Creates an octahedron.
Paraboloid([origin, focalLength, width, ...])Creates a paraboloid cell.
Pipe(edge[, profile, radius, sides, ...])Creates a pipe along the input edge.
Prism([origin, width, length, height, ...])Creates a prism.
RHS([origin, width, length, height, ...])Creates a rectangluar hollow section (RHS).
RemoveCollinearEdges(cell[, angTolerance, ...])Removes any collinear edges in the input cell.
Roof(face[, angle, epsilon, tolerance])Creates a hipped roof through a straight skeleton. This method is contributed by 高熙鹏 xipeng gao <gaoxipeng1998@gmail.com>
SHS([origin, size, height, thickness, ...])Creates a square hollow section (SHS).
Sets(cells, superCells[, tolerance])Classifies the input cells into sets based on their enclosure within the input list of super cells. The order of the sets follows the order of the input list of super cells.
Shells(cell)Returns the shells of the input cell.
Sphere([origin, radius, uSides, vSides, ...])Creates an approximation of a sphere using a UV grid of triangular faces.
SurfaceArea(cell[, mantissa])Returns the surface area of the input cell.
TShape([origin, width, length, height, ...])Creates a T-shape cell.
Tetrahedron([origin, length, depth, ...])Creates a recursive tetrahedron cell.
Torus([origin, majorRadius, minorRadius, ...])Creates a torus.
Tube([origin, radius, height, thickness, ...])Creates a Tube.
Vertices(cell)Returns the vertices of the input cell.
Volume(cell[, mantissa, silent])Returns the volume of the input cell.
Wedge([origin, width, length, height, ...])Creates a Wedge.
Wires(cell)Returns the wires of the input cell.
- static Area(cell, mantissa: int = 6)
Returns the surface area of the input cell.
- Parameters
- celltopologic_core.Cell
The cell.
- mantissaint , optional
The number of decimal places to round the result to. Default is 6.
- Returns
- float
The surface area of the input cell.
- static Box(origin=None, width: float = 1, length: float = 1, height: float = 1, uSides: int = 1, vSides: int = 1, wSides: int = 1, direction: list = [0, 0, 1], placement: str = 'center', tolerance: float = 0.0001, silent: bool = False)
Creates a box.
- Parameters
- origintopologic_core.Vertex , optional
The origin location of the box. Default is None which results in the box being placed at (0, 0, 0).
- widthfloat , optional
The width of the box. Default is 1.
- lengthfloat , optional
The length of the box. Default is 1.
- heightfloat , optional
The height of the box.
- uSidesint , optional
The number of sides along the width. Default is 1.
- vSidesint , optional
The number of sides along the length. Default is 1.
- wSidesint , optional
The number of sides along the height. Default is 1.
- directionlist , optional
The vector representing the up direction of the box. Default is [0, 0, 1].
- placementstr , optional
The description of the placement of the origin of the box. This can be “bottom”, “center”, or “lowerleft”. It is case insensitive. Default is “center”.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool , optional
If set to True, error and warning messages are suppressed. Default is False.
- Returns
- topologic_core.Cell
The created box.
- static ByFaces(faces: list, planarize: bool = False, transferDictionaries: bool = False, tolerance: float = 0.0001, silent: bool = False)
Creates a Cell from the input list of Faces.
The supplied Faces are passed directly to the active backend so their supporting surfaces and boundary curves are preserved. If construction fails, the method may retry sewing with a slightly larger tolerance and may self-merge the original Faces. It never reconstructs Faces from their Wires, Edges, or Vertices.
If
planarizeis True, the Faces are explicitly planarized before Cell construction. This intentionally replaces their original support surfaces.- Parameters
- faceslist
The input list of Faces.
- planarizebool , optional
If True, planarize the input Faces before constructing the Cell. Default is False.
- transferDictionariesbool , optional
If True, transfer dictionaries from the input Faces to the corresponding Faces of the created Cell. Default is False.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool , optional
If True, suppress error and warning messages. Default is False.
- Returns
- topologic_core.Cell
The created Cell, or None if construction fails.
- static ByFacesCluster(cluster, planarize: bool = False, transferDictionaries: bool = False, tolerance: float = 0.0001, silent: bool = False)
Creates a cell by merging the faces within the input cluster.
- Parameters
- clustertopologic_core.Cluster
The input cluster of faces.
- planarizebool, optional
If set to True, the input faces are planarized before building the cell. Otherwise, they are not. Default is False.
- transferDictionariesbool , optional
If set to True, any dictionaries in the faces are transferred to the faces of the created cell. Otherwise, they are not. Default is False.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool , optional
If set to True, error and warning messages are suppressed. Default is False.
- Returns
- topologic_core.Cell
The created cell.
- static ByOffset(cell, offset: float = 1.0, tolerance: float = 0.0001, silent: bool = False, polyhedron: bool = True)
Creates an offset Cell from the input Cell.
When
polyhedronis True, each original Vertex is displaced by the sum of the offset incident-Face normals. The original polygonal Faces are then reconstructed using the shared displaced Vertices and sewn into a Cell.The polygonal pathway accepts only planar Faces with linear boundary Edges. Use
polyhedron=Falsefor Cells containing curved Edges or non-planar supporting surfaces.- Parameters
- celltopologic_core.Cell
The input Cell.
- offsetfloat , optional
The desired offset distance. Positive and negative values are accepted. Default is 1.0.
- tolerancefloat , optional
The desired topology tolerance. Default is 0.0001.
- silentbool , optional
If True, error and warning messages are suppressed. Default is False.
- polyhedronbool , optional
If True, use the polygonal offset pathway. If False, delegate to the native backend offset operation. Default is True.
- Returns
- topologic_core.Topology
The created offset topology. The result may fail to be a Cell if the offset produces degenerate or self-intersecting Faces.
- static ByShell(shell, planarize: bool = False, tolerance: float = 0.0001, silent: bool = False)
Creates a cell from the input shell.
- Parameters
- shelltopologic_core.Shell
The input shell. The shell must be closed for this method to succeed.
- planarizebool, optional
If set to True, the input faces of the input shell are planarized before building the cell. Otherwise, they are not. Default is False.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool , optional
If set to True, error and warning messages are suppressed. Default is False.
- Returns
- topologic_core.Cell
The created cell.
- static ByShells(externalBoundary, internalBoundaries: list = [], tolerance: float = 0.0001, silent: bool = False)
Creates a cell from the input external boundary (closed shell) and the input list of internal boundaries (closed shells).
- Parameters
- externalBoundarytopologic_core.Shell
The input external boundary.
- internalBoundarieslist , optional
The input list of internal boundaries (closed shells). Default is an empty list.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool , optional
If set to True, error and warning messages are suppressed. Default is False.
- Returns
- topologic_core.Cell
The created cell.
- static ByThickenedFace(face, thickness: float = 1.0, bothSides: bool = True, wSides: int = 1, reverse: bool = False, polyhedron: bool = True, tolerance: float = 0.0001, silent: bool = False)
Creates a Cell by thickening the input Face.
Planar Faces bounded only by linear Edges use a fast polyhedral prism path when possible. Curved-edge or non-planar Faces use the native backend thickening operation so that their actual surface geometry and local normals are preserved.
- Parameters
- facetopologicpy.Face
The input Face.
- thicknessfloat, optional
The desired thickness. Default is 1.0.
- bothSidesbool, optional
If True, thicken equally to both sides. Otherwise thicken to one side. Default is True.
- wSidesint, optional
Number of divisions through the thickness for the polygonal fallback path. Default is 1.
- reversebool, optional
If True, reverse the thickening direction. Default is False.
- polyhedronbool, optional
If False, use the native curve-preserving thickening path directly. If True, planar polygonal Faces use the fast/fallback polyhedral path. Curved or non-planar Faces are still handled natively because a single global extrusion normal is not geometrically valid for them. Default is True.
- tolerancefloat, optional
The desired tolerance. Default is 0.0001.
- silentbool, optional
If True, suppress error messages. Default is False.
- Returns
- topologicpy.Cell
The resulting Cell, or None if construction fails.
- static ByThickenedShell(shell, direction: list = [0, 0, 1], thickness: float = 1.0, bothSides: bool = True, reverse: bool = False, planarize: bool = False, tolerance: float = 0.0001, silent: bool = False, polyhedron: bool = True)
Creates a cell by thickening the input shell. The shell must be open.
- Parameters
- shelltopologic_core.Shell
The input shell to be thickened.
- thicknessfloat , optional
The desired thickness. Default is 1.0.
- bothSidesbool
If True, the cell will be lofted to each side of the shell. Otherwise, it will be lofted along the input direction. Default is True.
- reversebool
If True, the cell will be lofted along the opposite of the input direction. Default is False.
- planarizebool, optional
If set to True, the input faces of the input shell are planarized before building the cell. Otherwise, they are not. Default is False.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool , optional
If set to True, error and warning messages are suppressed. Default is False.
- Returns
- topologic_core.Cell
The created cell.
- static ByWires(wires: list, close: bool = False, triangulate: bool = True, planarize: bool = False, mantissa: int = 6, tolerance: float = 0.0001, silent: bool = False, polyhedron: bool = True)
Creates a cell by lofting through the input list of wires.
Unlike the older implementation, this version does NOT require corresponding wires to have the same number of edges. Each pair of wires is re-parameterized by normalized perimeter length and resampled at a common set of breakpoints before side faces are created.
- Parameters
- wireslist
The input list of wires.
- closebool , optional
If set to True, the last wire is also connected to the first wire. Default is False.
- triangulatebool , optional
If set to True, side and cap faces are triangulated where needed. Default is True.
- planarizebool, optional
If set to True, the created faces are planarized before building the cell. Otherwise, they are not. Default is False.
- mantissaint , optional
The number of decimal places to round the result to. Default is 6.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool , optional
If set to True, error and warning messages are suppressed. Default is False.
- Returns
- topologic_core.Cell
The created cell.
- static ByWiresCluster(cluster, close: bool = False, triangulate: bool = True, planarize: bool = False, tolerance: float = 0.0001, silent: bool = False, polyhedron: bool = True)
Creates a cell by lofting through the input cluster of wires.
- Parameters
- clusterCluster
The input Cluster of wires.
- closebool , optional
If set to True, the last wire in the cluster of input wires will be connected to the first wire in the cluster of input wires. Default is False.
- triangulatebool , optional
If set to True, the faces will be triangulated. Default is True.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- Returns
- topologic_core.Cell
The created cell.
- Raises
- Exception
Raises an exception if the two wires in the list do not have the same number of edges.
- static CHS(origin=None, radius: float = 1.0, height: float = 1.0, thickness: float = 0.25, sides: int = 16, direction: list = [0, 0, 1], placement: str = 'center', tolerance: float = 0.0001, silent: bool = False)
Creates a circular hollow section (CHS).
- Parameters
- origintopologic_core.Vertex, optional
The location of the origin of the CHS. Default is None which results in the CHS being placed at (0, 0, 0).
- radiusfloat , optional
The outer radius of the CHS. Default is 1.0.
- thicknessfloat , optional
The thickness of the CHS. Default is 0.25.
- heightfloat , optional
The height of the CHS. Default is 1.0.
- sidesint , optional
The desired number of sides of the CSH. Default is 16.
- directionlist , optional
The vector representing the up direction of the RHS. Default is [0, 0, 1].
- placementstr , optional
The description of the placement of the origin of the RHS. This can be “center”, “bottom”, “top”, “lowerleft”, “upperleft”, “lowerright”, “upperright”. It is case insensitive. Default is “center”.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool , optional
If set to True, error and warning messages are suppressed. Default is False.
- Returns
- topologic_core.Cell
The created cell.
- static CShape(origin=None, width=1, length=1, height=1, wSides=1, a=0.25, b=0.25, c=0.25, flipHorizontal=False, flipVertical=False, direction=[0, 0, 1], placement='center', mantissa=6, tolerance=0.0001, silent=False)
Creates a C-shape.
- Parameters
- origintopologic_core.Vertex , optional
The location of the origin of the C-shape. Default is None which results in the C-shape being placed at (0, 0, 0).
- widthfloat , optional
The overall width of the C-shape. Default is 1.0.
- lengthfloat , optional
The overall length of the C-shape. Default is 1.0.
- heightfloat , optional
The overall height of the C-shape. Default is 1.0.
- wSidesint , optional
The desired number of sides along the Z-axis. Default is 1.
- afloat , optional
The hortizontal thickness of the vertical arm of the C-shape. Default is 0.25.
- bfloat , optional
The vertical thickness of the bottom horizontal arm of the C-shape. Default is 0.25.
- cfloat , optional
The vertical thickness of the top horizontal arm of the C-shape. Default is 0.25.
- flipHorizontalbool , optional
if set to True, the shape is flipped horizontally. Default is False.
- flipVerticalbool , optional
if set to True, the shape is flipped vertically. Default is False.
- directionlist , optional
The vector representing the up direction of the C-shape. Default is [0, 0, 1].
- placementstr , optional
The description of the placement of the origin of the C-shape. This can be “center”, “lowerleft”, “upperleft”, “lowerright”, “upperright”. It is case insensitive. Default is “center”.
- mantissa: int , optional
The number of decimal places to round the result to. Default is 6.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool , optional
If set to True, error and warning messages are suppressed. Default is False.
- Returns
- topologic_core.Cell
The created C-shape cell.
- static Capsule(origin=None, radius: float = 0.25, height: float = 1, uSides: int = 16, vSidesEnds: int = 8, vSidesMiddle: int = 1, direction: list = [0, 0, 1], placement: str = 'center', tolerance: float = 0.0001, silent: bool = False, polyhedron: bool = True)
Creates a capsule shape. A capsule is a cylinder with hemispherical ends.
- Parameters
- origintopologic_core.Vertex , optional
The location of the origin of the capsule. Default is None which results in the capsule being placed at (0, 0, 0).
- radiusfloat , optional
The radius of the capsule. Default is 0.25.
- heightfloat , optional
The height of the capsule. Default is 1.
- uSidesint , optional
The number of circle segments of the capsule. Default is 16.
- vSidesEndsint , optional
The number of vertical segments of the end hemispheres. Default is 8.
- vSidesMiddleint , optional
The number of vertical segments of the middle cylinder. Default is 1.
- directionlist , optional
The vector representing the up direction of the capsule. Default is [0, 0, 1].
- placementstr , optional
The description of the placement of the origin of the capsule. This can be “bottom”, “center”, or “lowerleft”. It is case insensitive. Default is “center”.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool , optional
If set to True, error and warning messages are suppressed. Default is False.
- Returns
- topologic_core.Cell
The created cell.
- static Compactness(cell, reference='sphere', mantissa: int = 6) float
Returns the compactness measure of the input cell. If the reference is “sphere”, this is also known as ‘sphericity’ (https://en.wikipedia.org/wiki/Sphericity).
- Parameters
- celltopologic_core.Cell
The input cell.
- referencestr , optional
The desired reference to which to compare this compactness. The options are “sphere” and “cube”. It is case insensitive. Default is “sphere”.
- mantissaint , optional
The number of decimal places to round the result to. Default is 6.
- Returns
- float
The compactness of the input cell.
- static Cone(origin=None, baseRadius: float = 0.5, topRadius: float = 0, height: float = 1, uSides: int = 16, vSides: int = 1, direction: list = [0, 0, 1], dirZ: float = 1, placement: str = 'center', mantissa: int = 6, tolerance: float = 0.0001, silent: bool = False, polyhedron: bool = True)
Creates a cone.
- Parameters
- origintopologic_core.Vertex , optional
The location of the origin of the cone. Default is None which results in the cone being placed at (0, 0, 0).
- baseRadiusfloat , optional
The radius of the base circle of the cone. Default is 0.5.
- topRadiusfloat , optional
The radius of the top circle of the cone. Default is 0.
- heightfloat , optional
The height of the cone. Default is 1.
- uSidesint , optional
The number of circle segments of the cylinder. Default is 16.
- vSidesint , optional
The number of vertical segments of the cylinder. Default is 1.
- directionlist , optional
The vector representing the up direction of the cone. Default is [0, 0, 1].
- placementstr , optional
The description of the placement of the origin of the cone. This can be “bottom”, “center”, or “lowerleft”. It is case insensitive. Default is “center”.
- mantissaint , optional
The desired length of the mantissa. Default is 6
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- Returns
- topologic_core.Cell
The created cone.
- static ContainmentStatus(cell, vertex, tolerance: float = 0.0001) int
Returns the containment status of the input vertex in relationship to the input cell
- Parameters
- celltopologic_core.Cell
The input cell.
- vertextopologic_core.Vertex
The input vertex.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- Returns
- int
Returns 0 if the vertex is inside, 1 if it is on the boundary of, and 2 if it is outside the input cell.
- static CrossShape(origin=None, width=1, length=1, height=1, a=0.25, b=0.25, c=None, d=None, flipHorizontal=False, flipVertical=False, direction=[0, 0, 1], placement='center', tolerance=0.0001, silent=False)
Creates a Cross-shape.
- Parameters
- origintopologic_core.Vertex , optional
The location of the origin of the T-shape. Default is None which results in the Cross-shape being placed at (0, 0, 0).
- widthfloat , optional
The overall width of the Cross-shape. Default is 1.0.
- lengthfloat , optional
The overall length of the Cross-shape. Default is 1.0.
- heightfloat , optional
The overall height of the C-shape. Default is 1.0.
- afloat , optional
The hortizontal thickness of the vertical arm of the Cross-shape. Default is 0.25.
- bfloat , optional
The vertical thickness of the horizontal arm of the Cross-shape. Default is 0.25.
- cfloat , optional
The distance of the vertical symmetry axis measured from the left side of the Cross-shape. Default is None which results in the Cross-shape being symmetrical on the Y-axis.
- dfloat , optional
The distance of the horizontal symmetry axis measured from the bottom side of the Cross-shape. Default is None which results in the Cross-shape being symmetrical on the X-axis.
- directionlist , optional
The vector representing the up direction of the Cross-shape. Default is [0, 0, 1].
- placementstr , optional
The description of the placement of the origin of the Cross-shape. This can be “center”, “lowerleft”, “upperleft”, “lowerright”, “upperright”. It is case insensitive. Default is “center”.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool , optional
If set to True, error and warning messages are suppressed. Default is False.
- Returns
- topologic_core.Cell
The created Cross-shape cell.
- static Cube(origin=None, size: float = 1, uSides: int = 1, vSides: int = 1, wSides: int = 1, direction: list = [0, 0, 1], placement: str = 'center', tolerance: float = 0.0001, silent: bool = False)
Creates a cube.
- Parameters
- origintopologic_core.Vertex , optional
The origin location of the cube. Default is None which results in the cube being placed at (0, 0, 0).
- sizefloat , optional
The size of the cube. Default is 1.
- uSidesint , optional
The number of sides along the width. Default is 1.
- vSidesint , optional
The number of sides along the length. Default is 1.
- wSidesint , optional
The number of sides along the height. Default is 1.
- directionlist , optional
The vector representing the up direction of the cube. Default is [0, 0, 1].
- placementstr , optional
The description of the placement of the origin of the cube. This can be “bottom”, “center”, or “lowerleft”. It is case insensitive. Default is “center”.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool , optional
If set to True, error and warning messages are suppressed. Default is False.
- Returns
- topologic_core.Cell
The created cube.
- static Cylinder(origin=None, radius: float = 0.5, height: float = 1, uSides: int = 16, vSides: int = 1, polyhedron: bool = True, direction: list = [0, 0, 1], placement: str = 'center', mantissa: int = 6, tolerance: float = 0.0001, silent: bool = False)
Creates a cylinder.
- Parameters
- origintopologic_core.Vertex , optional
The location of the origin of the cylinder.
- radiusfloat , optional
The radius of the cylinder. Default is 0.5.
- heightfloat , optional
The height of the cylinder. Default is 1.
- uSidesint , optional
The number of circumferential segments. Default is 16.
- vSidesint , optional
The number of vertical segments. Default is 1.
- polyhedronbool , optional
If True, creates a faceted cylinder. If False, creates an exact curved cylinder on the PythonOCC backend. Default is True.
- directionlist , optional
The cylinder axis. Default is [0, 0, 1].
- placementstr , optional
“bottom”, “center”, or “lowerleft”. Default is “center”.
- mantissaint , optional
The desired mantissa. Default is 6.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool , optional
If set to True, error and warning messages are suppressed. Default is False.
- Returns
- topologic_core.Cell
The created Cell.
- static Decompose(cell, tiltAngle: float = 10, tolerance: float = 0.0001) dict
Decomposes the input cell into its logical components. This method assumes that the positive Z direction is UP.
- Parameters
- celltopologic_core.Cell
the input cell.
- tiltAnglefloat , optional
The threshold tilt angle in degrees to determine if a face is vertical, horizontal, or tilted. The tilt angle is measured from the nearest cardinal direction. Default is 10.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- Returns
- dictionary
A dictionary with the following keys and values: 1. “verticalFaces”: list of vertical faces 2. “topHorizontalFaces”: list of top horizontal faces 3. “bottomHorizontalFaces”: list of bottom horizontal faces 4. “inclinedFaces”: list of inclined faces 5. “verticalApertures”: list of vertical apertures 6. “topHorizontalApertures”: list of top horizontal apertures 7. “bottomHorizontalApertures”: list of bottom horizontal apertures 8. “inclinedApertures”: list of inclined apertures
- static Dodecahedron(origin=None, radius: float = 0.5, direction: list = [0, 0, 1], placement: str = 'center', tolerance: float = 0.0001, silent: bool = False)
Creates a dodecahedron. See https://en.wikipedia.org/wiki/Dodecahedron.
- Parameters
- origintopologic_core.Vertex , optional
The origin location of the dodecahedron. Default is None which results in the dodecahedron being placed at (0, 0, 0).
- radiusfloat , optional
The radius of the dodecahedron’s circumscribed sphere. Default is 0.5.
- directionlist , optional
The vector representing the up direction of the dodecahedron. Default is [0, 0, 1].
- placementstr , optional
The description of the placement of the origin of the dodecahedron. This can be “bottom”, “center”, or “lowerleft”. It is case insensitive. Default is “center”.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool , optional
If set to True, error and warning messages are suppressed. Default is False.
- Returns
- topologic_core.Cell
The created dodecahedron.
- static Edges(cell) list
Returns the edges of the input cell.
- Parameters
- celltopologic_core.Cell
The input cell.
- Returns
- list
The list of edges.
- static Egg(origin=None, height: float = 1.0, uSides: int = 16, vSides: int = 8, direction: list = [0, 0, 1], placement: str = 'center', tolerance: float = 0.0001, silent: bool = False)
Creates an egg-shaped cell.
- Parameters
- origintopologic_core.Vertex , optional
The origin location of the sphere. Default is None which results in the egg-shaped cell being placed at (0, 0, 0).
- heightfloat , optional
The desired height of of the egg-shaped cell. Default is 1.0.
- uSidesint , optional
The desired number of sides along the longitude of the egg-shaped cell. Default is 16.
- vSidesint , optional
The desired number of sides along the latitude of the egg-shaped cell. Default is 8.
- directionlist , optional
The vector representing the up direction of the egg-shaped cell. Default is [0, 0, 1].
- placementstr , optional
The description of the placement of the origin of the egg-shaped cell. This can be “bottom”, “center”, or “lowerleft”. It is case insensitive. Default is “center”.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool , optional
If set to True, error and warning messages are suppressed. Default is False.
- Returns
- topologic_core.Cell
The created egg-shaped cell.
- static ExternalBoundary(cell, tolerance: float = 0.0001, silent: bool = False)
Returns the external boundary of the input cell.
- Parameters
- celltopologic_core.Cell
The input cell.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool , optional
If set to True, error and warning messages are suppressed. Default is False.
- Returns
- topologic_core.Shell
The external boundary of the input cell.
- static Faces(cell, silent: bool = False) list
Returns the faces of the input cell.
- Parameters
- celltopologic_core.Cell
The input cell.
- silentbool , optional
If set to True, error and warning messages are suppressed. Default is False.
- Returns
- list
The list of faces.
- static Hyperboloid(origin=None, baseRadius: float = 0.5, topRadius: float = 0.5, height: float = 1, sides: int = 24, direction: list = [0, 0, 1], twist: float = 60, placement: str = 'center', mantissa: int = 6, tolerance: float = 0.0001, silent: bool = False)
Creates a hyperboloid.
- Parameters
- origintopologic_core.Vertex , optional
The location of the origin of the hyperboloid. Default is None which results in the hyperboloid being placed at (0, 0, 0).
- baseRadiusfloat , optional
The radius of the base circle of the hyperboloid. Default is 0.5.
- topRadiusfloat , optional
The radius of the top circle of the hyperboloid. Default is 0.5.
- heightfloat , optional
The height of the cone. Default is 1.
- sidesint , optional
The number of sides of the cone. Default is 24.
- directionlist , optional
The vector representing the up direction of the hyperboloid. Default is [0, 0, 1].
- twistfloat , optional
The angle to twist the base cylinder. Default is 60.
- placementstr , optional
The description of the placement of the origin of the hyperboloid. This can be “bottom”, “center”, or “lowerleft”. It is case insensitive. Default is “center”.
- mantissaint , optional
The desired length of the mantissa. Default is 6
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool , optional
If set to True, error and warning messages are suppressed. Default is False.
- Returns
- topologic_core.Cell
The created hyperboloid.
- static IShape(origin=None, width: float = 1, length: float = 1, height: float = 1, wSides: int = 1, a: float = 0.25, b: float = 0.25, c: float = 0.25, flipHorizontal: bool = False, flipVertical: bool = False, direction: list = [0, 0, 1], placement: str = 'center', mantissa: int = 6, tolerance: float = 0.0001, silent: bool = False)
Creates an I-shape cell.
- Parameters
- origintopologic_core.Vertex , optional
The location of the origin of the I-shape. Default is None which results in the I-shape being placed at (0, 0, 0).
- widthfloat , optional
The overall width of the I-shape. Default is 1.0.
- lengthfloat , optional
The overall length of the I-shape. Default is 1.0.
- heightfloat , optional
The overall height of the I-shape. Default is 1.0.
- wSidesint , optional
The desired number of sides along the Z-Axis. Default is 1.
- afloat , optional
The hortizontal thickness of the central vertical arm of the I-shape. Default is 0.25.
- bfloat , optional
The vertical thickness of the bottom horizontal arm of the I-shape. Default is 0.25.
- cfloat , optional
The vertical thickness of the top horizontal arm of the I-shape. Default is 0.25.
- flipHorizontalbool , optional
if set to True, the shape is flipped horizontally. Default is False.
- flipVerticalbool , optional
if set to True, the shape is flipped vertically. Default is False.
- directionlist , optional
The vector representing the up direction of the I-shape. Default is [0, 0, 1].
- placementstr , optional
The description of the placement of the origin of the I-shape. This can be “center”, “bottom”, “top”, “lowerleft”, “upperleft”, “lowerright”, “upperright”. It is case insensitive. Default is “center”.
- mantissaint , optional
The number of decimal places to round the result to. Default is 6.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool , optional
If set to True, error and warning messages are suppressed. Default is False.
- Returns
- topologic_core.Cell
The created I-shape cell.
- static Icosahedron(origin=None, radius: float = 0.5, direction: list = [0, 0, 1], placement: str = 'center', tolerance: float = 0.0001, silent: bool = True)
Creates an icosahedron. See https://en.wikipedia.org/wiki/Icosahedron.
- Parameters
- origintopologic_core.Vertex , optional
The origin location of the icosahedron. Default is None which results in the icosahedron being placed at (0, 0, 0).
- radiusfloat , optional
The radius of the icosahedron’s circumscribed sphere. Default is 0.5.
- directionlist , optional
The vector representing the up direction of the icosahedron. Default is [0, 0, 1].
- placementstr , optional
The description of the placement of the origin of the icosahedron. This can be “bottom”, “center”, or “lowerleft”. It is case insensitive. Default is “center”.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool, optional
If set to True, suppresses warning and error messages. Default is False.
- Returns
- topologic_core.Cell
The created icosahedron.
- static Inflate(cell, faces: list, maxDistance: float = None, angTolerance: float = 1.0, mantissa: int = 6, tolerance: float = 0.0001, silent: bool = False)
Inflates the input cell until its faces collide with the input limiting faces.
Each face of the cell moves outwards along its own normal direction while remaining parallel to its original plane. A moving face stops at the first distance at which any part of that face, one of its edges, or one of its vertices collides with any input limiting face. The limiting face does not need to be parallel to the moving cell face. If the moving face is already in contact with an analytical face and its inflation direction is tangent to that analytical face, the contact is treated as sliding contact and does not stop the inflation.
The method translates the supporting planes of the cell faces and recomputes the cell vertices from the intersections of their incident translated planes. It does not project vertices independently. After every accepted face movement, every face is rebuilt explicitly from external and internal boundary loops ordered by traversing their connected edges. The rebuilt topology may be a Cell or a Cluster of faces; either is retained for subsequent processing. A single self-merge attempt is made after all face movements have been completed.
This method is intended for planar, polyhedral cells whose incidence graph remains valid during inflation. It works best with simple cells in which each vertex is defined by three independent incident face planes.
- Parameters
- celltopologic_core.Cell
The input cell.
- faceslist
The list of limiting analytical faces.
- maxDistancefloat , optional
The maximum permitted outward movement of each cell face. If set to None, the required sweep distance is derived from the limiting-face vertices. Default is None.
- angTolerancefloat , optional
The angular tolerance in degrees used to identify sliding contact. If the inflation direction is parallel to an analytical-face plane within this tolerance, that analytical face does not block the movement. Default is 1.0.
- mantissaint , optional
The number of decimal places used to create replacement vertices. Default is 6.
- tolerancefloat , optional
The desired geometric tolerance. Default is 0.0001.
- silentbool , optional
If set to True, error, warning, and information messages are suppressed. Default is False.
- Returns
- topologic_core.Topology
The inflated topology. This is normally a Cell, but it may be a Cluster when the rebuilt faces cannot be self-merged into a Cell.
Notes
Collision is detected using the swept volume of each moving cell face. The intersection of that swept volume with a limiting face captures face, edge, and vertex contact. Tangential contact is ignored so that the moving face can slide along an analytical face. The earliest positive blocking travel distance among all remaining limiting faces is used.
The method preserves the original cell incidence graph. It does not support an inflation event that requires splitting a face, creating a new vertex, removing a face, or otherwise changing that incidence graph. Intermediate rebuilt results are allowed to remain Clusters because subsequent movement calculations use the supporting planes and faces rather than Cell-only API operations. Boundary order is derived by traversing edge connectivity rather than relying on generic subtopology enumeration, which is not ordered.
- static InternalBoundaries(cell) list
Returns the internal boundaries of the input cell.
- Parameters
- celltopologic_core.Cell
The input cell.
- Returns
- list
The list of internal boundaries ([topologic_core.Shell]).
- static InternalVertex(cell, tolerance: float = 0.0001, silent: bool = False)
Creates a vertex that is guaranteed to be inside the input cell.
- Parameters
- celltopologic_core.Cell
The input cell.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool , optional
If set to True, error and warning messages are suppressed. Default is False.
- Returns
- topologic_core.Vertex
The internal vertex.
- static IsOnBoundary(cell, vertex, tolerance: float = 0.0001) bool
Returns True if the input vertex is on the boundary of the input cell. Returns False otherwise.
- Parameters
- celltopologic_core.Cell
The input cell.
- vertextopologic_core.Vertex
The input vertex.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- Returns
- bool
Returns True if the input vertex is inside the input cell. Returns False otherwise.
- static LShape(origin=None, width=1, length=1, height=1, wSides=1, a=0.25, b=0.25, flipHorizontal=False, flipVertical=False, direction=[0, 0, 1], placement='center', mantissa=6, tolerance=0.0001, silent=False)
Creates an L-shape.
- Parameters
- origintopologic_core.Vertex , optional
The location of the origin of the L-shape. Default is None which results in the L-shape being placed at (0, 0, 0).
- widthfloat , optional
The overall width of the L-shape. Default is 1.0.
- lengthfloat , optional
The overall length of the L-shape. Default is 1.0.
- heightfloat , optional
The overall height of the L-shape. Default is 1.0.
- wSidesint , optional
The desired number of sides along the Z-axis. Default is 1.
- afloat , optional
The hortizontal thickness of the vertical arm of the L-shape. Default is 0.25.
- bfloat , optional
The vertical thickness of the horizontal arm of the L-shape. Default is 0.25.
- flipHorizontalbool , optional
if set to True, the shape is flipped horizontally. Default is False.
- flipVerticalbool , optional
if set to True, the shape is flipped vertically. Default is False.
- directionlist , optional
The vector representing the up direction of the L-shape. Default is [0, 0, 1].
- placementstr , optional
The description of the placement of the origin of the L-shape. This can be “center”, “bottom”, “top”, “lowerleft”, “upperleft”, “lowerright”, “upperright”. It is case insensitive. Default is “center”.
- manitssaint , optional
The number of decimal places to round the result to. Default is 6.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool , optional
If set to True, error and warning messages are suppressed. Default is False.
- Returns
- topologic_core.Cell
The created L-shape cell.
- static Noperthedron(origin=None, radius: float = 0.5, direction: list = [0, 0, 1], placement: str = 'center', tolerance: float = 0.0001, silent: bool = False)
Creates a Noperthedron. A noperthedron is a convex polyhedron without Rupert’s property. See: https://arxiv.org/pdf/2508.18475
- Parameters
- origintopologic_core.Vertex , optional
The origin location of the sphere. Default is None which results in the sphere being placed at (0, 0, 0).
- radiusfloat , optional
The radius of the sphere. Default is 0.5.
- uSidesint , optional
The number of sides along the longitude of the sphere. Default is 16.
- vSidesint , optional
The number of sides along the latitude of the sphere. Default is 8.
- directionlist , optional
The vector representing the up direction of the sphere. Default is [0, 0, 1].
- placementstr , optional
The description of the placement of the origin of the sphere. This can be “bottom”, “center”, or “lowerleft”. It is case insensitive. Default is “center”.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool, optional
If set to True, suppresses warning and error messages. Default is False.
- Returns
- topologic_core.Cell
The created Noperthedron polyhedron.
- static Octahedron(origin=None, radius: float = 0.5, direction: list = [0, 0, 1], placement: str = 'center', tolerance: float = 0.0001, silent: bool = False)
Creates an octahedron. See https://en.wikipedia.org/wiki/Octahedron.
- Parameters
- origintopologic_core.Vertex , optional
The origin location of the octahedron. Default is None which results in the octahedron being placed at (0, 0, 0).
- radiusfloat , optional
The radius of the octahedron’s circumscribed sphere. Default is 0.5.
- directionlist , optional
The vector representing the up direction of the octahedron. Default is [0, 0, 1].
- placementstr , optional
The description of the placement of the origin of the octahedron. This can be “bottom”, “center”, or “lowerleft”. It is case insensitive. Default is “center”.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool, optional
If set to True, suppresses warning and error messages. Default is False.
- Returns
- topologic_core.Cell
The created octahedron.
- static Paraboloid(origin=None, focalLength=0.125, width: float = 1, length: float = 1, height: float = 0, uSides: int = 16, vSides: int = 16, direction: list = [0, 0, 1], placement: str = 'center', mantissa: int = 6, tolerance: float = 0.0001, silent=False)
Creates a paraboloid cell. See https://en.wikipedia.org/wiki/Paraboloid
- Parameters
- origintopologic_core.Vertex , optional
The origin location of the parabolic surface. Default is None which results in the parabolic surface being placed at (0, 0, 0).
- focalLengthfloat , optional
The focal length of the parabola. Default is 0.125.
- widthfloat , optional
The width of the parabolic surface. Default is 1.
- lengthfloat , optional
The length of the parabolic surface. Default is 1.
- heightfloat , optional
The additional height of the parabolic surface. Please note this is not the height from the spring point to the apex. It is in addition to that to form a base. Default is 0.
- uSidesint , optional
The number of sides along the width. Default is 16.
- vSidesint , optional
The number of sides along the length. Default is 16.
- directionlist , optional
The vector representing the up direction of the parabolic surface. Default is [0, 0, 1].
- placementstr , optional
The description of the placement of the origin of the parabolic surface. This can be “bottom”, “center”, or “lowerleft”. It is case insensitive. Default is “center”.
- mantissaint , optional
The number of decimal places to round the result to. Default is 6.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool , optional
If set to True, error and warning messages are suppressed. Default is False.
- Returns
- topologic_core.Shell
The created paraboloid.
- static Pipe(edge, profile=None, radius: float = 0.5, sides: int = 16, startOffset: float = 0, endOffset: float = 0, endcapA=None, endcapB=None, mantissa: int = 6) dict
Creates a pipe along the input edge.
- Parameters
- edgetopologic_core.Edge
The centerline of the pipe.
- profiletopologic_core.Wire , optional
The profile of the pipe. It is assumed that the profile is in the XY plane. If set to None, a circle of radius 0.5 will be used. Default is None.
- radiusfloat , optional
The radius of the pipe. Default is 0.5.
- sidesint , optional
The number of sides of the pipe. Default is 16.
- startOffsetfloat , optional
The offset distance from the start vertex of the centerline edge. Default is 0.
- endOffsetfloat , optional
The offset distance from the end vertex of the centerline edge. Default is 0.
- endcapA, optional
The topology to place at the start vertex of the centerline edge. The positive Z direction of the end cap will be oriented in the direction of the centerline edge.
- endcapB, optional
The topology to place at the end vertex of the centerline edge. The positive Z direction of the end cap will be oriented in the inverse direction of the centerline edge.
- mantissaint , optional
The desired length of the mantissa. Default is 6
- Returns
- dict
A dictionary containing the pipe, the start endcap, and the end endcap if they have been specified. The dictionary has the following keys: ‘pipe’ ‘endcapA’ ‘endcapB’
- static Prism(origin=None, width: float = 1, length: float = 1, height: float = 1, uSides: int = 1, vSides: int = 1, wSides: int = 1, direction: list = [0, 0, 1], placement: str = 'center', mantissa: int = 6, tolerance: float = 0.0001, silent: bool = False)
Creates a prism.
- Parameters
- origintopologic_core.Vertex , optional
The origin location of the prism. Default is None which results in the prism being placed at (0, 0, 0).
- widthfloat , optional
The width of the prism. Default is 1.
- lengthfloat , optional
The length of the prism. Default is 1.
- heightfloat , optional
The height of the prism.
- uSidesint , optional
The number of sides along the width. Default is 1.
- vSidesint , optional
The number of sides along the length. Default is 1.
- wSidesint , optional
The number of sides along the height. Default is 1.
- directionlist , optional
The vector representing the up direction of the prism. Default is [0, 0, 1].
- placementstr , optional
The description of the placement of the origin of the prism. This can be “bottom”, “center”, or “lowerleft”. It is case insensitive. Default is “center”.
- mantissaint , optional
The number of decimal places to round the result to. Default is 6.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool , optional
If set to True, error and warning messages are suppressed. Default is False.
- Returns
- topologic_core.Cell
The created prism.
- static RHS(origin=None, width: float = 1.0, length: float = 1.0, height: float = 1.0, thickness: float = 0.25, outerFillet: float = 0.0, innerFillet: float = 0.0, sides: int = 16, direction: list = [0, 0, 1], placement: str = 'center', tolerance: float = 0.0001, silent: bool = False)
Creates a rectangluar hollow section (RHS).
- Parameters
- origintopologic_core.Vertex, optional
The location of the origin of the RHS. Default is None which results in the RHS being placed at (0, 0, 0).
- widthfloat , optional
The width of the RHS. Default is 1.0.
- lengthfloat , optional
The length of the RHS. Default is 1.0.
- thicknessfloat , optional
The thickness of the RHS. Default is 0.25.
- heightfloat , optional
The height of the RHS. Default is 1.0.
- outerFilletfloat , optional
The outer fillet multiplication factor based on the thickness (e.g. 1t). Default is 0.
- innerFilletfloat , optional
The inner fillet multiplication factor based on the thickness (e.g. 1.5t). Default is 0.
- sidesint , optional
The desired number of sides of the fillets. Default is 16.
- directionlist , optional
The vector representing the up direction of the RHS. Default is [0, 0, 1].
- placementstr , optional
The description of the placement of the origin of the RHS. This can be “center”, “bottom”, “top”, “lowerleft”, “upperleft”, “lowerright”, “upperright”. It is case insensitive. Default is “center”.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool , optional
If set to True, error and warning messages are suppressed. Default is False.
- Returns
- topologic_core.Cell
The created cell.
- static RemoveCollinearEdges(cell, angTolerance: float = 0.1, tolerance: float = 0.0001, silent: bool = False)
Removes any collinear edges in the input cell.
- Parameters
- celltopologic_core.Cell
The input cell.
- angTolerancefloat , optional
The desired angular tolerance. Default is 0.1.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool , optional
If set to True, error and warning messages are suppressed. Default is False.
- Returns
- topologic_core.Cell
The created cell without any collinear edges.
- static Roof(face, angle: float = 45, epsilon: float = 0.01, tolerance: float = 0.001)
Creates a hipped roof through a straight skeleton. This method is contributed by 高熙鹏 xipeng gao <gaoxipeng1998@gmail.com> This algorithm depends on the polyskel code which is included in the library. Polyskel code is found at: https://github.com/Botffy/polyskel
- Parameters
- facetopologic_core.Face
The input face.
- anglefloat , optional
The desired angle in degrees of the roof. Default is 45.
- epsilonfloat , optional
The desired epsilon (another form of tolerance for distance from plane). Default is 0.01. (This is set to a larger number as it was found to work better)
- tolerancefloat , optional
The desired tolerance. Default is 0.001. (This is set to a larger number as it was found to work better)
- Returns
- cell
The created roof.
- static SHS(origin=None, size: float = 1.0, height: float = 1.0, thickness: float = 0.25, outerFillet: float = 0.0, innerFillet: float = 0.0, sides: int = 16, direction: list = [0, 0, 1], placement: str = 'center', tolerance: float = 0.0001, silent: bool = False)
Creates a square hollow section (SHS).
- Parameters
- origintopologic_core.Vertex, optional
The location of the origin of the SHS. Default is None which results in the SHS being placed at (0, 0, 0).
- sizefloat , optional
The size of the SHS. Default is 1.0.
- lengthfloat , optional
The length of the SHS. Default is 1.0.
- thicknessfloat , optional
The thickness of the SHS. Default is 0.25.
- heightfloat , optional
The height of the SHS. Default is 1.0.
- outerFilletfloat , optional
The outer fillet multiplication factor based on the thickness (e.g. 1t). Default is 0.
- innerFilletfloat , optional
The inner fillet multiplication factor based on the thickness (e.g. 1.5t). Default is 0.
- sidesint , optional
The desired number of sides of the fillets. Default is 16.
- directionlist , optional
The vector representing the up direction of the SHS. Default is [0, 0, 1].
- placementstr , optional
The description of the placement of the origin of the RHS. This can be “center”, “bottom”, “top”, “lowerleft”, “upperleft”, “lowerright”, “upperright”. It is case insensitive. Default is “center”.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool , optional
If set to True, error and warning messages are suppressed. Default is False.
- Returns
- topologic_core.Cell
The created cell.
- static Sets(cells: list, superCells: list, tolerance: float = 0.0001) list
Classifies the input cells into sets based on their enclosure within the input list of super cells. The order of the sets follows the order of the input list of super cells.
- Parameters
- inputCellslist
The list of input cells.
- superCellslist
The list of super cells.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- Returns
- list
The classified list of input cells based on their enclosure within the input list of super cells.
- static Shells(cell) list
Returns the shells of the input cell.
- Parameters
- celltopologic_core.Cell
The input cell.
- Returns
- list
The list of shells.
- static Sphere(origin=None, radius: float = 0.5, uSides: int = 16, vSides: int = 8, direction: list = [0, 0, 1], placement: str = 'center', tolerance: float = 0.0001, silent: bool = False, polyhedron: bool = True)
Creates an approximation of a sphere using a UV grid of triangular faces.
- Parameters
- origintopologic_core.Vertex , optional
The origin location of the sphere. Default is None which results in the sphere being placed at (0, 0, 0).
- radiusfloat , optional
The radius of the sphere. Default is 0.5.
- uSidesint , optional
The number of sides along the longitude of the sphere. Default is 16.
- vSidesint , optional
The number of sides along the latitude of the sphere. Default is 8.
- directionlist , optional
The vector representing the up direction of the sphere. Default is [0, 0, 1].
- placementstr , optional
The description of the placement of the origin of the sphere. This can be “bottom”, “center”, or “lowerleft”. It is case insensitive. Default is “center”.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool, optional
If set to True, suppresses warning and error messages. Default is False.
- Returns
- topologic_core.Cell
The created sphere.
- static SurfaceArea(cell, mantissa: int = 6) float
Returns the surface area of the input cell.
- Parameters
- celltopologic_core.Cell
The cell.
- mantissaint , optional
The number of decimal places to round the result to. Default is 6.
- Returns
- areafloat
The surface area of the input cell.
- static TShape(origin=None, width=1, length=1, height=1, wSides=1, a=0.25, b=0.25, flipHorizontal=False, flipVertical=False, direction=[0, 0, 1], placement='center', mantissa=6, tolerance=0.0001, silent=False)
Creates a T-shape cell.
- Parameters
- origintopologic_core.Vertex , optional
The location of the origin of the T-shape. Default is None which results in the T-shape being placed at (0, 0, 0).
- widthfloat , optional
The overall width of the T-shape. Default is 1.0.
- lengthfloat , optional
The overall length of the T-shape. Default is 1.0.
- heightfloat , optional
the overall height of the T-shape. Default is 1.0.
- wSidesint , optional
The desired number of sides along the Z-axis. Default is 1.
- afloat , optional
The hortizontal thickness of the vertical arm of the T-shape. Default is 0.25.
- bfloat , optional
The vertical thickness of the horizontal arm of the T-shape. Default is 0.25.
- flipHorizontalbool , optional
if set to True, the shape is flipped horizontally. Default is False.
- flipVerticalbool , optional
if set to True, the shape is flipped vertically. Default is False.
- directionlist , optional
The vector representing the up direction of the T-shape. Default is [0, 0, 1].
- placementstr , optional
The description of the placement of the origin of the T-shape. This can be “center”, “lowerleft”, “upperleft”, “lowerright”, “upperright”. It is case insensitive. Default is “center”.
- mantissa: int , optional
The number of decimal places to round the result to. Default is 6.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool , optional
If set to True, error and warning messages are suppressed. Default is False.
- Returns
- topologic_core.Face
The created T-shape.
- static Tetrahedron(origin=None, length: float = 1, depth: int = 1, direction=[0, 0, 1], placement='center', mantissa: int = 6, tolerance: float = 0.0001, silent: bool = False)
Creates a recursive tetrahedron cell.
- Parameters
- origintopologic_core.Vertex , optional
The origin location of the tetrahedron. Default is None which results in the tetrahedron being placed at (0, 0, 0).
- lengthfloat , optional
The length of the edge of the tetrahedron. Default is 1.
- depthint , optional
The desired maximum number of recrusive subdivision levels.
- directionlist , optional
The vector representing the up direction of the tetrahedron. Default is [0, 0, 1].
- placementstr , optional
The description of the placement of the origin of the tetrahedron. This can be “bottom”, “center”, or “lowerleft”. It is case insensitive. Default is “center”.
- mantissaint , optional
The number of decimal places to round the result to. Default is 6.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool, optional
If set to True, suppresses warning and error messages. Default is False.
- Returns
- topologic_core.CellComplex
The created tetrahedron.
- static Torus(origin=None, majorRadius: float = 0.5, minorRadius: float = 0.125, uSides: int = 16, vSides: int = 8, direction: list = [0, 0, 1], placement: str = 'center', tolerance: float = 0.0001, silent: bool = False, polyhedron: bool = True)
Creates a torus.
- Parameters
- origintopologic_core.Vertex , optional
The origin location of the torus. Default is None which results in the torus being placed at (0, 0, 0).
- majorRadiusfloat , optional
The major radius of the torus. Default is 0.5.
- minorRadiusfloat , optional
The minor radius of the torus. Default is 0.125.
- uSidesint , optional
The number of sides along the longitude of the torus (around the hole). Default is 16.
- vSidesint , optional
The number of sides along the latitude of the torus (tube direction). Default is 8.
- directionlist , optional
The vector representing the up direction of the torus. Default is [0, 0, 1].
- placementstr , optional
Placement of the input origin relative to the torus. One of: - “center”: origin is at the torus’ geometric center (default) - “bottom”: origin lies on the lowest point along the up direction - “lowerleft”: origin is at x/y lower-left and bottom in z of the torus’ local bbox Comparison is case-insensitive.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool, optional
If set to True, suppresses warning and error messages. Default is False.
- Returns
- topologic_core.Cell
The created torus.
- static Tube(origin=None, radius: float = 1.0, height: float = 1.0, thickness: float = 0.25, sides: int = 16, direction: list = [0, 0, 1], placement: str = 'center', tolerance: float = 0.0001, silent: bool = False)
Creates a Tube. This method is an alias for the circular hollow section (CHS).
- Parameters
- origintopologic_core.Vertex, optional
The location of the origin of the CHS. Default is None which results in the CHS being placed at (0, 0, 0).
- radiusfloat , optional
The outer radius of the CHS. Default is 1.0.
- thicknessfloat , optional
The thickness of the CHS. Default is 0.25.
- heightfloat , optional
The height of the CHS. Default is 1.0.
- sidesint , optional
The desired number of sides of the CSH. Default is 16.
- directionlist , optional
The vector representing the up direction of the RHS. Default is [0, 0, 1].
- placementstr , optional
The description of the placement of the origin of the RHS. This can be “center”, “bottom”, “top”, “lowerleft”, “upperleft”, “lowerright”, “upperright”. It is case insensitive. Default is “center”.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool , optional
If set to True, error and warning messages are suppressed. Default is False.
- Returns
- topologic_core.Cell
The created cell.
- static Vertices(cell) list
Returns the vertices of the input cell.
- Parameters
- celltopologic_core.Cell
The input cell.
- Returns
- list
The list of vertices.
- static Volume(cell, mantissa: int = 6, silent: bool = False) float
Returns the volume of the input cell.
- Parameters
- celltopologic_core.Cell
The input cell.
- manitssa: int , optional
The number of decimal places to round the result to. Default is 6.
- silentbool , optional
If set to True, error and warning messages are suppressed. Default is False.
- Returns
- float
The volume of the input cell.
- static Wedge(origin=None, width=1, length=1, height=1, flipHorizontal=False, flipVertical=False, direction=[0, 0, 1], placement='center', tolerance=0.0001, silent=False)
Creates a Wedge.
- Parameters
- origintopologic_core.Vertex , optional
The location of the origin of the Wedge. Default is None which results in the Wedge being placed at (0, 0, 0).
- widthfloat , optional
The overall width of the Wedge. Default is 1.0.
- lengthfloat , optional
The overall length of the Wedge. Default is 1.0.
- heightfloat , optional
The overall height of the Wedge. Default is 1.0.
- directionlist , optional
The vector representing the up direction of the Wedge. Default is [0, 0, 1].
- placementstr , optional
The description of the placement of the origin of the Wedge. This can be “center”, “lowerleft”, “upperleft”, “lowerright”, “upperright”. It is case insensitive. Default is “center”.
- tolerancefloat , optional
The desired tolerance. Default is 0.0001.
- silentbool , optional
If set to True, error and warning messages are suppressed. Default is False.
- Returns
- topologic_core.Cell
The created Wedge.
- static Wires(cell) list
Returns the wires of the input cell.
- Parameters
- celltopologic_core.Cell
The input cell.
- Returns
- list
The list of wires.