Module openscad_py.collection

Classes

class Collection (coll: list)

Represents a collection of objects

Expand source code
class Collection(Object):
    """Represents a collection of objects"""

    def __init__(self, coll: list):
        self.collection = coll

    @classmethod
    def c(cls, coll: TUnion[list, Object]) -> Object:
        """Ensure the list of objects is a Collection (idempotent)"""
        if isinstance(coll, Object):
            return coll
        return cls(coll)

    def _add(self, obj):
        return self.__class__(self.collection + [obj])

    def render(self) -> str:
        """Render the object into OpenSCAD code"""
        return "\n".join([o.render() for o in self.collection])

Ancestors

Static methods

def c(coll: list | Object) ‑> Object

Ensure the list of objects is a Collection (idempotent)

Methods

def color(self, r, g, b, a=1.0) ‑> Object

Inherited from: Object.color

def delta_offset(self, delta, chamfer=False)

Inherited from: Object.delta_offset

Return a new 2D interior or exterior outline from an existing outline. See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset

def diff(self,
tool: list | ForwardRef('Object')) ‑> Object

Inherited from: Object.diff

Remove from the object using a difference operator, and return a new object. See …

def extrude(self, height, convexity=10, center: bool = False) ‑> Object

Inherited from: Object.extrude

Apply a linear extrusion and return a new object. If center is false, the linear extrusion Z range is from 0 to height; if it is true, the range is …

def intersection(self,
objects: list | ForwardRef('Object')) ‑> Object

Inherited from: Object.intersection

Get the intersection of self and an object of list of objects, and return a new object. See …

def move(self,
v: list | Point) ‑> Object

Inherited from: Object.move

Apply a translation and return a new object. Synonym of translate()

def radial_offset(self, r)

Inherited from: Object.radial_offset

Return a new 2D interior or exterior outline from an existing outline. See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset

def render(self) ‑> str

Inherited from: Object.render

Render the object into OpenSCAD code

def rotate(self,
a,
v: list | Point) ‑> Object

Inherited from: Object.rotate

def rotate_extrude(self, angle, convexity=10) ‑> Object

Inherited from: Object.rotate_extrude

Apply a rotational extrusion and return a new object. For all points x >= 0 must be true. See …

def scale(self,
v: list | Point | float) ‑> Object

Inherited from: Object.scale

Apply scaling and return a new object. Accepts a vector (a Point object or a list of floats) or a single float for uniform scaling. See …

def translate(self,
v: list | Point) ‑> Object

Inherited from: Object.translate

def union(self,
objects: list | ForwardRef('Object')) ‑> Object

Inherited from: Object.union

Form the union of self and an object or list of objects, and return a new object. See …