Exemplo n.º 1
0
        /// <summary>
        /// 更新当前对话框显示的截面信息
        /// </summary>
        /// <param name="SecId">截面号</param>
        public void UpdateCurentSec(int SecId)
        {
            MainForm   mmf    = this.Owner as MainForm;
            ModelForm1 mf     = mmf.ModelForm;
            Bmodel     mm     = mf.CurModel;
            BSections  curSec = mm.sections[SecId];
            string     len    = mm.unit.Length;//长度单位

            //更新截面信息
            tb_SecID.Text   = SecId.ToString();
            tb_SecName.Text = curSec.Name;


            //更新截面特性
            Dgv_SecProp.Rows.Clear();//清除行
            Dgv_SecProp.RowHeadersVisible = false;
            DataAddRow(ref Dgv_SecProp, "A", curSec.Area.ToString(), len + "^2");
            DataAddRow(ref Dgv_SecProp, "Ixx", curSec.Ixx.ToString(), len + "^4");
            DataAddRow(ref Dgv_SecProp, "Iyy", curSec.Iyy.ToString(), len + "^4");
            DataAddRow(ref Dgv_SecProp, "Izz", curSec.Izz.ToString(), len + "^4");
            DataAddRow(ref Dgv_SecProp, "Iw", curSec.Iw.ToString(), len + "^6");

            DataAddRow(ref Dgv_SecProp, "Cent:y", curSec.Cy.ToString(), len);
            DataAddRow(ref Dgv_SecProp, "Cent:z", curSec.Cz.ToString(), len);
            DataAddRow(ref Dgv_SecProp, "Shear:y", curSec.Sy.ToString(), len);
            DataAddRow(ref Dgv_SecProp, "Shear:z", curSec.Sz.ToString(), len);

            DataAddRow(ref Dgv_SecProp, "CyM", curSec.CyM.ToString(), len);
            DataAddRow(ref Dgv_SecProp, "CyP", curSec.CyP.ToString(), len);
            DataAddRow(ref Dgv_SecProp, "CzM", curSec.CzM.ToString(), len);
            DataAddRow(ref Dgv_SecProp, "CzP", curSec.CzP.ToString(), len);

            MakeEditable(ref Dgv_SecProp, 1);//使可编辑
        }
Exemplo n.º 2
0
        private void bt_CheckGo_Click(object sender, EventArgs e)
        {
            MainForm   mmf        = this.Owner as MainForm;//主窗口
            ModelForm1 mf         = mmf.ModelForm;
            TextBox    messagebox = mmf.MessageTool.Tb_out;

            MidasGenModel.model.Bmodel mm = mf.CurModel;
            if (tb_Elems.Text.Length == 0)
            {
                lb_out.Text = "提示:没有指定单元号!";
            }

            List <int> eles = SelectCollection.StringToList(tb_Elems.Text);
            int        num  = eles.Count;//选择单元数
            int        i    = 1;

            mmf.MessageTool.Tb_out.AppendText(Environment.NewLine + "************单元验算开始************");
            mmf.MessageTool.Tb_out.AppendText(Environment.NewLine + "  开始验算");
            foreach (int ele in eles)
            {
                //mf.CheckTable.CheckElemByNum(ref mm, ele);
                CodeCheck.RefreshDesignPara(ref mm, mf.CheckModel, ele);
                CodeCheck.CalDesignPara_lemda(ref mm, ele);
                CodeCheck.CalDesignPara_phi(ref mm, ele, 1); //计算y向轴压稳定系数
                CodeCheck.CalDesignPara_phi(ref mm, ele, 2); //计算z向轴压稳定系数

                mf.CheckTable.CheckElemByNum_N(ref mm, ele, ref mf.CheckModel);
                string info = "   " + i.ToString() + " of " + num.ToString() + " 验算完成!";
                //ReplaceLastLine(ref messagebox, info);
                mmf.MessageTool.Tb_out.AppendText(Environment.NewLine + info);
                i++;
            }
            mmf.MessageTool.Tb_out.AppendText(Environment.NewLine + "************单元验算结束************");
        }
Exemplo n.º 3
0
        private void bt_GoCheck_Click(object sender, EventArgs e)
        {
            MainForm   mmf        = this.Owner as MainForm; //主窗口
            ModelForm1 mf         = mmf.ModelForm;          //模型窗口
            TextBox    messagebox = mmf.MessageTool.Tb_out;

            MidasGenModel.model.Bmodel mm = mf.CurModel;
            //激活地震组合有问题
            mm.RSCombineActive(cb_isdizhen.Checked);//激活地震组合

            if (tb_Elems.Text.Length == 0)
            {
                lb_out.Text = "提示:没有指定单元号!";
            }

            List <int> eles = SelectCollection.StringToList(tb_Elems.Text);
            int        num  = eles.Count;//选择单元数
            int        i    = 1;

            mmf.MessageTool.Tb_out.AppendText(Environment.NewLine + "************单元验算开始************");
            mmf.MessageTool.Tb_out.AppendText(Environment.NewLine + "  开始验算");
            foreach (int ele in eles)
            {
                mf.CheckTable.CheckElemByNum(ref mm, ele);
                //lb_out.Text = "提示:"+i.ToString()+" of "+num.ToString()+ "验算完成" ;
                string info = "   " + i.ToString() + " of " + num.ToString() + " 验算完成!";
                ReplaceLastLine(ref messagebox, info);
                i++;
            }
            mmf.MessageTool.Tb_out.AppendText(Environment.NewLine + "************单元验算结束************");
        }
Exemplo n.º 4
0
        private void button1_Click(object sender, EventArgs e)
        {
            MainForm   mmf    = this.Owner as MainForm;
            ModelForm1 mf     = mmf.ModelForm;
            Bmodel     mm     = mf.CurModel;
            int        secid  = Convert.ToInt32(tb_SecID.Text);
            BSections  curSec = mm.sections[secid];

            foreach (DataGridViewRow row in Dgv_SecProp.Rows)
            {
                string Prop = row.Cells[0].Value.ToString();
                double valu = Convert.ToDouble(row.Cells[1].Value.ToString());
                switch (Prop)
                {
                case "A": curSec.Area = valu; break;

                case "Iw": curSec.Iw = valu; break;

                case "Ixx": curSec.Ixx = valu; break;

                case "Iyy": curSec.Iyy = valu; break;

                case "Izz": curSec.Izz = valu; break;

                case "Cent:y": curSec.Cy = valu; break;

                case "Cent:z": curSec.Cz = valu; break;

                case "Shear:y": curSec.Sy = valu; break;

                case "Shear:z": curSec.Sz = valu; break;

                case "CyM": curSec.CyM = valu; break;

                case "CyP": curSec.CyP = valu; break;

                case "CzM": curSec.CzM = valu; break;

                case "CzP": curSec.CzP = valu; break;

                default: break;
                }
            }

            this.Close();
        }
Exemplo n.º 5
0
        private void 查询加载点临时ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (!this.HasToolWindow(_modelKey))
            {
                MessageBox.Show("请先新建模型");
                return;
            }

            ModelForm1 cf  = this.ModelForm;
            BLoadTable blt = cf.CurModel.LoadTable;
            SortedList <int, BNLoad> NLD = blt.NLoadData["DL"] as SortedList <int, BNLoad>;

            MessageTool.Tb_out.AppendText(Environment.NewLine + "DL工况下节点荷载号如下:");
            foreach (int n in NLD.Keys)
            {
                MessageTool.Tb_out.AppendText(" " + n.ToString());
            }
        }
Exemplo n.º 6
0
 private void 新建ToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (!this.HasToolWindow("Model"))
     {
         ModelForm1 mf = new ModelForm1();
         mf.Text = "新模型";
         _LayoutManager.ToolWindows.Add(mf);
         this.Refresh();//刷新界面
     }
     else
     {
         DialogResult res = MessageBox.Show("现有模型数据将被初始化,是否确认对现有模型进行初始化?", "注意",
                                            MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button2);
         if (res == DialogResult.Yes)
         {
             _LayoutManager.ToolWindows.Remove(_LayoutManager.ToolWindows["Model"]);
             ModelForm1 mf = new ModelForm1();
             mf.Text = "新模型";
             _LayoutManager.ToolWindows.Add(mf);
             this.Refresh();//刷新界面
         }
     }
 }
Exemplo n.º 7
0
        //点击开始时
        private void bt_run_Click(object sender, EventArgs e)
        {
            string fileN = textBox1.Text;                   //节点文件路径
            string fileE = textBox2.Text;                   //单元文件路径

            RefreshUnitRatio();                             //更新长度单位系数

            MainForm   mmf        = this.Owner as MainForm; //主窗口
            ModelForm1 mf         = mmf.ModelForm;
            TextBox    messagebox = mmf.MessageTool.Tb_out; //信息窗口

            Bmodel MyModel = new Bmodel();                  //模型数据库

            Workbook bookN = Workbook.Load(fileN);          //节点数据表
            Workbook bookE = Workbook.Load(fileE);          //节点数据表


            #region 节点表信息读取及处理
            //节点表信息读取及处理
            foreach (Worksheet ws in bookN.Worksheets)
            {
                if (ws.Name == "节点")
                {
                    ReadNode1(ws, ref MyModel);//读取“节点”表
                }
                else if (ws.Name == "节点荷载" || ws.Name == "节点导荷载")
                {
                    ReadNode2(ws, ref MyModel);//读取“节点荷载”表/“节点导荷载”表
                }
            }
            messagebox.AppendText(Environment.NewLine + "读取节点表信息完成!");
            #endregion
            #region 单元表信息读取及处理
            //单元表信息读取及处理
            foreach (Worksheet ws in bookE.Worksheets)
            {
                if (ws.Name == "单元")
                {
                    ReadElem1(ws, ref MyModel);
                }
                else if (ws.Name == "单元荷载")
                {
                    ReadElem2(ws, ref MyModel);
                }
                else if (ws.Name == "杆件导荷载")
                {
                    ReadElem2(ws, ref MyModel);
                }
                else if (ws.Name == "计算长度")
                {
                    ReadElem3(ws, ref MyModel);
                }
            }
            messagebox.AppendText(Environment.NewLine + "读取单元表信息完成!");
            #endregion

            MyModel.UNIT.Force = "KN";    //指定力为KN
            mf.CurModel        = MyModel; //存储模型入数据库
            messagebox.AppendText(Environment.NewLine +
                                  "导入模型:" + MyModel.nodes.Count + "节点," + MyModel.elements.Count + "单元");
            //this.Close();
        }