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()
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()
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
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)
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()
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()
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
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")
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])
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])
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])