Example #1
0
def newBranch():
    global Rung
    rung = radx.get()
    n1 = spinA.get()
    n2 = spinB.get()
    if (n1 >= max_components - 2 or n2 >= max_components - 1):
        print('opcion invalida')
        return
    n1 = cords[n1]
    n2 = cords[n2]
    if (rung != 0 and steps[rung]):
        tempo_X1 = n1 - 10
        tempo_X2 = n2 + 10
        dist_X = (tempo_X2 - tempo_X1)
        tempo_x_space = (dist_X / max_Subcomponents) / (spinB.get() -
                                                        spinA.get())
        tempo_Y1 = (rung * y_space)
        tempo_Y2 = (rung * y_space) + y_space / 2
        dist_Y = tempo_Y2 - tempo_Y1
        initial_xpad = 5
        idOrgN1 = (rung * 1000000) + spinA.get()
        idOrgN2 = (rung * 1000000) + spinB.get()
        if (checarRepetido(idOrgN1) == False
                and checarRepetido(idOrgN2) == False):
            xline = componente(-2, -1, -1, rung, tempo_X1,
                               (rung * y_space) + y_space / 2, tempo_X2,
                               (rung * y_space) + y_space / 2, -2, -2,
                               "SubEscalon", 'green', False, idOrgN1)
            yNode1 = componente(-2, -1, -1, rung, n1 - 10, (rung * y_space),
                                n1 - 10, (rung * y_space) + y_space / 2, -2,
                                -2, "Nodo", 'green', False, idOrgN1)
            yNode2 = componente(-2, -1, -1, rung, n2 + 10, (rung * y_space),
                                n2 + 10, (rung * y_space) + y_space / 2, -2,
                                -2, "Nodo", 'green', False, idOrgN1)
            listaRepetidos.append(idOrgN1)
            listaRepetidos.append(idOrgN2)
            listaFiguras.append(xline)
            listaFiguras.append(yNode1)
            listaFiguras.append(yNode2)
            x1 = (tempo_X1) + initial_xpad
            y1 = ((rung * y_space) + y_space / 4) + 5
            x2 = (tempo_x_space + tempo_X1) - initial_xpad
            y2 = (rung * y_space) + y_space / 2 + dist_Y / 4
            tam = (max_Subcomponents * (spinB.get() - spinA.get()))
            for i in range(0, tam):
                t_componente = componente(-2, -1, -1, rung, x1, y1, x2, y2,
                                          spinA.get(), spinB.get(),
                                          "SubComponente", 'white', False,
                                          idOrgN1)
                listaFiguras.append(t_componente)
                x1 += tempo_x_space
                x2 += tempo_x_space
            repaint()
Example #2
0
def newIfOpen():
    global listaFiguras
    global listaRepetidos
    idBasura = -1
    col = spinx.get()
    if (col >= 9 or col < 0):
        print("Opcion invalida")
        return
    n1 = cords[col]
    n2 = cords[col + 1]
    rung = radx.get()
    if rung == 0:
        pass
    else:
        if steps[rung] and col < max_entradas + 1:
            idOrg = (rung * 100) + col
            tempoComponente = componente(
                idBasura, 0, col, rung, n1 + (x_space / 4),
                rung * y_space - y_space / 4, n2 - (x_space / 4),
                (rung * y_space) + y_space / 4, col, col + 1, "Cerrado", 'red',
                False, idOrg)
            if (checarRepetido(idOrg) == False):
                listaRepetidos.append(idOrg)
                listaFiguras.append(tempoComponente)
                repaint()
Example #3
0
def newRung():
    global Rung
    global listaFiguras
    global listaRepetidos
    idBasura = -2
    if (Rung < max_Steps):
        acvtivateSteps()
        rung = Rung
        idOrg = rung + 30000000
        tempoComponente = componente(idBasura, 0, -1, 0, rung, Rung * y_space,
                                     windowWidth, Rung * y_space, -3, -3,
                                     "Escalon", 'red', False, idOrg)
        if (checarRepetido(idOrg) == False):
            listaRepetidos.append(idOrg)
            listaFiguras.append(tempoComponente)
            repaint()
            Rung += 1
Example #4
0
    def accion(self):
        #self.fondo.identificador+=1
        #c1=componente_dos_arg(self.fondo.poscion_botones,self.posicion[1]+70+90+90,self.fondo.identificador,self.color_bot,self.cadena,self.fondo,self.ventana,self.textorender)
        #self.fondo.componentes.add(c1)
        #self.fondo.identificador+=1
        self.fondo.identificador += 1
        c1 = componente(self.fondo.poscion_botones,
                        self.posicion[1] + 70 + 90 + 90,
                        self.fondo.identificador, 2, self.color_bot,
                        self.cadena, self.fondo, self.ventana,
                        self.textorender)
        self.fondo.componentes.add(c1)
        self.fondo.identificador += 1

        #x,y,identidad,argumentos,color,texto,fondo,ventana,textorender
        dato = comp_dat(self.fondo.poscion_botones + 60,
                        self.posicion[1] + 90 + 90 + 90,
                        self.fondo.identificador_dat, 1, "0 ", (00, 170, 30),
                        "0 ", self.fondo, self.ventana, self.textorender)
        self.fondo.identificador_dat += 1
        self.fondo.datos.add(dato)
Example #5
0
def newLatch():
    global listaFiguras
    global listaRepetidos
    idBasura = -1
    rung = radx.get()
    y_padding = 25
    if rung == 0:
        pass
    else:
        if steps[rung]:
            idOrg = (rung + 10000)
            tempoComponente = componente(
                idBasura, 0, spinx.get(), rung,
                x_space * (max_components - 2) + y_padding,
                (rung * y_space) + y_space / 3,
                x_space * (max_components - 1) + y_padding,
                rung * y_space - y_space / 3, -1, -1, "Latch", 'royalblue',
                False, idOrg)
            if (checarRepetido(idOrg) == False):
                listaRepetidos.append(idOrg)
                listaFiguras.append(tempoComponente)
                repaint()
Example #6
0
def newTimer():
    global listaFiguras
    global listaRepetidos
    idBasura = -1
    rung = radx.get()
    col = max_components - 2
    n1 = cords[col]
    n2 = cords[col + 1]
    if rung == 0:
        pass
    else:
        if steps[rung]:
            idOrg = (rung + 100000)
            tempoComponente = componente(idBasura, 0, spinx.get(), rung,
                                         n1 + (x_space / 4),
                                         (rung * y_space) + y_space / 4,
                                         n2 - (x_space / 4),
                                         rung * y_space - y_space / 4, -1, -1,
                                         "Temporizador", 'red', False, idOrg)

            if (checarRepetido(idOrg) == False):
                listaRepetidos.append(idOrg)
                listaFiguras.append(tempoComponente)
                repaint()
Example #7
0
def abrir(diccio, ruta, fon, ventana):
    # Ahora uso pickle para guardar los objectos
    file = open(ruta, "rb")
    # La lista_auxiliar guarda los valores del tam
    # de objetos_datos y de objetos
    lista_auxiliar = pickle.load(file)
    obj_inic_pos = pickle.load(file)
    fon.objetos[0].posicion = obj_inic_pos
    fon_lto = pickle.load(file)
    fon.lista_ordenada = fon_lto

    for obj_dato in range(lista_auxiliar[0]):
        pickle.load(file)
        obj_pos = pickle.load(file)
        obj_txt = pickle.load(file)
        obj_col = pickle.load(file)
        obj_mod = pickle.load(file)
        obj_vnm = pickle.load(file)
        pickle.load(file)
        pickle.load(file)
        obj_img = pickle.load(file)
        obj_tip = pickle.load(file)
        obj_mod = pickle.load(file)
        obj_pg2 = pickle.load(file)
        obj_pa2 = pickle.load(file)
        obj_peg = pickle.load(file)
        obj_pea = pickle.load(file)
        obj_peb = pickle.load(file)
        obj_img = os.path.basename(obj_img)
        c1 = comp_dat_arg(
            obj_pos[0],
            obj_pos[1],
            fon.identificador_dat,
            obj_mod,
            obj_txt,
            obj_col,
            obj_vnm,
            obj_img,
            obj_tip,
            fon,
            ventana
        )
        c1.pegado2 = obj_pg2
        c1.pegado_a2 = obj_pa2
        c1.pegado = obj_peg
        c1.pegado_a = obj_pea
        c1.pegado_b = obj_peb
        fon.identificador_dat += 1
        fon.objetos_datos.append(c1)
        fon.tipo_obj_datos.append(obj_tip)

    for i in range(1, lista_auxiliar[1]):
        try:
            obj_tip = pickle.load(file)
        except:
            return 0
        if obj_tip == 1:
            obj_pos = pickle.load(file)
            pickle.load(file)
            obj_arg = pickle.load(file)
            pickle.load(file)
            obj_col = pickle.load(file)
            obj_txt = pickle.load(file)
            obj_pga = pickle.load(file)
            obj_vivo = pickle.load(file)
            obj_pegado=pickle.load(file)
            fon.identificador += 1
            c1 = componente(
                obj_pos[0],
                obj_pos[1],
                fon.identificador,
                int(obj_arg),
                obj_col,
                obj_txt,
                fon,
                ventana
            )
            c1.vivo=obj_vivo
            c1.pegado = 1
            c1.pegado_a = obj_pga
            fon.objetos.append(c1)
            fon.tipo_obj.append(obj_tip)
        if obj_tip == 4:
            pickle.load(file)
            obj_pos = pickle.load(file)
            obj_pos2 = pickle.load(file)
            obj_col = pickle.load(file)
            obj_txt = pickle.load(file)
            obj_pga = pickle.load(file)
            obj_vivo = pickle.load(file)

            obj_pegado=pickle.load(file)
            fon.identificador += 1
            #fon.identificador += 1
            #fon.identificador += 1
            c1 = componente_cero_arg(
                obj_pos[0],
                obj_pos[1],
                fon.identificador,
                obj_col,
                obj_txt,
                fon,
                ventana
            )
            c1.vivo=obj_vivo
            c1.pegado = obj_pegado
            c1.pegado_a = obj_pga
            c1.posicion2 = obj_pos2
            fon.objetos.append(c1)
            fon.tipo_obj.append(obj_tip)
        if obj_tip == 5:
            pickle.load(file)
            obj_pos = pickle.load(file)
            obj_col = pickle.load(file)
            obj_txt = pickle.load(file)
            obj_pga = pickle.load(file)
            obj_vivo = pickle.load(file)

            obj_pegado=pickle.load(file)
            fon.identificador += 1
            #fon.identificador += 1
            #fon.identificador += 1
            c1 = componente_bloque_uno(
                obj_pos[0],
                obj_pos[1],
                fon.identificador,
                obj_col,
                obj_txt,
                fon,
                ventana
            )
            fon.objetos.append(c1)
            fon.tipo_obj.append(obj_tip)

            c1.vivo=obj_vivo

            c1.pegado = obj_pegado
            c1.pegado_a = obj_pga
        if obj_tip == 3:
            pickle.load(file)
            obj_pos = pickle.load(file)
            obj_col = pickle.load(file)
            obj_txt = pickle.load(file)
            obj_pga = pickle.load(file)
            obj_vivo = pickle.load(file)

            obj_pegado=pickle.load(file)
            fon.identificador += 1
            #fon.identificador += 1
            #fon.identificador += 1
            c1 = componente_bloque_dos(
                obj_pos[0],
                obj_pos[1],
                fon.identificador,
                obj_col,
                obj_txt,
                fon,
                ventana
            )
            fon.objetos.append(c1)
            fon.tipo_obj.append(obj_tip)
            c1.vivo=obj_vivo
            c1.pegado = obj_pegado
            c1.pegado_a = obj_pga
    file.close()
    return 0
Example #8
0
     fon.objetos_datos.append(c1)
     fon.tipo_obj_datos.append(6)
 if cadena[valor] == "<objeto_componente>\n":
     cadena1 = cadena[valor + 4].strip("()\n")
     cadena2 = cadena1.split(',')
     x, y = cadena2
     argumento = cadena[valor + 2].strip("()\n")
     fon.identificador += 1
     cadena3 = cadena[valor + 5].strip("()\n")
     cadena4 = cadena3.split(',')
     color = (int(cadena4[0]), int(cadena4[1]), int(cadena4[2]))
     text = cadena[valor + 1].strip("()\n")
     text = text + " "
     print "texto", text
     c1 = componente(float(x), float(y), fon.identificador,
                     int(argumento), color, text, fon, ventana,
                     textorender)
     fon.componentes.add(c1)
     fon.objetos.append(c1)
     fon.tipo_obj.append(1)
 if cadena[valor] == "<objeto_bloque>\n":
     cadena1 = cadena[valor + 2].strip("()\n")
     cadena2 = cadena1.split(',')
     x, y = cadena2
     cadena1fin = cadena[valor + 5].strip("()\n")
     cadena2fin = cadena1fin.split(',')
     xfin, yfin = cadena2fin
     cadena3 = cadena[valor + 3].strip("()\n")
     cadena4 = cadena3.split(',')
     color = (int(cadena4[0]), int(cadena4[1]), int(cadena4[2]))
     text = cadena[valor + 4].strip("()\n")
Example #9
0
    def crear_componente(self, b, x, y):
        ax = ay = 30
        # siempre hay que tratar de que el foco quede en el drawing area
        self.area.grab_focus()

        if self.diccionario[b][1] == 1:
            c1 = componente(x, y, self.fondo.identificador + 1,
                            self.diccionario[b][2], self.diccionario[b][3],
                            self.diccionario[b][0], self.fondo, self)
            self.fondo.identificador += 1
            self.fondo.objetos.append(c1)
            self.fondo.tipo_obj.append(self.diccionario[b][1])
            self.fondo.lista_ordenada.append(0)
        if self.diccionario[b][1] == 4:

            self.fondo.identificador += 1
            c1 = componente_cero_arg(x, y, self.fondo.identificador,
                                     self.diccionario[b][3],
                                     self.diccionario[b][0], self.fondo, self)

            self.fondo.objetos.append(c1)
            self.fondo.tipo_obj.append(self.diccionario[b][1])
            self.fondo.lista_ordenada.append(0)

        if self.diccionario[b][1] == 5:
            self.fondo.identificador += 1
            c1 = componente_bloque_uno(
                x,
                y,
                self.fondo.identificador,
                self.diccionario[b][3],
                self.diccionario[b][0],
                self.fondo,
                self,
            )
            self.fondo.objetos.append(c1)
            self.fondo.identificador += 1
            self.fondo.lista_ordenada.append(0)

            c1 = componente_bloque_dos(x, y + 80, self.fondo.identificador,
                                       self.diccionario[b][3],
                                       self.diccionario[b][4], self.fondo,
                                       self)
            self.fondo.objetos.append(c1)
            self.fondo.tipo_obj.append(self.diccionario[b][1])
            self.fondo.tipo_obj.append(0)
            self.fondo.lista_ordenada.append(0)

        if self.diccionario[b][1] == 6:
            c1 = comp_dat_arg(
                x,
                y,
                self.fondo.identificador_dat,
                self.diccionario[b][2],
                self.diccionario[b][4],
                self.diccionario[b][3],
                self.diccionario[b][5],
                self.diccionario[b][0].strip(" ") + ".png",
                6,
                self.fondo,
                self,
            )
            self.fondo.identificador_dat += 1
            self.fondo.objetos_datos.append(c1)
            self.fondo.tipo_obj_datos.append(self.diccionario[b][1])
        if self.diccionario[b][1] == 7:
            c1 = comp_dat_arg(
                x,
                y,
                self.fondo.identificador_dat,
                self.diccionario[b][2],
                self.diccionario[b][4],
                self.diccionario[b][3],
                self.diccionario[b][5],
                self.diccionario[b][0].strip(" ") + ".png",
                7,
                self.fondo,
                self,
            )
            self.fondo.identificador_dat += 1
            self.fondo.objetos_datos.append(c1)
            self.fondo.tipo_obj_datos.append(self.diccionario[b][1])
Example #10
0
    def crear_componente(self,b,x,y):
        ax=0
        ay=30
        dx=10
        dy=20
        # siempre hay que tratar de que el foco quede en el drawing area
        self.area.grab_focus()

        if self.diccionario[b][1]==1:
            c1=componente   (
                            x-ax,
                            y-ay,
                            self.fondo.identificador+1,
                            self.diccionario[b][2],
                            self.diccionario[b][3],
                            self.diccionario[b][0],
                            self.fondo,
                            self,
                            self.textorender
                            )
            self.fondo.componentes.add(c1)
            self.fondo.identificador+=1
            self.fondo.objetos.append(c1)
            self.fondo.tipo_obj.append(self.diccionario[b][1])
        if self.diccionario[b][1]==4:

            self.fondo.identificador+=1
            c1=componente_cero_arg  (
                                    x-ax,
                                    y-ay,
                                    self.fondo.identificador,
                                    self.diccionario[b][3],
                                    self.diccionario[b][0],
                                    self.fondo,
                                    self,
                                    self.textorender
                                    )

            self.fondo.componentes.add(c1)
            self.fondo.objetos.append(c1)
            self.fondo.tipo_obj.append(self.diccionario[b][1])
        if self.diccionario[b][1]==5:
            self.fondo.identificador+=1
            c1=componente_bloque_uno(
                                            x-ax,
                                            y-ay,
                                            self.fondo.identificador,
                                            self.diccionario[b][3],
                                            self.diccionario[b][0],
                                            self.fondo,
                                            self,
                                            self.textorender
                                            )
            self.fondo.componentes.add(c1)
            self.fondo.objetos.append(c1)
            self.fondo.identificador +=1
            c1=componente_bloque_dos    (
                                        x-ax,
                                        y+80-ay,
                                        self.fondo.identificador,
                                        self.diccionario[b][3],
                                        self.diccionario[b][4],
                                        self.fondo,
                                        self,
                                        self.textorender
                                        )
            self.fondo.componentes.add(c1)
            self.fondo.objetos.append(c1)
            self.fondo.tipo_obj.append(self.diccionario[b][1])
            self.fondo.tipo_obj.append(0)
        if self.diccionario[b][1]==6:
            c1=comp_dat_arg   (
                            x-dx,
                            y-dy,
                            self.fondo.identificador_dat,
                            self.diccionario[b][2],
                            self.diccionario[b][4],
                            self.diccionario[b][3],
                            self.diccionario[b][5],
                            self.diccionario[b][0].strip(" ")+".png",
                            6,
                            self.fondo,
                            self,
                            self.textorender
                            )
            self.fondo.identificador_dat+=1
            self.fondo.datos.add(c1)
            self.fondo.objetos_datos.append(c1)
            self.fondo.tipo_obj_datos.append(self.diccionario[b][1])
        if self.diccionario[b][1]==7:
            c1=comp_dat_arg   (
                            x-dx,
                            y-dy,
                            self.fondo.identificador_dat,
                            self.diccionario[b][2],
                            self.diccionario[b][4],
                            self.diccionario[b][3],
                            self.diccionario[b][5],
                            self.diccionario[b][0].strip(" ")+".png",
                            7,
                            self.fondo,
                            self,
                            self.textorender
                            )
            self.fondo.identificador_dat+=1
            self.fondo.datos.add(c1)
            self.fondo.objetos_datos.append(c1)
            self.fondo.tipo_obj_datos.append(self.diccionario[b][1])
Example #11
0
    def crear_componente(self, b, x, y):
        ax = ay = 30
        # siempre hay que tratar de que el foco quede en el drawing area
        self.area.grab_focus()
        if self.diccionario[b][1] == 1:
            c1 = componente(x, y, self.fondo.identificador + 1,
                            self.diccionario[b][2], self.diccionario[b][3],
                            self.diccionario[b][0], self.fondo, self)
            for d in self.diccionario:
                for ar in range(0, self.diccionario[b][2]):
                    cad = self.diccionario[b][4].split(" ")
                    if (self.diccionario[d][0]) == cad[ar]:
                        self.crear_componente(
                            d, x + 80 + (len(self.diccionario[b][0]) * 6),
                            y + (ar * 40))

            self.fondo.identificador += 1
            self.fondo.objetos.append(c1)
            self.fondo.tipo_obj.append(self.diccionario[b][1])
            self.fondo.lista_ordenada.append(0)
        if self.diccionario[b][1] == 4:
            self.fondo.identificador += 1
            c1 = componente_cero_arg(x, y, self.fondo.identificador,
                                     self.diccionario[b][3],
                                     self.diccionario[b][0], self.fondo, self)
            self.fondo.objetos.append(c1)
            self.fondo.tipo_obj.append(self.diccionario[b][1])
            self.fondo.lista_ordenada.append(0)
        if self.diccionario[b][1] == 5:
            self.fondo.identificador += 1
            c1 = componente_bloque_uno(
                x,
                y,
                self.fondo.identificador,
                self.diccionario[b][3],
                self.diccionario[b][0],
                self.fondo,
                self,
            )
            for d in self.diccionario:
                for ar in range(0, self.diccionario[b][2]):
                    cad = self.diccionario[b][4].split(" ")
                    if (self.diccionario[d][0]) == cad[ar]:
                        self.crear_componente(
                            d, x + 150 + (len(self.diccionario[b][0]) * 6),
                            y + (ar * 40))

            self.fondo.objetos.append(c1)
            self.fondo.tipo_obj.append(self.diccionario[b][1])
            self.fondo.lista_ordenada.append(0)

        if self.diccionario[b][1] == 3:
            self.fondo.identificador += 1
            c1 = componente_bloque_dos(x, y + 80, self.fondo.identificador,
                                       self.diccionario[b][3],
                                       self.diccionario[b][4], self.fondo,
                                       self)
            self.fondo.objetos.append(c1)
            self.fondo.tipo_obj.append(self.diccionario[b][1])
            self.fondo.lista_ordenada.append(0)
        if self.diccionario[b][1] == 6:
            c1 = comp_dat_arg(
                x,
                y,
                self.fondo.identificador_dat,
                self.diccionario[b][2],
                self.diccionario[b][4],
                self.diccionario[b][3],
                self.diccionario[b][5],
                self.diccionario[b][0].strip(" ") + ".png",
                6,
                self.fondo,
                self,
            )
            self.fondo.identificador_dat += 1
            self.fondo.objetos_datos.append(c1)
            self.fondo.tipo_obj_datos.append(self.diccionario[b][1])
        if self.diccionario[b][1] == 7:
            c1 = comp_dat_arg(
                x,
                y,
                self.fondo.identificador_dat,
                self.diccionario[b][2],
                self.diccionario[b][4],
                self.diccionario[b][3],
                self.diccionario[b][5],
                self.diccionario[b][0].strip(" ") + ".png",
                7,
                self.fondo,
                self,
            )
            self.fondo.identificador_dat += 1
            self.fondo.objetos_datos.append(c1)
            self.fondo.tipo_obj_datos.append(self.diccionario[b][1])