private void OpenFile(string strFile) { XmlDocument doc = new XmlDocument(); doc.Load(strFile); XmlElement root = doc.DocumentElement; //Common.prjName = GetNodeText(root, "项目路径", string.Empty, string.Empty, string.Empty); int Num = 0; Num = Convert.ToInt32(GetNodeText(root, "工况", "工况数量", string.Empty, string.Empty)); if (Num > 0) { sGK data = new sGK(); string NumName = string.Empty; for (int i = 0; i < Num; i++) { NumName = "工况" + i.ToString(); data.Name = GetNodeText(root, "工况", NumName, "名称", string.Empty); data.MODEL = GetNodeText(root, "工况", NumName, "MODEL", string.Empty); data.BLCONT = GetNodeText(root, "工况", NumName, "BLCONT", string.Empty); data.MACH_INF = GetNodeText(root, "工况", NumName, "MACH_INF", string.Empty); data.RE = GetNodeText(root, "工况", NumName, "RE", string.Empty); data.F*X = GetNodeText(root, "工况", NumName, "F*X", string.Empty); data.FUY = GetNodeText(root, "工况", NumName, "FUY", string.Empty); data.FUZ = GetNodeText(root, "工况", NumName, "FUZ", string.Empty); data.PITCH_V = GetNodeText(root, "工况", NumName, "PITCH_V", string.Empty); data.YAW_V = GetNodeText(root, "工况", NumName, "YAW_V", string.Empty); data.FLOWRATE = GetNodeText(root, "工况", NumName, "FLOWRATE", string.Empty); data.ZMU = GetNodeText(root, "工况", NumName, "ZMU", string.Empty); data.NDISK = Convert.ToInt32(GetNodeText(root, "工况", NumName, "NDISK", string.Empty)); data.PlanesNum = GetNodeText(root, "工况", NumName, "PLANESNUM", string.Empty); data.XYData = new sXY[data.NDISK]; string XYName = string.Empty; for (int j = 0; j < data.NDISK; j++) { XYName = "旋翼" + j.ToString(); data.XYData[j].DISKX = GetNodeText(root, "工况", NumName, XYName, "DISKX"); data.XYData[j].DISKY = GetNodeText(root, "工况", NumName, XYName, "DISKY"); data.XYData[j].DISKZ = GetNodeText(root, "工况", NumName, XYName, "DISKZ"); data.XYData[j].DISKAK = Convert.ToInt32(GetNodeText(root, "工况", NumName, XYName, "DISKAK")); data.XYData[j].RADIUS = GetNodeText(root, "工况", NumName, XYName, "RADIUS"); data.XYData[j].RADIUSC = GetNodeText(root, "工况", NumName, XYName, "RADIUSC"); data.XYData[j].TWSIT = GetNodeText(root, "工况", NumName, XYName, "TWSIT"); data.XYData[j].CHORD = GetNodeText(root, "工况", NumName, XYName, "CHORD"); data.XYData[j].INVERSE = Convert.ToInt32(GetNodeText(root, "工况", NumName, XYName, "INVERSE")); data.XYData[j].FLAP_0 = GetNodeText(root, "工况", NumName, XYName, "FLAP_0"); data.XYData[j].FLAP_C1 = GetNodeText(root, "工况", NumName, XYName, "FLAP_C1"); data.XYData[j].FLAP_S1 = GetNodeText(root, "工况", NumName, XYName, "FLAP_S1"); data.XYData[j].PITCH_0 = GetNodeText(root, "工况", NumName, XYName, "PITCH_0"); data.XYData[j].PITCH_S = GetNodeText(root, "工况", NumName, XYName, "PITCH_S"); data.XYData[j].PITCH_C = GetNodeText(root, "工况", NumName, XYName, "PITCH_C"); data.XYData[j].ALF_TPP = GetNodeText(root, "工况", NumName, XYName, "ALF_TPP"); data.XYData[j].HDISK = GetNodeText(root, "工况", NumName, XYName, "HDISK"); data.XYData[j].N_BLADE = GetNodeText(root, "工况", NumName, XYName, "N_BLADE"); data.XYData[j].OMIGA = GetNodeText(root, "工况", NumName, XYName, "OMIGA"); data.XYData[j].MU = GetNodeText(root, "工况", NumName, XYName, "MU"); data.XYData[j].BLADE = GetNodeText(root, "工况", NumName, XYName, "BLADE"); } #region 进气道 data.inlet.MASSOUT_RATE = GetNodeText(root, "工况", NumName, "MASSOUT_RATE", string.Empty); data.inlet.TEMP_OUT0 = GetNodeText(root, "工况", NumName, "TEMP_OUT0", string.Empty); #endregion AFATreeNode node = null; node = new AFATreeNode(data.Name, TreeNodeType.nodeGKCase); node.Name = data.Name; node.Tag = data; MainForm.GKNode.Nodes.Add(node); } } Common.ITMAX = GetNodeText(root, "求解器设置", "ITMAX", string.Empty, string.Empty); Common.SAVE_STEP = GetNodeText(root, "求解器设置", "SAVE_STEP", string.Empty, string.Empty); Common.CFL = GetNodeText(root, "求解器设置", "CFL", string.Empty, string.Empty); }
/// <summary> /// 发布结果 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void publishBtn_Click(object sender, EventArgs e) { sGK result=new sGK(); foreach (TreeNode n in MainForm.GKNode.Nodes) { if (this.page.Text == n.Text) { result = (sGK)n.Tag; break; } } //sGK result = (sGK)selNode.Tag; string msg = SyswareDataObjectUtil.DataObjectToXml<sGK>(result, "AFA", SyswareDataObjectUtil.saveDataObjectToXml, this.currenGKPath,this.maxLine); msg = msg == "" ? "发布完成" : msg; MessageBox.Show(msg); }
/// <summary> /// /// </summary> /// <param name="page"></param> /// <param name="pointYCollection"></param> /// <param name="isRunRoto">是否运行求解器</param> public DisGKResult(TabPage page, Dictionary<int, PointPairList> pointYCollection, bool isRunRoto = true) { InitializeComponent(); this.page = page; this.currenGKPath = Common.prjName + Path.DirectorySeparatorChar + this.page.Text + Path.DirectorySeparatorChar; this.myPane = this.zedGraphControl1.GraphPane; //设置图标标题和x、y轴标题 this.myPane.Title.Text = "计算监控"; this.myPane.XAxis.Title.Text = "迭代步数"; //更改标题的字体 //FontSpec myFont = new FontSpec("宋体", 20, Color.Red, false, false, false); //this.myPane.Title.FontSpec = myFont; //this.myPane.XAxis.Title.FontSpec = myFont; //this.myPane.YAxis.Title.FontSpec = myFont; //设置网格线可见 myPane.XAxis.MajorGrid.IsVisible = true; myPane.YAxis.MajorGrid.IsVisible = true; //设置网格线颜色 myPane.XAxis.MajorGrid.Color = Color.Chocolate; myPane.YAxis.MajorGrid.Color = Color.Chocolate; //设置网格线形式 myPane.XAxis.MajorGrid.DashOff = 1; myPane.YAxis.MajorGrid.DashOff = 1; myPane.XAxis.MajorGrid.DashOn = 4; myPane.YAxis.MajorGrid.DashOn = 4; //初始化图形 if (pointYCollection == null||pointYCollection.Count==0) { this.myCurve = this.myPane.AddCurve("数据", new PointPairList(), Color.Red, SymbolType.None); } else { this.pointYCollection = pointYCollection; this.myCurve = this.myPane.AddCurve("数据", pointYCollection[0], Color.Red, SymbolType.None); } //监控显示(默认值) this.cmbDisType.SelectedIndex = 0; this.cmbType = 0; this.labGK.Text = this.page.Text; DisGKResult.CheckForIllegalCrossThreadCalls = false; this.mainForm = (MainForm)this.ParentForm; //当前工况 this.currentGK = (sGK)MainForm.GKNode.Nodes[this.page.Text].Tag; //this.baseLine = Convert.ToInt64(this.currentGK.maxIterateNum); if (pointYCollection == null && isRunRoto) { Thread thread = new Thread(loadData); thread.IsBackground = true; thread.Start(); } else if(pointYCollection.Count!=0) { try { SyswareDataObject sdo = new SyswareDataObject(); if (SyswareDataObjectUtil.loadFresultData(sdo, Common.GKPath)) { loadDataGridView(sdo.children[0].children); } else { MessageBox.Show("文件加载失败"); } } catch (Exception e) { MessageBox.Show("文件格式错误.详细:"+e.Message); } } }
public void SetData(ref AFATreeNode selNode) { if (selNode == null) { return; } m_Node = selNode; _Data = (sGK)selNode.Tag; m_oldName = _Data.Name; this.tbName.Text = _Data.Name; if (_Data.MODEL == "1") { this.chkModelXY.Checked = false; this.chkModelJQD.Checked = false; } if (_Data.MODEL == "11") { this.chkModelXY.Checked = true; this.chkModelJQD.Checked = false; } if (_Data.MODEL == "101") { this.chkModelXY.Checked = false; this.chkModelJQD.Checked = true; } if (_Data.MODEL == "111") { this.chkModelXY.Checked = true; this.chkModelJQD.Checked = true; } if (_Data.BLCONT == "1") { this.chkBLCONT.Checked = true; } else { this.chkBLCONT.Checked = false; } this.tbMACH_INF.Text = _Data.MACH_INF; this.tbRE.Text = _Data.RE; this.tbFUX.Text = _Data.F*X; this.tbFUY.Text = _Data.FUY; this.tbFUZ.Text = _Data.FUZ; this.tbPITCH_V.Text = _Data.PITCH_V; this.tbYAW_V.Text = _Data.YAW_V; //this.tbFLOWRATE.Text = _Data.FLOWRATE; this.tbZMU.Text = _Data.ZMU; string strXYName = string.Empty; for (int i = 0; i < _Data.NDISK; i++) { strXYName = "旋翼" + i.ToString(); ListViewItem item=new ListViewItem(); item.Text=strXYName; //node = new TreeNode(strXYName); sXY dataXY = new sXY(); dataXY.ALF_TPP = _Data.XYData[i].ALF_TPP; dataXY.CHORD = _Data.XYData[i].CHORD; dataXY.DISKAK = _Data.XYData[i].DISKAK; dataXY.DISKX = _Data.XYData[i].DISKX; dataXY.DISKY = _Data.XYData[i].DISKY; dataXY.DISKZ = _Data.XYData[i].DISKZ; dataXY.FLAP_0 = _Data.XYData[i].FLAP_0; dataXY.FLAP_C1 = _Data.XYData[i].FLAP_C1; dataXY.FLAP_S1 = _Data.XYData[i].FLAP_S1; dataXY.HDISK = _Data.XYData[i].HDISK; dataXY.INVERSE = _Data.XYData[i].INVERSE; dataXY.MU = _Data.XYData[i].MU; dataXY.N_BLADE = _Data.XYData[i].N_BLADE; dataXY.OMIGA = _Data.XYData[i].OMIGA; dataXY.PITCH_0 = _Data.XYData[i].PITCH_0; dataXY.PITCH_C = _Data.XYData[i].PITCH_C; dataXY.PITCH_S = _Data.XYData[i].PITCH_S; dataXY.RADIUS = _Data.XYData[i].RADIUS; dataXY.RADIUSC = _Data.XYData[i].RADIUSC; dataXY.TWSIT = _Data.XYData[i].TWSIT; dataXY.BLADE = _Data.XYData[i].BLADE; item.Tag = dataXY; //this.treeViewXY.Nodes.Add(node); this.XYlistView.Items.Add(item); if (i == 0) { //默认加载首结点 //this.treeViewXY.SelectedNode = node; item.Selected=true; this.loadYXGridFormNodeTag((sXY)item.Tag); } } #region 进气道 this.MASSOUT_RATE.Text = _Data.inlet.MASSOUT_RATE; this.TEMP_OUT0.Text = _Data.inlet.TEMP_OUT0; #endregion bool flag = true; if (this.XYlistView.Items.Count == 0) { flag = false; } this.btnEditXY.Enabled = flag; this.btnDelXY.Enabled = flag; this.gbYSJ.Enabled = flag; this.groupBox1.Enabled = flag; }