Module openscad_py.object_
Classes
class Object
-
Base class for an SCAD object. Defines convenience methods to apply transformations.
Expand source code
class Object: """Base class for an SCAD object. Defines convenience methods to apply transformations.""" def _center(self) -> str: """Render the `center` flag into string""" return ('true' if self.center else 'false') def _add(self, obj: 'Object'): """Add an object, forming a Collection""" from openscad_py.collection import Collection return Collection([self, obj]) def render(self) -> str: """Render the object into OpenSCAD code""" raise Exception("abstract method") def translate(self, v: TUnion[list, Point]) -> 'Object': """Apply a translation and return a new object. See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate """ from openscad_py.translate import Translate return Translate(v=v, child=self) def move(self, v: TUnion[list, Point]) -> 'Object': """Apply a translation and return a new object. Synonym of `translate()`""" from openscad_py.translate import Translate return Translate(v=v, child=self) def rotate(self, a, v: TUnion[list, Point]) -> 'Object': """Apply a rotation and return a new object. See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate """ from openscad_py.rotate import Rotate return Rotate(a=a, v=v, child=self) def scale(self, v: TUnion[list, Point, float]) -> 'Object': """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 https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#scale """ from openscad_py.scale import Scale return Scale(v=v, child=self) def color(self, r, g, b, a=1.) -> 'Object': """Apply a color and return a new object. See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color """ from openscad_py.color import Color return Color(r=r, g=g, b=b, a=a, child=self) def extrude(self, height, convexity = 10, center: bool = False) -> 'Object': """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 from -height/2 to height/2. See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/2D_to_3D_Extrusion """ from openscad_py.linear_extrude import LinearExtrude return LinearExtrude(height=height, child=self, convexity=convexity, center=center) def rotate_extrude(self, angle, convexity = 10) -> 'Object': """Apply a rotational extrusion and return a new object. For all points x >= 0 must be true. See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/2D_to_3D_Extrusion """ from openscad_py.rotate_extrude import RotateExtrude return RotateExtrude(angle=angle, child=self, convexity=convexity) def radial_offset(self, r): """Return a new 2D interior or exterior outline from an existing outline. See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset """ from openscad_py.radial_offset import RadialOffset return RadialOffset(r=r, child=self) def delta_offset(self, delta, chamfer=False): """Return a new 2D interior or exterior outline from an existing outline. See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#offset """ from openscad_py.delta_offset import DeltaOffset return DeltaOffset(delta=delta, child=self, chamfer=chamfer) def diff(self, tool: TUnion[list, 'Object']) -> 'Object': """Remove from the object using a difference operator, and return a new object. See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/CSG_Modelling#difference """ from openscad_py.difference import Difference return Difference(subject=self, tool=tool) def union(self, objects: TUnion[list, 'Object']) -> 'Object': """Form the union of self and an object or list of objects, and return a new object. See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/CSG_Modelling#union """ from openscad_py.union import Union from openscad_py.collection import Collection return Union(child=Collection.c(objects)._add(self)) def intersection(self, objects: TUnion[list, 'Object']) -> 'Object': """Get the intersection of self and an object of list of objects, and return a new object. See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/CSG_Modelling#intersection """ from openscad_py.intersection import Intersection from openscad_py.collection import Collection return Intersection(child=Collection.c(objects)._add(self))
Subclasses
- Circle
- Collection
- Color
- Cube
- Cylinder
- DeltaOffset
- Difference
- Intersection
- LinearExtrude
- PathTube
- Polygon
- Polyhedron
- RadialOffset
- Rotate
- RotateExtrude
- Scale
- Sphere
- Translate
- Union
Methods
def color(self, r, g, b, a=1.0) ‑> Object
-
Apply a color and return a new object. See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#color
def delta_offset(self, delta, chamfer=False)
-
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-
Remove from the object using a difference operator, and return a new object. See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/CSG_Modelling#difference
def extrude(self, height, convexity=10, center: bool = False) ‑> Object
-
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 from -height/2 to height/2. See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/2D_to_3D_Extrusion def intersection(self,
objects: list | ForwardRef('Object')) ‑> Object-
Get the intersection of self and an object of list of objects, and return a new object. See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/CSG_Modelling#intersection
def move(self,
v: list | Point) ‑> Object-
Apply a translation and return a new object. Synonym of
translate()
def radial_offset(self, r)
-
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
-
Render the object into OpenSCAD code
def rotate(self,
a,
v: list | Point) ‑> Object-
Apply a rotation and return a new object. See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#rotate
def rotate_extrude(self, angle, convexity=10) ‑> Object
-
Apply a rotational extrusion and return a new object. For all points x >= 0 must be true. See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/2D_to_3D_Extrusion
def scale(self,
v: list | Point | float) ‑> Object-
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 https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#scale
def translate(self,
v: list | Point) ‑> Object-
Apply a translation and return a new object. See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#translate
def union(self,
objects: list | ForwardRef('Object')) ‑> Object-
Form the union of self and an object or list of objects, and return a new object. See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/CSG_Modelling#union