Пример #1
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 + "************单元验算结束************");
        }
Пример #2
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 + "************单元验算结束************");
        }
Пример #3
0
        /// <summary>
        /// 初始化对话框参数
        /// </summary>
        public void InitForm()
        {
            MainForm mmf = this.Owner as MainForm;//主窗口

            MidasGenModel.model.Bmodel mm = mmf.ModelForm.CurModel;
            iMaxElem = mm.MaxElem;//取得最大单元号
        }
Пример #4
0
        private void bt_Run_Click(object sender, EventArgs e)
        {
            if (rtb_midasin.Text.Length == 0)
            {
                rtb_midasout.Text = "没有输入Midas格式的选择集";
                return;
            }
            List <int> nns = SelectCollection.StringToList(rtb_midasin.Text);

            MainForm   mmf = this.Owner as MainForm;//主窗口
            ModelForm1 mf  = mmf.ModelForm;

            MidasGenModel.model.Bmodel mm = mf.CurModel;

            List <Triangle> Tras = mm.getDelaunayTriangleByNodes(nns);

            rtb_midasout.Clear();//清屏
            rtb_midasout.AppendText("\n转换成功,共" + Tras.Count.ToString() + "个三角形");
            //进行三角形过滤
            if (cb_Con.Checked)
            {
                double          Ang_con  = double.Parse(tb_Ang.Text);
                List <Triangle> TransNew = new List <Triangle>();
                //畸形三角形过滤
                foreach (Triangle tt in Tras)
                {
                    if (tt.getMaxAngle() <= Ang_con)
                    {
                        TransNew.Add(tt);
                    }
                }
                Tras = TransNew;//更新新的三角形集合
                rtb_midasout.AppendText("\n进行△过滤后,共" + Tras.Count.ToString() + "个三角形");
            }

            //下面转换成板单元命令流
            int i = 1;

            rtb_midasout.AppendText("\n*ELEMENT");
            foreach (Triangle ang in Tras)
            {
                MidasGenModel.DelaunayTriangulator.Point pt1 = ang.Vertex1;
                MidasGenModel.DelaunayTriangulator.Point pt2 = ang.Vertex2;
                MidasGenModel.DelaunayTriangulator.Point pt3 = ang.Vertex3;

                int    n1    = mm.getNode(pt1.X, pt1.Y, pt1.Z);
                int    n2    = mm.getNode(pt2.X, pt2.Y, pt2.Z);
                int    n3    = mm.getNode(pt3.X, pt3.Y, pt3.Z);
                int    iNum  = i + iMaxElem;//单元号
                string trout = "\n " + iNum.ToString() + ", PLATE, 5, 2, " + n1 + ", " + n2 + ", " + n3;
                rtb_midasout.AppendText(trout);

                //提示信息输出
                label1.Text = "提示:板单元" + i.ToString() + "已生成...";
                this.Refresh();
                i++;
            }

            //更新最大单元号
            iMaxElem = iMaxElem + i;
        }