""" A catalog of material properties """ from enum import Enum import cadquery as Cq def _color(name: str, alpha: float) -> Cq.Color: r, g, b, _ = Cq.Color(name).toTuple() return Cq.Color(r, g, b, alpha) class Role(Enum): """ Describes the role of a part """ # Parent and child components in a load bearing joint PARENT = _color('blue4', 0.6) CHILD = _color('darkorange2', 0.6) DAMPING = _color('springgreen', 0.5) STRUCTURE = _color('gray', 0.4) DECORATION = _color('lightseagreen', 0.4) ELECTRONIC = _color('mediumorchid', 0.5) def __init__(self, color: Cq.Color): self.color = color class Material(Enum): """ A catalog of common material properties """ WOOD_BIRCH = 0.8, _color('bisque', 0.9) PLASTIC_PLA = 0.5, _color('azure3', 0.6) RESIN_TRANSPARENT = 1.1, _color('cadetblue2', 0.6) ACRYLIC_BLACK = 0.5, _color('gray50', 0.6) ACRYLIC_TRANSPARENT = 0.5, _color('ghostwhite', 0.5) def __init__(self, density: float, color: Cq.Color): self.density = density self.color = color