def get_figure(self, params): """Get properties of a defined projection element. Args: params (object): object with the necessary parameters to identify the projection element Returns: tuple[object, bool, str]: the first value in the returned tuple is the object of the projection element, the second is a bool success value and the third is an information message string """ try: figure_type = params.figure_type group = params.projection_group id = params.figure_name name = group + self.figures_list[figure_type] + id proj_elem = ProjectionElementParameters() proj_elem.projection_group = group proj_elem.figure_name = id proj_elem.figure_type = figure_type if figure_type == Figure.POLYLINE: figure = self.get_polyline(name, proj_elem) elif figure_type == Figure.CIRCLE: figure = self.get_circle(name, proj_elem) elif figure_type == Figure.ARC: figure = self.get_arc(name, proj_elem) elif figure_type == Figure.OVAL: figure = self.get_oval(name, proj_elem) elif figure_type == Figure.TEXT or Figure.POINTER: figure = self.get_text(name, proj_elem) else: success = False message = "Figure " + name + "does not exist." if figure: success = True message = "Projection element get correct." else: success = False message = "Projection element get error." except Exception as e: success = False message = e figure = [] return figure, success, message
def cs_frame_hide(self): """Hide frame of user reference system. Raises: SystemError """ proj_elem_params = ProjectionElementParameters() proj_elem_params.projection_group = self.__active_coord_sys + "_origin" proj_elem_params.figure_type = Figure.POLYLINE try: proj_elem_params.figure_name = "frame" self.hide_proj_elem(proj_elem_params) except SystemError as e: raise SystemError(e)
def cs_axes_hide(self): """Hide user reference system origin axes. Raises: SystemError """ proj_elem_params = ProjectionElementParameters() proj_elem_params.projection_group = self.__active_coord_sys + "_origin" proj_elem_params.figure_type = Figure.POLYLINE try: for axis_id in ["axis_x", "axis_y"]: proj_elem_params.figure_name = axis_id self.hide_proj_elem(proj_elem_params) except SystemError as e: raise SystemError(e)
def test4_projection_element(self): pe = ProjectionElementParameters() try: # this fields should be available pe.figure_type = 0 pe.figure_name = "pe_test" pe.projection_group = "pe_test_group" pe.position = Point(0, 0, 0) pe.size[0] = 10 pe.size[1] = 20 pe.angle[0] = 0 pe.angle[1] = 0 figure = pe.to_figure() self.assertEquals(figure.figure_name, pe.figure_name) except Exception as e: self.fail("Exception raised: {}".format(e))
def get_dxf_circle_params(elem, file_name, id): """Read params from elem and create CIRCLE figure Args: elem (modelspace elem): element from dxf containing shape data file_name (str): name of dxf file to be set as projection group id (int): number to identify shape, append to figure name Returns: ProjectionElementParameters: figure parameters """ proj_elem_params = ProjectionElementParameters() proj_elem_params.figure_type = Figure.CIRCLE proj_elem_params.projection_group = file_name proj_elem_params.figure_name = "circle_" + str(id) proj_elem_params.position.x = elem.dxf.center.x proj_elem_params.position.y = elem.dxf.center.y proj_elem_params.size[0] = elem.dxf.radius return proj_elem_params.to_figure()
def get_dxf_line_params(elem, file_name, id): """Read params from elem and create LINE figure Args: elem (modelspace elem): element from dxf containing shape data file_name (str): name of dxf file to be set as projection group id (int): number to identify shape, append to figure name Returns: ProjectionElementParameters: figure parameters """ proj_elem_params = ProjectionElementParameters() proj_elem_params.figure_type = Figure.POLYLINE proj_elem_params.projection_group = file_name proj_elem_params.figure_name = "line_" + str(id) proj_elem_params.position.x = elem.dxf.start.x proj_elem_params.position.y = elem.dxf.start.y proj_elem_params.size[0] = GeometryTool.vector_point_distance( elem.dxf.start, elem.dxf.end) proj_elem_params.angle[0] = GeometryTool.vector_point_angle( elem.dxf.start, elem.dxf.end) return proj_elem_params.to_figure()
def get_dxf_text_params(elem, file_name, id): """Read params from elem and create TEXT figure Args: elem (modelspace elem): element from dxf containing shape data file_name (str): name of dxf file to be set as projection group id (int): number to identify shape, append to figure name Returns: ProjectionElementParameters: figure parameters """ proj_elem_params = ProjectionElementParameters() proj_elem_params.figure_type = Figure.TEXT proj_elem_params.projection_group = file_name proj_elem_params.figure_name = "text_" + str(id) proj_elem_params.position.x = elem.dxf.insert.x - elem.dxf.height * math.sin( math.radians(elem.dxf.rotation)) proj_elem_params.position.y = elem.dxf.insert.y + elem.dxf.height * math.cos( math.radians(elem.dxf.rotation)) proj_elem_params.size[0] = elem.dxf.height proj_elem_params.angle[0] = elem.dxf.rotation proj_elem_params.text = elem.dxf.text return proj_elem_params.to_figure()
def get_dxf_ellipse_params(elem, file_name, id): """Read params from elem and create ELLIPSE figure Args: elem (modelspace elem): element from dxf containing shape data file_name (str): name of dxf file to be set as projection group id (int): number to identify shape, append to figure name Returns: ProjectionElementParameters: figure parameters """ proj_elem_params = ProjectionElementParameters() proj_elem_params.figure_type = Figure.OVAL proj_elem_params.projection_group = file_name proj_elem_params.figure_name = "oval_" + str(id) proj_elem_params.position.x = elem.dxf.center.x proj_elem_params.position.y = elem.dxf.center.y proj_elem_params.size[0] = GeometryTool.vector_point_distance( Point(0, 0, 0), elem.dxf.major_axis) proj_elem_params.size[1] = elem.dxf.ratio * proj_elem_params.size[0] proj_elem_params.angle[0] = GeometryTool.vector_point_angle( Point(0, 0, 0), elem.dxf.major_axis) return proj_elem_params.to_figure()