示例#1
0
文件: PyQtGraph.py 项目: kny5/strucpy
 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([], [])
示例#2
0
    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()
示例#3
0
 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
示例#4
0
文件: PyQtGraph.py 项目: kny5/strucpy
 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])
示例#5
0
    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()
示例#6
0
文件: PyQtGraph.py 项目: kny5/strucpy
 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=[])
示例#7
0
文件: PyQtGraph.py 项目: kny5/strucpy
 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([], [])
示例#8
0
    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()
示例#9
0
文件: read_dxf.py 项目: kny5/strucpy
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))
示例#10
0
 def clear_all(self):
     self.all_vectors = []
     self.vector_set = set([])
     Vector.iso_projection()
     self.plot()
     self.plot_select()
示例#11
0
 def add_vector(self):
     vector = Vector((0, 0, 0), (1, 1, 1))
     self.selection.add(vector)
     self.edit_vector()