csirmaz.openscad-py/openscad_py/cube.py

32 lines
878 B
Python
Raw Normal View History

2024-11-30 22:11:59 +00:00
from typing import Union as TUnion
from typing import List
import math
import numpy as np
from openscad_py.point import Point
from openscad_py.object_ import Object
class Cube(Object):
"""A 3D primitive, cube.
2024-12-02 19:39:18 +00:00
2024-11-30 22:11:59 +00:00
See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#cube
"""
def __init__(self, size: TUnion[list, Point], center: bool = False):
2024-12-02 19:39:18 +00:00
"""
Creates a cube in the first octant. When `center` is True, the cube is centered on the origin.
Arguments:
- size: a Point object or a list of `x, y, z` sizes
- center: if True, the cube is centered on the origin
"""
2024-11-30 22:11:59 +00:00
self.size = Point.c(size)
self.center = center
def render(self):
2024-11-30 22:45:02 +00:00
"""Render the object into OpenSCAD code"""
2024-11-30 22:11:59 +00:00
return f"cube(size={self.size.render()}, center={self._center()});"