38 lines
945 B
Python
38 lines
945 B
Python
"""
|
|
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)
|
|
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)
|
|
ACRYLIC_BLACK = 0.5, _color('gray50', 0.6)
|
|
|
|
def __init__(self, density: float, color: Cq.Color):
|
|
self.density = density
|
|
self.color = color
|