Return given point with axes flipped and offset, converting points between cartesian axis layouts.
For example, SVG Y-axis increases top to bottom but DXF is bottom to top.

def pt_change_axis(pt=(0.0, 0.0), flip=[False, False], offset=[0.0, 0.0]):
    '''Return given point with axes flipped and offset, converting points between cartesian axis layouts.
For example, SVG Y-axis increases top to bottom but DXF is bottom to top.
    '''
    assert isinstance(pt, tuple)
    l_pt = len(pt)
    assert l_pt > 1
    for i in pt:
        assert isinstance(i, float)
    assert isinstance(flip, list)
    l_fl = len(flip)
    assert l_fl == l_pt
    for i in flip:
        assert isinstance(i, bool)
    assert isinstance(offset, list)
    l_of = len(offset)
    assert l_of == l_pt
    for i in offset:
        assert isinstance(i, float)

    # Convert True/False to -1/1
    flip_mul = [-2 * int(f) + 1 for f in flip]

    return tuple([offset[i] + pt[i]*flip_mul[i] for i in range(l_pt)])