private void btnAceptar_Click(object sender, EventArgs e) { if (ingresoFormulaBode.validarFormula().Equals("")) { //Seteamos las propiedades de la fórmula según los valores ingresados. //Esta fórmula va a ser usada por el formulario llamador. this.Formula = new Formula(); this.Formula.K = ingresoFormulaBode.K; this.Formula.N1 = ingresoFormulaBode.N1; this.Formula.T1 = ingresoFormulaBode.T1; this.Formula.T2 = ingresoFormulaBode.T2; this.Formula.Td = ingresoFormulaBode.Td; this.Formula.N2 = ingresoFormulaBode.N2; this.Formula.T3 = ingresoFormulaBode.T3; this.Formula.T4 = ingresoFormulaBode.T4; this.Formula.Wn = ingresoFormulaBode.Wn; this.Formula.Psi = ingresoFormulaBode.Psi; Dispose(); } else { MessageBox.Show(ingresoFormulaBode.validarFormula(), "Diagramas de Bode", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } }
public FrmEdicionFormula(Formula formula) { InitializeComponent(); this.formulaAEditar = formula; this.modo = Modos.Edicion; txtTitulo.Enabled = false; llenarFormulario(formula); }
private void btnAceptar_Click(object sender, EventArgs e) { //Si la fórmula es válida. if (ingresoFormulaBode.validarFormula().Equals("")) { if (this.modo == Modos.Creacion) { Formula formula = new Formula(); formula.Titulo = txtTitulo.Text; formula.Descripcion = txtDescripcion.Text; formula.K = ingresoFormulaBode.K; formula.N1 = ingresoFormulaBode.N1; formula.T1 = ingresoFormulaBode.T1; formula.T2 = ingresoFormulaBode.T2; formula.Td = ingresoFormulaBode.Td; formula.N2 = ingresoFormulaBode.N2; formula.T3 = ingresoFormulaBode.T3; formula.T4 = ingresoFormulaBode.T4; formula.Wn = ingresoFormulaBode.Wn; formula.Psi = ingresoFormulaBode.Psi; Formula.save(formula); } else { this.formulaAEditar.Descripcion = txtDescripcion.Text; this.formulaAEditar.K = ingresoFormulaBode.K; this.formulaAEditar.N1 = ingresoFormulaBode.N1; this.formulaAEditar.T1 = ingresoFormulaBode.T1; this.formulaAEditar.T2 = ingresoFormulaBode.T2; this.formulaAEditar.Td = ingresoFormulaBode.Td; this.formulaAEditar.N2 = ingresoFormulaBode.N2; this.formulaAEditar.T3 = ingresoFormulaBode.T3; this.formulaAEditar.T4 = ingresoFormulaBode.T4; this.formulaAEditar.Wn = ingresoFormulaBode.Wn; this.formulaAEditar.Psi = ingresoFormulaBode.Psi; Formula.update(this.formulaAEditar); } Dispose(); } //Si la fórmula es inválida. else { MessageBox.Show(ingresoFormulaBode.validarFormula(), "Diagramas de Bode", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } }
private void btnEjemplos_Click(object sender, EventArgs e) { FrmFormulas frmEjemplos = new FrmFormulas(); frmEjemplos.ShowDialog(); if (frmEjemplos.FormulaSeleccionada != null) { //Limpiamos todo lo que puede haber en el formulario. limpiar(); //Tratamos a los ejemplos como fórmulas. this.Formula = frmEjemplos.FormulaSeleccionada; establecerFormula(); //Habilitamos los botones que correspondan. btnAvanzar.Enabled = true; btnLimpiar.Enabled = true; } }
/// <summary> /// Limpia las gráficas de magnitud y fase, la fórmula mostrada, y reestablece todos los /// atributos gráficos y no gráficos. /// </summary> private void limpiar() { //Reestablecemos todos los atributos gráficos. this.lineItemsCurvasIndividualesMagnitud.Clear(); this.lineItemsCurvasIndividualesFase.Clear(); this.lineItemsCurvasParcialesMagnitud.Clear(); this.lineItemsCurvasParcialesFase.Clear(); this.lineItemsPuntosCorte.Clear(); this.lineItemsPuntosCruceGanancia.Clear(); this.lineItemsPuntosCruceFase.Clear(); this.graficaDobleActiva = true; //Reestablecemos los atributos no gráficos. this.controladorBode = null; this.Formula = null; this.primeraEjecucion = true; this.indiceCurvaActual = -1; //Reestablecemos la interfaz de usuario. this.btnAvanzar.Enabled = false; this.btnRetroceder.Enabled = false; establecerFormula(); dgvMargenes.Rows.Clear(); //Limpiamos las gráficas. this.gpMagnitud.CurveList.Clear(); this.gpFase.CurveList.Clear(); //Refrescamos las gráficas. this.zgcMagnitud.Invalidate(); this.zgcFase.Invalidate(); }
private void FrmCompara_Load(object sender, EventArgs e) { //Se crea un panel y un ZGC no visibles, para la maximizacion p = new TableLayoutPanel(); p.Dock = DockStyle.Fill; p.ColumnCount = 1; p.Location = new System.Drawing.Point(0, 0); p.Name = "p"; p.RowCount = 2; p.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent,100F)); p.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute,110F)); zedMax = new ZedGraphControl(); zedMax.Anchor = AnchorStyles.Top; zedMax.Dock = DockStyle.Fill; zedMax.ZoomEvent += new ZedGraph.ZedGraphControl.ZoomEventHandler(Zoom); //zedMax.PointValueEvent += new ZedGraphControl.PointValueHandler(infoPunto); zedMax.DoubleClick += new System.EventHandler(minimizar); dgvDatos.Rows.Add(2); this.gpMagnitud1 = zedGraphControl1.GraphPane; this.gpFase1 = zedGraphControl2.GraphPane; this.gpMagnitud = zedGraphControl3.GraphPane; this.gpFase = zedGraphControl4.GraphPane; establecerPropiedadesPrimarias1(); establecerPropiedadesPrimarias(); Formula1 = h.formulas[0]; Formula = h.formulas[1]; if (Formula1 != null) this.metodoBtnSig_Click1(); if (Formula != null) this.metodoBtnSig_Click(); for (int i = 0; i < 2; i++) this.rellenarFilaTabla(i); foreach (DataGridViewRow fila in dgvDatos.Rows) fila.Selected = false; ////Instancia la tabla de datos //dgvDatos.Rows.Add(2); ////Da formato a los zedGraphControls y a la tabla. //int cont = 0; //int x=0; //for(int i=0;i<controles.Count;i=i+2) //{ // if (i == 0) // { // this.gpMagnitud1 = controles[i].GraphPane; // this.gpFase1 = controles[i + 1].GraphPane; // } // else // { // this.gpMagnitud2 = controles[i].GraphPane; // this.gpFase2 = controles[i + 1].GraphPane; // } // this.rellenarFilaTabla(cont); // //formatoZed(z, cont); // //z.PointValueEvent += new ZedGraphControl.PointValueHandler(infoPunto); // controles[i].ZoomEvent += new ZedGraph.ZedGraphControl.ZoomEventHandler(Zoom); // //controles[i].DoubleClick += new System.EventHandler(maximizar); // controles[i + 1].ZoomEvent += new ZedGraph.ZedGraphControl.ZoomEventHandler(Zoom); // //controles[i + 1].DoubleClick += new System.EventHandler(maximizar); // if(i==0) // x=0; // else // x=1; // asignarGrafica(controles[i],controles[i+1],h.formulas[x], cont++); // Se asignan las gráficas del historial // refresh(controles[i]); // refresh(controles[i+1]); // if(i==0) // { // controles[i].ZoomOutAll(this.gpMagnitud1); // controles[i+1].ZoomOutAll(this.gpFase1); // } // else // { // controles[i].ZoomOutAll(this.gpMagnitud2); // controles[i+1].ZoomOutAll(this.gpFase2); // } //} //foreach (DataGridViewRow fila in dgvDatos.Rows) // fila.Selected = false; }
private void asignarGrafica(ZedGraphControl zedCMagnitud,ZedGraphControl zedCFase,Formula formula, int cont) { establecerPropiedadesPrimarias(zedCMagnitud,zedCFase,cont); if(formula!=null) this.metodoBtnAvanzarClick(zedCMagnitud,zedCFase,formula); }
public void metodoBtnAvanzarClick(ZedGraphControl zedCMagnitud, ZedGraphControl zedCFase, Formula formula) { List<LineItem> lineItemsCurvasIndividualesMagnitud = new List<LineItem>(); List<LineItem> lineItemsCurvasIndividualesFase = new List<LineItem>(); List<LineItem> lineItemsCurvasParcialesMagnitud = new List<LineItem>(); List<LineItem> lineItemsCurvasParcialesFase = new List<LineItem>(); List<LineItem> lineItemsPuntosCorte = new List<LineItem>(); List<LineItem> lineItemsPuntosCruceGanancia = new List<LineItem>(); List<LineItem> lineItemsPuntosCruceFase = new List<LineItem>(); ControladorBode controladorBode; //Indicamos que se están ejecutando los cálculos. this.Cursor = Cursors.WaitCursor; //Generamos el controlador, que tiene las curvas individuales, parciales y puntos de corte. controladorBode = new ControladorBode(formula.K, formula.N1, formula.T1, formula.T2, formula.Td, formula.N2, formula.T3, formula.T4, formula.Wn, formula.Psi); //Generamos todos los LineItem de las curvas individuales y parciales. //Luego los iremos mostrando y ocultando a medida que sea necesario. if (controladorBode.CurvasIndividuales.Count > 0 && controladorBode.CurvasParciales.Count > 0) { lineItemsCurvasIndividualesMagnitud = generarLineItemsCurvasIndividualesMagnitud(controladorBode,zedCMagnitud); lineItemsCurvasIndividualesFase = generarLineItemsCurvasIndividualesFase(controladorBode,zedCFase); lineItemsCurvasParcialesMagnitud = generarLineItemsCurvasParcialesMagnitud(controladorBode,zedCMagnitud); lineItemsCurvasParcialesFase = generarLineItemsCurvasParcialesFase(controladorBode,zedCFase); lineItemsPuntosCorte = generarLineItemsPuntosCorte(controladorBode, zedCMagnitud); lineItemsPuntosCruceGanancia = generarLineItemsPuntosCruceGanancia(controladorBode, zedCMagnitud, zedCFase); lineItemsPuntosCruceFase = generarLineItemsPuntosCruceFase(controladorBode, zedCMagnitud, zedCFase); } //Resaltamos la gráfica de magnitud en magnitud = 0, y la gráfica de //fase en fase = -180,. PointPairList pplResaltadoMagnitud = new PointPairList(); pplResaltadoMagnitud.Add(controladorBode.InicioEjeX, 0); pplResaltadoMagnitud.Add(controladorBode.FinEjeX, 0); LineItem liResaltadoMagnitud = zedCMagnitud.GraphPane.AddCurve("", pplResaltadoMagnitud, Color.Red, SymbolType.None); liResaltadoMagnitud.Line.Width = 2f; liResaltadoMagnitud.Line.Style = System.Drawing.Drawing2D.DashStyle.Dash; PointPairList pplResaltadoFaseSuperior = new PointPairList(); pplResaltadoFaseSuperior.Add(controladorBode.InicioEjeX, 180); pplResaltadoFaseSuperior.Add(controladorBode.FinEjeX, 180); LineItem liFaseResaltadoSuperior = zedCFase.GraphPane.AddCurve("", pplResaltadoFaseSuperior, Color.Red, SymbolType.None); liFaseResaltadoSuperior.Line.Width = 2f; liFaseResaltadoSuperior.Line.Style = System.Drawing.Drawing2D.DashStyle.Dash; PointPairList pplResaltadoFase = new PointPairList(); pplResaltadoFase.Add(controladorBode.InicioEjeX, -180); pplResaltadoFase.Add(controladorBode.FinEjeX, -180); LineItem liFaseResaltado = zedCFase.GraphPane.AddCurve("", pplResaltadoFase, Color.Red, SymbolType.None); liFaseResaltado.Line.Width = 2f; liFaseResaltado.Line.Style = System.Drawing.Drawing2D.DashStyle.Dash; //Indicamos que los cálculos finalizaron. this.Cursor = Cursors.Default; reestablecerEscala(controladorBode,zedCMagnitud,zedCFase); for (int indiceCurvaActual = 0; indiceCurvaActual < controladorBode.CurvasIndividuales.Count;indiceCurvaActual++ ) { mostrarCurvas(controladorBode, indiceCurvaActual, lineItemsCurvasIndividualesMagnitud, lineItemsCurvasIndividualesFase, lineItemsCurvasParcialesMagnitud, lineItemsCurvasParcialesFase, lineItemsPuntosCorte, lineItemsPuntosCruceGanancia, lineItemsPuntosCruceFase,zedCMagnitud,zedCFase); } }
private void btnAceptar_Click(object sender, EventArgs e) { //Asignamos la fórmula seleccionada para que lo use el formulario llamador. if (lbFormulas.Items.Count > 0) this.FormulaSeleccionada = this.formulas[lbFormulas.SelectedIndex]; Dispose(); }
private void btnGanancia_Click(object sender, EventArgs e) { btnGuardar.Enabled = false; limpiar(); FrmIngresoFormula frmIngresoFormula = new FrmIngresoFormula(); Formula formulaNueva = new Formula(); if (frmDiagramaBloques.TipoControlador == "PID") { formulaNueva.K = (double)((double)nudGanancia.Value * frmDiagramaBloques.ControladorPIDSinK); } else { if (frmDiagramaBloques.TipoControlador == "PI") { formulaNueva.K = (double)((double)nudGanancia.Value /frmDiagramaBloques.T1); } else { formulaNueva.K = (double)nudGanancia.Value; } } if (frmDiagramaBloques.T1 != null) { formulaNueva.T1 = frmDiagramaBloques.T1; } if (frmDiagramaBloques.T2 != null) { formulaNueva.T2 = frmDiagramaBloques.T2; } if (frmDiagramaBloques.T3 != null) { formulaNueva.T3 = frmDiagramaBloques.T3; } if (frmDiagramaBloques.T4 != null) { formulaNueva.T4 = frmDiagramaBloques.T4; } if (frmDiagramaBloques.N2 != null) { formulaNueva.N2 = frmDiagramaBloques.N2; } if (frmDiagramaBloques.Td != null) { formulaNueva.Td = frmDiagramaBloques.Td; } if (frmDiagramaBloques.Wn != null) { formulaNueva.Wn = frmDiagramaBloques.Wn; } if (frmDiagramaBloques.Psi != null) { formulaNueva.Psi = frmDiagramaBloques.Psi; } this.Formula = formulaNueva; establecerFormula(); btnGanancia.Enabled = true; //limpiarDatos(); frmDiagramaBloques.ingresoCorrecto = false; //Habilitamos los botones que correspondan. btnAvanzar.Enabled = true; btnLimpiar.Enabled = true; while (btnAvanzar.Enabled) { btnAvanzar.PerformClick(); } }
private void btnFormula_Click(object sender, EventArgs e) { btnGuardar.Enabled = false; frmDiagramaBloques.ShowDialog(); limpiar(); if (frmDiagramaBloques.ingresoCorrecto) { FrmIngresoFormula frmIngresoFormula = new FrmIngresoFormula(); Formula formulaNueva = new Formula(); if (frmDiagramaBloques.TipoControlador == "PID") { formulaNueva.K = (double)(frmDiagramaBloques.K * frmDiagramaBloques.ControladorPIDSinK); } else { if(frmDiagramaBloques.TipoControlador=="PI") { formulaNueva.K = (double)(frmDiagramaBloques.K/frmDiagramaBloques.T1); } else { formulaNueva.K = frmDiagramaBloques.K; } } if (frmDiagramaBloques.T1 != null) { formulaNueva.T1 = frmDiagramaBloques.T1; } if (frmDiagramaBloques.T2 != null) { formulaNueva.T2 = frmDiagramaBloques.T2; } if (frmDiagramaBloques.T3 != null) { formulaNueva.T3 = frmDiagramaBloques.T3; } if (frmDiagramaBloques.T4 != null) { formulaNueva.T4 = frmDiagramaBloques.T4; } if (frmDiagramaBloques.N2 != null) { formulaNueva.N2 = frmDiagramaBloques.N2; } if (frmDiagramaBloques.Td != null) { formulaNueva.Td = frmDiagramaBloques.Td; } if (frmDiagramaBloques.Wn != null) { formulaNueva.Wn = frmDiagramaBloques.Wn; } if (frmDiagramaBloques.Psi != null) { formulaNueva.Psi = frmDiagramaBloques.Psi; } this.Formula = formulaNueva; establecerFormula(); //Ponemos el valor de la ganancia actual en el control nudGanancia. nudGanancia.Value = (decimal)frmDiagramaBloques.K; //limpiarDatos(); frmDiagramaBloques.ingresoCorrecto = false; //Habilitamos los botones que correspondan. btnAvanzar.Enabled = true; btnLimpiar.Enabled = true; } }
/// <summary> /// Actualiza una fórmula. /// </summary> /// <param name="formula">Fórmula a actualizar.</param> public static void update(Formula formula) { //Leemos todas las fórmulas. List<Formula> formulas = getAll(); if (formulas.Count > 0) { //Buscamos la fórmula según su título y la editamos. for (int indiceEjemplo = 0; indiceEjemplo < formulas.Count; indiceEjemplo++) { if (formulas[indiceEjemplo].Titulo.Equals(formula.Titulo)) { formulas[indiceEjemplo].Descripcion = formula.Descripcion; formulas[indiceEjemplo].K = formula.K; formulas[indiceEjemplo].N1 = formula.N1; formulas[indiceEjemplo].T1 = formula.T1; formulas[indiceEjemplo].T2 = formula.T2; formulas[indiceEjemplo].Td = formula.Td; formulas[indiceEjemplo].N2 = formula.N2; formulas[indiceEjemplo].T3 = formula.T3; formulas[indiceEjemplo].T4 = formula.T4; formulas[indiceEjemplo].Wn = formula.Wn; formulas[indiceEjemplo].Psi = formula.Psi; break; } } //Vaciamos el archivo. File.WriteAllText(obtenerRutaArchivo(), string.Empty); //Guardamos la colección con la fórmula editada. BinaryFormatter formatter = new BinaryFormatter(); FileStream streamEscritura = new FileStream(obtenerRutaArchivo(), FileMode.Append); formatter.Serialize(streamEscritura, formulas); streamEscritura.Close(); } }
/// <summary> /// Guarda una fórmula. /// </summary> /// <param name="formula">Fórmula a guardar.</param> public static void save(Formula formula) { //Leemos todas las fórmulas. List<Formula> formulas = getAll(); //Agregamos la fórmula a la colección. formulas.Add(formula); BinaryFormatter formatter = new BinaryFormatter(); if (File.Exists(obtenerRutaArchivo())) { //Vaciamos el archivo. File.WriteAllText(obtenerRutaArchivo(), string.Empty); FileStream streamEscritura = new FileStream(obtenerRutaArchivo(), FileMode.Append); formatter.Serialize(streamEscritura, formulas); streamEscritura.Close(); } else { FileStream streamEscritura = new FileStream(obtenerRutaArchivo(), FileMode.Create); formatter.Serialize(streamEscritura, formulas); streamEscritura.Close(); } }
/// <summary> /// Elimina una fórmula. /// </summary> /// <param name="formula">Fórmula a eliminar.</param> public static void delete(Formula formula) { //Leemos todas las fórmulas. List<Formula> formulas = getAll(); if (formulas.Count > 0) { //Buscamos la fórmula según su título y lo eliminamos. for (int indiceEjemplo = 0; indiceEjemplo < formulas.Count; indiceEjemplo++) { if (formulas[indiceEjemplo].Titulo.Equals(formula.Titulo)) { formulas.RemoveAt(indiceEjemplo); break; } } //Vaciamos el archivo. File.WriteAllText(obtenerRutaArchivo(), string.Empty); //Guardamos la colección con la fórmula eliminada. BinaryFormatter formatter = new BinaryFormatter(); FileStream streamEscritura = new FileStream(obtenerRutaArchivo(), FileMode.Append); formatter.Serialize(streamEscritura, formulas); streamEscritura.Close(); } }
private void btnFormula_Click(object sender, EventArgs e) { btnGuardar.Enabled = false; FrmIngresoFormula frmIngresoFormula = new FrmIngresoFormula(); frmIngresoFormula.ShowDialog(); if (frmIngresoFormula.Formula != null) { //Limpiamos cualquier fórmula que pudo haber quedado graficada. limpiar(); this.Formula = frmIngresoFormula.Formula; //Establecemos los valores de los parámetros y cambiamos su color. establecerFormula(); //Habilitamos los botones que correspondan. btnAvanzar.Enabled = true; btnLimpiar.Enabled = true; } }
private void ejemplo3ToolStripMenuItem_Click(object sender, EventArgs e) { Formula formulaNueva = new Formula(); formulaNueva.K = 1; formulaNueva.Td = 0.5; formulaNueva.T3 = 1; formulaNueva.T4 = 2; this.Formula = formulaNueva; establecerFormula(); //Habilitamos los botones que correspondan. btnAvanzar.Enabled = true; btnLimpiar.Enabled = true; }
/// <summary> /// Llena el formulario con los valores de una fórmula. /// </summary> /// <param name="formula">Fórmula con la que se llenará el formulario.</param> private void llenarFormulario(Formula formula) { txtTitulo.Text = formula.Titulo; txtDescripcion.Text = formula.Descripcion; ingresoFormulaBode.llenarCampos(formula.K, formula.N1, formula.T1, formula.T2, formula.Td, formula.N2, formula.T3, formula.T4, formula.Wn, formula.Psi); }