```python
"""Lay a straight eastward conveyor run across a factory floor plan."""

def lay_conveyor(floor: list, row: int, col: int, length: int) -> list:
    if row < 0 or row >= len(floor):
        raise ValueError("the run starts off the plan")
    if col + length > len(floor[row]):
        raise ValueError("the run extends beyond the plan")
    if any(cell != '.' for cell in floor[row][col:col+length]):
        raise ValueError("some cells in the run are not open")
    
    new_floor = [list(row) for row in floor]
    new_floor[row][col:col+length] = ['='] * length
    return new_floor
```