public void EliminarConfiguracion(XML_Config config) { try { //leemos nuevamente las configuraciones en un dataset, y agregamos DataSet ds = new DataSet(); ds.ReadXml(this.filePath); DataTable dt = ds.Tables["configuracion"]; //buscamos la configuracion a borrar DataRow dr = null; foreach (DataRow row in dt.Rows) { if (Convert.ToInt32(row["Id"]) == config.Id) { dr = row; break; } } //si la encontramos, la borramos y grabamos los cambios if (dr != null) { dt.Rows.Remove(dr); ds.WriteXml(this.filePath); } } catch (Exception ex) { throw (ex); } }
public bool PerteneceAreaTrabajo(XML_Config config) { //por defecto estimamos que la figura estara dentro bool resultado = true; //ANALIZAMOS LA UBICACION DEL PUNTO if (this.Ubicacion.X > config.MaxX || this.Ubicacion.X < 0) { return false; } if (this.Ubicacion.Y > config.MaxY || this.Ubicacion.Y < 0) { return false; } //sacamos la validacion sobre Z para permitir los valores negativos //if (this.Ubicacion.Z > config.MaxZ || this.Ubicacion.Z < 0) //{ // return false; //} return resultado; }
public bool PerteneceAreaTrabajo(XML_Config config) { //por defecto estimamos que la figura estara dentro bool resultado = true; //ANALIZAMOS LOS PUNTOS DE INICIO Y FIN: if (this.puntoInicio.X > config.MaxX || this.puntoInicio.X < 0) { return false; } if (this.puntoInicio.Y > config.MaxY || this.puntoInicio.Y < 0) { return false; } //sacamos la validacion sobre Z para permitir los valores negativos //if (this.puntoInicio.Z > config.MaxZ || this.puntoInicio.Z < 0) //{ // return false; //} if (this.puntoFin.X > config.MaxX || this.puntoFin.X < 0) { return false; } if (this.puntoFin.Y > config.MaxY || this.puntoFin.Y < 0) { return false; } //if (this.puntoFin.Z > config.MaxZ || this.puntoFin.Z < 0) //{ // return false; //} //CASO 1 - CUADRANTE DEL INICIO = 1 if (this.CuadranteInicio() == 1) { switch (this.CuadranteFin()) { case 1: //como los dos estan en el cuadrante 1 if (this.anguloInicio > this.anguloFin) { //hay que calcular todos los maximos y minimos if (this.MaximoY > config.MaxY || this.MinimoY < 0 || this.MinimoX < 0 || this.MaximoX > config.MaxX) { return false; } break; } break; case 2: //hay que comparar con el maximo en y if (this.MaximoY > config.MaxY) { return false; } break; case 3: //hay que comparar con el maximo en y, minimo en X if (this.MaximoY > config.MaxY || this.MinimoX < 0) { return false; } break; case 4: //hay que comparar con el maximo y minimo en y, minimo en X if (this.MaximoY > config.MaxY || this.MinimoY < 0 || this.MinimoX < 0) { return false; } break; default: return false; } } //CASO 2 - CUADRANTE DEL INICIO = 2 if (this.CuadranteInicio() == 2) { switch (this.CuadranteFin()) { case 1: //hay que comparar con el maximo y minimo en x, maximo en X if (this.MaximoX > config.MaxX || this.MinimoX < 0 || this.MaximoY > config.MaxY) { return false; } break; case 2://como los dos estan en el cuadrante 2 if (this.anguloInicio > this.anguloFin) { //hay que calcular todos los maximos y minimos if (this.MaximoY > config.MaxY || this.MinimoY < 0 || this.MinimoX < 0 || this.MaximoX > config.MaxX) { return false; } break; } break; case 3: //hay que comparar con el minimo en X if (this.MinimoX < 0) { return false; } break; case 4: //hay que comparar con el minimo en y, minimo en X if (this.MinimoY < 0 || this.MinimoX < 0) { return false; } break; default: return false; } } //CASO 3 - CUADRANTE DEL INICIO = 3 if (this.CuadranteInicio() == 3) { switch (this.CuadranteFin()) { case 1: //hay que comparar con el minimo en y, maximo en X if (this.MaximoX > config.MaxX || this.MinimoY < 0) { return false; } break; case 2: //hay que comparar con el minimo en y, maximo en X if (this.MaximoX > config.MaxX || this.MinimoY < 0 || this.MaximoY > config.MaxY) { return false; } break; case 3://como los dos estan en el cuadrante 3 if (this.anguloInicio > this.anguloFin) { //hay que calcular todos los maximos y minimos if (this.MaximoY > config.MaxY || this.MinimoY < 0 || this.MinimoX < 0 || this.MaximoX > config.MaxX) { return false; } break; } break; case 4: //hay que comparar con el minimo en y if (this.MinimoY < 0) { return false; } break; default: return false; } } //CASO 4 - CUADRANTE DEL INICIO = 4 if (this.CuadranteInicio() == 4) { switch (this.CuadranteFin()) { case 1: //hay que comparar con el maximo en X if (this.MaximoX > config.MaxX) { return false; } break; case 2: //hay que comparar con el maximo en y, maximo en X if (this.MaximoX > config.MaxX || this.MaximoY > config.MaxY) { return false; } break; case 3: //hay que comparar con el maximo en y, maximo y minimo en X if (this.MaximoX > config.MaxX || this.MaximoX < 0 || this.MaximoY > config.MaxY) { return false; } break; case 4: //como los dos estan en el cuadrante 4 if (this.anguloInicio > this.anguloFin) { //hay que calcular todos los maximos y minimos if (this.MaximoY > config.MaxY || this.MinimoY < 0 || this.MinimoX < 0 || this.MaximoX > config.MaxX) { return false; } break; } break; default: return false; } } return resultado; }
/// <summary> /// Converts the polyline in a <see cref="netDxf.Entities.LightWeightPolyline">LightWeightPolyline</see>. /// </summary> /// <returns>A new instance of <see cref="LightWeightPolyline">LightWeightPolyline</see> that represents the lightweight polyline.</returns> //public LightWeightPolyline ToLightWeightPolyline() //{ // List<LightWeightPolylineVertex> polyVertexes = new List<LightWeightPolylineVertex>(); // foreach (PolylineVertex v in this.vertexes) // { // polyVertexes.Add(new LightWeightPolylineVertex(v.Location) // { // BeginThickness = v.BeginThickness, // Bulge = v.Bulge, // EndThickness = v.EndThickness, // } // ); // } // return new LightWeightPolyline(polyVertexes, this.isClosed) // { // Color = this.color, // Layer = this.layer, // LineType = this.lineType, // Normal = this.normal, // Elevation = this.elevation, // Thickness = this.thickness, // XData = this.xData // }; //} public bool PerteneceAreaTrabajo(XML_Config config) { //por defecto estimamos que la figura estara dentro bool resultado = true; foreach (PolylineVertex v in this.Vertexes) { //ANALIZAMOS LOS PUNTOS DE INICIO Y FIN: if (v.Location.X > config.MaxX || v.Location.X < 0) { return false; } if (v.Location.Y > config.MaxY || v.Location.Y < 0) { return false; } //sacamos la validacion sobre Z para permitir los valores negativos // if (v.Location.Z > config.MaxZ || v.Location.Z < 0) //{ // return false; //} } return resultado; }
public bool PerteneceAreaTrabajo(XML_Config config) { //por defecto estimamos que la figura estara dentro bool resultado = true; //ANALIZAMOS LOS MAXIMOS Y MINIMOS DE CAJA EJE if (this.MaximoX > config.MaxX || this.MinimoX < 0) { return false; } if (this.MaximoY > config.MaxY || this.MinimoX < 0) { return false; } return resultado; }
public bool AnalizarFiguras(XML_Config config) { //analizamos los arcos del documento foreach (Arco arco in this.arcos) { if (!arco.PerteneceAreaTrabajo(config)) return false; } //analizamos los puntos del documento foreach (Punto punto in this.puntos) { if (!punto.PerteneceAreaTrabajo(config)) return false; } //analizamos las lineas del documento foreach (Linea linea in this.lineas) { if (!linea.PerteneceAreaTrabajo(config)) return false; } //analizamos las polilineas del documento foreach (IPolilinea polilinea in this.polilineas) { if (polilinea.Tipo == EntidadTipo.Polilinea) { if (!((Polilinea)polilinea).PerteneceAreaTrabajo(config)) return false; } if (polilinea.Tipo == EntidadTipo.LightWeightPolyline) { if (!((LightWeightPolyline)polilinea).PerteneceAreaTrabajo(config)) return false; } } //analizamos los circulos del documento foreach (Circulo circulo in this.circulos) { if (!circulo.PerteneceAreaTrabajo(config)) return false; } return true; }
public void GrabaConfiguracion(XML_Config config) { try { CultureInfo invCult = CultureInfo.InvariantCulture; //leemos nuevamente las configuraciones en un dataset, y agregamos //un nuevo datarow con la nueva configuracion y luego grabamos el xml DataSet ds = new DataSet(); ds.ReadXml(this.filePath); DataTable dt = ds.Tables["configuracion"]; DataRow dr; //en caso que no exista la tabla, la creamos if (dt != null) { dr = dt.NewRow(); } else { DataColumn dc; dt = new DataTable("configuracion"); dc = new DataColumn("Id"); dt.Columns.Add(dc); dc = new DataColumn("Descripcion"); dt.Columns.Add(dc); dc = new DataColumn("PuertoCom"); dt.Columns.Add(dc); dc = new DataColumn("UnidadMedida"); dt.Columns.Add(dc); dc = new DataColumn("TipoProg"); dt.Columns.Add(dc); dc = new DataColumn("MaxX"); dt.Columns.Add(dc); dc = new DataColumn("MaxY"); dt.Columns.Add(dc); dc = new DataColumn("MaxZ"); dt.Columns.Add(dc); dc = new DataColumn("VelocidadMovimiento"); dt.Columns.Add(dc); dc = new DataColumn("LargoSeccion"); dt.Columns.Add(dc); dc = new DataColumn("AlturaAscenso"); dt.Columns.Add(dc); dc = new DataColumn("GradosPasoX"); dt.Columns.Add(dc); dc = new DataColumn("TamVueltaX"); dt.Columns.Add(dc); dc = new DataColumn("GradosPasoY"); dt.Columns.Add(dc); dc = new DataColumn("TamVueltaY"); dt.Columns.Add(dc); dc = new DataColumn("GradosPasoZ"); dt.Columns.Add(dc); dc = new DataColumn("TamVueltaZ"); dt.Columns.Add(dc); dr = dt.NewRow(); ds.Tables.Add(dt); } bool actualiza = false; //verificamos que no exista la configuracion a grabar, //sino actualizamos foreach (DataRow row in dt.Rows) { if (Convert.ToInt32(row["Id"]) == config.Id) { dr = row; actualiza = true; } } dr["Id"] = config.Id; dr["Descripcion"] = config.Descripcion; dr["PuertoCom"] = config.PuertoCom; dr["UnidadMedida"] = config.UnidadMedida; dr["TipoProg"] = config.TipoProg; dr["MaxX"] = config.MaxX.ToString(invCult); dr["MaxY"] = config.MaxY.ToString(invCult); dr["MaxZ"] = config.MaxZ.ToString(invCult); dr["VelocidadMovimiento"] = config.VelocidadMovimiento.ToString(invCult); dr["LargoSeccion"] = config.LargoSeccion.ToString(invCult); dr["AlturaAscenso"] = config.AltoAscenso.ToString(invCult); dr["TamVueltaX"] = config.TamVueltaX.ToString(invCult); dr["TamVueltaY"] = config.TamVueltaY.ToString(invCult); dr["TamVueltaZ"] = config.TamVueltaZ.ToString(invCult); dr["GradosPasoX"] = config.GradosPasoX.ToString(invCult); dr["GradosPasoY"] = config.GradosPasoY.ToString(invCult); dr["GradosPasoZ"] = config.GradosPasoZ.ToString(invCult); if (!actualiza) dt.Rows.Add(dr); ds.WriteXml(this.filePath); //grabamos los items para la configuracion por material/motor //GrabaConfiguracionMatMot(config.Id, config.ConfigMatMot); } catch (Exception ex) { throw (ex); } }
//public void GrabaConfiguracionMatMot(int idConfig, List<XML_ConfigMatMot> configs) //{ // try // { // //leemos nuevamente las configuraciones en un dataset, y agregamos // //un nuevo datarow con la nueva configuracion y luego grabamos el xml // DataSet ds = new DataSet(); // ds.ReadXml(this.filePath); // DataTable dt = ds.Tables["configuracionMatMot"]; // DataRow dr; // if (dt != null) // { // dr = dt.NewRow(); // } // else // { // DataColumn dc; // dt = new DataTable("configuracionMatMot"); // dc = new DataColumn("Id"); // dt.Columns.Add(dc); // dc = new DataColumn("IdConfig"); // dt.Columns.Add(dc); // dc = new DataColumn("IdMaterial"); // dt.Columns.Add(dc); // dc = new DataColumn("IdMotor"); // dt.Columns.Add(dc); // dc = new DataColumn("GradosPaso"); // dt.Columns.Add(dc); // dc = new DataColumn("TamVuelta"); // dt.Columns.Add(dc); // dr = dt.NewRow(); // ds.Tables.Add(dt); // } // //grabamos o actualizamos cada item // foreach (XML_ConfigMatMot config in configs) // { // bool actualiza = false; // //verificamos que no existan los items de configuracion a grabar, // //sino actualizamos // foreach (DataRow row in dt.Rows) // { // if (Convert.ToInt32(row["Id"]) == config.IdConfigMatMot && // Convert.ToInt32(row["IdConfig"]) == idConfig // ) // { // dr = row; // actualiza = true; // } // } // if (!actualiza) // dr = dt.NewRow(); // dr["Id"] = config.IdConfigMatMot; // dr["IdConfig"] = idConfig; // dr["IdMaterial"] = config.IdMaterial; // dr["IdMotor"] = config.IdMotor; // dr["GradosPaso"] = config.GradosPaso.ToString(); // dr["TamVuelta"] = config.TamVuelta.ToString(); // if (!actualiza) // dt.Rows.Add(dr); // } // ds.WriteXml(this.filePath); // } // catch (Exception ex) // { // throw (ex); // } //} //public void GrabaMotor(XML_Motor motor) //{ // try // { // //leemos nuevamente los motores en un dataset, y agregamos // //un nuevo datarow con el nuevo motor y luego grabamos el xml // DataSet ds = new DataSet(); // ds.ReadXml(this.filePath); // DataTable dt = ds.Tables["motores"]; // DataRow dr; // if (dt != null) // { // dr = dt.NewRow(); // } // else // { // DataColumn dc; // dt = new DataTable("motores"); // dc = new DataColumn("Id"); // dt.Columns.Add(dc); // dc = new DataColumn("Descripcion"); // dt.Columns.Add(dc); // dr = dt.NewRow(); // ds.Tables.Add(dt); // } // dr["Id"] = motor.Id; // dr["Descripcion"] = motor.Descripcion; // dt.Rows.Add(dr); // ds.WriteXml(this.filePath); // } // catch (Exception ex) // { // throw (ex); // } //} //public void GrabaMaterial(XML_Material material) //{ // try // { // //leemos nuevamente los motores en un dataset, y agregamos // //un nuevo datarow con el nuevo material y luego grabamos el xml // DataSet ds = new DataSet(); // ds.ReadXml(this.filePath); // DataTable dt = ds.Tables["materiales"]; // DataRow dr; // if (dt != null) // { // dr = dt.NewRow(); // } // else // { // DataColumn dc; // dt = new DataTable("materiales"); // dc = new DataColumn("Id"); // dt.Columns.Add(dc); // dc = new DataColumn("Descripcion"); // dt.Columns.Add(dc); // dc = new DataColumn("Espesor"); // dt.Columns.Add(dc); // dc = new DataColumn("Ancho"); // dt.Columns.Add(dc); // dc = new DataColumn("Largo"); // dt.Columns.Add(dc); // dr = dt.NewRow(); // ds.Tables.Add(dt); // } // dr["Id"] = material.Id; // dr["Descripcion"] = material.Descripcion; // dr["Espesor"] = material.Espesor; // dr["Ancho"] = material.Ancho; // dr["Largo"] = material.Largo; // dt.Rows.Add(dr); // ds.WriteXml(this.filePath); // } // catch (Exception ex) // { // throw (ex); // } //} public List<XML_Config> LeeConfiguracion() { //seteamos el tipo de culture para grabar bien los decimales //CultureInfo actual = Thread.CurrentThread.CurrentCulture; CultureInfo invCult = CultureInfo.InvariantCulture; //Thread.CurrentThread.CurrentCulture = new CultureInfo("es-AR"); DataSet ds = new DataSet(); ds.ReadXml(this.filePath); DataTable dtConfig = ds.Tables["configuracion"]; //DataTable dtConfigMatMot = ds.Tables["configuracionMatMot"]; XML_Config c; List<XML_Config> cs = new List<XML_Config>(); if (dtConfig != null) { foreach (DataRow dr in dtConfig.Rows) { //leemos la configuracion general c = new XML_Config(); c.Id = Convert.ToInt32(dr["Id"]); c.Descripcion = dr["Descripcion"].ToString(); c.PuertoCom = dr["PuertoCom"].ToString(); c.UnidadMedida = dr["UnidadMedida"].ToString(); c.TipoProg = dr["TipoProg"].ToString(); c.MaxX = float.Parse(dr["MaxX"].ToString(), invCult); c.MaxY = float.Parse(dr["MaxY"].ToString()); c.MaxZ = float.Parse(dr["MaxZ"].ToString()); c.VelocidadMovimiento = decimal.Parse(dr["VelocidadMovimiento"].ToString(), invCult); c.LargoSeccion = decimal.Parse(dr["LargoSeccion"].ToString(), invCult); c.AltoAscenso = float.Parse(dr["AlturaAscenso"].ToString(), invCult); c.GradosPasoX = decimal.Parse(dr["GradosPasoX"].ToString(), invCult); c.GradosPasoY = decimal.Parse(dr["GradosPasoY"].ToString(), invCult); c.GradosPasoZ = decimal.Parse(dr["GradosPasoZ"].ToString(), invCult); c.TamVueltaX = decimal.Parse(dr["TamVueltaX"].ToString(), invCult); c.TamVueltaY = decimal.Parse(dr["TamVueltaY"].ToString(), invCult); c.TamVueltaZ = decimal.Parse(dr["TamVueltaZ"].ToString(), invCult); //c.ConfigMatMot = new List<XML_ConfigMatMot>(); //if (dtConfigMatMot != null) //{ // XML_ConfigMatMot configMatMot; // foreach (DataRow dr2 in dtConfigMatMot.Rows) // { // if (dr2["IdConfig"].ToString() == c.Id.ToString()) // { // configMatMot = new XML_ConfigMatMot(); // configMatMot.IdConfigMatMot = Convert.ToInt32(dr2["Id"]); // configMatMot.IdMaterial = Convert.ToInt32(dr2["IdMaterial"]); // configMatMot.IdMotor = Convert.ToInt32(dr2["IdMotor"]); // configMatMot.GradosPaso = Convert.ToDecimal(dr2["GradosPaso"]); // configMatMot.TamVuelta = Convert.ToDecimal(dr2["TamVuelta"]); // c.ConfigMatMot.Add(configMatMot); // } // } //} cs.Add(c); } } //devolvemos al thread el formato actual //Thread.CurrentThread.CurrentCulture = actual; return cs; }
private void GrabaConfiguracionGeneral() { try { //cambiamos el cursor a waiting Cursor.Current = Cursors.WaitCursor; //culture que usamos para mostrar los campos y recuperarlos en pantalla CultureInfo cultAR = new CultureInfo("es-AR"); string xmlPath = ConfigurationManager.AppSettings["xmlDbPath"]; XMLdb x = new XMLdb(xmlPath); bool actualiza = false; //vemos si es actualizacion o alta XML_Config config; if (!cmbConfiguracion.Visible) {//es alta config = new XML_Config(); //cargamos la descripcion del nuevo perfil config.Descripcion = txtNombrePerfil.Text.Trim(); // el siguiente id de la lista de configuraciones List<XML_Config> configuraciones = (List<XML_Config>)cmbConfiguracion.DataSource; int maxId = 0; foreach (XML_Config configuracion in configuraciones) { if (configuracion.Id > maxId) { maxId = configuracion.Id; } } config.Id = maxId + 1; } else {//es actualizacion config = (XML_Config)cmbConfiguracion.SelectedItem; actualiza = true; } //cargamos los nuevos valores config.PuertoCom = portComboBox.Text; config.MaxX = float.Parse(txtMaxX.Text, cultAR); config.MaxY = float.Parse(txtMaxY.Text, cultAR); config.MaxZ = float.Parse(txtMaxZ.Text, cultAR); config.LargoSeccion = decimal.Parse(txtLargoSeccion.Text, cultAR); config.VelocidadMovimiento = decimal.Parse(txtVelocMov.Text, cultAR); config.AltoAscenso = float.Parse(txtAltura.Text, cultAR); config.GradosPasoX = decimal.Parse(txtGradosX.Text, cultAR); config.GradosPasoY = decimal.Parse(txtGradosY.Text, cultAR); config.GradosPasoZ = decimal.Parse(txtGradosZ.Text, cultAR); config.TamVueltaX = decimal.Parse(txtVueltasX.Text, cultAR); config.TamVueltaY = decimal.Parse(txtVueltasY.Text, cultAR); config.TamVueltaZ = decimal.Parse(txtVueltasZ.Text, cultAR); if (rbtAbsoluta.Checked) config.TipoProg = "abs"; if (rbtRelativa.Checked) config.TipoProg = "rel"; if (rbtMM.Checked) config.UnidadMedida = "mm"; if (rbtPULG.Checked) config.UnidadMedida = "pulg"; //grabamos la configuracion general x.GrabaConfiguracion(config); if (actualiza) MessageBox.Show("La configuración ha sido actualizada correctamete", "Configuración - Actualización", MessageBoxButtons.OK, MessageBoxIcon.Information); else MessageBox.Show("La configuración ha sido dado de alta correctamete", "Configuración - Alta", MessageBoxButtons.OK, MessageBoxIcon.Information); //this.Hide(); this.cmbConfiguracion.SelectedValueChanged -= new System.EventHandler(this.cmbConfiguracion_SelectedValueChanged); lblNombre.Visible = false; txtNombrePerfil.Visible = false; lblConfig.Visible = true; cmbConfiguracion.Visible = true; //lblConfigs.Enabled = true; //btnAltaConfigMatMot.Enabled = true; //grdConfigMatMot.Enabled = true; //grabamos en la configuracion que esta es la ultima configuracion seleccionada //ConfigurationManager.AppSettings["idLastConfig"]=config.Id.ToString(); //Configuration appconfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); //appconfig.AppSettings.Settings["idLastConfig"].Value = config.Id.ToString(); //appconfig.Save(ConfigurationSaveMode.Modified, true); //ConfigurationManager.RefreshSection("appSettings"); x.GrabaConfiguracionGral((new XML_Gral(config.Id))); //CargaConfiguracionGeneral(); //cambiamos el cursor al normal Cursor.Current = Cursors.Default; } catch (Exception ex) { //cambiamos el cursor al normal Cursor.Current = Cursors.Default; throw (ex); //MessageBox.Show("Se ha producido un error: " + ex.Message, "Alta Configuracion", MessageBoxButtons.OK, MessageBoxIcon.Error); } }