Skip to content

Hardware graph

The canonical resolved graph: nodes, ports, containment, transforms and connections.

class in machinewright.hardware_graph

class AssemblyBuilder

No description yet.

def part(
instance_key: str,
definition: Any,
transform: Transform | None = None
) -> NodeRef
def assembly(
instance_key: str,
definition: Any,
transform: Transform | None = None
) -> NodeRef
def connect(
connection_key: str,
source: PortRef,
target: PortRef,
kind: ConnectionKind
) -> None

class in machinewright.hardware_graph

class AssemblyNode(Contract)

No description yet.

class in machinewright.hardware_graph

class ConnectionEdge(Contract)

No description yet.

class in machinewright.hardware_graph

class ConnectionKind(StrEnum)

No description yet.

class in machinewright.hardware_graph

class ContainmentEdge(Contract)

No description yet.

class in machinewright.hardware_graph

class PartNode(Contract)

No description yet.

class in machinewright.hardware_graph

class PortDefinition(Contract)

No description yet.

class in machinewright.hardware_graph

class PortInstance(Contract)

No description yet.

class in machinewright.hardware_graph

class PortRole(StrEnum)

No description yet.

function in machinewright.hardware_graph

def resolve_hardware(
definition: Any,
root_id: str = 'assembly'
) -> ResolvedDesign

No description yet.

class in machinewright.hardware_graph

class ResolvedDesign:
__init__(
graph: ResolvedHardwareGraph,
geometries: dict[str, cadquery.Shape],
materials: dict[str, Any],
source_hints: dict[str, tuple[str, int]]
)

No description yet.

def assembly() -> cadquery.Assembly
def cad(
exploded: bool = False,
spacing: float = 30.0,
nested: bool = False
) -> cadquery.Workplane

class in machinewright.hardware_graph

class ResolvedHardwareGraph(Contract)

No description yet.

def enforce_integrity() -> ResolvedHardwareGraph
def parent(
node_id: str
) -> str | None
def children(
node_id: str
) -> tuple[str, ...]
def descendants(
node_id: str
) -> tuple[str, ...]
def ports_for(
node_id: str
) -> tuple[PortInstance, ...]
def connections_for(
identity: str
) -> tuple[ConnectionEdge, ...]
def neighbors(
node_id: str,
kind: ConnectionKind | None = None
) -> tuple[str, ...]
def connected_subgraph(
node_id: str
) -> tuple[str, ...]
def validate_graph() -> ValidationReport
def to_dot() -> str

class in machinewright.hardware_graph

class Transform(Contract)

No description yet.

def identity() -> Transform
def translated(
x: float = 0,
y: float = 0,
z: float = 0
) -> Transform
def from_location(
location: cadquery.Location
) -> Transform
def location() -> cadquery.Location
def compose(
child: Transform
) -> Transform