def show_vectors(self): if self.parent.control.program.vectors.__len__() > 0: Vector.iso_projection() matrix = Vector.process_to_matrix(self.parent.control.program.vectors) self.plot.updateData(matrix[:, 0], matrix[:, 1], connect="pairs") else: self.plot.setData([], [])
def set_up(self): self.setGeometry(300, 300, 800, 600) self.keyPressed.connect(self.on_key) self.view.scene().sigMouseMoved.connect(self._cursor) self.view.scene().sigMouseClicked.connect(self.check_point) self.show() self.set_viewbox() Vector.iso_projection() self.plot()
def open_dxf(self): try: file = qfd.getOpenFileName(self, "Open DXF", "c:\\", "dfx files (*.dxf)") self.all_vectors = read_dxf(file[0]) self.matrix_plot = np.array(reduce(add, [[vector.start, vector.end] for vector in self.all_vectors])) Vector.default_position() Vector.iso_projection() self.plot() except: return
def rotation(self, direction): if direction == QtCore.Qt.Key_Up: Vector.alpha += 0.1 elif direction == QtCore.Qt.Key_Down: Vector.alpha -= 0.1 elif direction == QtCore.Qt.Key_Left: Vector.beta -= 0.1 elif direction == QtCore.Qt.Key_Right: Vector.beta += 0.1 Vector.iso_projection() self.show_vectors() self.show_vector_selection() self.show_points() self.graphics.autoRange(items=[self.plot])
def atm_rot(self, direction): if direction == QtCore.Qt.Key_Up: Vector.alpha += 0.1 elif direction == QtCore.Qt.Key_Down: Vector.alpha -= 0.1 elif direction == QtCore.Qt.Key_Left: Vector.beta -= 0.1 elif direction == QtCore.Qt.Key_Right: Vector.beta += 0.1 Vector.iso_projection() self.plot() self.plot_select()
def show_points(self): dot_dict_list = [] if self.parent.control.program.vectors.__len__() > 0: for node in self.parent.control.program.nodes: if node.conf['dx']['activated'] == False and node.conf['dy']['activated'] == False and \ node.conf['dz']['activated'] == False and node.conf['mx']['activated'] == True and \ node.conf['my']['activated'] == True and node.conf['mz']['activated'] == True: symbol = 't' size = 15 pen_color = QtGui.QColor(255, 255, 0, 200) bru_color = None elif reduce(add, {node.conf['dx']['activated'], node.conf['dy']['activated'], node.conf['dz']['activated'], node.conf['mx']['activated'], node.conf['my']['activated'], node.conf['mz']['activated']}) == True: pen_color = QtGui.QColor(7, 185, 252, 255) bru_color = None symbol = 'o' size = 10 else: symbol = 's' size = 10 pen_color = QtGui.QColor(0, 95, 0, 255) bru_color = None dot = Vector.to_2d(node.pos) dot_dict_list.append({'pos':(dot[0], dot[1]), 'size':size, 'pen':pg.mkPen(color=pen_color, width=2), 'brush':bru_color, 'symbol':symbol}) self.plot_dots.setData(spots=dot_dict_list) else: self.plot_dots.setData(spots=[])
def show_vector_selection(self): if self.parent.control.selection.__len__() > 0: matrix = Vector.process_to_matrix(self.parent.control.selection, selection=True) self.plot_selection.updateData(matrix[:, 0], matrix[:, 1], connect="pairs", pen=pg.mkPen(color=QtGui.QColor(255, 255, 0, 200), width=5), shadowPen=pg.mkPen(color=QtGui.QColor(180, 185, 252, 50), width=15)) else: self.plot_selection.setData([], [])
def on_key(self, event): self.atm_rot(event.key()) if event.key() == QtCore.Qt.Key_Enter: if self.vector_set.__len__() == 1: self.vector_widget(list(self.vector_set)[0]) elif self.vector_set.__len__() == 0: self.vector_widget(Vector((0, 0, 0), (1, 1, 1))) # print("Sin seleccion") else: # print("Seleccione sólo un vector") elif event.key() == QtCore.Qt.Key_Q: # print("Killing") self.deleteLater()
def read_dxf(file): vector_objects = [] array_dxf = [[ line.dxf.start, line.dxf.end ] for line in list(ezdxf.readfile(file).modelspace().query('LINE'))] min_point = min(min(array_dxf)) # set_points = set() for line in array_dxf: translated_origin = subtract(line, min_point) st = translated_origin[0] nd = translated_origin[1] start = (st[0], st[2], -st[1]) end = (nd[0], nd[2], -nd[1]) vector_objects.append(Vector(start, end)) # set_points.add(start) # set_points.add(end) return set(vector_objects) # , set(map(Node, set_points))
def clear_all(self): self.all_vectors = [] self.vector_set = set([]) Vector.iso_projection() self.plot() self.plot_select()
def add_vector(self): vector = Vector((0, 0, 0), (1, 1, 1)) self.selection.add(vector) self.edit_vector()