def test_constructor_functions(): # does not check the math, because tis would just duplicate the implementation code origin = (3, 3, 3) axis = (1, 0, -1) def_point = (3, 10, 4) ucs = UCS.from_x_axis_and_point_in_xy(origin, axis=axis, point=def_point) assert ucs.is_cartesian assert isclose(ucs.from_wcs(def_point).z, 0) ucs = UCS.from_x_axis_and_point_in_xz(origin, axis=axis, point=def_point) assert ucs.is_cartesian assert isclose(ucs.from_wcs(def_point).y, 0) ucs = UCS.from_y_axis_and_point_in_xy(origin, axis=axis, point=def_point) assert ucs.is_cartesian assert isclose(ucs.from_wcs(def_point).z, 0) ucs = UCS.from_y_axis_and_point_in_yz(origin, axis=axis, point=def_point) assert ucs.is_cartesian assert isclose(ucs.from_wcs(def_point).x, 0) ucs = UCS.from_z_axis_and_point_in_xz(origin, axis=axis, point=def_point) assert ucs.is_cartesian assert isclose(ucs.from_wcs(def_point).y, 0) ucs = UCS.from_z_axis_and_point_in_yz(origin, axis=axis, point=def_point) assert ucs.is_cartesian assert isclose(ucs.from_wcs(def_point).x, 0)
def main(filename): doc = ezdxf.new('R2010') msp = doc.modelspace() origin = (3, 3, 3) axis = (1, 0, -1) def_point = (3, 10, 4) ucs = UCS.from_z_axis_and_point_in_yz(origin, axis=axis, point=def_point) ucs.render_axis(msp, length=5) msp.add_point(location=def_point, dxfattribs={'color': 2}) ocs = OCS(ucs.uz) msp.add_circle(center=ocs.from_wcs(origin), radius=1, dxfattribs={ 'color': 2, 'extrusion': ucs.uz, }) doc.saveas(filename)