Example #1
0
File: MainForm.cs Project: algz/AFA
        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);
        }
Example #2
0
 /// <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);
 }
Example #3
0
        /// <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);
                }

            }
        }
Example #4
0
File: GKDlg.cs Project: algz/AFA
        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;
        }